[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