On 04/30/2015 04:07 PM, Roberto Sanchez Herrera/Mexico/IBM wrote:


Parent Module type          Reference    Member or Child module
EAR                WAR, EJB jar with DD, rar    Child module
EAR utility jar , EJB jar without DD Member
WAR                Web fragment, EJB jar with DD    Child module
WAR utility jar , EJB jar without DD Member


A utility jar is not a "module" as per JEE, so it honestly never should be a child module. The problem is that there's no other way to express to server adapters that they need to 'zip' up a Utility project other than to mark it as a child module.

The difference between EJB jar with DD vs EJB jar without DD is (as I understand it) primarily a performance issue. IT is very easy to scan a jar to see if there's a DD in it and thus identify the jar as a child module or not. It is much more resource intensive to scan the jar for annotations or other such metadata. So an EJB jar without DD is treated the same as a utility jar.

I honestly think it'd make more sense to develop a cache of these jars with full scans to determine if they're modules or not, with the result cached (and updated) based on timestamp. ie, if the underlying .jar changes, you would re-scan the jar to determine if it's a member jar or an ejb module.

2. For bug 439685 [1], should the reference to the web fragment jar be considered a member? Or should remain as child module, and the server adapters have the responsibility of handling them properly?

After reading some of the explanations on web fragments, I genuinely believe web fragments are child modules, and all server adapters (including the preview servers) should be prepared to handle the nesting of modules, or remove their support for web fragments, which are by their nature child modules.


3. Should we document this somewhere?


It's kinda hard to document a mix of inefficiencies and slight changes due to happenstance and history. At this point, such documentation would basically be as follows:

"Sub-Projects are always child modules, even when they're not JEE modules, because the API does not allow any other way for servers to know they need to zip up a project. For archives, do your best to determine if its a child module, but take care of performance since these methods may be called often. When in doubt, marking an archive as a member is safer, but it won't show up in the Servers view as a child module, and some server adapters will lose the ability to control those child modules' states via start / stop / restarting the child module."

Those are my thoughts. Not sure if anyone else agrees.

- Rob Stryker

Your comments are welcome, specially if you put them on the bug 439685 [1]

Thanks.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=439685
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=439685#c8

Regards,

*Roberto Sanchez Herrera*


_______________________________________________
wtp-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

Reply via email to