As you can see, all EMF concepts had been converted to CDO concepts directly under the visible surface. It turned out that this approach had several drawbacks:
- No generated EOperation logic on the server
- No generated EDataType serialization
- No EMF tools on the server (Compare, OCL, ...)
- Backend integrators can not use EObject
- Server extenders can not use EModelElement
In fact this was the biggest and most impacting refactoring since the complete re-write of version 0.7. Here are some numbers:
- 69378 changed lines of code
- 1736 changed files
- 2.8 MB patch file size
- 13% performance increase
Kudos go to Simon, who took over when I fell asleep, to Vik, who adjusted the UI and to Martin, who will adjust the HibernateStore. And apologies for the maintenance congestion that was caused by a locked HEAD.
After the merge to HEAD we'll be able to face the second step of the refactoring and make CDO-controlled EObjects available on the server:
This will open the door to some exciting new functionality on the server like:
- Commit validation based on OCL
- Common query based on OCL
- Annotation-driven model mappings
- Easier embedding into clients
Very very cool!!!
ReplyDelete>compensate p2 issues with missing, non-EPL dependencies
ReplyDeleteThis is misleading. p2 has no issues whatsoever with non-EPL dependencies. The foundation has problems with hosting those: https://bugs.eclipse.org/bugs/show_bug.cgi?id=246945
Le ScaL, You're partly right. But I still consider it a p2 issue that the "optional" flag for included features is not respected by p2. Instead p2 just refuses to install the containing feature. And I also consider it a p2 issue that the user is not given the chance to opt out of the strong consistency policy. There are cases where missing dependencies of only some bundles do not necessarily lead to malfunction of a bigger feature.
ReplyDeleteNearby, I posted a respective question to the Equinox newsgroup almost one year ago ("[p2] Invalid configurations?") -- and never got an answer.
ReplyDeleteNot to mention Bug 250015 which is waiting for reaction since August 2008 ;-)
ReplyDeleteGreat work! This looks like a great way forward for CDO. When is this planned to be "stable" and ready for a CDO release?
ReplyDeleteHenke, I expect the branch to be merged to HEAD by end of this week. HibernateStore might follow next week.
ReplyDelete