You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2010/06/10 22:20:02 UTC

svn commit: r953443 [1/2] - in /openejb/branches/openejb-jcdi/assembly/openejb-tomcat: openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/

Author: dblevins
Date: Thu Jun 10 20:20:01 2010
New Revision: 953443

URL: http://svn.apache.org/viewvc?rev=953443&view=rev
Log:
Javadoc and reformatting

Modified:
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/BackportUtil.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBContext.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBNamingContextListener.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ProcessAnnotatedListenersListener.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiSupport.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatSecurityService.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatThreadContextListener.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/LoaderServlet.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java
    openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHook.java

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/BackportUtil.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/BackportUtil.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/BackportUtil.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/BackportUtil.java Thu Jun 10 20:20:01 2010
@@ -17,11 +17,11 @@
 package org.apache.openejb.tomcat.catalina;
 
 import org.apache.catalina.Wrapper;
-import org.apache.catalina.deploy.NamingResources;
 import org.apache.catalina.core.NamingContextListener;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardWrapper;
 import org.apache.catalina.deploy.ContextService;
+import org.apache.catalina.deploy.NamingResources;
 import org.apache.openejb.tomcat.common.TomcatVersion;
 
 import javax.servlet.Servlet;
@@ -37,7 +37,7 @@ public class BackportUtil {
     private static API api;
 
     static {
-        if (TomcatVersion.v6.isTheVersion()){
+        if (TomcatVersion.v6.isTheVersion()) {
             api = new Tomcat6();
         } else {
             api = new Tomcat55();
@@ -66,8 +66,11 @@ public class BackportUtil {
 
     public static interface API {
         Servlet getServlet(Wrapper wrapper);
+
         String findServiceName(NamingResources naming, String refName);
+
         NamingContextListener getNamingContextListener(StandardContext standardContext);
+
         void removeService(NamingContextListener namingContextListener, String serviceName);
     }
 
@@ -83,7 +86,7 @@ public class BackportUtil {
 
         public String findServiceName(NamingResources naming, String referenceName) {
             ContextService service = naming.findService(referenceName);
-            return (service != null)?service.getName():null;
+            return (service != null) ? service.getName() : null;
         }
 
         public void removeService(NamingContextListener namingContextListener, String serviceName) {
@@ -132,7 +135,7 @@ public class BackportUtil {
                         field.setAccessible(true);
                         return field;
                     } catch (Exception e2) {
-                        throw (IllegalStateException) new IllegalStateException("Unable to find or access the '"+name+"' field in "+clazz.getName()).initCause(e2);
+                        throw (IllegalStateException) new IllegalStateException("Unable to find or access the '" + name + "' field in " + clazz.getName()).initCause(e2);
                     }
                 }
             });
@@ -141,5 +144,4 @@ public class BackportUtil {
     }
 
 
-
 }

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java Thu Jun 10 20:20:01 2010
@@ -18,20 +18,83 @@
 package org.apache.openejb.tomcat.catalina;
 
 import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.core.StandardHost;
+import org.apache.catalina.core.StandardServer;
 
+/**
+ * Listener interface for web context.
+ *
+ * @version $Rev$ $Date$
+ */
 public interface ContextListener {
+
+    /**
+     * Web context is initialized.
+     *
+     * @param context web context
+     */
     void init(StandardContext context);
+
+    /**
+     * Called before starting context.
+     *
+     * @param context web context
+     */
     void beforeStart(StandardContext context);
+
+    /**
+     * Called when starting context.
+     *
+     * @param context web context
+     */
     void start(StandardContext context);
+
+    /**
+     * Called after starting context.
+     *
+     * @param context web context
+     */
     void afterStart(StandardContext context);
+
+    /**
+     * Called before stopping context.
+     *
+     * @param context web context
+     */
     void beforeStop(StandardContext context);
+
+    /**
+     * Called when stopping context.
+     *
+     * @param context web context
+     */
     void stop(StandardContext context);
+
+    /**
+     * Called after starting context.
+     *
+     * @param context web context
+     */
     void afterStop(StandardContext context);
+
+    /**
+     * Called when destroying context.
+     *
+     * @param context web context
+     */
     void destroy(StandardContext context);
 
+    /**
+     * Called after stopping server
+     *
+     * @param standardServer server instance
+     */
     void afterStop(StandardServer standardServer);
 
+    /**
+     * Called on periodic events.
+     *
+     * @param standardHost host
+     */
     void checkHost(StandardHost standardHost);
 }

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java Thu Jun 10 20:20:01 2010
@@ -18,10 +18,10 @@
 package org.apache.openejb.tomcat.catalina;
 
 import org.apache.catalina.Container;
+import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.Service;
-import org.apache.catalina.Lifecycle;
 import org.apache.catalina.core.ContainerBase;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardEngine;
@@ -35,10 +35,30 @@ import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 
+/**
+ * Observers events from Tomcat to configure
+ * web applications etc.
+ *
+ * @version $Rev$ $Date$
+ */
 public class GlobalListenerSupport implements PropertyChangeListener, LifecycleListener {
+
+    /**
+     * Tomcat server instance
+     */
     private final StandardServer standardServer;
+
+    /**
+     * Listener for context, host, server operations
+     */
     private final ContextListener contextListener;
 
+    /**
+     * Creates a new instance.
+     *
+     * @param standardServer  tomcat server instance
+     * @param contextListener context listener instance
+     */
     public GlobalListenerSupport(StandardServer standardServer, ContextListener contextListener) {
         if (standardServer == null) throw new NullPointerException("standardServer is null");
         if (contextListener == null) throw new NullPointerException("contextListener is null");
@@ -46,6 +66,9 @@ public class GlobalListenerSupport imple
         this.contextListener = contextListener; // this.contextListener is now an instance of TomcatWebAppBuilder
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void lifecycleEvent(LifecycleEvent event) {
         Object source = event.getSource();
         if (source instanceof StandardContext) {
@@ -83,6 +106,9 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Starts operation.
+     */
     public void start() {
         // hook the hosts so we get notified before contexts are started
         standardServer.addPropertyChangeListener(this);
@@ -92,10 +118,19 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Stops operation.
+     */
     public void stop() {
         standardServer.removePropertyChangeListener(this);
     }
 
+
+    /**
+     * Service is added.
+     *
+     * @param service tomcat service
+     */
     private void serviceAdded(Service service) {
         Container container = service.getContainer();
         if (container instanceof StandardEngine) {
@@ -104,6 +139,11 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Service removed.
+     *
+     * @param service tomcat service
+     */
     private void serviceRemoved(Service service) {
         Container container = service.getContainer();
         if (container instanceof StandardEngine) {
@@ -112,6 +152,11 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Engine is added.
+     *
+     * @param engine tomcat engine
+     */
     private void engineAdded(StandardEngine engine) {
         addContextListener(engine);
         for (Container child : engine.findChildren()) {
@@ -122,6 +167,11 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Engine is removed.
+     *
+     * @param engine tomcat engine
+     */
     private void engineRemoved(StandardEngine engine) {
         for (Container child : engine.findChildren()) {
             if (child instanceof StandardHost) {
@@ -131,6 +181,11 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Host is added.
+     *
+     * @param host tomcat host.
+     */
     private void hostAdded(StandardHost host) {
         addContextListener(host);
         host.addLifecycleListener(this);
@@ -142,6 +197,12 @@ public class GlobalListenerSupport imple
         }
     }
 
+
+    /**
+     * Host is removed.
+     *
+     * @param host tomcat host
+     */
     private void hostRemoved(StandardHost host) {
         for (Container child : host.findChildren()) {
             if (child instanceof StandardContext) {
@@ -151,11 +212,21 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * New context is added.
+     *
+     * @param context tomcat context
+     */
     private void contextAdded(StandardContext context) {
         // put this class as the first listener so we can process the application before any classes are loaded
         forceFirstLifecycleListener(context);
     }
 
+    /**
+     * Update context lifecycle listeners.
+     *
+     * @param context tomcat context.
+     */
     private void forceFirstLifecycleListener(StandardContext context) {
         LifecycleListener[] listeners = context.findLifecycleListeners();
 
@@ -176,7 +247,7 @@ public class GlobalListenerSupport imple
         OWBLifecycleListener owbListener = new OWBLifecycleListener();
         context.addLifecycleListener(owbListener);
         context.addContainerListener(owbListener);
-        
+
         // add back all listeners
         for (LifecycleListener listener : listeners) {
             if (listener != this) {
@@ -185,10 +256,18 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Context is removed.
+     *
+     * @param context tomcat context
+     */
     @SuppressWarnings({"UnusedDeclaration"})
     private void contextRemoved(StandardContext context) {
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void propertyChange(PropertyChangeEvent event) {
         if ("service".equals(event.getPropertyName())) {
             Object oldValue = event.getOldValue();
@@ -223,11 +302,20 @@ public class GlobalListenerSupport imple
         }
     }
 
+    /**
+     * Setting monitoreable child field.
+     *
+     * @param containerBase host or engine
+     */
+    @SuppressWarnings("unchecked")
     private void addContextListener(ContainerBase containerBase) {
+        boolean accessible = false;
+        Field field = null;
         try {
-            Field field = ContainerBase.class.getDeclaredField("children");
+            field = ContainerBase.class.getDeclaredField("children");
+            accessible = field.isAccessible();
             field.setAccessible(true);
-            Map children = (Map) field.get(containerBase);
+            Map<Object, Object> children = (Map<Object, Object>) field.get(containerBase);
             if (children instanceof GlobalListenerSupport.MoniterableHashMap) {
                 return;
             }
@@ -235,17 +323,24 @@ public class GlobalListenerSupport imple
             field.set(containerBase, children);
         } catch (Exception e) {
             e.printStackTrace();
+        } finally {
+            if (field != null) {
+                if (!accessible) {
+                    field.setAccessible(false);
+                }
+            }
         }
 
     }
 
-    @SuppressWarnings({"unchecked"})
-    public static class MoniterableHashMap extends HashMap {
+    //Hashmap for monitoring children of engine and host
+    public static class MoniterableHashMap extends HashMap<Object, Object> {
+        private static final long serialVersionUID = 1L;
         private final Object source;
         private final String propertyName;
         private final PropertyChangeListener listener;
 
-        public MoniterableHashMap(Map m, Object source, String propertyName, PropertyChangeListener listener) {
+        public MoniterableHashMap(Map<Object, Object> m, Object source, String propertyName, PropertyChangeListener listener) {
             super(m);
             this.source = source;
             this.propertyName = propertyName;

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBContext.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBContext.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBContext.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBContext.java Thu Jun 10 20:20:01 2010
@@ -18,8 +18,6 @@
 package org.apache.openejb.tomcat.catalina;
 
 import org.apache.openejb.core.ThreadContext;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.LogCategory;
 
 import javax.naming.Binding;
 import javax.naming.Context;
@@ -30,124 +28,230 @@ import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import java.util.Hashtable;
 
+/**
+ * {@link Context} implementation for using it
+ * via Tomcat integration.
+ *
+ * @version $Rev$ $Date$
+ */
 public class OpenEJBContext implements Context {
 
+    /**
+     * Default constructor.
+     */
+    public OpenEJBContext() {
+        super();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public Object lookup(Name name) throws NamingException {
         return getThreadContext().lookup(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object lookup(String name) throws NamingException {
         return getThreadContext().lookup(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void bind(Name name, Object obj) throws NamingException {
         getThreadContext().bind(name, obj);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void bind(String name, Object obj) throws NamingException {
         getThreadContext().bind(name, obj);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void rebind(Name name, Object obj) throws NamingException {
         getThreadContext().rebind(name, obj);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void rebind(String name, Object obj) throws NamingException {
         getThreadContext().rebind(name, obj);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void unbind(Name name) throws NamingException {
         getThreadContext().unbind(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void unbind(String name) throws NamingException {
         getThreadContext().unbind(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void rename(Name oldName, Name newName) throws NamingException {
         getThreadContext().rename(oldName, newName);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void rename(String oldName, String newName) throws NamingException {
         getThreadContext().rename(oldName, newName);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
         return getThreadContext().list(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
         return getThreadContext().list(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
         return getThreadContext().listBindings(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
         return getThreadContext().listBindings(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void destroySubcontext(Name name) throws NamingException {
         getThreadContext().destroySubcontext(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void destroySubcontext(String name) throws NamingException {
         getThreadContext().destroySubcontext(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Context createSubcontext(Name name) throws NamingException {
         return getThreadContext().createSubcontext(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Context createSubcontext(String name) throws NamingException {
         return getThreadContext().createSubcontext(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object lookupLink(Name name) throws NamingException {
         return getThreadContext().lookupLink(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object lookupLink(String name) throws NamingException {
         return getThreadContext().lookupLink(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NameParser getNameParser(Name name) throws NamingException {
         return getThreadContext().getNameParser(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public NameParser getNameParser(String name) throws NamingException {
         return getThreadContext().getNameParser(name);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Name composeName(Name name, Name prefix) throws NamingException {
         return getThreadContext().composeName(name, prefix);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public String composeName(String name, String prefix) throws NamingException {
         return getThreadContext().composeName(name, prefix);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object addToEnvironment(String propName, Object propVal) throws NamingException {
         return getThreadContext().addToEnvironment(propName, propVal);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Object removeFromEnvironment(String propName) throws NamingException {
         return getThreadContext().removeFromEnvironment(propName);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public Hashtable<?, ?> getEnvironment() throws NamingException {
         return getThreadContext().getEnvironment();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void close() throws NamingException {
         getThreadContext().close();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public String getNameInNamespace() throws NamingException {
         return "";
     }
 
+    /**
+     * Gets current context deployment context.
+     *
+     * @return context of deployment
+     * @throws NamingException for exception
+     */
     private Context getThreadContext() throws NamingException {
         ThreadContext threadContext = ThreadContext.getThreadContext();
         Context context = threadContext.getDeploymentInfo().getJndiEnc();

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBNamingContextListener.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBNamingContextListener.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBNamingContextListener.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBNamingContextListener.java Thu Jun 10 20:20:01 2010
@@ -276,7 +276,7 @@ public class OpenEJBNamingContextListene
         PassthroughFactory.add(resourceInfo, value);
         Assembler assembler = (Assembler) SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
 
-        logger.info("Importing a Tomcat Resource with id '" + resourceInfo.id +  "' of type '" + type + "'.");
+        logger.info("Importing a Tomcat Resource with id '" + resourceInfo.id + "' of type '" + type + "'.");
         try {
             assembler.createResource(resourceInfo);
         } catch (OpenEJBException e) {

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/OpenEJBValve.java Thu Jun 10 20:20:01 2010
@@ -51,7 +51,7 @@ public class OpenEJBValve extends ValveB
     }
 
     private TomcatSecurityService getSecurityService() {
-        SecurityService securityService =  SystemInstance.get().getComponent(SecurityService.class);
+        SecurityService securityService = SystemInstance.get().getComponent(SecurityService.class);
         if (securityService instanceof TomcatSecurityService) {
             return (TomcatSecurityService) securityService;
         }

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ProcessAnnotatedListenersListener.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ProcessAnnotatedListenersListener.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ProcessAnnotatedListenersListener.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ProcessAnnotatedListenersListener.java Thu Jun 10 20:20:01 2010
@@ -16,23 +16,23 @@
  */
 package org.apache.openejb.tomcat.catalina;
 
-import org.apache.catalina.ContainerListener;
 import org.apache.catalina.ContainerEvent;
+import org.apache.catalina.ContainerListener;
 import org.apache.catalina.core.StandardContext;
 import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
 
 import java.util.ArrayList;
-import java.util.List;
 import java.util.Arrays;
-import java.util.Set;
 import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * The StandardContext only calls these events for the listeners in the
  * getApplicationLifecycleListeners() list and not for any listeners in the
  * getApplicationEventListeners() list.  This is a big pain as we need to
  * do annotation processing for both.  The code gets a bit tricky as a result.
- *
+ * <p/>
  * Note this class only pertains to Tomcat 5.5.x and before, not 6.0.x and after.
  *
  * @version $Rev$ $Date$
@@ -56,6 +56,7 @@ public class ProcessAnnotatedListenersLi
 
     /**
      * We must process all the listeners on the very first "beforeContextInitialized" event of this Container
+     *
      * @param event
      */
     private void listenerStart(ContainerEvent event) {
@@ -80,10 +81,11 @@ public class ProcessAnnotatedListenersLi
 
     /**
      * We must process all the listeners on the very last "afterContextDestroyed" event of this Container
-     *
+     * <p/>
      * Looking at the code it's possible that if a ContainerListener threw an exception in the
      * afterContextDestroyed event that the afterContextDestroyed will get fired again in the catch block,
      * so we need to watch for that.  We use a set to ensure we can track uniqe events.
+     *
      * @param event
      */
     private void listenerStop(ContainerEvent event) {

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiBuilder.java Thu Jun 10 20:20:01 2010
@@ -29,7 +29,6 @@ import org.apache.naming.ContextAccessCo
 import org.apache.naming.factory.Constants;
 import org.apache.openejb.Injection;
 import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
 import org.apache.openejb.assembler.classic.EjbReferenceInfo;
 import org.apache.openejb.assembler.classic.EnvEntryInfo;
@@ -46,6 +45,9 @@ import org.apache.openejb.core.webservic
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.persistence.JtaEntityManager;
 import org.apache.openejb.persistence.JtaEntityManagerRegistry;
+import org.apache.openejb.spi.ContainerSystem;
+import org.apache.openejb.tomcat.common.EjbFactory;
+import org.apache.openejb.tomcat.common.NamingUtil;
 import static org.apache.openejb.tomcat.common.NamingUtil.DEPLOYMENT_ID;
 import static org.apache.openejb.tomcat.common.NamingUtil.EXTENDED;
 import static org.apache.openejb.tomcat.common.NamingUtil.EXTERNAL;
@@ -61,19 +63,17 @@ import static org.apache.openejb.tomcat.
 import static org.apache.openejb.tomcat.common.NamingUtil.WS_PORT_QNAME;
 import static org.apache.openejb.tomcat.common.NamingUtil.WS_QNAME;
 import static org.apache.openejb.tomcat.common.NamingUtil.setStaticValue;
-import org.apache.openejb.tomcat.common.EjbFactory;
-import org.apache.openejb.tomcat.common.WsFactory;
-import org.apache.openejb.tomcat.common.ResourceFactory;
-import org.apache.openejb.tomcat.common.PersistenceUnitFactory;
 import org.apache.openejb.tomcat.common.PersistenceContextFactory;
+import org.apache.openejb.tomcat.common.PersistenceUnitFactory;
+import org.apache.openejb.tomcat.common.ResourceFactory;
 import org.apache.openejb.tomcat.common.UserTransactionFactory;
-import org.apache.openejb.tomcat.common.NamingUtil;
+import org.apache.openejb.tomcat.common.WsFactory;
 
+import javax.naming.Context;
+import javax.naming.NamingException;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.transaction.UserTransaction;
-import javax.naming.Context;
-import javax.naming.NamingException;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -536,7 +536,7 @@ public class TomcatJndiBuilder {
             }
         }
 
-        if (wsdlUrl == null ) {
+        if (wsdlUrl == null) {
             throw new IllegalArgumentException("WSDL file " + ref.wsdlFile + " for web service-ref " + ref.referenceName + " not found");
         }
 

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiSupport.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiSupport.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiSupport.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatJndiSupport.java Thu Jun 10 20:20:01 2010
@@ -16,11 +16,11 @@
  */
 package org.apache.openejb.tomcat.catalina;
 
+import org.apache.openejb.DeploymentInfo;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.RpcContainer;
-import org.apache.openejb.DeploymentInfo;
-import org.apache.openejb.core.RpcContainerWrapper;
 import org.apache.openejb.core.CoreDeploymentInfo;
+import org.apache.openejb.core.RpcContainerWrapper;
 
 import javax.naming.Context;
 import java.lang.reflect.InvocationTargetException;
@@ -63,7 +63,7 @@ public class TomcatJndiSupport extends R
         setupDeployment((org.apache.openejb.core.CoreDeploymentInfo) info);
     }
 
-    public static Map<Object,Context> contexts = new HashMap<Object,Context>();
+    public static Map<Object, Context> contexts = new HashMap<Object, Context>();
 
     private void setupDeployment(org.apache.openejb.core.CoreDeploymentInfo deployment) {
 

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java Thu Jun 10 20:20:01 2010
@@ -28,11 +28,6 @@ import org.apache.catalina.Service;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardServer;
 import org.apache.openejb.OpenEJB;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.OptionsLog;
-import org.apache.openejb.tomcat.installer.Installer;
-import org.apache.openejb.tomcat.installer.Paths;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.core.ServerFederation;
 import org.apache.openejb.core.ThreadContext;
@@ -43,6 +38,11 @@ import org.apache.openejb.server.Service
 import org.apache.openejb.server.ServiceManager;
 import org.apache.openejb.server.ejbd.EjbServer;
 import org.apache.openejb.server.webservices.WsRegistry;
+import org.apache.openejb.tomcat.installer.Installer;
+import org.apache.openejb.tomcat.installer.Paths;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.OptionsLog;
 
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -62,9 +62,9 @@ import java.util.Properties;
  * <li/>tomcat.version if not set
  * <li/>tomcat.built if not set
  * </ul>
- *
+ * <p/>
  * <h1>Integration Actions</h1>
- *
+ * <p/>
  * <ul>
  * <li/>Setup ServiceJar: set openejb.provider.default -> org.apache.openejb.tomcat
  * We therefore will load this file: META-INF/org.apache.openejb.tomcat/service-jar.xml
@@ -72,33 +72,54 @@ import java.util.Properties;
  * <li/>
  * <li/>
  * </ul>
- *
+ * <p/>
  * See {@link org.apache.openejb.config.ServiceUtils#defaultProviderURL}
  *
- *
- *
  * @version $Revision: 617255 $ $Date: 2008-01-31 13:58:36 -0800 (Thu, 31 Jan 2008) $
  */
 public class TomcatLoader implements Loader {
+
+    /**
+     * OpenEJB Server Daemon
+     */
     private EjbServer ejbServer;
+
+    /**
+     * OpenEJB Service Manager that manage services
+     */
     private ServiceManager manager;
+
+    /**
+     * Platform OpenEJB works
+     */
     private final String platform;
 
+    /**
+     * Creates a new instance.
+     */
     public TomcatLoader() {
         platform = "tomcat";
     }
 
+    /**
+     *  {@inheritDoc}
+     */
     public void init(Properties properties) throws Exception {
+
         // Enable System EJBs like the MEJB and DeployerEJB
         properties.setProperty("openejb.deployments.classpath", "true");
         properties.setProperty("openejb.deployments.classpath.filter.systemapps", "false");
+
+        //Sets default service provider
         System.setProperty("openejb.provider.default", "org.apache.openejb." + platform);
 
         // Loader maybe the first thing executed in a new classloader
         // so we must attempt to initialize the system instance.
         SystemInstance.init(properties);
+
+        //Install Log
         OptionsLog.install();
-        
+
         // install conf/openejb.xml and conf/logging.properties files
         String openejbWarDir = properties.getProperty("openejb.war");
         if (openejbWarDir != null) {
@@ -116,13 +137,16 @@ public class TomcatLoader implements Loa
             return;
         }
 
+        FileInputStream fin = null;
         // Read in and apply the conf/system.properties
         try {
             File conf = SystemInstance.get().getBase().getDirectory("conf");
+
+            //Look for custom system properties
             File file = new File(conf, "system.properties");
-            if (file.exists()){
+            if (file.exists()) {
                 Properties systemProperties = new Properties();
-                FileInputStream fin = new FileInputStream(file);
+                fin = new FileInputStream(file);
                 InputStream in = new BufferedInputStream(fin);
                 systemProperties.load(in);
                 System.getProperties().putAll(systemProperties);
@@ -131,9 +155,14 @@ public class TomcatLoader implements Loa
                 SystemInstance.get().getProperties().putAll(systemProperties);
             }
         } catch (IOException e) {
-            System.out.println("Processing conf/system.properties failed: "+e.getMessage());
+            System.out.println("Processing conf/system.properties failed: " + e.getMessage());
+        } finally {
+            if (fin != null) {
+                fin.close();
+            }
         }
 
+        //Those are set by TomcatHook, why re-set here???
         System.setProperty("openejb.home", SystemInstance.get().getHome().getDirectory().getAbsolutePath());
         System.setProperty("openejb.base", SystemInstance.get().getBase().getDirectory().getAbsolutePath());
 
@@ -159,7 +188,7 @@ public class TomcatLoader implements Loa
         ejbServer = new EjbServer();
         SystemInstance.get().setComponent(EjbServer.class, ejbServer);
         OpenEJB.init(properties, new ServerFederation());
-        
+
         Properties ejbServerProps = new Properties();
         ejbServerProps.putAll(properties);
         ejbServerProps.setProperty("openejb.ejbd.uri", "http://127.0.0.1:8080/openejb/ejb");
@@ -203,7 +232,11 @@ public class TomcatLoader implements Loa
         });
     }
 
+    /**
+     * Destroy system.
+     */
     public void destroy() {
+        //Stop ServiceManager
         if (manager != null) {
             try {
                 manager.stop();
@@ -211,6 +244,8 @@ public class TomcatLoader implements Loa
             }
             manager = null;
         }
+
+        //Stop Ejb server
         if (ejbServer != null) {
             try {
                 ejbServer.stop();
@@ -218,9 +253,17 @@ public class TomcatLoader implements Loa
             }
             ejbServer = null;
         }
+
+        //Destroy OpenEJB system
         OpenEJB.destroy();
     }
 
+    /**
+     * Process running web applications for ejb deployments.
+     *
+     * @param tomcatWebAppBuilder tomcat web app builder instance
+     * @param standardServer      tomcat server instance
+     */
     private void processRunningApplications(TomcatWebAppBuilder tomcatWebAppBuilder, StandardServer standardServer) {
         for (Service service : standardServer.findServices()) {
             if (service.getContainer() instanceof Engine) {

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatSecurityService.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatSecurityService.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatSecurityService.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatSecurityService.java Thu Jun 10 20:20:01 2010
@@ -17,13 +17,13 @@
  */
 package org.apache.openejb.tomcat.catalina;
 
-import org.apache.catalina.Realm;
-import org.apache.catalina.Service;
 import org.apache.catalina.Engine;
-import org.apache.catalina.ServerFactory;
+import org.apache.catalina.Realm;
 import org.apache.catalina.Server;
-import org.apache.openejb.core.security.AbstractSecurityService;
+import org.apache.catalina.ServerFactory;
+import org.apache.catalina.Service;
 import org.apache.openejb.core.CoreDeploymentInfo;
+import org.apache.openejb.core.security.AbstractSecurityService;
 import org.apache.openejb.spi.CallerPrincipal;
 
 import javax.security.auth.Subject;
@@ -31,11 +31,11 @@ import javax.security.auth.login.LoginEx
 import java.security.Principal;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
-import java.util.Set;
 import java.util.LinkedList;
+import java.util.Set;
 import java.util.UUID;
 
-public class TomcatSecurityService  extends AbstractSecurityService {
+public class TomcatSecurityService extends AbstractSecurityService {
     static protected final ThreadLocal<LinkedList<Subject>> runAsStack = new ThreadLocal<LinkedList<Subject>>() {
         protected LinkedList<Subject> initialValue() {
             return new LinkedList<Subject>();

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatThreadContextListener.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatThreadContextListener.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatThreadContextListener.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatThreadContextListener.java Thu Jun 10 20:20:01 2010
@@ -20,28 +20,57 @@ package org.apache.openejb.tomcat.catali
 import org.apache.naming.ContextBindings;
 import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.core.ThreadContextListener;
-import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
 
 import javax.naming.NamingException;
 import java.lang.reflect.Method;
 
+/**
+ * Tomcat thread context listener.
+ *
+ * @version $Rev$ $Date$
+ */
 public class TomcatThreadContextListener implements ThreadContextListener {
+
+    /**
+     * Logger instance for tomcat
+     */
     private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("tomcat"), "org.apache.openejb.util.resources");
+
+    /**
+     * OpenEJB context name
+     */
     private static final String OPENEJB_CONTEXT = "OpenEJBContext";
+
+    /**
+     * getThreadName method in class ContextBindings
+     */
     protected Method method;
 
+    /**
+     * Creates a new instance.
+     */
     public TomcatThreadContextListener() {
         ContextBindings.bindContext(OPENEJB_CONTEXT, new OpenEJBContext());
+        boolean accessible = false;
         try {
             // someone decided to make the getThreadName package protected so we have to use reflection
             method = ContextBindings.class.getDeclaredMethod("getThreadName");
+            accessible = method.isAccessible();
             method.setAccessible(true);
         } catch (NoSuchMethodException e) {
             logger.error("Expected ContextBinding to have the method getThreadName()");
+        } finally {
+            if (!accessible) {
+                method.setAccessible(accessible);
+            }
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void contextEntered(ThreadContext oldContext, ThreadContext newContext) {
         // save off the old context if possible
         try {
@@ -59,7 +88,9 @@ public class TomcatThreadContextListener
         }
     }
 
-
+    /**
+     * {@inheritDoc}
+     */
     public void contextExited(ThreadContext exitedContext, ThreadContext reenteredContext) {
         // unbind the new context
         ContextBindings.unbindThread(OPENEJB_CONTEXT);
@@ -70,25 +101,33 @@ public class TomcatThreadContextListener
             try {
                 ContextBindings.bindThread(data.oldContextName);
             } catch (NamingException e) {
+                logger.error("Exception in method contextExited", e);
             }
         }
     }
 
+    /**
+     * Gets thread name.
+     *
+     * @return thread name
+     * @throws NamingException for exception
+     */
     private Object getThreadName() throws NamingException {
-        // someone decided to make the getThreadName package protected so we have to use reflection
         try {
             Object threadName = method.invoke(null);
             return threadName;
         } catch (Exception e) {
+            logger.error("Exception in method getThreadName", e);
             return null;
         }
     }
 
+    //Internal stuff to hold old context name
     private static class Data {
         private Object oldContextName;
 
-        public Data(Object oldContext) {
-            this.oldContextName = oldContext;
+        public Data(Object oldContextName) {
+            this.oldContextName = oldContextName;
         }
     }
 }

Modified: openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=953443&r1=953442&r2=953443&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/branches/openejb-jcdi/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Thu Jun 10 20:20:01 2010
@@ -17,12 +17,6 @@
  */
 package org.apache.openejb.tomcat.catalina;
 
-import static org.apache.openejb.tomcat.catalina.BackportUtil.getServlet;
-import static org.apache.openejb.tomcat.catalina.BackportUtil.*;
-
-import org.apache.openejb.tomcat.catalina.owb.OWBLifecycleListener;
-import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
-import org.apache.openejb.tomcat.common.TomcatVersion;
 import org.apache.catalina.Container;
 import org.apache.catalina.Engine;
 import org.apache.catalina.LifecycleListener;
@@ -30,10 +24,10 @@ import org.apache.catalina.Loader;
 import org.apache.catalina.ServerFactory;
 import org.apache.catalina.Service;
 import org.apache.catalina.Wrapper;
+import org.apache.catalina.core.ContainerBase;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.core.StandardServer;
-import org.apache.catalina.core.ContainerBase;
 import org.apache.catalina.deploy.ContextEnvironment;
 import org.apache.catalina.deploy.ContextResource;
 import org.apache.catalina.deploy.ContextResourceLink;
@@ -42,41 +36,46 @@ import org.apache.catalina.startup.Conte
 import org.apache.catalina.startup.HostConfig;
 import org.apache.naming.ContextAccessController;
 import org.apache.naming.ContextBindings;
-import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.Injection;
 import org.apache.openejb.ClassLoaderUtil;
-import org.apache.openejb.spi.ContainerSystem;
-import org.apache.openejb.server.webservices.WsServlet;
-import org.apache.openejb.server.webservices.WsService;
+import org.apache.openejb.Injection;
+import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.util.LinkResolver;
+import org.apache.openejb.assembler.classic.ConnectorInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.InjectionBuilder;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
 import org.apache.openejb.assembler.classic.WebAppInfo;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.ConnectorInfo;
-import org.apache.openejb.assembler.classic.InjectionBuilder;
 import org.apache.openejb.config.AnnotationDeployer;
 import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.ClientModule;
 import org.apache.openejb.config.ConfigurationFactory;
 import org.apache.openejb.config.DeploymentLoader;
 import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.config.ReadDescriptors;
 import org.apache.openejb.config.UnknownModuleTypeException;
 import org.apache.openejb.config.WebModule;
-import org.apache.openejb.config.ClientModule;
+import org.apache.openejb.core.CoreContainerSystem;
+import org.apache.openejb.core.CoreDeploymentInfo;
+import org.apache.openejb.core.CoreWebDeploymentInfo;
 import org.apache.openejb.core.interceptor.InterceptorData;
 import org.apache.openejb.core.ivm.naming.SystemComponentReference;
 import org.apache.openejb.core.webservices.JaxWsUtils;
-import org.apache.openejb.core.CoreDeploymentInfo;
-import org.apache.openejb.core.CoreWebDeploymentInfo;
-import org.apache.openejb.core.CoreContainerSystem;
 import org.apache.openejb.jee.EnvEntry;
 import org.apache.openejb.jee.FacesConfig;
 import org.apache.openejb.jee.ParamValue;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.server.webservices.WsService;
+import org.apache.openejb.server.webservices.WsServlet;
+import org.apache.openejb.spi.ContainerSystem;
+import static org.apache.openejb.tomcat.catalina.BackportUtil.getNamingContextListener;
+import static org.apache.openejb.tomcat.catalina.BackportUtil.getServlet;
+import org.apache.openejb.tomcat.catalina.owb.OWBLifecycleListener;
+import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
+import org.apache.openejb.tomcat.common.TomcatVersion;
+import org.apache.openejb.util.LinkResolver;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
@@ -97,32 +96,82 @@ import java.io.IOException;
 import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
-import java.util.HashMap;
-import java.util.Iterator;
 
+/**
+ * Web application builder.
+ *
+ * @version $Rev$ $Date$
+ */
 public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener {
+
+    /**
+     * Flag for ignore context
+     */
     public static final String IGNORE_CONTEXT = TomcatWebAppBuilder.class.getName() + ".IGNORE";
+
+    /**
+     * Logger instance
+     */
     private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("tomcat"), "org.apache.openejb.util.resources");
 
+    /**
+     * Context information for web applications
+     */
     private final TreeMap<String, ContextInfo> infos = new TreeMap<String, ContextInfo>();
+
+    /**
+     * Global listener for Tomcat fired events.
+     */
     private final GlobalListenerSupport globalListenerSupport;
+
+    /**
+     * OpenEJB configuration factory instance
+     */
     private final ConfigurationFactory configurationFactory;
-    private final Map<String,HostConfig> deployers = new TreeMap<String,HostConfig>();
+
+    /**
+     * Tomcat host config elements
+     */
+    //Key is the host name
+    private final Map<String, HostConfig> deployers = new TreeMap<String, HostConfig>();
+
+    /**
+     * Deployed web applications
+     */
     // todo merge this map witth the infos map above
-    private final Map<String,DeployedApplication> deployedApps = new TreeMap<String,DeployedApplication>();
+    private final Map<String, DeployedApplication> deployedApps = new TreeMap<String, DeployedApplication>();
+
+    /**
+     * OpenEJB deployment loader instance
+     */
     private final DeploymentLoader deploymentLoader;
+
+    /**
+     * OpenEJB assembler instance
+     */
     private Assembler assembler;
+
+    /**
+     * OpenEJB container system
+     */
     private CoreContainerSystem containerSystem;
 
+    /**
+     * Creates a new web application builder
+     * instance.
+     */
     public TomcatWebAppBuilder() {
         StandardServer standardServer = (StandardServer) ServerFactory.getServer();
         globalListenerSupport = new GlobalListenerSupport(standardServer, this);
 
+        //Getting host config listeners
         for (Service service : standardServer.findServices()) {
             if (service.getContainer() instanceof Engine) {
                 Engine engine = (Engine) service.getContainer();
@@ -140,25 +189,23 @@ public class TomcatWebAppBuilder impleme
             }
         }
 
-        // MBeanServer mbeanServer;
-        // List mbeanServers = MBeanServerFactory.findMBeanServer(null);
-        // if (mbeanServers.size() > 0) {
-        //     mbeanServer = (MBeanServer) mbeanServers.get(0);
-        // } else {
-        //     mbeanServer = MBeanServerFactory.createMBeanServer();
-        // }
-
         configurationFactory = new ConfigurationFactory();
         deploymentLoader = new DeploymentLoader();
         assembler = (Assembler) SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
         containerSystem = (CoreContainerSystem) SystemInstance.get().getComponent(ContainerSystem.class);
     }
 
+    /**
+     * Start operation.
+     */
     public void start() {
         globalListenerSupport.start();
 
     }
 
+    /**
+     * Stop operation.
+     */
     public void stop() {
         globalListenerSupport.stop();
     }
@@ -167,6 +214,9 @@ public class TomcatWebAppBuilder impleme
     // OpenEJB WebAppBuilder
     //
 
+    /**
+     * {@inheritDoc}
+     */
     public void deployWebApps(AppInfo appInfo, ClassLoader classLoader) throws Exception {
         for (WebAppInfo webApp : appInfo.webApps) {
             if (getContextInfo(webApp) == null) {
@@ -199,6 +249,9 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void undeployWebApps(AppInfo appInfo) throws Exception {
         for (WebAppInfo webApp : appInfo.webApps) {
             ContextInfo contextInfo = getContextInfo(webApp);
@@ -212,6 +265,12 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+
+    /**
+     * Deletes given directory.
+     *
+     * @param dir directory
+     */
     private void deleteDir(File dir) {
         if (dir == null) return;
         if (dir.isFile()) return;
@@ -225,60 +284,62 @@ public class TomcatWebAppBuilder impleme
         dir.delete();
     }
 
-    //
-    // Tomcat Listener
-    //
-
+    /**
+     * {@inheritDoc}
+     */
     public void init(StandardContext standardContext) {
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void beforeStart(StandardContext standardContext) {
     }
 
+    /**
+     * {@inheritDoc}
+     */
     // context class loader is now defined, but no classes should have been loaded
+    @SuppressWarnings("unchecked")
     public void start(StandardContext standardContext) {
         if (standardContext.getServletContext().getAttribute(IGNORE_CONTEXT) != null) return;
-        
-        boolean isOwb = standardContext.getServletContext().getAttribute(OWBLifecycleListener.IGNORE_OWB_LIBRARY) != null ? true : false; 
-        
-        if (isOwb)
-        {            
+
+        boolean isOwb = standardContext.getServletContext().getAttribute(OWBLifecycleListener.IGNORE_OWB_LIBRARY) != null ? true : false;
+
+        if (isOwb) {
             //Adding OpenwebBeans Implementation JAR
-            Loader loader = standardContext.getLoader();     
+            Loader loader = standardContext.getLoader();
             List<File> files = findOpenWebBeansJar("openwebbeans");
-            for(File file : files)
-            {
-                loader.addRepository(file.toURI().toString());   
+            for (File file : files) {
+                loader.addRepository(file.toURI().toString());
             }
-            
+
             ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
-            try
-            {
+            try {
                 Thread.currentThread().setContextClassLoader(standardContext.getLoader().getClassLoader());
-                
+
                 Class<?> owbConfig = standardContext.getLoader().getClassLoader().loadClass("org.apache.webbeans.config.OpenWebBeansConfiguration");
-                Method setProperty = owbConfig.getMethod("setProperty", new Class[]{String.class,Object.class});
+                Method setProperty = owbConfig.getMethod("setProperty", new Class[]{String.class, Object.class});
                 Method getInstance = owbConfig.getMethod("getInstance", new Class[]{});
                 Object ocjConfig = getInstance.invoke(null, new Object[]{});
-                setProperty.invoke(ocjConfig, new Object[]{"org.apache.webbeans.spi.deployer.useEjbMetaDataDiscoveryService","true"});
-                setProperty.invoke(ocjConfig, new Object[]{"org.apache.webbeans.spi.ResourceInjectionService","org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService"});
+                setProperty.invoke(ocjConfig, new Object[]{"org.apache.webbeans.spi.deployer.useEjbMetaDataDiscoveryService", "true"});
+                setProperty.invoke(ocjConfig, new Object[]{"org.apache.webbeans.spi.ResourceInjectionService", "org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService"});
             }
-            catch (Exception e)
-            {
+            catch (Exception e) {
                 e.printStackTrace();
             }
-            finally
-            {
+            finally {
                 Thread.currentThread().setContextClassLoader(oldCl);
             }
         }
-        
+
         Assembler assembler = getAssembler();
         if (assembler == null) {
             logger.warning("OpenEJB has not been initialized so war will not be scanned for nested modules " + standardContext.getPath());
             return;
         }
 
+        //Look for context info, maybe context is already scanned
         ContextInfo contextInfo = getContextInfo(standardContext);
         if (contextInfo == null) {
             AppModule appModule = loadApplication(standardContext);
@@ -289,65 +350,57 @@ public class TomcatWebAppBuilder impleme
                     contextInfo.appInfo = appInfo;
 
                     assembler.createApplication(contextInfo.appInfo, standardContext.getLoader().getClassLoader());
-                    
-                    if(isOwb)
-                    {
+
+                    if (isOwb) {
                         ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
                         List<EjbJarInfo> ejbJarInfos = appInfo.ejbJars;
-                        for(EjbJarInfo jarInfo : ejbJarInfos)
-                        {
+                        for (EjbJarInfo jarInfo : ejbJarInfos) {
                             List<EnterpriseBeanInfo> ebInfos = jarInfo.enterpriseBeans;
-                            for(EnterpriseBeanInfo ebInfo : ebInfos)
-                            { 
-                                CoreDeploymentInfo info = (CoreDeploymentInfo)containerSystem.getDeploymentInfo(ebInfo.ejbDeploymentId);                                
-                                
+                            for (EnterpriseBeanInfo ebInfo : ebInfos) {
+                                CoreDeploymentInfo info = (CoreDeploymentInfo) containerSystem.getDeploymentInfo(ebInfo.ejbDeploymentId);
+
                                 Class<?> interceptorClazz = standardContext.getLoader().getClassLoader().loadClass("org.apache.webbeans.ejb.common.interceptor.OpenWebBeansEjbInterceptor");
                                 InterceptorData interceptorData = new InterceptorData(interceptorClazz);
                                 interceptorData.getAroundInvoke().add(interceptorClazz.getMethod("callToOwbInterceptors", new Class[]{InvocationContext.class}));
                                 interceptorData.getPostConstruct().add(interceptorClazz.getMethod("afterConstruct", new Class[]{InvocationContext.class}));
                                 interceptorData.getPreDestroy().add(interceptorClazz.getMethod("preDestroy", new Class[]{InvocationContext.class}));
-                                
+
                                 info.getCallbackInterceptors().add(interceptorData);
-                                                                
+
                                 List<InterceptorData> datas = new ArrayList<InterceptorData>();
-                                for(InterceptorData data : info.getCallbackInterceptors())
-                                {
+                                for (InterceptorData data : info.getCallbackInterceptors()) {
                                     datas.add(data);
                                 }
-                                
+
                                 info.setCallbackInterceptors(datas);
-                                
+
                                 //Adding AroundInvokes
                                 InterceptorData interceptorData2 = new InterceptorData(interceptorClazz);
                                 interceptorData2.getAroundInvoke().add(interceptorClazz.getMethod("callToOwbInterceptors", new Class[]{InvocationContext.class}));
-                                
+
                                 List<Class> interfaces = info.getBusinessLocalInterfaces();
-                                for(Class cls : interfaces)
-                                {
+                                for (Class cls : interfaces) {
                                     Method[] methods = cls.getMethods();
-                                    for(Method method : methods)
-                                    {                      
+                                    for (Method method : methods) {
                                         Method beanMethod = info.getBeanClass().getMethod(method.getName(), method.getParameterTypes());
                                         List<InterceptorData> aroundInvokes = new ArrayList<InterceptorData>();
                                         List<InterceptorData> oldAroundInvokes = info.getMethodInterceptors(beanMethod);
-                                        if(oldAroundInvokes != null && !oldAroundInvokes.isEmpty())
-                                        {
-                                            for(InterceptorData aroundInvoked : oldAroundInvokes)
-                                            {
+                                        if (oldAroundInvokes != null && !oldAroundInvokes.isEmpty()) {
+                                            for (InterceptorData aroundInvoked : oldAroundInvokes) {
                                                 aroundInvokes.add(aroundInvoked);
                                             }
                                         }
-                                        
+
                                         aroundInvokes.add(interceptorData2);
-                                        
+
                                         //Adding to last interceptor
                                         info.setMethodInterceptors(beanMethod, aroundInvokes);
                                     }
                                 }
-                                
+
                             }
-                        }                        
-                    }                                        
+                        }
+                    }
                     // todo add watched resources to context
                 } catch (Exception e) {
                     logger.error("Unable to deploy collapsed ear in war " + standardContext.getPath() + ": Exception: " + e.getMessage(), e);
@@ -390,12 +443,15 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void afterStart(StandardContext standardContext) {
         if (standardContext.getServletContext().getAttribute(IGNORE_CONTEXT) != null) return;
 
         // if appInfo is null this is a failed deployment... just ignore
         ContextInfo contextInfo = getContextInfo(standardContext);
-        if (contextInfo.appInfo == null) return;
+        if (contextInfo != null && contextInfo.appInfo == null) return;
 
         WsService wsService = SystemInstance.get().getComponent(WsService.class);
         if (wsService != null) {
@@ -468,7 +524,7 @@ public class TomcatWebAppBuilder impleme
         }
         ContextAccessController.setReadOnly(listenerName);
 
-        if (!TomcatVersion.hasAnnotationProcessingSupport()){
+        if (!TomcatVersion.hasAnnotationProcessingSupport()) {
             try {
                 Context compEnv = (Context) ContextBindings.getClassLoader().lookup("comp/env");
 
@@ -489,12 +545,23 @@ public class TomcatWebAppBuilder impleme
         standardContext.getPipeline().addValve(openejbValve);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void beforeStop(StandardContext standardContext) {
+        //No operation
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void stop(StandardContext standardContext) {
+        //No operation
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void afterStop(StandardContext standardContext) {
         if (standardContext.getServletContext().getAttribute(IGNORE_CONTEXT) != null) return;
 
@@ -509,9 +576,16 @@ public class TomcatWebAppBuilder impleme
         removeContextInfo(standardContext);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void destroy(StandardContext standardContext) {
+        //No operation
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void afterStop(StandardServer standardServer) {
         // clean ear based webapps after shutdown
         for (ContextInfo contextInfo : infos.values()) {
@@ -527,6 +601,9 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void checkHost(StandardHost standardHost) {
         if (standardHost.getAutoDeploy()) {
             // Undeploy any modified application
@@ -549,7 +626,8 @@ public class TomcatWebAppBuilder impleme
             for (File file : files) {
                 String name = file.getName();
                 // ignore war files
-                if (name.toLowerCase().endsWith(".war") || name.equals("ROOT") || name.equalsIgnoreCase("META-INF") || name.equalsIgnoreCase("WEB-INF")) continue;
+                if (name.toLowerCase().endsWith(".war") || name.equals("ROOT") || name.equalsIgnoreCase("META-INF") || name.equalsIgnoreCase("WEB-INF"))
+                    continue;
                 // ignore unpacked web apps
                 if (file.isDirectory() && new File(file, "WEB-INF").exists()) continue;
                 // ignore unpacked apps where packed version is present (packed version is owner)
@@ -607,6 +685,14 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    /**
+     * Returns true if given application is deployed
+     * false otherwise.
+     *
+     * @param file         web application file
+     * @param standardHost host
+     * @return true if given application is deployed
+     */
     private boolean isDeployed(File file, StandardHost standardHost) {
         if (deployedApps.containsKey(file.getAbsolutePath())) {
             return true;
@@ -621,22 +707,42 @@ public class TomcatWebAppBuilder impleme
         return file.isFile() && standardHost.findChild(name) != null;
     }
 
+    /**
+     * Returns true if given context is root web appliction
+     * false otherwise.
+     *
+     * @param standardContext tomcat context
+     * @return true if given context is root web appliction
+     */
     private boolean isRootApplication(StandardContext standardContext) {
-	return "".equals(standardContext.getPath());
+        return "".equals(standardContext.getPath());
     }
 
+    /**
+     * Returns application base of the given host.
+     *
+     * @param standardHost tomcat host
+     * @return application base of the given host
+     */
     protected File appBase(StandardHost standardHost) {
         File file = new File(standardHost.getAppBase());
         if (!file.isAbsolute()) {
             file = new File(System.getProperty("catalina.base"), standardHost.getAppBase());
         }
         try {
-            file= file.getCanonicalFile();
+            file = file.getCanonicalFile();
         } catch (IOException e) {
         }
         return file;
     }
 
+    /**
+     * Creates an openejb {@link AppModule} instance
+     * from given tomcat context.
+     *
+     * @param standardContext tomcat context instance
+     * @return a openejb application module
+     */
     private AppModule loadApplication(StandardContext standardContext) {
         // create the web module
         WebModule webModule = createWebModule(standardContext);
@@ -665,9 +771,9 @@ public class TomcatWebAppBuilder impleme
 
                     logger.info("Found ejb module " + moduleType.getSimpleName() + " in war " + standardContext.getPath());
 
-                    
+
                     // create the ejb module and set its moduleId to the webapp context root name
-                    EjbModule ejbModule = new EjbModule(webModule.getClassLoader(), getEjbModuleId(standardContext),file.getAbsolutePath(), null, null);
+                    EjbModule ejbModule = new EjbModule(webModule.getClassLoader(), getEjbModuleId(standardContext), file.getAbsolutePath(), null, null);
                     ejbModule.setClientModule(new ClientModule(null, ejbModule.getClassLoader(), ejbModule.getJarLocation(), null, ejbModule.getModuleId()));
 
                     // EJB deployment descriptors
@@ -702,17 +808,27 @@ public class TomcatWebAppBuilder impleme
 
         return appModule;
     }
+
     /**
      * Strips off the / from the context root and returns the remaining String
+     *
      * @param standardContext
      * @return the name of the context root for the webapp
      */
     private String getEjbModuleId(StandardContext standardContext) {
-		String ejbModuleId = standardContext.getName();
-		if(ejbModuleId.startsWith("/"))
-			ejbModuleId = ejbModuleId.substring(1);
-		return ejbModuleId;
-	}
+        String ejbModuleId = standardContext.getName();
+        if (ejbModuleId.startsWith("/"))
+            ejbModuleId = ejbModuleId.substring(1);
+        return ejbModuleId;
+    }
+
+    /**
+     * Creates a new {@link WebModule} instance from given
+     * tomcat context instance.
+     *
+     * @param standardContext tomcat context instance
+     * @return a openejb web module
+     */
     private WebModule createWebModule(StandardContext standardContext) {
         // todo replace this code with DeploymentLoader
         ServletContext servletContext = standardContext.getServletContext();
@@ -737,12 +853,12 @@ public class TomcatWebAppBuilder impleme
         webModule.setHost(standardContext.getHostname());
         // add faces configurations
         try {
-			addFacesConfigs(webModule);
-		} catch (OpenEJBException e1) {
-			logger.error("Unable to add faces config modules in " + standardContext.getPath() + ": Exception: " + e1.getMessage(), e1);
-			// TODO :kmalhi:: Remove stack trace after testing
-			e1.printStackTrace();
-		}
+            addFacesConfigs(webModule);
+        } catch (OpenEJBException e1) {
+            logger.error("Unable to add faces config modules in " + standardContext.getPath() + ": Exception: " + e1.getMessage(), e1);
+            // TODO :kmalhi:: Remove stack trace after testing
+            e1.printStackTrace();
+        }
         // Add all Tomcat env entries to context so they can be overriden by the env.properties file
         NamingResources naming = standardContext.getNamingResources();
         for (ContextEnvironment environment : naming.findEnvironments()) {
@@ -786,19 +902,21 @@ public class TomcatWebAppBuilder impleme
 
         return webModule;
     }
+
     /**
-     * Finds all faces configuration files and stores them in the WebModule
-     * @param webModule
-     * @throws OpenEJBException
+     * Finds all faces configuration files and stores them in the WebModule.
+     *
+     * @param webModule web module
+     * @throws OpenEJBException for exception
      */
     private static void addFacesConfigs(WebModule webModule) throws OpenEJBException {
-    	//*************************IMPORTANT*******************************************
-    	// This method is an exact copy of org.apache.openejb.config.DeploymentLoader.addFacesConfigs(WebModule webModule)
-    	// Any changes to this method here would most probably need to also be reflected in the DeploymentLoader.addFacesConfigs method.
-    	//*************************IMPORTANT*******************************************
+        //*************************IMPORTANT*******************************************
+        // This method is an exact copy of org.apache.openejb.config.DeploymentLoader.addFacesConfigs(WebModule webModule)
+        // Any changes to this method here would most probably need to also be reflected in the DeploymentLoader.addFacesConfigs method.
+        //*************************IMPORTANT*******************************************
         // TODO : kmalhi :: Add support to scrape META-INF/faces-config.xml in jar files
-    	// look at section 10.4.2 of the JSF v1.2 spec, bullet 1 for details
-    	Set<URL> facesConfigLocations = new HashSet<URL>();
+        // look at section 10.4.2 of the JSF v1.2 spec, bullet 1 for details
+        Set<URL> facesConfigLocations = new HashSet<URL>();
 
         // web.xml contains faces config locations in the context parameter javax.faces.CONFIG_FILES
         File warFile = new File(webModule.getJarLocation());
@@ -806,56 +924,56 @@ public class TomcatWebAppBuilder impleme
         if (webApp != null) {
             List<ParamValue> contextParam = webApp.getContextParam();
             for (ParamValue value : contextParam) {
-				boolean foundContextParam = value.getParamName().trim().equals("javax.faces.CONFIG_FILES");
-				if(foundContextParam){
-					// the value is a comma separated list of config files
-					String commaDelimitedListOfFiles = value.getParamValue().trim();
-					String[] configFiles = commaDelimitedListOfFiles.split(",");
-					// trim any extra spaces in each file
-					String[] trimmedConfigFiles = new String[configFiles.length];
-					for (int i = 0; i < configFiles.length; i++) {
-						trimmedConfigFiles[i] = configFiles[i].trim();
-					}
-					// convert each file to a URL and add it to facesConfigLocations
-					for (String location : trimmedConfigFiles) {
-						if(!location.startsWith("/"))
-							logger.error("A faces configuration file should be context relative when specified in web.xml. Please fix the value of context parameter javax.faces.CONFIG_FILES for the file "+location);
-	                    try {
-	                        File file = new File(warFile, location).getCanonicalFile().getAbsoluteFile();
-	                        URL url = file.toURI().toURL();
-	                        facesConfigLocations.add(url);
-	                       
-	                    } catch (IOException e) {
-	                        logger.error("Faces configuration file location bad: " + location, e);
-	                    }						
-					}
-					break;
-				}
-			}
-        	
+                boolean foundContextParam = value.getParamName().trim().equals("javax.faces.CONFIG_FILES");
+                if (foundContextParam) {
+                    // the value is a comma separated list of config files
+                    String commaDelimitedListOfFiles = value.getParamValue().trim();
+                    String[] configFiles = commaDelimitedListOfFiles.split(",");
+                    // trim any extra spaces in each file
+                    String[] trimmedConfigFiles = new String[configFiles.length];
+                    for (int i = 0; i < configFiles.length; i++) {
+                        trimmedConfigFiles[i] = configFiles[i].trim();
+                    }
+                    // convert each file to a URL and add it to facesConfigLocations
+                    for (String location : trimmedConfigFiles) {
+                        if (!location.startsWith("/"))
+                            logger.error("A faces configuration file should be context relative when specified in web.xml. Please fix the value of context parameter javax.faces.CONFIG_FILES for the file " + location);
+                        try {
+                            File file = new File(warFile, location).getCanonicalFile().getAbsoluteFile();
+                            URL url = file.toURI().toURL();
+                            facesConfigLocations.add(url);
+
+                        } catch (IOException e) {
+                            logger.error("Faces configuration file location bad: " + location, e);
+                        }
+                    }
+                    break;
+                }
+            }
+
         }
 
         // Search for WEB-INF/faces-config.xml
-        File webInf = new File(warFile,"WEB-INF");
-        if(webInf.isDirectory()){
-        	File facesConfigFile = new File(webInf,"faces-config.xml");
-        	if(facesConfigFile.exists()){
-        		try {
-					facesConfigFile = facesConfigFile.getCanonicalFile().getAbsoluteFile();
-					URL url = facesConfigFile.toURI().toURL();
-					facesConfigLocations.add(url);
-				} catch (IOException e) {
-					// TODO: kmalhi:: Remove the printStackTrace after testing
-					e.printStackTrace();
-				}
-        	}
+        File webInf = new File(warFile, "WEB-INF");
+        if (webInf.isDirectory()) {
+            File facesConfigFile = new File(webInf, "faces-config.xml");
+            if (facesConfigFile.exists()) {
+                try {
+                    facesConfigFile = facesConfigFile.getCanonicalFile().getAbsoluteFile();
+                    URL url = facesConfigFile.toURI().toURL();
+                    facesConfigLocations.add(url);
+                } catch (IOException e) {
+                    // TODO: kmalhi:: Remove the printStackTrace after testing
+                    e.printStackTrace();
+                }
+            }
         }
         // load the faces configuration files
         // TODO:kmalhi:: Its good to have separate FacesConfig objects for multiple configuration files, but what if there is a conflict where the same
         // managebean is declared in two different files, which one wins? -- check the jsf spec, Hopefully JSF should be able to check for this and
         // flag an error and not allow the application to be deployed.
         for (URL location : facesConfigLocations) {
-           FacesConfig facesConfig = ReadDescriptors.readFacesConfig(location);
+            FacesConfig facesConfig = ReadDescriptors.readFacesConfig(location);
             webModule.getFacesConfigs().add(facesConfig);
             if ("file".equals(location.getProtocol())) {
                 webModule.getWatchedResources().add(URLs.toFilePath(location));
@@ -863,6 +981,12 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    /**
+     * Remove jndi references from related info map.
+     *
+     * @param webApp web application instance
+     * @param name   jndi reference name
+     */
     private void removeRef(WebApp webApp, String name) {
         webApp.getEnvEntryMap().remove(name);
         webApp.getEjbRefMap().remove(name);
@@ -874,6 +998,12 @@ public class TomcatWebAppBuilder impleme
         webApp.getResourceEnvRefMap().remove(name);
     }
 
+    /**
+     * Gets urls in a web application.
+     *
+     * @param standardContext context
+     * @return list of url
+     */
     private List<URL> getUrls(StandardContext standardContext) {
         List<URL> urls = null;
         try {
@@ -887,17 +1017,26 @@ public class TomcatWebAppBuilder impleme
         return urls;
     }
 
-    //
-    // helper methods
-    //
-
+    /**
+     * Binds given object into given component context.
+     *
+     * @param comp  context
+     * @param name  name of the binding
+     * @param value binded object
+     */
     private void safeBind(Context comp, String name, Object value) {
         try {
             comp.bind(name, value);
         } catch (NamingException e) {
+            logger.error("Error in safeBind method", e);
         }
     }
 
+    /**
+     * Gets openejb assembler instance.
+     *
+     * @return assembler
+     */
     private Assembler getAssembler() {
         if (assembler == null) {
             assembler = (Assembler) SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
@@ -905,6 +1044,11 @@ public class TomcatWebAppBuilder impleme
         return assembler;
     }
 
+    /**
+     * Gets container system for openejb.
+     *
+     * @return openejb container system
+     */
     private CoreContainerSystem getContainerSystem() {
         if (containerSystem == null) {
             containerSystem = (CoreContainerSystem) SystemInstance.get().getComponent(ContainerSystem.class);
@@ -912,18 +1056,37 @@ public class TomcatWebAppBuilder impleme
         return containerSystem;
     }
 
+    /**
+     * Gets id of the context. Context id
+     * is host name + context root name.
+     *
+     * @param standardContext context instance
+     * @return id of the context
+     */
     private String getId(StandardContext standardContext) {
         String contextRoot = standardContext.getName();
         if (!contextRoot.startsWith("/")) contextRoot = "/" + contextRoot;
         return standardContext.getHostname() + contextRoot;
     }
 
+    /**
+     * Gets context info for given context.
+     *
+     * @param standardContext context
+     * @return context info
+     */
     private ContextInfo getContextInfo(StandardContext standardContext) {
         String id = getId(standardContext);
         ContextInfo contextInfo = infos.get(id);
         return contextInfo;
     }
 
+    /**
+     * Gets context info for given web app info.
+     *
+     * @param webAppInfo web application info
+     * @return context info
+     */
     private ContextInfo getContextInfo(WebAppInfo webAppInfo) {
         String host = webAppInfo.host;
         if (host == null) host = "localhost";
@@ -933,6 +1096,13 @@ public class TomcatWebAppBuilder impleme
         return contextInfo;
     }
 
+    /**
+     * Add new context info.
+     *
+     * @param host            host name
+     * @param standardContext context
+     * @return context info
+     */
     private ContextInfo addContextInfo(String host, StandardContext standardContext) {
         String contextRoot = standardContext.getName();
         if (!contextRoot.startsWith("/")) contextRoot = "/" + contextRoot;
@@ -945,6 +1115,11 @@ public class TomcatWebAppBuilder impleme
         return contextInfo;
     }
 
+    /**
+     * Removes context info from map.
+     *
+     * @param standardContext context
+     */
     private void removeContextInfo(StandardContext standardContext) {
         String id = getId(standardContext);
         infos.remove(id);
@@ -959,7 +1134,7 @@ public class TomcatWebAppBuilder impleme
 
     private static class DeployedApplication {
         private AppInfo appInfo;
-        private final Map<File,Long> watchedResource = new HashMap<File,Long>();
+        private final Map<File, Long> watchedResource = new HashMap<File, Long>();
 
         public DeployedApplication(File base, AppInfo appInfo) {
             this.appInfo = appInfo;
@@ -1002,10 +1177,11 @@ public class TomcatWebAppBuilder impleme
             return false;
         }
     }
-    
+
     /**
      * Gets path to jar file that has namePrefix
      * and in the openejb.war/lib location.
+     *
      * @param namePrefix prefix of the jar file
      * @return path to file
      */
@@ -1013,7 +1189,7 @@ public class TomcatWebAppBuilder impleme
         String openejbWarLocation = SystemInstance.get().getProperty("openejb.war");
         File openejbWar = new File(openejbWarLocation);
         File openEJBLibDir = new File(openejbWar, "openwebbeans");
-        
+
         List<File> files = new ArrayList<File>();
         if (openEJBLibDir == null) return null;