[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-cvs
Subject:    svn commit: r1536594 - in /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/cat
From:       rmannibucau () apache ! org
Date:       2013-10-29 6:22:47
Message-ID: 20131029062247.F1A5823888E7 () eris ! apache ! org
[Download RAW message or body]

Author: rmannibucau
Date: Tue Oct 29 06:22:47 2013
New Revision: 1536594

URL: http://svn.apache.org/r1536594
Log:
no need of websockets for tomee embedded by default + prefixing tomee realm \
objectname to avoid conflicts

Modified:
    tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
  tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java


Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
                
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java \
/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1536594&r1=1536593&r2=1536594&view=diff
 ==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java \
                (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java \
Tue Oct 29 06:22:47 2013 @@ -49,6 +49,7 @@ import org.apache.catalina.ha.CatalinaCl
 import org.apache.catalina.ha.tcp.SimpleTcpCluster;
 import org.apache.catalina.loader.VirtualWebappLoader;
 import org.apache.catalina.loader.WebappLoader;
+import org.apache.catalina.realm.RealmBase;
 import org.apache.catalina.session.StandardManager;
 import org.apache.catalina.startup.Constants;
 import org.apache.catalina.startup.ContextConfig;
@@ -141,7 +142,6 @@ import javax.servlet.jsp.JspFactory;
 import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 import javax.transaction.TransactionSynchronizationRegistry;
-import javax.websocket.server.ServerEndpointConfig;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -160,6 +160,7 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 
@@ -206,6 +207,8 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    private final Map<ClassLoader, InstanceManager> instanceManagers = new \
ConcurrentHashMap<ClassLoader, InstanceManager>(); +
     /**
      * Context information for web applications
      */
@@ -315,19 +318,22 @@ public class TomcatWebAppBuilder impleme
         deploymentLoader = new DeploymentLoader();
     }
 
-    private static void forceEEServerEndpointConfigurator() {
+    private void forceEEServerEndpointConfigurator() {
         // by reflection cause
         // 1- tomcat algorithm uses ServiceLoader.next() so no real way to ensure it \
                is our META-INF/services/...
         // 2- avoids getResources which can be slow depending the server config
         try {
-            final Field f = \
ServerEndpointConfig.Configurator.class.getDeclaredField("defaultImpl"); +            \
final Class<?> clazz = \
Thread.currentThread().getContextClassLoader().loadClass("javax.websocket.server.ServerEndpointConfig$Configurator");
 +            final Field f = clazz.getDeclaredField("defaultImpl");
             boolean acc = f.isAccessible();
             f.setAccessible(true);
             try {
-                f.set(null, new JavaEEDefaultServerEnpointConfigurator());
+                f.set(null, new \
JavaEEDefaultServerEnpointConfigurator(instanceManagers));  } finally {
                 f.setAccessible(acc);
             }
+        } catch (final ClassNotFoundException cnfe) {
+            // no-op
         } catch (final Exception e) {
             logger.warning("Can't set TomEE ServerEndpointConfig$Configurator", e);
         }
@@ -372,6 +378,9 @@ public class TomcatWebAppBuilder impleme
 
     protected Realm tomeeRealm(final Realm realm) {
         final TomEERealm trealm = new TomEERealm();
+        if (RealmBase.class.isInstance(realm)) {
+            trealm.setRealmPath("/tomee/" + \
RealmBase.class.cast(realm).getRealmPath()); +        }
         trealm.addRealm(realm);
         return trealm;
     }
@@ -1323,7 +1332,7 @@ public class TomcatWebAppBuilder impleme
 
                 final JavaeeInstanceManager instanceManager = new \
JavaeeInstanceManager(webContext, standardContext);  \
                standardContext.setInstanceManager(instanceManager);
-                JavaEEDefaultServerEnpointConfigurator.registerInstanceManager(classLoader, \
instanceManager); +                instanceManagers.put(classLoader, \
                instanceManager);
                 standardContext.getServletContext().setAttribute(InstanceManager.class.getName(), \
standardContext.getInstanceManager());  
             } catch (Exception e) {
@@ -1832,8 +1841,11 @@ public class TomcatWebAppBuilder impleme
                 logger.error("error stopping classloader of webapp " + \
standardContext.getName(), e);  }
             ClassLoaderUtil.cleanOpenJPACache(old);
-            JavaEEDefaultServerEnpointConfigurator.unregisterInstanceManager(old);
+            instanceManagers.remove(old);
+        } else if (standardContext.getLoader() != null && \
standardContext.getLoader().getClassLoader() != null) { +            \
instanceManagers.remove(standardContext.getLoader().getClassLoader());  }
+
         if (contextInfo != null && (contextInfo.appInfo == null || \
contextInfo.appInfo.webAppAlone)) {  removeContextInfo(standardContext);
         }

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
                
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java \
/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java?rev=1536594&r1=1536593&r2=1536594&view=diff
 ==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java \
                (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java \
Tue Oct 29 06:22:47 2013 @@ -20,14 +20,17 @@ import org.apache.tomcat.InstanceManager
 import org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator;
 
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 
 public class JavaEEDefaultServerEnpointConfigurator extends \
                DefaultServerEndpointConfigurator {
-    private static final Map<ClassLoader, InstanceManager> INSTANCE_MANAGERS = new \
ConcurrentHashMap<ClassLoader, InstanceManager>(); +    private final \
Map<ClassLoader, InstanceManager> instanceManagers; +
+    public JavaEEDefaultServerEnpointConfigurator(final Map<ClassLoader, \
InstanceManager> instanceManagers) { +        this.instanceManagers = \
instanceManagers; +    }
 
     @Override
     public <T> T getEndpointInstance(final Class<T> clazz) throws \
                InstantiationException {
-        final InstanceManager instanceManager = \
INSTANCE_MANAGERS.get(clazz.getClassLoader()); +        final InstanceManager \
instanceManager = instanceManagers.get(clazz.getClassLoader());  if (instanceManager \
== null) {  return super.getEndpointInstance(clazz);
         }
@@ -41,12 +44,4 @@ public class JavaEEDefaultServerEnpointC
             throw new InstantiationException(e.getMessage());
         }
     }
-
-    public static void registerInstanceManager(final ClassLoader loader, final \
                InstanceManager manager) {
-        INSTANCE_MANAGERS.put(loader, manager);
-    }
-
-    public static void unregisterInstanceManager(final ClassLoader loader) {
-        INSTANCE_MANAGERS.remove(loader);
-    }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic