So thanks to Cristiano pinging me offline, I spent some time on reviewing this again. I think we need to take the following steps to integrate Abodata’s OSGi code (or follow it as a pattern when we write ours) :
1. Reorg Cayenne Maven structure, making cayenne-server and cayenne-client real Maven modules instead of aggregates. We’ve discussed this a few times, and IIRC I was the only one who opposed it :) I no longer do. We can use <optional> and “provided” dependencies to exclude the extras like JGroups and keep it clean. 2. We need to add OSGi metadata to cayenne-server (and other Cayenne jars in the chain… likely just cayenne-di). 3. We need to create OsgiServerModule with an overridden AdhocObjectFactory. This will implement refactored ClassRegistry and will load all model classes per this example: http://www.snip2code.com/Snippet/12313/Apache-Cayenne--correctly-load-classes-u 4. We may (or may not?) put those few OSGi classes in a separate cayenne-server-osgi module (to avoid dependency on OSGi framework in the base cayenne-server). I placed #1 in my work stack (and really hope something else doesn’t pop up that pushes it down :-/ ) I don’t think Cristiano can create sensible patches against trunk without it. After this is done, we can discuss whether me or Cristiano can do 2..4. Andrus On Jan 31, 2013, at 3:42 PM, Cristiano Ghersi <cristiano.ghe...@abodata.com> wrote: > Good morning, > > My company (Abodata, www.abodata.com) has ported Cayenne into OSGi > environment, and we would like to contribute to Cayenne project with this > enhancement as I posted under user mailing list on October 2012. > > Following your instructions, we have uploaded the full content under the > github repo: > https://github.com/cristianoghersi/CayenneOSGi > > Basically, we have packaged the source code of 3.1 version into an OSGi > bundle called cayenne-osgi, adding some stuff to manage the particular > classloading features of OSGi. > Then we added also another bundle, called Cayenne-3.1-Dependencies, that > packages all the required dependencies. > > I'm at complete disposal for every clarification you need. > > I'll wait for your feedback. > > Best > cghersi