You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/03 20:48:37 UTC

svn commit: r1615434 - /tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java

Author: rmannibucau
Date: Sun Aug  3 18:48:37 2014
New Revision: 1615434

URL: http://svn.apache.org/r1615434
Log:
avoid NPE, not sure this test makes a lot of sense anymore BTW

Modified:
    tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java

Modified: tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java?rev=1615434&r1=1615433&r2=1615434&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java (original)
+++ tomee/tomee/trunk/tomee/tomee-jaxrs/src/test/java/org/apache/tomee/jaxrs/ReloadingLoaderTest.java Sun Aug  3 18:48:37 2014
@@ -17,6 +17,9 @@
 package org.apache.tomee.jaxrs;
 
 import org.apache.catalina.LifecycleException;
+import org.apache.catalina.LifecycleState;
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.webresources.StandardRoot;
 import org.apache.openejb.AppContext;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.assembler.classic.AppInfo;
@@ -41,12 +44,14 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import java.io.File;
 import java.net.URL;
+import java.net.URLClassLoader;
 import java.util.Collections;
 import java.util.Properties;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
 public class ReloadingLoaderTest {
@@ -78,6 +83,22 @@ public class ReloadingLoaderTest {
 
         loader = new TomEEWebappClassLoader(ParentClassLoaderFinder.Helper.get());
         loader.init();
+        final StandardRoot resources = new StandardRoot();
+        loader.setResources(resources);
+        resources.setContext(new StandardContext() {
+            @Override
+            public String getDocBase() {
+                final File file = new File("target/foo");
+                file.mkdirs();
+                return file.getAbsolutePath();
+            }
+
+            @Override
+            public String getMBeanKeyProperties() {
+                return "foo";
+            }
+        {}});
+        resources.start();
         loader.start();
 
         info = new AppInfo();
@@ -108,7 +129,7 @@ public class ReloadingLoaderTest {
                 final ClassLoader beforeLoader = SystemInstance.get().getComponent(ContainerSystem.class).getWebContext("test").getClassLoader();
                 assertSame(loader, beforeLoader);
                 assertNotNull(beforeLoader);
-                assertNotNull(Reflections.get(beforeLoader, "parent")); // getParent != parent from WebAppClassLoader
+                assertNotNull(Reflections.get(beforeLoader, "parent"));
             }
 
             loader.internalStop();
@@ -116,14 +137,31 @@ public class ReloadingLoaderTest {
             server.undeploy(new AssemblerBeforeApplicationDestroyed(info, context));
 
             {
-                final ClassLoader afterLoader = SystemInstance.get().getComponent(ContainerSystem.class).getWebContext("test").getClassLoader();
+                final URLClassLoader afterLoader = URLClassLoader.class.cast(SystemInstance.get().getComponent(ContainerSystem.class).getWebContext("test").getClassLoader());
                 assertSame(loader, afterLoader);
                 assertNotNull(afterLoader);
-                assertNull(Reflections.get(afterLoader, "parent"));
+                assertEquals(0, afterLoader.getURLs().length);
+                assertEquals(LifecycleState.STOPPED, loader.getState());
             }
 
+            final StandardRoot resources = new StandardRoot();
+            loader.setResources(resources);
+            resources.setContext(new StandardContext() {
+                @Override
+                public String getDocBase() {
+                    final File file = new File("target/foo");
+                    file.mkdirs();
+                    return file.getAbsolutePath();
+                }
+
+                @Override
+                public String getMBeanKeyProperties() {
+                    return "foo";
+                }
+                {}});
+            resources.start();
             loader.start();
-            // TomcatWebAppBuilder ill catch start event from StandardContext and force a classloader
+            // TomcatWebAppBuilder ill catch start event from StandardCo1ntext and force a classloader
             Reflections.set(loader, "parent", ParentClassLoaderFinder.Helper.get());
 
             server.afterApplicationCreated(new AssemblerAfterApplicationCreated(info, context, Collections.<BeanContext>emptyList()));