You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/07/25 01:07:26 UTC
svn commit: r1613324 - in /tomee/tomee/trunk/tomee/tomee-catalina/src/main:
java/org/apache/tomee/catalina/ java/org/apache/tomee/catalina/websocket/
resources/META-INF/services/
Author: rmannibucau
Date: Thu Jul 24 23:07:26 2014
New Revision: 1613324
URL: http://svn.apache.org/r1613324
Log:
avoid hack since tomcat allows a ServiceLoader mecanism for websockets
Added:
tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/
tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/javax.websocket.server.ServerEndpointConfig$Configurator
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=1613324&r1=1613323&r2=1613324&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 Thu Jul 24 23:07:26 2014
@@ -278,11 +278,6 @@ public class TomcatWebAppBuilder impleme
final StandardServer standardServer = TomcatHelper.getServer();
globalListenerSupport = new GlobalListenerSupport(standardServer, this);
- // force tomcat to use our custom WebSocket ServerEndpointConfigurator
- forceEEServerEndpointConfigurator();
-
- // could search mbeans
-
//Getting host config listeners
hosts = new Hosts();
SystemInstance.get().setComponent(Hosts.class, hosts);
@@ -327,27 +322,6 @@ public class TomcatWebAppBuilder impleme
deploymentLoader = new DeploymentLoader();
}
- 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 Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass("javax.websocket.server.ServerEndpointConfig$Configurator");
- final Field f = clazz.getDeclaredField("defaultImpl");
- final boolean acc = f.isAccessible();
- f.setAccessible(true);
- try {
- 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);
- }
- }
-
private void manageCluster(final Cluster cluster) {
if (cluster == null || cluster instanceof SimpleTomEETcpCluster) {
return;
@@ -2435,4 +2409,8 @@ public class TomcatWebAppBuilder impleme
public Map<String, Realm> getRealms() {
return realms;
}
+
+ public Map<ClassLoader, InstanceManager> getInstanceManagers() {
+ return instanceManagers;
+ }
}
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=1613324&r1=1613323&r2=1613324&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 Thu Jul 24 23:07:26 2014
@@ -16,16 +16,18 @@
*/
package org.apache.tomee.catalina.websocket;
+import org.apache.openejb.loader.SystemInstance;
import org.apache.tomcat.InstanceManager;
import org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator;
+import org.apache.tomee.catalina.TomcatWebAppBuilder;
import java.util.Map;
public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpointConfigurator {
private final Map<ClassLoader, InstanceManager> instanceManagers;
- public JavaEEDefaultServerEnpointConfigurator(final Map<ClassLoader, InstanceManager> instanceManagers) {
- this.instanceManagers = instanceManagers;
+ public JavaEEDefaultServerEnpointConfigurator() {
+ this.instanceManagers = SystemInstance.get().getComponent(TomcatWebAppBuilder.class).getInstanceManagers();
}
@Override
Added: tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/javax.websocket.server.ServerEndpointConfig$Configurator
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/javax.websocket.server.ServerEndpointConfig%24Configurator?rev=1613324&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/javax.websocket.server.ServerEndpointConfig$Configurator (added)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/resources/META-INF/services/javax.websocket.server.ServerEndpointConfig$Configurator Thu Jul 24 23:07:26 2014
@@ -0,0 +1 @@
+org.apache.tomee.catalina.websocket.JavaEEDefaultServerEnpointConfigurator