Problems with extracting
The structure and dependencies between the modules are causing serious problems with the removal of OJB in a way which won't break legacy applications.
The primary source of the problems is the document framework. The main document class in Rice extends from the PBOB class which we need to move into the KNS package. (BusinessObject also needs to move - but it's used in a number of core API services and classes.)
The division between the krad-app-framework and krad-web-framework modules is part of the problem. krad-app-framework can not see the KNS or krad-web-framework. LegacyDataAdapter is in krad-web-framework, but we need some of the functions in krad-app-framework. But, because it has references to the document framework, it can not be moved to the latter.
I've been trying to remove references to PBO by creating a new base class for use in the shared objects which need to be bound to OJB as well as JPA. (called PersistableBusinessObjectBaseAdapter) This is a DataObjectBase extension with some additional methods to match what PBOB had. But...these methods require the LegacyDataAdapter.
I've managed to address this by splitting the interface for the LDA into two, one inheriting from the other. (Still just the one implementation.)
The larger problem is the business object service. It really expects some things to be business objects. Casting may be the answer, but I don't know if it will work in all cases. (Actually, I know it won't, since I can't reference the class to which I need to cast.) So, in these places (specific cases), I have been changing the API methods to take object instead of BusinessObject or PersistableBusinessObject. I know this would affect custom overrides, so this is an impacting change, but I don't think there are too many who are customizing the BO server.
The more impacting change is the changing of some presentation controller classes. Those I expect (know) are being overridden. So, the change of the signature will force changes. (If people are using best practices and adding the @Override annotation, this will flag on compile.)
The project is now compiling within Eclipse - but I'm having Maven issues - something with gmaven failing in Rice-impl on a test class. I still have not resolved that one.