You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by fg...@apache.org on 2006/01/12 22:23:31 UTC

svn commit: r368471 - in /maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse: EclipsePlugin.java writers/EclipseWtpComponentWriter.java writers/EclipseWtpFacetsWriter.java writers/EclipseWtpSettingsWriter.java

Author: fgiust
Date: Thu Jan 12 13:23:25 2006
New Revision: 368471

URL: http://svn.apache.org/viewcvs?rev=368471&view=rev
Log:
add support for utility projects in WTP 1.0. Split .component and faces xml writers

Added:
    maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponentWriter.java
      - copied, changed from r367792, maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpSettingsWriter.java
    maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java   (with props)
Removed:
    maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpSettingsWriter.java
Modified:
    maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java

Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java?rev=368471&r1=368470&r2=368471&view=diff
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java Thu Jan 12 13:23:25 2006
@@ -34,7 +34,8 @@
 import org.apache.maven.plugin.eclipse.writers.EclipseClasspathWriter;
 import org.apache.maven.plugin.eclipse.writers.EclipseProjectWriter;
 import org.apache.maven.plugin.eclipse.writers.EclipseSettingsWriter;
-import org.apache.maven.plugin.eclipse.writers.EclipseWtpSettingsWriter;
+import org.apache.maven.plugin.eclipse.writers.EclipseWtpComponentWriter;
+import org.apache.maven.plugin.eclipse.writers.EclipseWtpFacetsWriter;
 import org.apache.maven.plugin.eclipse.writers.EclipseWtpmodulesWriter;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
@@ -360,17 +361,16 @@
                                                                                                   localRepository,
                                                                                                   buildOutputDirectory );
         }
-        else if ( "1.0".equals( wtpversion ) ) //$NON-NLS-1$
+        else if ( wtpversion != null && wtpversion.startsWith( "1" ) ) //$NON-NLS-1$
         {
-            // Check and write out a WTP Project if this was required.
-            if ( "war".equalsIgnoreCase( project.getPackaging() ) || "ear".equalsIgnoreCase( project.getPackaging() ) //$NON-NLS-1$ //$NON-NLS-2$
-                || "ejb".equalsIgnoreCase( project.getPackaging() ) ) //$NON-NLS-1$
-            {
-                // we assume we have a version 1.0 for WTP
-                getLog().info( "Generating Eclipse web facet assuming version 1.0 for WTP..." );
-                new EclipseWtpSettingsWriter( getLog(), eclipseProjectDir, project, artifacts )
-                    .write( reactorArtifacts, sourceDirs, localRepository, buildOutputDirectory );
-            }
+            // we assume we have a version 1.0 for WTP
+            getLog().info( "Generating Eclipse web facet assuming version 1.x for WTP..." );
+            new EclipseWtpFacetsWriter( getLog(), eclipseProjectDir, project, artifacts ).write( reactorArtifacts,
+                                                                                                 sourceDirs,
+                                                                                                 localRepository,
+                                                                                                 buildOutputDirectory );
+            new EclipseWtpComponentWriter( getLog(), eclipseProjectDir, project, artifacts )
+                .write( reactorArtifacts, sourceDirs, localRepository, buildOutputDirectory );
         }
 
         new EclipseProjectWriter( getLog(), eclipseProjectDir, project ).write( projectBaseDir, executedProject,

Copied: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponentWriter.java (from r367792, maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpSettingsWriter.java)
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponentWriter.java?p2=maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponentWriter.java&p1=maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpSettingsWriter.java&r1=367792&r2=368471&rev=368471&view=diff
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpSettingsWriter.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpComponentWriter.java Thu Jan 12 13:23:25 2006
@@ -38,36 +38,18 @@
 import org.codehaus.plexus.util.xml.XMLWriter;
 
 /**
- * Creates a .settings folder for Eclipse WTP 1.xRCx release and writes out the configuration under it.
+ * Creates a .settings folder for Eclipse WTP 1.x release and writes out the configuration under it.
  * 
  * @author <a href="mailto:rahul.thakur.xdev@gmail.com">Rahul Thakur</a>
  * @author <a href="mailto:fgiust@apache.org">Fabrizio Giustina</a>
  * @version $Id$
  */
-public class EclipseWtpSettingsWriter
+public class EclipseWtpComponentWriter
     extends AbstractWtpResourceWriter
 {
 
-    private static final String FACET_JST_EAR = "jst.ear"; //$NON-NLS-1$
-
     private static final String ATTR_CONTEXT_ROOT = "context-root"; //$NON-NLS-1$
 
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-
-    private static final String ELT_INSTALLED = "installed"; //$NON-NLS-1$
-
-    private static final String FACET_JST_EJB = "jst.ejb"; //$NON-NLS-1$
-
-    private static final String FACET_JST_WEB = "jst.web"; //$NON-NLS-1$
-
-    private static final String FACET_JST_JAVA = "jst.java"; //$NON-NLS-1$
-
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-
-    private static final String ELT_FIXED = "fixed"; //$NON-NLS-1$
-
-    private static final String ELT_FACETED_PROJECT = "faceted-project"; //$NON-NLS-1$
-
     /**
      * The .settings folder for Web Tools Project 1.x release.
      */
@@ -78,12 +60,7 @@
      */
     private static final String FILE_DOT_COMPONENT = ".component"; //$NON-NLS-1$
 
-    /**
-     * File name where Eclipse Project's Facet configuration will be stored.
-     */
-    private static final String FILE_FACET_CORE_XML = "org.eclipse.wst.common.project.facet.core.xml"; //$NON-NLS-1$
-
-    public EclipseWtpSettingsWriter( Log log, File eclipseProjectDir, MavenProject project, Collection artifacts )
+    public EclipseWtpComponentWriter( Log log, File eclipseProjectDir, MavenProject project, Collection artifacts )
     {
         super( log, eclipseProjectDir, project, artifacts );
     }
@@ -92,26 +69,11 @@
                       ArtifactRepository localRepository, File buildOutputDirectory )
         throws MojoExecutionException
     {
-        // delete the .settings directory (if exists)
-        File settingsDir = new File( getEclipseProjectDirectory(), DIR_WTP_SETTINGS );
-        if ( settingsDir.isDirectory() && !settingsDir.delete() )
-        {
-            // force delete
-            try
-            {
-                FileUtils.forceDelete( settingsDir );
-            }
-            catch ( IOException e )
-            {
-                if ( getLog().isErrorEnabled() )
-                {
-                    getLog().error( "Unable to delete directory " + DIR_WTP_SETTINGS );
-                }
-            }
-        }
 
-        // create a .settings directory
+        // create a .settings directory (if not existing)
+        File settingsDir = new File( getEclipseProjectDirectory(), DIR_WTP_SETTINGS );
         settingsDir.mkdirs();
+
         FileWriter w;
         try
         {
@@ -125,21 +87,10 @@
         // create a .component file and write out to it
         XMLWriter writer = new PrettyPrintXMLWriter( w );
         String packaging = getProject().getPackaging();
-        writeModuleTypeComponent( writer, packaging, buildOutputDirectory, referencedReactorArtifacts, localRepository );
+        writeModuleTypeComponent( writer, packaging, buildOutputDirectory, sourceDirs, referencedReactorArtifacts,
+                                  localRepository );
         IOUtil.close( w );
 
-        // Write out facet core xml
-        try
-        {
-            w = new FileWriter( new File( settingsDir, FILE_FACET_CORE_XML ) );
-        }
-        catch ( IOException ex )
-        {
-            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
-        }
-        writer = new PrettyPrintXMLWriter( w );
-        writeModuleTypeFacetCore( writer, packaging );
-        IOUtil.close( w );
     }
 
     /**
@@ -153,109 +104,79 @@
      * @throws MojoExecutionException
      */
     private void writeModuleTypeComponent( XMLWriter writer, String packaging, File buildOutputDirectory,
-                                          List referencedReactorArtifacts, ArtifactRepository localRepository )
+                                          EclipseSourceDir[] sourceDirs, List referencedReactorArtifacts,
+                                          ArtifactRepository localRepository )
         throws MojoExecutionException
     {
         writer.startElement( ELT_PROJECT_MODULES );
         writer.addAttribute( ATTR_MODULE_ID, "moduleCoreId" ); //$NON-NLS-1$
         writer.startElement( ELT_WB_MODULE );
+
         writer.addAttribute( ATTR_DEPLOY_NAME, getProject().getArtifactId() );
+
+        // deploy-path is "/" for utility and ejb projects, "/WEB-INF/classes" for webapps
+        String target = "/"; //$NON-NLS-1$
+
         if ( "war".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
         {
-            writer.startElement( ELT_WB_RESOURCE );
-            writer.addAttribute( ATTR_DEPLOY_PATH, "/WEB-INF/classes" ); //$NON-NLS-1$
-            writer.addAttribute( ATTR_SOURCE_PATH, EclipseUtils.toRelativeAndFixSeparator( getProject().getBasedir(),
-                                                                                           new File( getProject()
-                                                                                               .getBuild()
-                                                                                               .getSourceDirectory() ),
-                                                                                           false ) );
-            writer.endElement();
+            target = "/WEB-INF/classes"; //$NON-NLS-1$
+
             String warSourceDirectory = EclipseUtils.getPluginSetting( getProject(), ARTIFACT_MAVEN_WAR_PLUGIN,
-                                                                       "warSourceDirectory", "/src/main/webapp" ); //$NON-NLS-1$ //$NON-NLS-2$
+                                                                       "warSourceDirectory", //$NON-NLS-1$
+                                                                       "/src/main/webapp" ); //$NON-NLS-1$
+
+            writer.startElement( ELT_PROPERTY );
+            writer.addAttribute( ATTR_CONTEXT_ROOT, getProject().getArtifactId() );
+            writer.endElement(); // property
+
             writer.startElement( ELT_WB_RESOURCE );
             writer.addAttribute( ATTR_DEPLOY_PATH, "/" ); //$NON-NLS-1$
             writer.addAttribute( ATTR_SOURCE_PATH, EclipseUtils
                 .toRelativeAndFixSeparator( getProject().getBasedir(), new File( getEclipseProjectDirectory(),
                                                                                  warSourceDirectory ), false ) );
             writer.endElement();
+
+            // @todo is this really needed?
+            writer.startElement( ELT_PROPERTY );
+            writer.addAttribute( ATTR_NAME, "java-output-path" ); //$NON-NLS-1$
+            writer.addAttribute( ATTR_VALUE, "/" //$NON-NLS-1$
+                + EclipseUtils.toRelativeAndFixSeparator( getProject().getBasedir(), buildOutputDirectory, false ) );
+            writer.endElement(); // property
+
         }
         else if ( "ear".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
         {
             writer.startElement( ELT_WB_RESOURCE );
-            writer.addAttribute( ATTR_DEPLOY_PATH, "/ejbmodule" ); //$NON-NLS-1$
+            writer.addAttribute( ATTR_DEPLOY_PATH, "/" ); //$NON-NLS-1$ 
+            writer.addAttribute( ATTR_SOURCE_PATH, "/" ); //$NON-NLS-1$ 
             writer.endElement();
         }
-        // write out the dependencies.
-        writeWarOrEarResources( writer, getProject(), referencedReactorArtifacts, localRepository );
-
-        // fix for WTP 1.0
-        copyExternalDependencies( writer, getProject(), referencedReactorArtifacts, localRepository );
-
-        // write out properties.
-        writer.startElement( ELT_PROPERTY );
-        writer.addAttribute( ATTR_NAME, "java-output-path" ); //$NON-NLS-1$
-        writer.addAttribute( ATTR_VALUE, "/" //$NON-NLS-1$
-            + EclipseUtils.toRelativeAndFixSeparator( getProject().getBasedir(), buildOutputDirectory, false ) );
-
-        // close elements
-        writer.endElement(); // property
-        writer.startElement( ELT_PROPERTY );
-        writer.addAttribute( ATTR_CONTEXT_ROOT, getProject().getArtifactId() );
-        writer.endElement(); // property
-        writer.endElement(); // wb-module
-        writer.endElement(); // project-modules
-    }
 
-    /**
-     * Writes out the facet info for a faceted-project based on the packaging.
-     * 
-     * @param writer
-     * @param packaging
-     */
-    private void writeModuleTypeFacetCore( XMLWriter writer, String packaging )
-    {
-        writer.startElement( ELT_FACETED_PROJECT );
-        // common facet
-        writer.startElement( ELT_FIXED );
-        writer.addAttribute( ATTR_FACET, FACET_JST_JAVA );
-        writer.endElement(); // element fixed
-        if ( "war".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+        if ( "war".equalsIgnoreCase( packaging ) || "ear".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$ //$NON-NLS-2$
         {
-            writer.startElement( ELT_FIXED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_WEB );
-            writer.endElement(); // fixed
-            writer.startElement( ELT_INSTALLED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_WEB );
-            writer.addAttribute( ATTR_VERSION, resolveServletVersion() );
-            writer.endElement(); // installed
-        }
-        else if ( "ejb".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
-        {
-            writer.startElement( ELT_FIXED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_EJB );
-            writer.endElement(); // fixed
-            writer.startElement( ELT_INSTALLED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_EJB );
-            writer.addAttribute( ATTR_VERSION, resolveEjbVersion() );
-            writer.endElement(); // installed
+            // write out the dependencies.
+            writeWarOrEarResources( writer, getProject(), referencedReactorArtifacts, localRepository );
+
+            // fix for WTP 1.0
+            copyExternalDependencies( writer, getProject(), referencedReactorArtifacts, localRepository );
         }
-        else if ( "ear".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+
+        for ( int j = 0; j < sourceDirs.length; j++ )
         {
-            writer.startElement( ELT_FIXED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_EAR );
-            writer.endElement(); // fixed
-            writer.startElement( ELT_INSTALLED );
-            writer.addAttribute( ATTR_FACET, FACET_JST_EAR );
-            writer.addAttribute( ATTR_VERSION, resolveJ2eeVersion() );
-            writer.endElement(); // installed
+            EclipseSourceDir dir = sourceDirs[j];
+            // test src/resources are not added to wtpmodules
+            if ( !dir.isTest() )
+            {
+                // <wb-resource deploy-path="/" source-path="/src/java" />
+                writer.startElement( ELT_WB_RESOURCE );
+                writer.addAttribute( ATTR_DEPLOY_PATH, target );
+                writer.addAttribute( ATTR_SOURCE_PATH, dir.getPath() );
+                writer.endElement();
+            }
         }
 
-        // common installed element
-        writer.startElement( ELT_INSTALLED );
-        writer.addAttribute( ATTR_FACET, FACET_JST_JAVA );
-        writer.addAttribute( ATTR_VERSION, resolveJavaVersion() );
-        writer.endElement(); // installed
-        writer.endElement(); // faceted-project
+        writer.endElement(); // wb-module
+        writer.endElement(); // project-modules
     }
 
     /**

Added: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java?rev=368471&view=auto
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java Thu Jan 12 13:23:25 2006
@@ -0,0 +1,170 @@
+package org.apache.maven.plugin.eclipse.writers;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.eclipse.EclipseSourceDir;
+import org.apache.maven.plugin.eclipse.Messages;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
+import org.codehaus.plexus.util.xml.XMLWriter;
+
+/**
+ * Creates a .settings folder for Eclipse WTP 1.x release and writes out the configuration under it.
+ * 
+ * @author <a href="mailto:rahul.thakur.xdev@gmail.com">Rahul Thakur</a>
+ * @author <a href="mailto:fgiust@apache.org">Fabrizio Giustina</a>
+ * @version $Id$
+ */
+public class EclipseWtpFacetsWriter
+    extends AbstractWtpResourceWriter
+{
+
+    private static final String FACET_JST_EAR = "jst.ear"; //$NON-NLS-1$
+
+    private static final String FACET_JST_UTILITY = "jst.utility"; //$NON-NLS-1$
+
+    private static final String FACET_JST_EJB = "jst.ejb"; //$NON-NLS-1$
+
+    private static final String FACET_JST_WEB = "jst.web"; //$NON-NLS-1$
+
+    private static final String FACET_JST_JAVA = "jst.java"; //$NON-NLS-1$
+
+    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
+
+    private static final String ELT_INSTALLED = "installed"; //$NON-NLS-1$
+
+    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
+
+    private static final String ELT_FIXED = "fixed"; //$NON-NLS-1$
+
+    private static final String ELT_FACETED_PROJECT = "faceted-project"; //$NON-NLS-1$
+
+    /**
+     * The .settings folder for Web Tools Project 1.x release.
+     */
+    private static final String DIR_WTP_SETTINGS = ".settings"; //$NON-NLS-1$
+
+    /**
+     * File name where Eclipse Project's Facet configuration will be stored.
+     */
+    private static final String FILE_FACET_CORE_XML = "org.eclipse.wst.common.project.facet.core.xml"; //$NON-NLS-1$
+
+    public EclipseWtpFacetsWriter( Log log, File eclipseProjectDir, MavenProject project, Collection artifacts )
+    {
+        super( log, eclipseProjectDir, project, artifacts );
+    }
+
+    public void write( List referencedReactorArtifacts, EclipseSourceDir[] sourceDirs,
+                      ArtifactRepository localRepository, File buildOutputDirectory )
+        throws MojoExecutionException
+    {
+
+        // create a .settings directory (if not existing)
+        File settingsDir = new File( getEclipseProjectDirectory(), DIR_WTP_SETTINGS );
+        settingsDir.mkdirs();
+
+        FileWriter w;
+
+        String packaging = getProject().getPackaging();
+
+        // Write out facet core xml
+        try
+        {
+            w = new FileWriter( new File( settingsDir, FILE_FACET_CORE_XML ) );
+        }
+        catch ( IOException ex )
+        {
+            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
+        }
+        XMLWriter writer = new PrettyPrintXMLWriter( w );
+        writeModuleTypeFacetCore( writer, packaging );
+        IOUtil.close( w );
+    }
+
+    /**
+     * Writes out the facet info for a faceted-project based on the packaging.
+     * 
+     * @param writer
+     * @param packaging
+     */
+    private void writeModuleTypeFacetCore( XMLWriter writer, String packaging )
+    {
+        writer.startElement( ELT_FACETED_PROJECT );
+        // common facet
+        writer.startElement( ELT_FIXED );
+        writer.addAttribute( ATTR_FACET, FACET_JST_JAVA );
+        writer.endElement(); // element fixed
+        if ( "war".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+        {
+            writer.startElement( ELT_FIXED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_WEB );
+            writer.endElement(); // fixed
+            writer.startElement( ELT_INSTALLED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_WEB );
+            writer.addAttribute( ATTR_VERSION, resolveServletVersion() );
+            writer.endElement(); // installed
+        }
+        else if ( "ejb".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+        {
+            writer.startElement( ELT_FIXED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_EJB );
+            writer.endElement(); // fixed
+            writer.startElement( ELT_INSTALLED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_EJB );
+            writer.addAttribute( ATTR_VERSION, resolveEjbVersion() );
+            writer.endElement(); // installed
+        }
+        else if ( "ear".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+        {
+            writer.startElement( ELT_FIXED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_EAR );
+            writer.endElement(); // fixed
+            writer.startElement( ELT_INSTALLED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_EAR );
+            writer.addAttribute( ATTR_VERSION, resolveJ2eeVersion() );
+            writer.endElement(); // installed
+        }
+        else if ( "jar".equalsIgnoreCase( packaging ) ) //$NON-NLS-1$
+        {
+            writer.startElement( ELT_FIXED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_UTILITY );
+            writer.endElement(); // fixed
+            writer.startElement( ELT_INSTALLED );
+            writer.addAttribute( ATTR_FACET, FACET_JST_UTILITY );
+            writer.addAttribute( ATTR_VERSION, "1.0" ); //$NON-NLS-2$
+            writer.endElement(); // installed
+        }
+
+        // common installed element
+        writer.startElement( ELT_INSTALLED );
+        writer.addAttribute( ATTR_FACET, FACET_JST_JAVA );
+        writer.addAttribute( ATTR_VERSION, resolveJavaVersion() );
+        writer.endElement(); // installed
+        writer.endElement(); // faceted-project
+    }
+
+}

Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/writers/EclipseWtpFacetsWriter.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision