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/09/25 08:03:53 UTC
svn commit: r1526114 -
/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java
Author: rmannibucau
Date: Wed Sep 25 06:03:53 2013
New Revision: 1526114
URL: http://svn.apache.org/r1526114
Log:
TOMEE-1045 better app matching algorithm in undeploy mojo
Modified:
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java
Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java?rev=1526114&r1=1526113&r2=1526114&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java (original)
+++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java Wed Sep 25 06:03:53 2013
@@ -22,6 +22,10 @@ import org.apache.maven.plugin.MojoFailu
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.assembler.Deployer;
+import org.apache.openejb.assembler.classic.AppInfo;
+
+import java.util.ArrayList;
+import java.util.Collection;
/**
* Simply undeploy an application in a running TomEE
@@ -32,8 +36,29 @@ public class UnDeployMojo extends Abstra
public void execute() throws MojoExecutionException, MojoFailureException {
final Deployer deployer = (Deployer) lookup("openejb/DeployerBusinessRemote");
try {
- deployer.undeploy(path);
- } catch (OpenEJBException e) {
+ final Collection<AppInfo> apps = deployer.getDeployedApps();
+ final Collection<String> paths = new ArrayList<String>(apps.size());
+ for (final AppInfo info : apps) {
+ paths.add(info.path);
+ }
+
+ if (paths.contains(path)) { // exact matching
+ deployer.undeploy(path);
+ } else {
+ for (final String proposed : paths) { // exact matching + extension
+ if (path.equals(proposed + ".war") || path.equals(proposed + ".ear") || path.equals(proposed + ".jar")) {
+ deployer.undeploy(proposed);
+ return;
+ }
+ }
+ for (final String proposed : paths) { // just the app/folder name
+ if (proposed.endsWith("/" + path) || proposed.endsWith("\\" + path)) {
+ deployer.undeploy(proposed);
+ return;
+ }
+ }
+ }
+ } catch (final OpenEJBException e) {
throw new TomEEException(e.getMessage(), e);
}
}