I have been
fixing/extending TopLink source code, which look exactly the same than
EclipseLink, for over 2 years. In my previous life I had also been extending
MFC a framework from Microsoft. In both cases, the main problem for clean
modifications without changing directly existing class is to get a handle on
the instantiation of the concrete classes to swap mine, which often extend
from the original.
EclipseLink should be
extensible. To achieve this, all concrete classes’ instantiations should be
customizable. Different degrees of customization are conceivable. The simpler
approach is that if a property file is found in the classpath it is used to
choose the concrete classes. The more complex implementation will probably
end-up looking like Spring.
The following classes
all need some modifications to get them working gracefully in my
enterprise-grade application:
- UnitOfWorkImpl
- SessionBroker
- ObjectBuilder
- SequencingManager
- DeferredChangeDetectionPolicy
- XMLSessionConfigLoader
- WebSphere_6_1_Platform
- SessionsFactory
- SessionManager
- Oracle10Platform
- MergeManager
- MergeChangeSetCommand
- VersionLockingPolicy
- And
others
Let me know what you
think.