Repository: tomee
Updated Branches:
  refs/heads/master 2c1d25150 -> 878269772


it wasn't working on windows


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/87826977
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/87826977
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/87826977

Branch: refs/heads/master
Commit: 878269772e6754beb3a74ce361e651992774b9a8
Parents: 2c1d251
Author: Thiago Veronezi <[email protected]>
Authored: Tue Nov 17 18:34:17 2015 -0500
Committer: Thiago Veronezi <[email protected]>
Committed: Tue Nov 17 18:34:17 2015 -0500

----------------------------------------------------------------------
 .../openejb/assembler/DeployerEjbTest.java      | 678 +++++++++----------
 1 file changed, 339 insertions(+), 339 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/87826977/container/openejb-core/src/test/java/org/apache/openejb/assembler/DeployerEjbTest.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/test/java/org/apache/openejb/assembler/DeployerEjbTest.java
 
b/container/openejb-core/src/test/java/org/apache/openejb/assembler/DeployerEjbTest.java
index b477ed0..1cb0052 100644
--- 
a/container/openejb-core/src/test/java/org/apache/openejb/assembler/DeployerEjbTest.java
+++ 
b/container/openejb-core/src/test/java/org/apache/openejb/assembler/DeployerEjbTest.java
@@ -1,340 +1,340 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-package org.apache.openejb.assembler;
-
-import org.apache.openejb.OpenEJB;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.openejb.config.sys.AdditionalDeployments;
-import org.apache.openejb.config.sys.Deployments;
-import org.apache.openejb.config.sys.JaxbOpenejb;
-import org.apache.openejb.jee.WebApp;
-import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.loader.FileUtils;
-import org.apache.openejb.loader.Files;
-import org.apache.openejb.loader.IO;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.testing.AppResource;
-import org.apache.openejb.testing.Classes;
-import org.apache.openejb.testing.Module;
-import org.apache.openejb.util.WebArchives;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Properties;
-import java.util.concurrent.atomic.AtomicReference;
-import javax.naming.Context;
-import javax.naming.NamingException;
-
-import static 
org.apache.openejb.config.ConfigurationFactory.ADDITIONAL_DEPLOYMENTS;
-import static org.junit.Assert.assertEquals;
-
-@RunWith(ApplicationComposer.class)
-public class DeployerEjbTest {
-
-    private static final AtomicReference<String> property = new 
AtomicReference<String>(null);
-    private static final AtomicReference<File> warArchive = new 
AtomicReference<File>(null);
-    private static final String OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS = 
"openejb.deployer.save-deployments";
-
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-
-        final FileUtils base = SystemInstance.get().getBase();
-        final File conf = base.getDirectory("conf", false);
-        Files.delete(conf);
-
-        final File apps = base.getDirectory("apps", true);
-        Files.delete(apps);
-
-        base.getDirectory("apps", true);
-        base.getDirectory("conf", true);
-
-        property.set(System.getProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS));
-        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.TRUE.toString());
-        warArchive.set(WebArchives.warArchive(TestClass.class));
-    }
-
-    @AfterClass
-    public static void afterClass() {
-
-        final String s = property.get();
-        if (null != s) {
-            System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, "true");
-        } else {
-            System.clearProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS);
-        }
-
-        final File file = warArchive.get();
-        if (file != null && file.exists()) {
-            if (!file.delete()) {
-                file.deleteOnExit();
-            }
-        }
-
-        try { // will make other tests failling otherwise since it would leak 
config
-            Files.delete(SystemInstance.get().getBase().getDirectory("conf", 
false));
-            Files.delete(SystemInstance.get().getBase().getDirectory("apps", 
false));
-        } catch (final IOException e) {
-            // no-op
-        }
-    }
-
-    @Module
-    @Classes(value = {DeployerEjb.class})
-    public WebApp war() {
-        return new WebApp().contextRoot("/initial");
-    }
-
-    @AppResource
-    private Context context;
-
-    @Before
-    public void before() throws Exception {
-        removeDeployments();
-        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.TRUE.toString());
-    }
-
-    private void removeDeployments() throws IOException {
-        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
-        if (deployments.exists()) {
-            System.out.println(IO.slurp(deployments));
-            Files.delete(deployments);
-        }
-    }
-
-    @After
-    public void after() throws Exception {
-        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
-        OpenEJB.destroy();
-        removeDeployments();
-    }
-
-    private Deployer getDeployer() throws NamingException {
-        return (Deployer) context.lookup("openejb/DeployerRemote");
-    }
-
-    @Test
-    public void testGetUniqueFile() throws Exception {
-
-        final String uniqueFile = getDeployer().getUniqueFile();
-        Assert.assertTrue(new File(uniqueFile).exists());
-    }
-
-    @Test
-    public void testGetDeployedApps() throws Exception {
-        getAppInfos();
-    }
-
-    private Collection<AppInfo> getAppInfos() throws Exception {
-        final Deployer deployer = getDeployer();
-        Collection<AppInfo> deployedApps = deployer.getDeployedApps();
-
-        if (null == deployedApps) {
-            deployedApps = new ArrayList<AppInfo>();
-        }
-
-        if (deployedApps.size() < 1) {
-            getAppInfo();
-            deployedApps.addAll(deployer.getDeployedApps());
-        }
-
-        Assert.assertTrue("Found no deployed apps", deployedApps.size() > 0);
-        return deployedApps;
-    }
-
-    @Test
-    public void testDeployWarSave() throws Exception {
-
-        final Collection<AppInfo> deployedApps = 
getDeployer().getDeployedApps();
-        Assert.assertTrue("Found more than one app", deployedApps.size() < 2);
-
-        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
-        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
-
-        getAppInfo();
-
-        Assert.assertTrue("Failed to find: " + deployments.getAbsolutePath(), 
deployments.exists());
-    }
-
-    @Test
-    public void removeDeploymentsLogic() throws Exception {
-        final File dir1 = Files.mkdirs(new 
File("target/DeployerEjbTest/removeDeploymentsLogic/app1/"));
-
-        final File file = 
SystemInstance.get().getBase().getFile(ADDITIONAL_DEPLOYMENTS, false);
-        final Method save = 
DeployerEjb.class.getDeclaredMethod("saveDeployment", File.class, 
boolean.class);
-        save.setAccessible(true);
-
-        {
-            final AdditionalDeployments deployments = new 
AdditionalDeployments();
-
-            final Deployments d1 = new Deployments();
-            d1.setDir(dir1.getCanonicalPath());
-            deployments.getDeployments().add(d1);
-
-            final Deployments d12 = new Deployments();
-            d12.setDir(dir1.getCanonicalPath());
-            deployments.getDeployments().add(d12);
-
-            final Deployments d2 = new Deployments();
-            d2.setFile("/foo/bar/app.war");
-            deployments.getDeployments().add(d2);
-
-            try (final FileOutputStream fos = new FileOutputStream(file)) {
-                JaxbOpenejb.marshal(AdditionalDeployments.class, deployments, 
fos);
-            }
-            assertDeployementsSize(file, 3);
-        }
-        {
-            save.invoke(new DeployerEjb(), dir1, false);
-            assertDeployementsSize(file, 2);
-        }
-        {
-            save.invoke(new DeployerEjb(), new File(dir1.getParentFile(), 
dir1.getName() + ".war"), false);
-            assertDeployementsSize(file, 1);
-        }
-        {
-            save.invoke(new DeployerEjb(), new File("/foo/bar/app.war"), 
false);
-            assertDeployementsSize(file, 0);
-        }
-    }
-
-    private void assertDeployementsSize(final File file, final int i) throws 
Exception {
-        try (final FileInputStream fis = new FileInputStream(file)) {
-            assertEquals(i, JaxbOpenejb.unmarshal(AdditionalDeployments.class, 
fis).getDeployments().size());
-        }
-    }
-
-    private AppInfo getAppInfo() throws IOException, NamingException, 
OpenEJBException {
-        return getAppInfo(null);
-    }
-
-    private AppInfo getAppInfo(final Properties p) throws IOException, 
NamingException, OpenEJBException {
-
-        final Deployer deployer = getDeployer();
-
-        final File war = warArchive.get();
-        if (!war.exists()) {
-            Assert.fail("War file does not exist: " + war.getAbsolutePath());
-        }
-
-        return (null != p ? deployer.deploy(war.getAbsolutePath(), p) : 
deployer.deploy(war.getAbsolutePath()));
-    }
-
-    @Test
-    public void testDeployWarNoSave() throws Exception {
-        final Collection<AppInfo> deployedApps = 
getDeployer().getDeployedApps();
-        Assert.assertTrue("Found more than one app", deployedApps.size() < 2);
-
-        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
-        if (deployments.exists()) {
-            Files.delete(deployments);
-        }
-
-        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
-
-        final Properties p = new Properties();
-        p.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
-        getAppInfo(p);
-
-        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
-    }
-
-    @Test
-    public void testDeployProperties() throws Exception {
-        final Properties p = new Properties();
-        final String path = warArchive.get().getAbsolutePath();
-
-        p.setProperty(Deployer.FILENAME, path);
-        p.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
-
-        final Deployer deployer = getDeployer();
-        final AppInfo appInfo = deployer.deploy(p);
-        Assert.assertTrue("Paths do not match: " + path + " - " + 
appInfo.path, path.equals(appInfo.path));
-    }
-
-    @Test
-    public void testUndeploy() throws Exception {
-        final AppInfo appInfo = getDeployedApp();
-
-        Assert.assertNotNull("Failed to deploy app", appInfo);
-
-        final Deployer deployer = getDeployer();
-        deployer.undeploy(appInfo.path);
-
-        final Collection<AppInfo> appInfos = getAppInfos();
-        Assert.assertTrue("Failed to undeploy app", appInfos.size() < 2);
-    }
-
-    private AppInfo getDeployedApp() throws Exception {
-        final Collection<AppInfo> appInfos = getAppInfos();
-
-        AppInfo appInfo = null;
-        final File file = warArchive.get();
-
-        if (appInfos.size() < 2) {
-            appInfo = getAppInfo();
-        } else {
-
-            final String name = file.getName().toLowerCase();
-
-            for (final AppInfo info : appInfos) {
-                if (name.contains(info.appId.toLowerCase())) {
-                    appInfo = info;
-                }
-            }
-        }
-        return appInfo;
-    }
-
-    @Test
-    public void testReload() throws Exception {
-
-        final AppInfo appInfo = getDeployedApp();
-
-        final Deployer deployer = getDeployer();
-        deployer.reload(appInfo.path);
-
-        final Collection<AppInfo> deployedApps = deployer.getDeployedApps();
-        boolean found = false;
-        for (final AppInfo app : deployedApps) {
-            if (app.path.equals(appInfo.path)) {
-                found = true;
-            }
-        }
-
-        Assert.assertTrue("Failed to find app after redeploy", found);
-    }
-
-    public static class TestClass {
-        public TestClass() {
-        }
-    }
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.openejb.assembler;
+
+import org.apache.openejb.OpenEJB;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.config.sys.AdditionalDeployments;
+import org.apache.openejb.config.sys.Deployments;
+import org.apache.openejb.config.sys.JaxbOpenejb;
+import org.apache.openejb.jee.WebApp;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.loader.FileUtils;
+import org.apache.openejb.loader.Files;
+import org.apache.openejb.loader.IO;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.testing.AppResource;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Module;
+import org.apache.openejb.util.WebArchives;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.FilterOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicReference;
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import static 
org.apache.openejb.config.ConfigurationFactory.ADDITIONAL_DEPLOYMENTS;
+import static org.junit.Assert.assertEquals;
+
+@RunWith(ApplicationComposer.class)
+public class DeployerEjbTest {
+
+    private static final AtomicReference<String> property = new 
AtomicReference<String>(null);
+    private static final AtomicReference<File> warArchive = new 
AtomicReference<File>(null);
+    private static final String OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS = 
"openejb.deployer.save-deployments";
+
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+
+        final FileUtils base = SystemInstance.get().getBase();
+        final File conf = base.getDirectory("conf", false);
+        Files.delete(conf);
+
+        final File apps = base.getDirectory("apps", true);
+        Files.delete(apps);
+
+        base.getDirectory("apps", true);
+        base.getDirectory("conf", true);
+
+        property.set(System.getProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS));
+        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.TRUE.toString());
+        warArchive.set(WebArchives.warArchive(TestClass.class));
+    }
+
+    @AfterClass
+    public static void afterClass() {
+
+        final String s = property.get();
+        if (null != s) {
+            System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, "true");
+        } else {
+            System.clearProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS);
+        }
+
+        final File file = warArchive.get();
+        if (file != null && file.exists()) {
+            if (!file.delete()) {
+                file.deleteOnExit();
+            }
+        }
+
+        try { // will make other tests failling otherwise since it would leak 
config
+            Files.delete(SystemInstance.get().getBase().getDirectory("conf", 
false));
+            Files.delete(SystemInstance.get().getBase().getDirectory("apps", 
false));
+        } catch (final IOException e) {
+            // no-op
+        }
+    }
+
+    @Module
+    @Classes(value = {DeployerEjb.class})
+    public WebApp war() {
+        return new WebApp().contextRoot("/initial");
+    }
+
+    @AppResource
+    private Context context;
+
+    @Before
+    public void before() throws Exception {
+        removeDeployments();
+        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.TRUE.toString());
+    }
+
+    private void removeDeployments() throws IOException {
+        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
+        if (deployments.exists()) {
+            System.out.println(IO.slurp(deployments));
+            Files.delete(deployments);
+        }
+    }
+
+    @After
+    public void after() throws Exception {
+        System.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
+        OpenEJB.destroy();
+        removeDeployments();
+    }
+
+    private Deployer getDeployer() throws NamingException {
+        return (Deployer) context.lookup("openejb/DeployerRemote");
+    }
+
+    @Test
+    public void testGetUniqueFile() throws Exception {
+
+        final String uniqueFile = getDeployer().getUniqueFile();
+        Assert.assertTrue(new File(uniqueFile).exists());
+    }
+
+    @Test
+    public void testGetDeployedApps() throws Exception {
+        getAppInfos();
+    }
+
+    private Collection<AppInfo> getAppInfos() throws Exception {
+        final Deployer deployer = getDeployer();
+        Collection<AppInfo> deployedApps = deployer.getDeployedApps();
+
+        if (null == deployedApps) {
+            deployedApps = new ArrayList<AppInfo>();
+        }
+
+        if (deployedApps.size() < 1) {
+            getAppInfo();
+            deployedApps.addAll(deployer.getDeployedApps());
+        }
+
+        Assert.assertTrue("Found no deployed apps", deployedApps.size() > 0);
+        return deployedApps;
+    }
+
+    @Test
+    public void testDeployWarSave() throws Exception {
+
+        final Collection<AppInfo> deployedApps = 
getDeployer().getDeployedApps();
+        Assert.assertTrue("Found more than one app", deployedApps.size() < 2);
+
+        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
+        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
+
+        getAppInfo();
+
+        Assert.assertTrue("Failed to find: " + deployments.getAbsolutePath(), 
deployments.exists());
+    }
+
+    @Test
+    public void removeDeploymentsLogic() throws Exception {
+        final File dir1 = Files.mkdirs(new 
File("target/DeployerEjbTest/removeDeploymentsLogic/app1/"));
+
+        final File file = 
SystemInstance.get().getBase().getFile(ADDITIONAL_DEPLOYMENTS, false);
+        final Method save = 
DeployerEjb.class.getDeclaredMethod("saveDeployment", File.class, 
boolean.class);
+        save.setAccessible(true);
+
+        {
+            final AdditionalDeployments deployments = new 
AdditionalDeployments();
+
+            final Deployments d1 = new Deployments();
+            d1.setDir(dir1.getCanonicalPath());
+            deployments.getDeployments().add(d1);
+
+            final Deployments d12 = new Deployments();
+            d12.setDir(dir1.getCanonicalPath());
+            deployments.getDeployments().add(d12);
+
+            final Deployments d2 = new Deployments();
+            d2.setFile(new File(File.listRoots()[0], 
"/foo/bar/app.war").getAbsolutePath());
+            deployments.getDeployments().add(d2);
+
+            try (final FileOutputStream fos = new FileOutputStream(file)) {
+                JaxbOpenejb.marshal(AdditionalDeployments.class, deployments, 
fos);
+            }
+            assertDeployementsSize(file, 3);
+        }
+        {
+            save.invoke(new DeployerEjb(), dir1, false);
+            assertDeployementsSize(file, 2);
+        }
+        {
+            save.invoke(new DeployerEjb(), new File(dir1.getParentFile(), 
dir1.getName() + ".war"), false);
+            assertDeployementsSize(file, 1);
+        }
+        {
+            save.invoke(new DeployerEjb(), new File(File.listRoots()[0], 
"/foo/bar/app.war"), false);
+            assertDeployementsSize(file, 0);
+        }
+    }
+
+    private void assertDeployementsSize(final File file, final int i) throws 
Exception {
+        try (final FileInputStream fis = new FileInputStream(file)) {
+            assertEquals(i, JaxbOpenejb.unmarshal(AdditionalDeployments.class, 
fis).getDeployments().size());
+        }
+    }
+
+    private AppInfo getAppInfo() throws IOException, NamingException, 
OpenEJBException {
+        return getAppInfo(null);
+    }
+
+    private AppInfo getAppInfo(final Properties p) throws IOException, 
NamingException, OpenEJBException {
+
+        final Deployer deployer = getDeployer();
+
+        final File war = warArchive.get();
+        if (!war.exists()) {
+            Assert.fail("War file does not exist: " + war.getAbsolutePath());
+        }
+
+        return (null != p ? deployer.deploy(war.getAbsolutePath(), p) : 
deployer.deploy(war.getAbsolutePath()));
+    }
+
+    @Test
+    public void testDeployWarNoSave() throws Exception {
+        final Collection<AppInfo> deployedApps = 
getDeployer().getDeployedApps();
+        Assert.assertTrue("Found more than one app", deployedApps.size() < 2);
+
+        final File deployments = new 
File(SystemInstance.get().getBase().getDirectory("conf", false), 
"deployments.xml");
+        if (deployments.exists()) {
+            Files.delete(deployments);
+        }
+
+        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
+
+        final Properties p = new Properties();
+        p.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
+        getAppInfo(p);
+
+        Assert.assertFalse("Found existing: " + deployments.getAbsolutePath(), 
deployments.exists());
+    }
+
+    @Test
+    public void testDeployProperties() throws Exception {
+        final Properties p = new Properties();
+        final String path = warArchive.get().getAbsolutePath();
+
+        p.setProperty(Deployer.FILENAME, path);
+        p.setProperty(OPENEJB_DEPLOYER_SAVE_DEPLOYMENTS, 
Boolean.FALSE.toString());
+
+        final Deployer deployer = getDeployer();
+        final AppInfo appInfo = deployer.deploy(p);
+        Assert.assertTrue("Paths do not match: " + path + " - " + 
appInfo.path, path.equals(appInfo.path));
+    }
+
+    @Test
+    public void testUndeploy() throws Exception {
+        final AppInfo appInfo = getDeployedApp();
+
+        Assert.assertNotNull("Failed to deploy app", appInfo);
+
+        final Deployer deployer = getDeployer();
+        deployer.undeploy(appInfo.path);
+
+        final Collection<AppInfo> appInfos = getAppInfos();
+        Assert.assertTrue("Failed to undeploy app", appInfos.size() < 2);
+    }
+
+    private AppInfo getDeployedApp() throws Exception {
+        final Collection<AppInfo> appInfos = getAppInfos();
+
+        AppInfo appInfo = null;
+        final File file = warArchive.get();
+
+        if (appInfos.size() < 2) {
+            appInfo = getAppInfo();
+        } else {
+
+            final String name = file.getName().toLowerCase();
+
+            for (final AppInfo info : appInfos) {
+                if (name.contains(info.appId.toLowerCase())) {
+                    appInfo = info;
+                }
+            }
+        }
+        return appInfo;
+    }
+
+    @Test
+    public void testReload() throws Exception {
+
+        final AppInfo appInfo = getDeployedApp();
+
+        final Deployer deployer = getDeployer();
+        deployer.reload(appInfo.path);
+
+        final Collection<AppInfo> deployedApps = deployer.getDeployedApps();
+        boolean found = false;
+        for (final AppInfo app : deployedApps) {
+            if (app.path.equals(appInfo.path)) {
+                found = true;
+            }
+        }
+
+        Assert.assertTrue("Failed to find app after redeploy", found);
+    }
+
+    public static class TestClass {
+        public TestClass() {
+        }
+    }
 }
\ No newline at end of file

Reply via email to