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>
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.
_______________________________________________
wtp-dev mailing list
wtp-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/wtp-dev

Reply via email to