Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[wtp-dev] New feature targeted for 2.0 M6: Tagging J2EE project classpath entries for publish/export

Title: Message
I wanted to give everyone a heads up on a new feature that is targeted for release into the j2ee and common component plugins during early M6 (pending review by the relevant component team leads/members and PMC).
 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=128851 contains both a detailed description/discussion of the enhancment and patches with the current code/unit tests.
 
If you have any questions/concerns or comments on the feature, please add to the discussion in the bugzilla. If you are interested in trying out the feature or looking at the code and have questions/problems with the patches, please send me an email.
 
-Rob
 
---------------------------------------------------------------------
Summary:
 
This feature allows the resolved contributions of classpath entries in J2EE module projects to be mapped into the virtual component structure for the exported/published application via the addition of a special classpath attribute. The primary driver for this feature was support for the contributions from classpath containers.
 
Three primary use cases are supported:
 
1) Mapping entries on the classpath of a dynamic web project
 
-These entries are mapped into the WEB-INF/lib folder of the exported/published web module.
-Validation ensures that the resolved classpath entries do not clash with other archives already mapped into WEB-INF/lib.
-The special classpath attribute can be added/removed for these entries via the Web Libraries tab of the J2EE Module Dependencies properties page of the web project. Each classpath entry that can legally be mapped into WEB-INF/lib will be listed in the dependency table and can be selected/deselected like other standard J2EE dependencies.
 
Example: A "User Library" classpath container is added to a Dynamic Web project. The user wants all archives resolved by this classpath container added into the WEB-INF/lib folder of the exported/published web module. This is accomplished using this feature by opening the "Web Libraries" tab in the "J2EE Module Dependencies" property page and selecting as a dependency the item included in the table for this classpath container. Confirming this selection will add a WTP-specific attribute to the raw classpath entry which will in turn cause the resolved contributions from that container to be mapped via the virtual component model into the WEB-INF/lib folder of the exported/published web module.
 
2) Mapping entries on the classpath of a non-app client J2EE Java project that is referenced by an EAR
 
-These classpath entries must be exported (enforced by the validator) and they are mapped into the root of the referencing EAR project.
-Validation ensures that the resolved contributions do not clash with archives already mapped into the root of the EAR.
-The MANIFEST classpath of the project containing the mapped classpath entry is dynamically modified in the exported/published application to reference the resolved contributions from all mapped entries.
-The special classpath attribute can be added/removed for these entries via the J2EE Module Dependencies properties page of the project. Each classpath entry that can legally be mapped into referencing project modules will be listed in the dependency table and can be selected/deselected like other standard J2EE dependencies.
-Once mapped, the resolved archive contributions can also be seen in the J2EE Module Dependencies properties page of the referencing EAR project as grayed items.
 
3) Mapping entries on the classpath of a non-app client J2EE Java project that is referenced by an dynamic web project
 
-These classpath entries must be exported (enforced by the validator) and they are mapped into the WEB-INF/lib directory of the referencing web project. 
-Validation ensures that the resolved contributions do not clash with archives already mapped into the WEB-INF/lib folder of the referencing web project.
-Addition/removal is perfomed as form #2
-Once mapped, the resolved archive contributions can also be seen on the Web Libraries tab of the J2EE Module Dependencies properties page of the referencing web project as grayed items.
 
Classpath entry attribute details:
 
Raw cp entries must have the attribute "org.eclipse.jst.component.dependency" to be mapped (only container, library and variable entries are currently supported; the following cp containers are disallowed: EAR libraries container, web app libraries container, JRE container, server runtime container). If the raw cp entry has the attribute, all resolved entries are automatically mapped (i.e. the resolved entries do not need the attribute themselves; this allows containers not specific to WTP to be supported). If a given container implementation needs to map only a subset of the resolved entries, it can add a special attribute ("org.eclipse.jst.component.dependency") to the resolved entries that should be filtered out.
 
API details:
 
The code that comprises the programmatic API for this functionality resides in the org.eclipse.jst.j2ee project in the org.eclipse.jst.j2ee.classpathdep package.
 
_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

Back to the top