David E Jones wrote:
That said, I still haven't seen how you resolved the dependency issue, even on the security side of things. If we have an execution context that depends on the service engine, which depends on the entity engine, and the entity engine contains or depends on the execution context, then we have a circular dependency. Short of combining those components onto a single classpath we have a problem.

What I meant was I solved the cross-dependency problem in the ExecutionContext interface itself. Anyone who tries out the branch can see that, and they can see that the execution path aspect of it works. That is a prerequisite to getting the new security design implemented.

With that problem instead of going in the direction of making MORE dependencies between the framework components, I decided on a direction to go for LESS dependencies between the framework components by using a set of interfaces that represent the main tools in the framework and provide the most common API elements that people might need/want.

I agree, and I'm willing to help in that effort. Again, it's not a show-stopper for getting the security redesign implemented.

I'll continue developing the security redesign in the branch I created.

On the issue of reducing cross dependencies, why can't that be done in the trunk? We could do it one component at a time. Doing it that way would be fairly simple and it would be easy to test.

I saw in your commit log that you were mulling over which methods should be kept in the interfaces, and that some methods are unnecessary. Let's focus on the goal of eliminating cross dependencies and just allow Eclipse to extract interfaces. Leave the decision of which methods should or shouldn't be kept for another time.

Let's say we're working on the entity component. Just extract interfaces from the commonly used classes, move them to framework/api, update import statements, compile, test, commit. It seems pretty straightforward to me.

-Adrian

Reply via email to