You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2015/11/18 00:38:13 UTC
tomee git commit: it wasn't working on windows
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
Re: tomee git commit: it wasn't working on windows
Posted by Thiago Veronezi <tv...@apache.org>.
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
>
>