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 {