[prev in list] [next in list] [prev in thread] [next in thread]
List: jboss-user
Subject: [jboss-user] [JBoss Tools] - m2e(clipse)-wtp 0.13.0 : New &
From: Fred Bricon <do-not-reply () jboss ! com>
Date: 2011-07-28 19:33:04
Message-ID: 38-3913-3-14979-1311881561028.jivesbs.jivemailuser () http://community ! jboss ! org
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Fred Bricon [http://community.jboss.org/people/fbricon] modified the blog post:
"m2e(clipse)-wtp 0.13.0 : New & Noteworthy"
To view the blog post, visit: \
http://community.jboss.org/community/tools/blog/2011/06/23/m2eclipse-wtp-0130-new-noteworthy
--------------------------------------------------------------
h3. Embracing Indigo
So, Eclipse 3.7 a.k.a. Indigo has been released. This year, 62 Eclipse projects were \
made available on the same day. Part of the release train is M2E 1.0.0, which \
succesfully graduated from the Eclipse incubator. Congrats to all the teams involved!
m2e-wtp 0.13.0 is finally available as well. Last minute bugs prevented an earlier \
release and made our lives a bit difficult, but thanks to Igor Fedorenko, we made it. \
As you will discover, the WTP integration with Maven is thighter than ever! The \
complete release notes are available here \
(https://issues.sonatype.org/secure/ReleaseNote.jspa?projectId=10310&version=11013), \
but let's take a quick look at what's new and noteworthy :
h3. Discovery / installation
Once m2e is installed, there are several ways to install m2e-wtp. First you need to \
wipe the m2eclipse-extras update site from your memory (and eclipse), it only \
contains m2e 0.12.0 compatible plugins :
*IMPORTANT UPDATE* : m2e-wtp has been temporarily removed from the m2e marketplace \
(http://dev.eclipse.org/mhonarc/lists/m2e-users/msg00938.html). Please consider \
option #3 while we're working on fixing the problem.
1) Import existing Java EE projects into the workspace; You'll be proposed to install \
the m2e-wtp plugin :
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16576/450-463/m2e-wtp-discovery.jpg \
(http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16576/m2e-wtp-discovery.jpg)
click on Finish and the installation will proceed. Your projects will be imported \
but the workspace will have to be restarted.
2) Go to Window > Preferences > Maven > Discovery and click on "Open catalog". Select \
m2e and proceed with the installation.
3) Old school installation : Use this update site : \
https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-wtp/0.13.0/S/0.13.0.20110623-0455/ \
*IMPORTANT UPDATE 2* : m2e-wtp 0.13.1 is available from a new update site url ( \
http://dev.eclipse.org/mhonarc/lists/m2e-users/msg00938.html \
http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/).
h3. Experimental war overlay support
Finally, after all these years, m2e-wtp offers support for \
http://maven.apache.org/plugins/maven-war-plugin/overlays.html maven war overlays. \
The idea is to share common resources between several web applications. One use case \
could be to easily share logos, style sheets etc... in a corporate environment. All \
you need to do is declare in your web application pom.xml a dependency to another war \
artifact.
<project xmlns="http://maven.apache.org/POM/4.0.0" \
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>foo.bar</groupId>
<artifactId>war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>foo.bar</groupId>
<artifactId>overlaid</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
</project>
By default, all the contents of the overlaid artifact will be copied to the \
deployment directory of the web application, minus the MANIFEST.MF. *The resources of \
the web application take precedence, in case of duplicate files*. If your project \
depends on a war archive (from your local repository), that dependency will be \
unzipped under target/m2e-wtp/overlays/<dependency>/ before being deployed to your \
server, according to the overlay configuration (you can select what files are \
included/excluded). For instance :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<overlays>
<overlay>
<groupId>foo.bar</groupId>
<artifactId>overlaid</artifactId>
<excludes>
<exclude>WEB-INF/lib/*</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>
... won't deploy the jars from overlaid (project or archive)/WEB-INF/lib
If the dependency is another web project in your workspace, the deployed resources \
will be dynamically determined from the overlay configuration and any file changed in \
the overlaid project will be automatically redeployed to the target server.
Below is an example where the "war" project depends on an "overlaid" war project and \
hudson-war-2.0.1.war(before you asked, it's because this one is available in \
central). The images/hudson.png file is present in both overlay artifacts. The file \
is picked from "overlaid", since it's declared first in the pom. The deployed "war" \
project is a fully fledged CI server \
http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16569/war-overlay.jpg \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16569/450-232/war-overlay.jpg \
As of now, unsupported features of war overlays are :
- filtering
- exclusions of resources from the main project (defined as <overlay></overlay>)
There's plenty of room for performance optimizations, and it still needs to be tested \
"on the field" so please, please, do not consider this feature as production ready, \
it's still experimental.
Also note that the WTP overlay metadata format (in \
.settings/org.eclipse.wst.common.component) has changed and is incompatible with \
older development builds of m2e-wtp 0.13.0. So if you used previous nightly builds, \
you should reimport your projects without their eclipse metadata (.project, \
.classpath, .settings/)
h3. Removal of WTP classpath libraries
http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16570/classpath-containers.jpg \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16570/253-419/classpath-containers.jpg \
Since its infancy, m2e-wtp suffered from outstanding classpath resolution issues when \
unit tests were being run. It turned out some dependencies were being leaked by the \
WebApp and EAR classpath libraries, installed by default on Java EE projects. Having \
these libraries also required extra code complexity to move workspace dependencies \
from one library to the other. In m2e-wtp 0.13.0, a rather radical solution was taken \
: remove these WTP libraries after they're being automatically added by WTP. Guess \
what? it solved all the classpath issues occurring during tests and simplified the \
code. So from now on, you will just see the following libraries in the project \
explorer
>
h3.
h3. 'Deployed Resources' node in the Project View
http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16572/deployed-folders.jpg \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16572/236-577/deployed-folders.jpg \
Previous m2-wtp versions displayed a *Web Resources* node, for Web projects, or \
*Application Resources* for EARs, in the Project View. These nodes aggregate the \
content that must be deployed on the server / packaged in the final archive. A *Web \
Resources* node is already provided by JBoss Tools for projects having the JSF Facet \
installed. So, in order to avoid confusion, the nodes contributed by m2e-wtp have \
been renamed more appropriately to *Deployed Resources* :
h3. Maven-generated MANIFEST.MF
Up until now, in m2e-wtp, the manifest was generated "manually" using WTP's API, for \
web projects only. In the process, the man ifest kinda fixed some maven shortcomings \
in order to handle skinny wars (didn't add a classpath prefix for EJBs, contrary to \
maven). Now, for Web, EAR, EJB, Utility and Connector projects, the manifest is \
generated via a call to the Maven's archiver. That means no more impedance mismatch \
between Maven and Eclipse manifests. \
http://maven.apache.org/shared/maven-archiver/index.html Manifest customization is \
reflected on the fly in the generated file. For jar, ejb and connector projects, it \
is generated under target/classes. For web projects, it goes under \
target/m2e-wtp/web-resources/ and for EARs, goes under target/m2e-wtp/ear-resources/ \
http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16571/manifest-support.jpg \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16571/450-232/manifest-support.jpg \
Since the EAR library is gone, the manifest is no longer used to reflect compile \
classpath within Eclipse and is only used for runtime classpath resolution. Since it \
now follows the same rules as Maven, how do you handle skinny wars with EJBs and \
classpath prefix? One solution is to use your own Class-Path entry, which will be \
appended with the classpath computed by the maven archiver. So, for instance :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>sample-ejb-${pom.version}.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
will generate something like :
> Manifest-Version: 1.0
> Built-By: fbricon
> Build-Jdk: 1.6.0_24
> Class-Path: *sample-ejb-0.0.1-SNAPSHOT.jar* lib/sample-util-0.0.1-SNAPSH
> OT.jar
> Created-By: Maven Integration for Eclipse
Of course, the *"Created-By: Maven Integration for Eclipse"* entry can be overwritten \
using your own value :
<manifestEntries>
<Created-By>My kick-ass IDE</Created-By>
</manifestEntries>
Finally, we tried to delete all MANIFESTS.MFs automatically generated by WTP. So \
hopefully, your source control shouldn't be polluted anymore.
h3. Support for EAR Resource filtering
m2e-wtp now supports \
http://maven.apache.org/plugins/maven-ear-plugin/examples/filtering-sources.html EAR \
resource filtering, pretty much the same way \
http://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthy \
Web projects do. Just add the filtering attribute to your maven-ear-plugin \
configuration :
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<filtering>true</filtering>
...
</configuration>
</plugin>
</plugins>
Filtered resources are generated under target/m2e-wtp/ear-resources/
http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16573/ear-filtering.jpg \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16573/450-232/ear-filtering.jpg \
h3. Dropped support for Eclipse 3.5 and older versions
In order to support war overlays, m2e-wtp 0.13.0 is taking advantage of several APIs \
that were made available in Eclipse 3.6 ( Helios). The direct consequence is it's not \
longer compatible with Eclipse 3.5 (Galileo) based platforms and of course older \
versions. However it's been tested against Eclipse 3.6 and 3.7 on the continuous \
integration server at JBoss.
h3. Now, what next?
Well, we're gonna see how the overlay support stands in the wild. If necessary, one \
or more 0.13.x bugfixes can be made available "quickly". One of the problem that \
delayed this release is a https://bugs.eclipse.org/bugs/show_bug.cgi?id=350138 \
conflict between m2e-wtp and the pom properties configurator. This lead us to remove \
the latter from m2e marketplace catalog to avoid confusion. I hope we can find a \
solution quickly in order to restore that plugin in the marketplace. Next version \
(0.14.) should include Dali support, Application Client packaging support, bug fixes \
and https://issues.sonatype.org/browse/MECLIPSEWTP#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel \
more... As always, if you find any issue or would like to see new useful features in \
m2e-wtp, please open a ticket at https://issues.sonatype.org/browse/MECLIPSEWTP \
https://issues.sonatype.org/browse/MECLIPSEWTP
Enjoy,
Fred.
https://twitter.com/#!/fbricon https://twitter.com/#!/fbricon
PS: Again, special kudos to Igor Fedorenko who supported me during this \
not-so-trivial release.
--------------------------------------------------------------
[Attachment #5 (text/html)]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; \
margin: 0; padding: 20px;">
<div>
<table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: \
1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;"> <tbody>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" \
style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: \
6px; -webkit-border-radius: 6px;"> <tbody>
<tr>
<td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px \
solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; \
-moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; \
-webkit-border-top-left-radius: 5px;">
<h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; \
margin: 0; display: block !important;">
<!-- To have a header image/logo replace the name below with your img tag \
-->
<!-- Email clients will render the images when the message is read so any \
image -->
<!-- must be made available on a public server, so that all recipients can \
load the image. -->
<a href="http://community.jboss.org/index.jspa" style="text-decoration: \
none; color: #E1E1E1">JBoss Community</a></h1> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; \
color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; \
-moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; \
-webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: \
17px; font-weight: normal;"> m2e(clipse)-wtp 0.13.0 : New & Noteworthy
</h3>
<span style="margin-bottom: 10px;">
modified by <a href="http://community.jboss.org/people/fbricon">Fred Bricon</a> \
in <i>JBoss Tools</i> - <a \
href="http://community.jboss.org/community/tools/blog/2011/06/23/m2eclipse-wtp-0130-new-noteworthy">View \
the full blog post</a> </span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><h3> <span style="color: #666699;">Embracing \
Indigo<br/></span></h3><p><span id="internal-source-marker_0.6966659519821405">So, \
Eclipse 3.7 a.k.a. Indigo has been released. This year, 62 Eclipse projects \
were  made available on the same day. Part of the release train is M2E 1.0.0, \
which succesfully graduated from the Eclipse incubator. Congrats to all the teams \
involved!</span></p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>m2e-wtp 0.13.0 is finally available as well. Last minute bugs \
prevented an earlier release and made our lives a bit difficult, but thanks to Igor \
Fedorenko, we made it. As you will discover, t<span \
id="internal-source-marker_0.6966659519821405">he WTP integration with Maven is \
thighter than ever! The complete release notes are available <a \
class="jive-link-external-small" \
href="https://issues.sonatype.org/secure/ReleaseNote.jspa?projectId=10310&version=11013">here</a>, \
but let's take a quick look at what's new and noteworthy :</span></p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><h3><span style="color: \
#666699;">Discovery / installation<br/></span></h3><p>Once m2e is installed, there \
are several ways to install m2e-wtp. First you need to wipe the m2eclipse-extras \
update site from your memory (and eclipse), it only contains m2e 0.12.0 compatible \
plugins : </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p><span style="color: #ff0000;"><strong>IMPORTANT \
UPDATE</strong></span> :<span style="color: #ff0000;"> m2e-wtp has been temporarily \
removed from the m2e marketplace (<a class="jive-link-external-small" \
href="http://dev.eclipse.org/mhonarc/lists/m2e-users/msg00938.html">http://dev.eclipse.org/mhonarc/lists/m2e-users/msg00938.html</a>). \
Please consider option #3 while we're working on fixing the problem.</span></p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>1) Import existing \
Java EE projects into the workspace; You'll be proposed to install the m2e-wtp plugin \
:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span \
style="color: #666699;"><a \
href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16576/m2e-wtp-discovery.jpg"><span> \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16576/450-463/m2e-wtp-discovery.jpg \
</span></a></span></p><p>click on Finish and the installation will proceed. Your \
projects will be imported but the workspace will have to be restarted.</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>2) Go to Window > \
Preferences > Maven > Discovery and click on "Open catalog". Select m2e and \
proceed with the installation.</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>3) Old school installation : Use this update site : <span \
style="font-size: 10pt;"><a class="jive-link-external-small" \
href="https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-wtp/0.13.0/S \
/0.13.0.20110623-0455/">https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-wtp/0.13.0/S/0.13.0.20110623-0455/</a>  \
</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span \
style="color: #ff0000;"><strong>IMPORTANT UPDATE 2</strong></span> :<span \
style="color: #ff0000;"> m2e-wtp 0.13.1 is available from a new update site url \
(</span><a class="jive-link-external-small" \
href="http://dev.eclipse.org/mhonarc/lists/m2e-users/msg00938.html">http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/</a><span \
style="color: #ff0000;">). </span></p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><h3> <span style="color: #666699;">Experimental war overlay \
support</span></h3><p>Finally, after all these years, m2e-wtp offers support for <a \
class="jive-link-external-small" \
href="http://maven.apache.org/plugins/maven-war-plugin/overlays.html">maven war \
overlays</a>. The idea is to share common resources between several web applications. \
One use case could be to easily share logos, style sheets etc... in a corporate \
environment. All you need to do is declare in your web application pom.xml a \
dependency to another war artifact. </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag"><span><project xmlns="</span><a \
class="jive-link-external-small" href="http://maven.apache.org/POM/4.0.0" \
target="_blank">http://maven.apache.org/POM/4.0.0</a><span>" xmlns:xsi="</span><a \
class="jive-link-external-small" href="http://www.w3.org/2001/XMLSchema-instance" \
target="_blank">http://www.w3.org/2001/XMLSchema-instance</a><span>" \
    xsi:schemaLocation="</span><a class="jive-link-external-small" \
href="http://maven.apache.org/POM/4.0.0" \
target="_blank">http://maven.apache.org/POM/4.0.0</a><span> </span><a \
class="jive-link-external-small" href="http://maven.apache.org/xsd/maven-4.0.0.xsd" \
target="_blank">http://maven.apache.org/xsd/maven-4.0.0.xsd</a><span>"></span></span>
    <span class="jive-xml-tag"><modelVersion></span>4.0.0<span \
class="jive-xml-tag"></modelVersion></span>     <span \
class="jive-xml-tag"><groupId></span>foo.bar<span \
class="jive-xml-tag"></groupId></span>     <span \
class="jive-xml-tag"><artifactId></span>war<span \
class="jive-xml-tag"></artifactId></span>     <span \
class="jive-xml-tag"><version></span>0.0.1-SNAPSHOT<span \
class="jive-xml-tag"></version></span>     <span \
class="jive-xml-tag"><packaging></span>war<span \
class="jive-xml-tag"></packaging></span>     <span \
class="jive-xml-tag"><dependencies></span> \
        <span \
class="jive-xml-tag"><dependency></span> \
            <span \
class="jive-xml-tag"><groupId></span>foo.bar<span \
class="jive-xml-tag"></groupId></span> \
            <span \
class="jive-xml-tag"><artifactId></span>overlaid<span \
class="jive-xml-tag"></artifactId></span> \
            <span \
class="jive-xml-tag"><version></span>0.0.1-SNAPSHOT<span \
class="jive-xml-tag"></version></span> \
            <span \
class="jive-xml-tag"><type></span>war<span \
class="jive-xml-tag"></type></span>         \
<span class="jive-xml-tag"></dependency></span>     <span \
class="jive-xml-tag"></dependencies></span> <span \
class="jive-xml-tag"></project></span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p>By default, all the contents of the overlaid artifact \
will be copied to the deployment directory of the web application, minus the \
MANIFEST.MF. <strong>The resources of the web application take precedence, in case of \
duplicate files</strong>.</p><p>If your project depends on a war archive (from your \
local repository), that dependency will be unzipped under \
target/m2e-wtp/overlays/<dependency>/ before being deployed to your server, \
according to the overlay configuration (you can select what files are \
included/excluded). For instance :</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag"><plugin></span>     <span \
class="jive-xml-tag"><groupId></span>org.apache.maven.plugins<span \
class="jive-xml-tag"></groupId></span>     <span \
class="jive-xml-tag"><artifactId></span>maven-war-plugin<span \
class="jive-xml-tag"></artifactId></span>     <span \
class="jive-xml-tag"><version></span>2.1.1<span \
class="jive-xml-tag"></version></span> \
        <span \
class="jive-xml-tag"><configuration></span> \
            <span \
class="jive-xml-tag"><overlays></span> \
               \
<span class="jive-xml-tag"><overlay></span> \
                  \
<span class="jive-xml-tag"><groupId></span>foo.bar<span \
class="jive-xml-tag"></groupId></span> \
                  \
<span class="jive-xml-tag"><artifactId></span>overlaid<span \
class="jive-xml-tag"></artifactId></span> \
                   \
<span class="jive-xml-tag"><excludes></span> \
                       \
<span class="jive-xml-tag"><exclude></span>WEB-INF/lib/*<span \
class="jive-xml-tag"></exclude></span> \
                    \
<span class="jive-xml-tag"></excludes></span> \
                 \
<span class="jive-xml-tag"></overlay></span> \
            <span \
class="jive-xml-tag"></overlays></span>     <span \
class="jive-xml-tag"></configuration></span> <span \
class="jive-xml-tag"></plugin></span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;"> </p><p>... won't deploy the jars from overlaid \
(project or archive)/WEB-INF/lib</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>If the dependency is another web project in your workspace, the \
deployed resources will be dynamically determined from the overlay configuration and \
any file changed in the overlaid project will be automatically redeployed to the \
target server.</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>Below is an example where the "war" project depends on an \
"overlaid" war project and hudson-war-2.0.1.war(before you asked, it's because this \
one is available in central). The images/hudson.png file is present in both overlay \
artifacts. The file is picked from "overlaid", since it's declared first in the pom. \
The deployed "war" project is a fully fledged CI server</p><p><a \
href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16569/war-overlay.jpg"><span> \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16569/450-232/war-overlay.jpg \
</span></a></p><p>As of now, unsupported features of war overlays are :</p><p>- \
filtering</p><p>- exclusions of resources from the main project (defined as \
<overlay></overlay>)</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>There's plenty of room for performance optimizations, and it still \
needs to be tested "on the field" so please, please, do not consider this feature as \
production ready, it's still experimental.</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p>Also note that the WTP overlay metadata format (in \
.settings/org.eclipse.wst.common.component) has changed and is incompatible with \
older development builds of m2e-wtp 0.13.0. So if you used previous nightly builds, \
you should reimport your projects without their eclipse metadata (.project, \
.classpath, .settings/)</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><h3><span style="color: #666699;">Removal of WTP classpath \
libraries</span></h3><p><a \
href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16570/classpath-containers.jpg"><span> \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16570/253-419/classpath-containers.jpg \
</span></a></p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>Since its infancy, m2e-wtp suffered from outstanding classpath \
resolution issues when unit tests were being run. It turned out some dependencies \
were being leaked by the WebApp and EAR classpath libraries, installed by default on \
Java EE projects. Having these libraries also required extra code complexity to move \
workspace dependencies from one library to the other. In m2e-wtp 0.13.0, a rather \
radical solution was taken : remove these WTP libraries after they're being \
automatically added by WTP. Guess what? it solved all the classpath issues occurring \
during tests and simplified the code. So from now on, you will just see the following \
libraries in the project explorer </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>: </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: \
8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: \
8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: \
8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: \
8pt; height: 8pt; padding: 0px;"> </p><h3></h3><p style="min-height: 8pt; \
height: 8pt; padding: 0px;"> </p><h3><span style="color: #666699;">'Deployed \
Resources' node in the Project View</span></h3><p><a \
href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16572/deployed-folders.jpg"><span> \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16572/236-577/deployed-folders.jpg \
</span></a></p><p style="text-align: left;">Previous m2-wtp versions displayed a \
<strong>Web Resources</strong> node, for Web projects, or <strong>Application \
Resources</strong> for EARs, in the Project View. These nodes aggregate the content \
that must be deployed on the server / packaged in the final archive. A <strong>Web \
Resources </strong>node is already provided by JBoss Tools for projects having the \
JSF Facet installed. So, in order to avoid confusion<span \
id="internal-source-marker_0.6966659519821405">, the nodes contributed by \
m2e</span><span id="internal-source-marker_0.6966659519821405">-wtp have been renamed \
more appropria</span><span id="internal-source-marker_0.6966659519821405">tely to \
    <span \
class="jive-xml-tag"><groupId></span>org.apache.maven.plugins<span \
class="jive-xml-tag"></groupId></span>     <span \
class="jive-xml-tag"><artifactId></span>maven-war-plugin<span \
class="jive-xml-tag"></artifactId></span>     <span \
class="jive-xml-tag"><version></span>2.1.1<span \
class="jive-xml-tag"></version></span>       <span \
class="jive-xml-tag"><configuration></span> \
        <span \
class="jive-xml-tag"><warSourceExcludes></span>WEB-INF/lib/*.jar<span \
class="jive-xml-tag"></warSourceExcludes></span> \
        <span \
class="jive-xml-tag"><archive></span> \
            <span \
class="jive-xml-tag"><manifest></span> \
                \
<span class="jive-xml-tag"><addClasspath></span>true<span \
class="jive-xml-tag"></addClasspath></span> \
                \
<span class="jive-xml-tag"><classpathPrefix></span>lib/<span \
class="jive-xml-tag"></classpathPrefix></span> \
            <span \
class="jive-xml-tag"></manifest></span> \
            <span \
class="jive-xml-tag"><manifestEntries></span> \
                \
<span class="jive-xml-tag"><Class-Path></span>sample-ejb-${pom.version}.jar<span \
class="jive-xml-tag"></Class-Path></span> \
            <span \
class="jive-xml-tag"></manifestEntries></span> \
        <span \
class="jive-xml-tag"></archive></span>     <span \
class="jive-xml-tag"></configuration></span> <span \
class="jive-xml-tag"></plugin></span> </code></pre><p>will generate something \
like :</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><blockquote \
class="jive-quote"><p>Manifest-Version: 1.0<br/> Built-By: fbricon<br/>Build-Jdk: \
1.6.0_24<br/>Class-Path:<strong> sample-ejb-0.0.1-SNAPSHOT.jar</strong> \
lib/sample-util-0.0.1-SNAPSH<br/> OT.jar<br/>Created-By: Maven Integration for \
Eclipse</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><p>Of course, the <strong>"Created-By: Maven Integration for \
Eclipse"</strong> entry can be overwritten using your own value :</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><pre \
class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag"><manifestEntries></span>   <span \
class="jive-xml-tag"><Created-By></span>My kick-ass IDE<span \
class="jive-xml-tag"></Created-By></span> <span \
class="jive-xml-tag"></manifestEntries></span> </code></pre><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: \
8pt; height: 8pt; padding: 0px;"> </p><p>Finally, we tried to delete all \
MANIFESTS.MFs automatically generated by WTP. So hopefully, your source control \
shouldn't be polluted anymore.</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><h3><span style="color: #666699;">Support for EAR Resource \
filtering</span></h3><p>m2e-wtp now supports <a class="jive-link-external-small" \
href="http://maven.apache.org/plugins/maven-ear-plugin/examples/filtering-sources.html">EAR \
resource filtering</a>, pretty much the same way <a class="" \
href="http://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthy">Web \
projects do</a>. Just add the filtering attribute to your maven-ear-plugin \
configuration :</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;"> </p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag"><plugins></span>   <span \
class="jive-xml-tag"><plugin></span>     <span \
class="jive-xml-tag"><groupId></span>org.apache.maven.plugins<span \
class="jive-xml-tag"></groupId></span>     <span \
class="jive-xml-tag"><artifactId></span>maven-ear-plugin<span \
class="jive-xml-tag"></artifactId></span>     <span \
class="jive-xml-tag"><version></span>2.6<span \
class="jive-xml-tag"></version></span>     <span \
class="jive-xml-tag"><configuration></span> \
        <span \
class="jive-xml-tag"><filtering></span>true<span \
class="jive-xml-tag"></filtering></span> \
        ...     <span \
class="jive-xml-tag"></configuration></span>   <span \
class="jive-xml-tag"></plugin></span> <span \
class="jive-xml-tag"></plugins></span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;"> </p><p>Filtered resources are generated under \
target/m2e-wtp/ear-resources/</p><p><a \
href="http://community.jboss.org/servlet/JiveServlet/showImage/38-3913-16573/ear-filtering.jpg"><span> \
http://community.jboss.org/servlet/JiveServlet/downloadImage/38-3913-16573/450-232/ear-filtering.jpg \
</span></a></p><h3><span style="color: #666699;">Dropped support for Eclipse 3.5 and \
older versions</span></h3><p>In order to support war overlays, m2e-wtp 0.13.0 is \
taking advantage of several APIs that were made available in Eclipse 3.6 ( Helios). \
The direct consequence is it's not longer compatible with Eclipse 3.5 (Galileo) based \
platforms and of course older versions. However it's been tested against Eclipse 3.6 \
and 3.7 on the continuous integration server at JBoss.</p><p style="min-height: 8pt; \
height: 8pt; padding: 0px;"> </p><h3><span style="color: #666699;">Now, what \
next?</span></h3><p>Well, we're gonna see how the overlay support stands in the wild. \
If necessary, one or more 0.13.x bugfixes can be made available "quickly". One of the \
problem that delayed this release is a <a class="jive-link-external-small" \
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=350138">conflict</a> between \
m2e-wtp and the pom properties configurator. This lead us to remove the latter from \
m2e marketplace catalog to avoid confusion. I hope we can find a solution quickly in \
order to restore that plugin in the marketplace. </p><p>Next version (0.14.) should \
include Dali support, Application Client packaging support, bug fixes and <a \
class="jive-link-external-small" \
href="https://issues.sonatype.org/browse/MECLIPSEWTP#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel">more</a>... \
</p><p>As always, if you find any issue or would like to see new useful features in \
m2e-wtp, please open a ticket at <a class="jive-link-external-small" \
href="https://issues.sonatype.org/browse/MECLIPSEWTP">https://issues.sonatype.org/browse/MECLIPSEWTP</a></p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Enjoy,</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Fred.</p><p><a \
class="jive-link-external-small" \
href="https://twitter.com/#!/fbricon">https://twitter.com/#!/fbricon</a></p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>PS: Again, special \
kudos to Igor Fedorenko who supported me during this not-so-trivial \
release.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic