Any objection to remove the check on ClassLoaderEnricher == null?

if it is null it would be great to crash the container since half of
our features will be broken

Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



---------- Forwarded message ----------
From:  <[email protected]>
Date: 2014-09-18 17:11 GMT+02:00
Subject: svn commit: r1626003 - in /tomee/tomee/trunk/tomee:
tomee-catalina/src/main/java/org/apache/tomee/catalina/
tomee-embedded/
tomee-embedded/src/main/java/org/apache/tomee/embedded/
tomee-embedded/src/test/java/org/apache/tomee/embedded/ tomee-loader/
to...
To: [email protected]


Author: andygumbrecht
Date: Thu Sep 18 15:11:51 2014
New Revision: 1626003

URL: http://svn.apache.org/r1626003
Log:
Check for nulls.
Start Container with configuration
Use target directory if found.
Fix race condition on Container stop.
Close connector explicitly if available.
Shutdown container with try
Load tomcat-juli 'after' tomee-juli to preserve maven classloader
Close Container in tests.

Modified:
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
    
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
    tomee/tomee/trunk/tomee/tomee-embedded/pom.xml
    
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
    
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
    
tomee/tomee/trunk/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/EmbeddedTomEEContainerTest.java
    tomee/tomee/trunk/tomee/tomee-loader/pom.xml
    
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
Thu Sep 18 15:11:51 2014
@@ -116,7 +116,13 @@ public final class TomEEClassLoaderEnric
         }

         // from config
-        
urls.addAll(Arrays.asList(SystemInstance.get().getComponent(ClassLoaderEnricher.class).applicationEnrichment()));
+        final ClassLoaderEnricher classLoaderEnricher =
SystemInstance.get().getComponent(ClassLoaderEnricher.class);
+        if (null != classLoaderEnricher) {
+            final URL[] enrichment =
classLoaderEnricher.applicationEnrichment();
+            if (null != enrichment && enrichment.length > 0) {
+                urls.addAll(Arrays.asList(enrichment));
+            }
+        }

         return urls.toArray(new URL[urls.size()]);
     }

Modified: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
Thu Sep 18 15:11:51 2014
@@ -105,8 +105,10 @@ public class TomcatLoader implements Loa
      */
     private static ServiceManager manager;

-    /** other services */
-    private static final List<ServerService> services = new
ArrayList<ServerService> ();
+    /**
+     * other services
+     */
+    private static final List<ServerService> services = new
ArrayList<ServerService>();

     /**
      * this method will be split in two to be able to use
SystemInstance in between both invocations
@@ -236,8 +238,12 @@ public class TomcatLoader implements Loa
         SystemInstance.get().setComponent(WebAppEnricher.class,
classLoaderEnricher);

         // add common lib even in ear "lib" part (if the ear provides
myfaces for instance)
-        for (final URL url : classLoaderEnricher.enrichment(null)) {
// we rely on the fact we know what the impl does with null but that's
fine
-            
SystemInstance.get().getComponent(ClassLoaderEnricher.class).addUrl(url);
+
+        final ClassLoaderEnricher enricher =
SystemInstance.get().getComponent(ClassLoaderEnricher.class);
+        if (null != enricher) {
+            for (final URL url :
classLoaderEnricher.enrichment(null)) { // we rely on the fact we know
what the impl does with null but that's fine
+                enricher.addUrl(url);
+            }
         }

         // optional services
@@ -255,7 +261,7 @@ public class TomcatLoader implements Loa

         final Properties ejbServerProps = new Properties();
         ejbServerProps.putAll(properties);
-        for (final String prop : new String[] { "serializer", "gzip"
}) { // ensure -Dejbd.xxx are read
+        for (final String prop : new String[]{"serializer", "gzip"})
{ // ensure -Dejbd.xxx are read
             final String value =
SystemInstance.get().getProperty("ejbd." + prop);
             if (value != null) {
                 ejbServerProps.put(prop, value);

Modified: tomee/tomee/trunk/tomee/tomee-embedded/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-embedded/pom.xml?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-embedded/pom.xml (original)
+++ tomee/tomee/trunk/tomee/tomee-embedded/pom.xml Thu Sep 18 15:11:51 2014
@@ -80,10 +80,6 @@
       <version>${project.version}</version>
       <exclusions>
         <exclusion>
-          <artifactId>tomcat-juli</artifactId>
-          <groupId>org.apache.tomcat</groupId>
-        </exclusion>
-        <exclusion>
           <artifactId>javaee-api</artifactId>
           <groupId>org.apache.openejb</groupId>
         </exclusion>

Modified: 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
Thu Sep 18 15:11:51 2014
@@ -65,6 +65,7 @@ import java.io.Writer;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
+import java.util.concurrent.CountDownLatch;

 /**
  * @version $Rev$ $Date$
@@ -146,7 +147,7 @@ public class Container implements AutoCl
     }

     public void start() throws Exception {
-        if (base == null) {
+        if (base == null || !base.exists()) {
             setup(configuration);
         }

@@ -257,7 +258,7 @@ public class Container implements AutoCl
         if (configuration.getProperties() != null) {
             properties.putAll(configuration.getProperties());
         }
-        if (properties.getProperty("openejb.system.apps") == null)  {
// will make startup faster and it is rarely useful for embedded case
+        if (properties.getProperty("openejb.system.apps") == null) {
// will make startup faster and it is rarely useful for embedded case
             properties.setProperty("openejb.system.apps", "false");
         }

@@ -322,8 +323,9 @@ public class Container implements AutoCl
             }

             try {
-                file = File.createTempFile("apache-tomee", "-home");
-            } catch (final Throwable e) {
+                final File target = new File("target");
+                file = File.createTempFile("apache-tomee", "-home",
target.exists() ? target : null);
+            } catch (final Exception e) {

                 final File tmp = new File("tmp");
                 if (!tmp.exists() && !tmp.mkdirs()) {
@@ -341,10 +343,28 @@ public class Container implements AutoCl
     }

     public void stop() throws Exception {
-        tomcat.stop();
-        tomcat.destroy();
-        deleteTree(base);
-        base = null;
+
+        final Connector connector = tomcat.getConnector();
+        if (null != connector) {
+            connector.stop();
+        }
+
+        try {
+            tomcat.stop();
+        } catch (final LifecycleException e) {
+            e.printStackTrace();
+        }
+        try {
+            tomcat.destroy();
+        } catch (final LifecycleException e) {
+            e.printStackTrace();
+        }
+        try {
+            deleteTree(base);
+        } catch (final Exception e) {
+            e.printStackTrace();
+        }
+
         OpenEJB.destroy();
         // don't set base = null here to be able to use base after to
clean up from outside of this class
     }
@@ -509,8 +529,36 @@ public class Container implements AutoCl
     }

     @Override
-    public void close() throws Exception {
-        stop();
+    public void close() throws IOException {
+        final CountDownLatch end = new CountDownLatch(1);
+        final Container container = Container.this;
+        new Thread() {
+            {
+                setName("tomee-embedded-await-" + hashCode());
+            }
+
+            @Override
+            public void run() {
+                try {
+                    container.await();
+                    end.countDown();
+                } catch (final Exception e) {
+                    throw new IllegalStateException(e);
+                }
+            }
+        }.start();
+
+        try {
+            stop();
+        } catch (final Exception e) {
+            throw new IOException("Failed to stop container", e);
+        }
+
+        try {
+            end.await();
+        } catch (final InterruptedException e) {
+            Thread.interrupted();
+        }
     }

     public org.apache.catalina.Context addContext(final String
context, final String path) {

Modified: 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
Thu Sep 18 15:11:51 2014
@@ -38,14 +38,15 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;

 public final class EmbeddedTomEEContainer extends EJBContainer {
     public static final String TOMEE_EJBCONTAINER_HTTP_PORT =
"tomee.ejbcontainer.http.port";
-    private static EmbeddedTomEEContainer tomEEContainer;
+    private static final AtomicReference<EmbeddedTomEEContainer>
tomEEContainer = new AtomicReference<EmbeddedTomEEContainer>();
     private static final List<String> CONTAINER_NAMES =
Arrays.asList(EmbeddedTomEEContainer.class.getName(),
"tomee-embedded", "embedded-tomee");

-    private Container container = new Container();
-    private Collection<String> deployedIds = new ArrayList<String>();
+    private final Container container = new Container();
+    private final Collection<String> deployedIds = new ArrayList<String>();

     private EmbeddedTomEEContainer() {
         // no-op
@@ -58,25 +59,29 @@ public final class EmbeddedTomEEContaine
     @Override
     public void close() {
         final Collection<Exception> errors = new ArrayList<Exception>();
-        for (final String id : deployedIds) {
-            if (tomEEContainer.container.getAppContexts(id) != null) {
-                try {
-                    tomEEContainer.container.undeploy(id);
-                } catch (final Exception ex) {
-                    Logger.getInstance(LogCategory.OPENEJB,
EmbeddedTomEEContainer.class).error(ex.getMessage(), ex);
-                    errors.add(ex);
+        final EmbeddedTomEEContainer etc = tomEEContainer.get();
+        if (null != etc) {
+            for (final String id : deployedIds) {
+                if (etc.container.getAppContexts(id) != null) {
+                    try {
+                        etc.container.undeploy(id);
+                    } catch (final Exception ex) {
+                        Logger.getInstance(LogCategory.OPENEJB,
EmbeddedTomEEContainer.class).error(ex.getMessage(), ex);
+                        errors.add(ex);
+                    }
                 }
             }
-        }
-        deployedIds.clear();

-        try {
-            tomEEContainer.container.close();
-        } catch (final Exception ex) {
-            errors.add(ex);
-            Logger.getInstance(LogCategory.OPENEJB,
EmbeddedTomEEContainer.class).error(ex.getMessage(), ex);
+
+            try {
+                etc.container.close();
+            } catch (final Exception ex) {
+                errors.add(ex);
+                Logger.getInstance(LogCategory.OPENEJB,
EmbeddedTomEEContainer.class).error(ex.getMessage(), ex);
+            }
         }
-        tomEEContainer = null;
+        deployedIds.clear();
+        tomEEContainer.set(null);

         if (!errors.isEmpty()) {
             throw Exceptions.newEJBException(new
TomEERuntimeException(errors.toString()));
@@ -85,7 +90,7 @@ public final class EmbeddedTomEEContaine

     @Override
     public Context getContext() {
-        return tomEEContainer.container.getJndiContext();
+        return tomEEContainer.get().container.getJndiContext();
     }

     public static class EmbeddedTomEEContainerProvider implements
EJBContainerProvider {
@@ -100,20 +105,22 @@ public final class EmbeddedTomEEContaine
             }

             if ((provider == null && ejbContainerProviders > 1)
-                    || (!EmbeddedTomEEContainer.class.equals(provider)
-                        &&
!CONTAINER_NAMES.contains(String.valueOf(provider)))) {
+                || (!EmbeddedTomEEContainer.class.equals(provider)
+                && !CONTAINER_NAMES.contains(String.valueOf(provider)))) {
                 return null;
             }

-            if (tomEEContainer != null) {
-                return tomEEContainer;
+            EmbeddedTomEEContainer etc = tomEEContainer.get();
+            if (etc != null) {
+                return etc;
             }

             final String appId = (String)
properties.get(EJBContainer.APP_NAME);
             final Object modules = properties.get(EJBContainer.MODULES);
-
-            tomEEContainer = new EmbeddedTomEEContainer();
+            etc = new EmbeddedTomEEContainer();
+            tomEEContainer.set(etc);
             final Configuration configuration = new Configuration();
+
             if (properties.containsKey(TOMEE_EJBCONTAINER_HTTP_PORT)) {
                 int port;
                 final Object portValue =
properties.get(TOMEE_EJBCONTAINER_HTTP_PORT);
@@ -130,51 +137,59 @@ public final class EmbeddedTomEEContaine
                 configuration.setHttpPort(port);
             }
             System.setProperty(TOMEE_EJBCONTAINER_HTTP_PORT,
Integer.toString(configuration.getHttpPort()));
-            tomEEContainer.container.setup(configuration);
+            etc.container.setup(configuration);
             try {
-                tomEEContainer.container.start();
+                etc.container.start();

                 if (modules instanceof File) {
-
tomEEContainer.deployedIds.add(tomEEContainer.container.deploy(appId,
((File) modules), appId != null).getId());
+                    etc.deployedIds.add(etc.container.deploy(appId,
((File) modules), appId != null).getId());
                 } else if (modules instanceof String) {
-
tomEEContainer.deployedIds.add(tomEEContainer.container.deploy(appId,
new File((String) modules), appId != null).getId());
+                    etc.deployedIds.add(etc.container.deploy(appId,
new File((String) modules), appId != null).getId());
                 } else if (modules instanceof String[]) {
                     for (final String path : (String[]) modules) {
-
tomEEContainer.deployedIds.add(tomEEContainer.container.deploy(appId,
new File(path), appId != null).getId());
+
etc.deployedIds.add(etc.container.deploy(appId, new File(path), appId
!= null).getId());
                     }
                 } else if (modules instanceof File[]) {
                     for (final File file : (File[]) modules) {
-
tomEEContainer.deployedIds.add(tomEEContainer.container.deploy(appId,
file, appId != null).getId());
+
etc.deployedIds.add(etc.container.deploy(appId, file, appId !=
null).getId());
                     }
                 } else {
                     SystemInstance.get().getProperties().putAll(properties);
-                    final Collection<File> files =
tomEEContainer.container.getConfigurationFactory().getModulesFromClassPath(null,
Thread.currentThread().getContextClassLoader());
+                    final Collection<File> files =
etc.container.getConfigurationFactory().getModulesFromClassPath(null,
Thread.currentThread().getContextClassLoader());
                     if (files.size() == 0) {
                         try {
-                            tomEEContainer.close();
+                            etc.close();
                         } catch (final Exception e) {
                             // no-op
                         }
-                        tomEEContainer = null;
+                        tomEEContainer.set(null);
                         throw Exceptions.newNoModulesFoundException();
                     }
                     for (final File file : files) {
-
tomEEContainer.deployedIds.add(tomEEContainer.container.deploy(appId,
file, appId != null).getId());
+
etc.deployedIds.add(etc.container.deploy(appId, file, appId !=
null).getId());
                     }
                 }

-                return tomEEContainer;
+                return etc;
             } catch (final OpenEJBException | MalformedURLException e) {
-                tomEEContainer.close();
+                try {
+                    etc.close();
+                } catch (final Exception e1) {
+                    //Ignore
+                }
                 throw new EJBException(e);
             } catch (final ValidationException ve) {
-                if (tomEEContainer != null) {
-                    tomEEContainer.close();
+                try {
+                    etc.close();
+                } catch (final Exception e1) {
+                    //Ignore
                 }
                 throw ve;
             } catch (final Exception e) {
-                if (tomEEContainer != null) {
-                    tomEEContainer.close();
+                try {
+                    etc.close();
+                } catch (final Exception e1) {
+                    //Ignore
                 }
                 if (e instanceof EJBException) {
                     throw (EJBException) e;

Modified: 
tomee/tomee/trunk/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/EmbeddedTomEEContainerTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/EmbeddedTomEEContainerTest.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/EmbeddedTomEEContainerTest.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/EmbeddedTomEEContainerTest.java
Thu Sep 18 15:11:51 2014
@@ -20,8 +20,6 @@ package org.apache.tomee.embedded;
 import org.apache.commons.io.FileUtils;
 import org.apache.openejb.config.DeploymentsResolver;
 import org.apache.openejb.loader.IO;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
 import org.junit.Test;

 import javax.ejb.embeddable.EJBContainer;
@@ -37,20 +35,28 @@ import static org.junit.Assert.assertNot
 public class EmbeddedTomEEContainerTest {
     @Test
     public void containerTest() throws Exception {
+
         final File war = createWar();
         final Properties p = new Properties();
         p.setProperty(EJBContainer.APP_NAME, "test");
         p.setProperty(EJBContainer.PROVIDER,
EmbeddedTomEEContainer.class.getName());
         p.put(EJBContainer.MODULES, war.getAbsolutePath());
         p.setProperty(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT,
"-1");
+
+        EJBContainer container = null;
         try {
-            final EJBContainer container = EJBContainer.createEJBContainer(p);
+            container = EJBContainer.createEJBContainer(p);
             assertNotNull(container);
             assertNotNull(container.getContext());
             final URL url = new URL("http://127.0.0.1:"; +
System.getProperty(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT)
+ "/test/index.html");
-            assertEquals("true", IO.readProperties(url).getProperty("ok"));
-            container.close();
+            assertEquals("true", getOk(url, 2));
+
         } finally {
+
+            if (container != null) {
+                container.close();
+            }
+
             try {
                 FileUtils.forceDelete(war);
             } catch (final IOException e) {
@@ -59,18 +65,40 @@ public class EmbeddedTomEEContainerTest
         }
     }

+    private String getOk(final URL url, final int tries) throws Exception {
+        try {
+            return IO.readProperties(url).getProperty("ok");
+        } catch (final IOException e) {
+            if (tries > 0) {
+                Thread.sleep(1000);
+                return getOk(url, tries - 1);
+            } else {
+                throw e;
+            }
+        }
+    }
+
     @Test
     public void classpath() throws Exception {
+
         final Properties p = new Properties();
         p.setProperty(EJBContainer.PROVIDER,
EmbeddedTomEEContainer.class.getName());
         p.setProperty(DeploymentsResolver.CLASSPATH_INCLUDE,
".*tomee-embedded.*");
         p.setProperty(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT,
"-1");
-        final EJBContainer container = EJBContainer.createEJBContainer(p);
-        assertNotNull(container);
-        final ABean bean =
ABean.class.cast(container.getContext().lookup("java:global/tomee-embedded/ABean"));
-        assertNotNull(bean);
-        assertEquals("ok", bean.embedded());
-        container.close();
+
+        EJBContainer container = null;
+        try {
+            container = EJBContainer.createEJBContainer(p);
+            assertNotNull(container);
+            assertNotNull(container.getContext());
+            final ABean bean =
ABean.class.cast(container.getContext().lookup("java:global/tomee-embedded/ABean"));
+            assertNotNull(bean);
+            assertEquals("ok", bean.embedded());
+        } finally {
+            if (container != null) {
+                container.close();
+            }
+        }
     }

     private File createWar() throws IOException {

Modified: tomee/tomee/trunk/tomee/tomee-loader/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/pom.xml?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/pom.xml (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/pom.xml Thu Sep 18 15:11:51 2014
@@ -42,6 +42,25 @@
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
       <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.tomcat</groupId>
+          <artifactId>tomcat-juli</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <!--The order of the next two deps is important-->
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>tomee-juli</artifactId>
+      <version>${project.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-juli</artifactId>
+      <version>${tomcat.version}</version>
+      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>

Modified: 
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java?rev=1626003&r1=1626002&r2=1626003&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
(original)
+++ 
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/LoaderServlet.java
Thu Sep 18 15:11:51 2014
@@ -16,29 +16,31 @@
  */
 package org.apache.tomee.loader;

-import java.util.Properties;
-import java.util.Enumeration;
-import java.io.File;
 import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
 import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Properties;

 /**
  * The sole purpose of this class is to call the {@link
TomcatEmbedder#embed} method
- *
+ * <p/>
  * This class gets the location of this webapp and assumes that it is
  * the tomee.war file then calls the embedder.
- *
- * This method of bootstrapping is mutually exclussive to the {@link
OpenEJBListener} approach
+ * <p/>
+ * This method of bootstrapping is mutually exclusive to the {@link
OpenEJBListener} approach
  */
-@Deprecated // use tomee-overlay-runner or another way to ensure you
deterministicly work
+@Deprecated // use tomee-overlay-runner or another way to ensure you
work deterministically
 public class LoaderServlet extends HttpServlet {
-
+
     //Default serial version id
     private static final long serialVersionUID = 1L;
-
-    /**Flag for starting embedded*/
+
+    /**
+     * Flag for starting embedded
+     */
     private static boolean embedded;

     /**
@@ -59,22 +61,23 @@ public class LoaderServlet extends HttpS

         //Gets parameters from servlet initialization parameter
         final Properties properties = initParamsToProperties(config);
-
+
         //Web application directory
         final File webappDir = new File(getWebappPath(config));
-
+
         //Sets tomee.war property
         properties.setProperty("tomee.war", webappDir.getAbsolutePath());
-
+
         //Sets source of the embedder
         properties.setProperty("openejb.embedder.source",
getClass().getSimpleName());

         //@Tomcat
         TomcatEmbedder.embed(properties, config.getClass().getClassLoader());
     }
-
+
     /**
      * Retrieves all intialization parameters for this servlet and
stores them in a java.util.Properties object.
+     *
      * @param config javax.servlet.ServletConfig
      * @return java.util.Properties
      */
@@ -88,10 +91,10 @@ public class LoaderServlet extends HttpS
         // Load in each init-param as a property
         final Enumeration<?> enumeration = config.getInitParameterNames();
         System.out.println("OpenEJB Loader init-params:");
-        if(!enumeration.hasMoreElements()) {
+        if (!enumeration.hasMoreElements()) {
             System.out.println("\tThere are no initialization parameters.");
         }
-
+
         while (enumeration.hasMoreElements()) {
             final String name = (String) enumeration.nextElement();
             final String value = config.getInitParameter(name);
@@ -101,17 +104,17 @@ public class LoaderServlet extends HttpS

         return properties;
     }
+
     /**
      * Retrieves the absolute path of where this web application is located.
-     *
-     * @param config
+     *
+     * @param config ServletConfig
      * @return absolute path of this webapp directory
      */
     private String getWebappPath(final ServletConfig config) {
         final ServletContext ctx = config.getServletContext();
         final File webInf = new File(ctx.getRealPath("/WEB-INF"));
         final File webapp = webInf.getParentFile();
-        final String webappPath = webapp.getAbsolutePath();
-        return webappPath;
+        return webapp.getAbsolutePath();
     }
 }

Reply via email to