Hi Jorge,

Great to hear that someone is taking a dive and switching to Java modules!

I am pretty sure that making "cayenne-server" compatible with JPMS should be 
fairly straightforward. We support OSGi, that IIRC has even tighter constraints 
around modules. So all the packages are already organized properly, etc. Just 
need to figure out proper metadata when assembling the jars. Less sure about 
ROP (as you see, it is giving you much more trouble). But nothing prevents us 
from doing a package reorg there as well.

So while I am not aware that anyone has looked at JPMS-compliant packaging for 
Cayenne, I think we should, and this totally doable. So I'd say this is just a 
question of time.

BTW if you want to take a shot at it yourself, this would be great too. Myself 
(and I am pretty sure others here) will be happy to answer any questions and 
review your PRs :)

Andrus

P.S. Curious - what is your use case for ROP? 


> On Jul 25, 2019, at 12:01 PM, Jorge Gonçalves <gorg...@live.com.pt> wrote:
> 
> Hello,
> 
> I'm planing to use Cayenne and Cayenne ROP in two projects, but at the
> moment Cayenne is not compatible with module system.
> 
> Current issues:
> 
> If using Cayenne Server cannot create custom runtime image, because
> JLink does not support automatic modules 
>       
> (Error: automatic module cannot be used with jlink: cayenne.server)
> 
> 
> If using Cayenne ROP some packages are present on different
> dependencies and it's not allowed to read a package from multiple
> modules. 
> 
> - Error:java: the  "module" reads package org.apache.cayenne from both
> cayenne.server and cayenne.rop.server
> 
> -Error:java: the "module" reads package org.apache.cayenne.remote from
> both cayenne.client and cayenne.rop.server
> 
> -Error:java: the "module" reads package
> org.apache.cayenne.remote.hessian from both cayenne.client and
> cayenne.rop.server
> 
> -Error:java: the "module" reads package
> org.apache.cayenne.remote.hessian.service from both cayenne.client and
> cayenne.rop.server
> 
> -Error:java: the "module" reads package org.apache.cayenne.rop from
> both cayenne.client and cayenne.rop.server
> 
> Cayenne works with Java 11 and I can do some workarounds like creating
> a fat jar and not using module-info in my project. But is  there any
> work in progress to make Cayenne compatible with module system?
> 
> 
> 

Reply via email to