About the author
So, project A which compiles to JAR A requires classes in JAR B.Project B which compiles to JAR B requires classes in JAR A.
I was asked about this, so I suggested decoupling the projects such that on a clean system with no JARs, project A and project B can be built.
On thinking about this, there is two approaches to the solution.
Solution 1 - Declare methods in interfaces and then have project A use these interfaces instead of depending on the classes directly, and similarly for project B. This will require implementing class factories, which returns singleton classes that implements these interfaces.
Solution 2 - An approach that is quite tedious.
This article discusses the new Delphi 8 property access specifiers.
Continued discussion of undocumented Delphi 8 Property Access Specifiers, and other ways of adding and removing delegates / events handlers, including clearing the list of all the delegates / event handlers.