You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Thiago Veronezi <tv...@apache.org> on 2015/11/18 00:59:56 UTC

Re: tomee git commit: it wasn't working on windows

I guess I messed up the commit with my new windows/intellij install line
feed config. :/

On Tue, Nov 17, 2015 at 6:38 PM, <tv...@apache.org> wrote:

> 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 <th...@veronezi.org>
> Authored: Tue Nov 17 18:34:17 2015 -0500
> Committer: Thiago Veronezi <th...@veronezi.org>
> 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
>
>