[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&#160; 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;">&#160;</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&amp;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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</p><p>2) Go to Window &gt; \
Preferences &gt; Maven &gt; Discovery and click on "Open catalog". Select m2e and \
proceed with the installation.</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</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>&#160; \
</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag"><span>&lt;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>" \
&#160;&#160;&#160; 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>"&gt;</span></span>
 &#160;&#160;&#160; <span class="jive-xml-tag">&lt;modelVersion&gt;</span>4.0.0<span \
class="jive-xml-tag">&lt;/modelVersion&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;groupId&gt;</span>foo.bar<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;artifactId&gt;</span>war<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;version&gt;</span>0.0.1-SNAPSHOT<span \
class="jive-xml-tag">&lt;/version&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;packaging&gt;</span>war<span \
class="jive-xml-tag">&lt;/packaging&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;dependencies&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;dependency&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;groupId&gt;</span>foo.bar<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;artifactId&gt;</span>overlaid<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;version&gt;</span>0.0.1-SNAPSHOT<span \
class="jive-xml-tag">&lt;/version&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;type&gt;</span>war<span \
class="jive-xml-tag">&lt;/type&gt;</span> &#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;/dependency&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/dependencies&gt;</span> <span \
class="jive-xml-tag">&lt;/project&gt;</span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;">&#160;</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/&lt;dependency&gt;/ 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;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag">&lt;plugin&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;artifactId&gt;</span>maven-war-plugin<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;version&gt;</span>2.1.1<span \
class="jive-xml-tag">&lt;/version&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;configuration&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;overlays&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;overlay&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;groupId&gt;</span>foo.bar<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;artifactId&gt;</span>overlaid<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;excludes&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;exclude&gt;</span>WEB-INF/lib/*<span \
class="jive-xml-tag">&lt;/exclude&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;/excludes&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;/overlay&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/overlays&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/configuration&gt;</span> <span \
class="jive-xml-tag">&lt;/plugin&gt;</span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</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 \
&lt;overlay&gt;&lt;/overlay&gt;)</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</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;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</p><p>: </p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: \
8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: \
8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: \
8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; \
padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: \
8pt; height: 8pt; padding: 0px;">&#160;</p><h3></h3><p style="min-height: 8pt; \
height: 8pt; padding: 0px;">&#160;</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 \
&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;artifactId&gt;</span>maven-war-plugin<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;version&gt;</span>2.1.1<span \
class="jive-xml-tag">&lt;/version&gt;</span> &#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;configuration&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;warSourceExcludes&gt;</span>WEB-INF/lib/*.jar<span \
class="jive-xml-tag">&lt;/warSourceExcludes&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;archive&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;manifest&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;addClasspath&gt;</span>true<span \
class="jive-xml-tag">&lt;/addClasspath&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;classpathPrefix&gt;</span>lib/<span \
class="jive-xml-tag">&lt;/classpathPrefix&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/manifest&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;manifestEntries&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; \
<span class="jive-xml-tag">&lt;Class-Path&gt;</span>sample-ejb-${pom.version}.jar<span \
class="jive-xml-tag">&lt;/Class-Path&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/manifestEntries&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/archive&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/configuration&gt;</span> <span \
class="jive-xml-tag">&lt;/plugin&gt;</span> </code></pre><p>will generate something \
like :</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: \
0px;">&#160;</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;">&#160;</p><pre \
class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag">&lt;manifestEntries&gt;</span> &#160; <span \
class="jive-xml-tag">&lt;Created-By&gt;</span>My kick-ass IDE<span \
class="jive-xml-tag">&lt;/Created-By&gt;</span>  <span \
class="jive-xml-tag">&lt;/manifestEntries&gt;</span> </code></pre><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: \
8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-xml"><span \
class="jive-xml-tag">&lt;plugins&gt;</span> &#160; <span \
class="jive-xml-tag">&lt;plugin&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span \
class="jive-xml-tag">&lt;/groupId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;artifactId&gt;</span>maven-ear-plugin<span \
class="jive-xml-tag">&lt;/artifactId&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;version&gt;</span>2.6<span \
class="jive-xml-tag">&lt;/version&gt;</span> &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;configuration&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;filtering&gt;</span>true<span \
class="jive-xml-tag">&lt;/filtering&gt;</span> \
&#160;&#160;&#160;&#160;&#160;&#160;&#160; ... &#160;&#160;&#160; <span \
class="jive-xml-tag">&lt;/configuration&gt;</span> &#160; <span \
class="jive-xml-tag">&lt;/plugin&gt;</span> <span \
class="jive-xml-tag">&lt;/plugins&gt;</span> </code></pre><p style="min-height: 8pt; \
height: 8pt; padding: 0px;">&#160;</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;">&#160;</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;">&#160;</p><p>Enjoy,</p><p \
style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</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;">&#160;</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