Skip to content

Netty impl#370

Open
akafredperry wants to merge 5 commits intotrunkfrom
netty_impl
Open

Netty impl#370
akafredperry wants to merge 5 commits intotrunkfrom
netty_impl

Conversation

@akafredperry
Copy link
Collaborator

@akafredperry akafredperry commented Mar 12, 2026

closes #360
closes #363

- What I did

  • Replaced secondaries and connections packages that contains Java NIO client implementation with new implementation that uses Netty. This netty "connector" can be used to interact with the directory server and the
    at server. Monitor-ing can also be set up on the same connection.
  • Refactored the AtClient interface (removed factory methods, removed reference to Secondary interface).
  • Replaced AtConnection interface with AtCommandExecutor interface.
  • Removed Secondary interface.
  • Reorganised packages. api contains core interfaces and types. impl contains factory classes AtClients, AtCommendExecutors and AtEndpointSuppliers. These are the entry points for users and everything is a builder.
  • All public methods are now properly javadoc-ed. Everything other than CLI utilities has been completely overhauled and moved into a clear package structure under impl.
  • Code coverage is now enforce as part of the build. Defaults for line and branch is 90%. Registration and CLI code has not * been touched as part of this ticket and this drags down the coverage to 77% (for the moment)

- How I did it

  • The implementation uses Netty. Thread safety / race conditions are managed by the fact that we use a single netty thread for writing and reading in the Netty pipeline.
  • The workflow required for composite at protocol actions authentication, enrolment and key storage / retrieval has been refactored into a command utility methods. (see commands package).
  • Lombok builders are used extensively.
  • All public methods have proper javadoc
  • Code coverage (excluding CLI and Registration code) is has +90% coverage.
  • Jacoco (Java code coverage) is integrated into the build

- How to verify it
Run all the unit tests and integration test (this is done as part of this pipeline).
Ran example code that uses production servers.

- Description for the changelog

replace java nio implementation with netty, refactored all interfaces and packages

@akafredperry akafredperry requested a review from gkc March 13, 2026 14:14
@akafredperry akafredperry self-assigned this Mar 13, 2026
@akafredperry akafredperry marked this pull request as ready for review March 13, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant