You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/02/07 15:26:54 UTC

svn commit: r1443501 - /tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java

Author: rmannibucau
Date: Thu Feb  7 14:26:54 2013
New Revision: 1443501

URL: http://svn.apache.org/viewvc?rev=1443501&view=rev
Log:
TOMEE-763 TOMEE-764 adding context option + ignoring webapps added by the user when removing default webapps

Modified:
    tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java

Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1443501&r1=1443500&r2=1443501&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original)
+++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Thu Feb  7 14:26:54 2013
@@ -140,6 +140,12 @@ public abstract class AbstractTomEEMojo 
     protected File catalinaBase;
 
     /**
+     * rename the current artifact
+     */
+    @Parameter
+    protected String context;
+
+    /**
      * relative to tomee.base.
      */
     @Parameter(defaultValue = "webapps")
@@ -227,12 +233,19 @@ public abstract class AbstractTomEEMojo 
             tomeeVersion = "1" + version.substring(1, version.length());
         }
 
+        final Collection<String> existingWebapps; // added before using the plugin with maven dependency plugin or sthg like that
+        if (removeDefaultWebapps) {
+            existingWebapps = webappsAlreadyAdded();
+        } else {
+            existingWebapps = Collections.emptyList();
+        }
+
         unzip(resolve(), catalinaBase);
         if (removeDefaultWebapps) { // do it first to let add other war
-            removeDefaultWebapps(removeTomeeWebapp);
+            removeDefaultWebapps(removeTomeeWebapp, existingWebapps);
         }
         copyLibs(libs, new File(catalinaBase, libDir), "jar");
-        copyLibs(webapps, new File(catalinaBase, webappDir), "war"); // TODO: manage custom context ?context=foo
+        copyLibs(webapps, new File(catalinaBase, webappDir), "war");
         copyLibs(apps, new File(catalinaBase, appDir), "jar");
         overrideConf(config);
         overrideConf(lib);
@@ -259,6 +272,20 @@ public abstract class AbstractTomEEMojo 
         run();
     }
 
+    private List<String> webappsAlreadyAdded() {
+        final List<String> list = new ArrayList<String>();
+        final File webapps = new File(catalinaBase, webappDir);
+        if (webapps.exists() && webapps.isDirectory()) {
+            final File[] files = webapps.listFiles();
+            if (files != null) {
+                for (File f : files) {
+                    list.add(f.getName());
+                }
+            }
+        }
+        return list;
+    }
+
     private String activateSimpleLog() {
         // adding SimpleTomEEFormatter to the classpath
         final String cp = InstallationEnrichers.addOneLineFormatter(catalinaBase);
@@ -284,17 +311,19 @@ public abstract class AbstractTomEEMojo 
         return null;
     }
 
-    private void removeDefaultWebapps(final boolean removeTomee) {
+    private void removeDefaultWebapps(final boolean removeTomee, final Collection<String> providedWebapps) {
         final File webapps = new File(catalinaBase, webappDir);
         if (webapps.isDirectory()) {
             final File[] files = webapps.listFiles();
-            if (null != files) for (File webapp : files) {
-                final String name = webapp.getName();
-                if (webapp.isDirectory() && (removeTomee || !name.equals("tomee"))) {
-                    try {
-                        deleteDirectory(webapp);
-                    } catch (IOException ignored) {
-                        // no-op
+            if (null != files) {
+                for (File webapp : files) {
+                    final String name = webapp.getName();
+                    if (webapp.isDirectory() && !providedWebapps.contains(name) && (removeTomee || !name.equals("tomee"))) {
+                        try {
+                            deleteDirectory(webapp);
+                        } catch (IOException ignored) {
+                            // no-op
+                        }
                     }
                 }
             }
@@ -411,7 +440,7 @@ public abstract class AbstractTomEEMojo 
         }
 
         final boolean war = "war".equals(packaging);
-        final String name = warFile.getName();
+        final String name = destinationName();
         final File out;
         if (war) {
             out = new File(catalinaBase, webappDir + "/" + name);
@@ -462,6 +491,16 @@ public abstract class AbstractTomEEMojo 
         deployedFile = out;
     }
 
+    private String destinationName() {
+        if (context != null) {
+            if (warFile.getName().endsWith(".war")) {
+                return context + ".war";
+            }
+            return context;
+        }
+        return warFile.getName();
+    }
+
     private void overrideAddresses() {
         final File serverXml = new File(catalinaBase, "conf/server.xml");
         final QuickServerXmlParser parser = QuickServerXmlParser.parse(serverXml);
@@ -670,18 +709,6 @@ public abstract class AbstractTomEEMojo 
         return true;
     }
 
-    protected String cp() {
-        final boolean unix = !System.getProperty("os.name").toLowerCase().startsWith("win");
-        final char cpSep;
-        if (unix) {
-            cpSep = ':';
-        } else {
-            cpSep = ';';
-        }
-
-        return "bin/bootstrap.jar" + cpSep + "bin/tomcat-juli.jar";
-    }
-
     private File resolve() {
         if (!settings.isOffline()) {
             try {