tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rmannibu...@apache.org
Subject svn commit: r1502134 - in /tomee/tomee/trunk/server/openejb-hessian: ./ src/main/java/org/apache/openejb/cdi/api/ src/main/java/org/apache/openejb/cdi/internal/ src/main/java/org/apache/openejb/client/hessian/ src/main/java/org/apache/openejb/server/he...
Date Thu, 11 Jul 2013 07:18:14 GMT
Author: rmannibucau
Date: Thu Jul 11 07:18:13 2013
New Revision: 1502134

URL: http://svn.apache.org/r1502134
Log:
TOMEE-1000 openejb-hessian module - using reflection to potentially let hessian be provided
in the app

Modified:
    tomee/tomee/trunk/server/openejb-hessian/pom.xml
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/api/Hessian.java
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/internal/HessianExtension.java
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/client/hessian/HessianInitialContextFactory.java
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianServer.java
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
    tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/TomcatHessianRegistry.java

Modified: tomee/tomee/trunk/server/openejb-hessian/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/pom.xml?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/pom.xml (original)
+++ tomee/tomee/trunk/server/openejb-hessian/pom.xml Thu Jul 11 07:18:13 2013
@@ -55,6 +55,7 @@ limitations under the License.
       <groupId>com.caucho</groupId>
       <artifactId>hessian</artifactId>
       <version>4.0.7</version>
+      <scope>provided</scope>
     </dependency>
   </dependencies>
 </project>

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/api/Hessian.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/api/Hessian.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/api/Hessian.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/api/Hessian.java
Thu Jul 11 07:18:13 2013
@@ -28,5 +28,5 @@ import java.lang.annotation.Target;
 public @interface Hessian {
     String path() default "";
     boolean sendCollectionType() default true;
-    Class<? extends SerializerFactory> serializerFactory() default SerializerFactory.class;
+    Class<?> serializerFactory() default Object.class;
 }

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/internal/HessianExtension.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/internal/HessianExtension.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/internal/HessianExtension.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/cdi/internal/HessianExtension.java
Thu Jul 11 07:18:13 2013
@@ -89,9 +89,16 @@ public class HessianExtension implements
 
         for (final Deployment deployment : toDeploy) {
             final Hessian hessian = deployment.itf.getAnnotation(Hessian.class);
-            final HessianServer server = new HessianServer(deployment.bean.getBeanClass().getClassLoader());
+            final HessianServer server;
             try {
-                if (hessian != null && !hessian.serializerFactory().isInstance(server.getSerializerFactory()))
{
+                server = new HessianServer(deployment.bean.getBeanClass().getClassLoader());
+            } catch (final HessianServer.HessianIsMissingException e) {
+                LOGGER.info("Hessian is not available so openejb-hessian will not deploy
any service");
+                break;
+            }
+
+            try {
+                if (hessian != null && hessian.serializerFactory() != Object.class
&& !hessian.serializerFactory().isInstance(server.getSerializerFactory())) {
                     server.serializerFactory(hessian.serializerFactory().newInstance());
                 }
             } catch (final Exception e) {

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/client/hessian/HessianInitialContextFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/client/hessian/HessianInitialContextFactory.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/client/hessian/HessianInitialContextFactory.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/client/hessian/HessianInitialContextFactory.java
Thu Jul 11 07:18:13 2013
@@ -16,17 +16,18 @@
  */
 package org.apache.openejb.client.hessian;
 
-import com.caucho.hessian.client.HessianProxyFactory;
-import com.caucho.hessian.io.SerializerFactory;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.core.ivm.naming.ContextWrapper;
+import org.apache.openejb.util.reflection.Reflections;
 
 import javax.naming.Context;
 import javax.naming.Name;
 import javax.naming.NamingException;
 import javax.naming.spi.InitialContextFactory;
+import java.lang.reflect.Constructor;
 import java.util.Hashtable;
 
+// all is done by reflection to let the use provide hessian in the app
 public class HessianInitialContextFactory implements InitialContextFactory {
     public static final String API = "openejb.hessian.client.api";
     public static final String FORCE_SERIALIZABLE = "openejb.hessian.client.force-serializable";
@@ -35,6 +36,11 @@ public class HessianInitialContextFactor
     public static final String READ_TIMEOUT = "openejb.hessian.client.read-timeout";
     public static final String CONNECT_TIMEOUT = "openejb.hessian.client.connect-timeout";
 
+    private static final Class<?>[] BOOLEAN_PARAM = new Class<?>[]{boolean.class};
+    private static final Class<?>[] LONG_PARAM = new Class<?>[]{long.class};
+    private static final Class<?>[] STRING_PARAM = new Class<?>[]{String.class};
+    private static final Class<?>[] CREATE_PARAM = new Class<?>[]{Class.class,
String.class, ClassLoader.class};
+
     @Override
     public Context getInitialContext(final Hashtable<?, ?> environment) throws NamingException
{
         return new HessianContext(environment);
@@ -52,6 +58,8 @@ public class HessianInitialContextFactor
         private final boolean debug;
         private final int readTimeout;
         private final int connectTimeout;
+        private final Constructor<?> factoryConstructor;
+        private final Constructor<?> serializerConstructor;
 
         public HessianContext(final Hashtable<?, ?> environment) {
             super(null); // will lead to NPE if used but shouldn't be used in practise
@@ -86,6 +94,13 @@ public class HessianInitialContextFactor
             } else {
                 api = null;
             }
+
+            try {
+                factoryConstructor = loader.loadClass("com.caucho.hessian.client.HessianProxyFactory").getConstructor(ClassLoader.class);
+                serializerConstructor = loader.loadClass("com.caucho.hessian.io.SerializerFactory").getConstructor(ClassLoader.class);
+            } catch (final Exception e) {
+                throw new OpenEJBRuntimeException(e);
+            }
         }
 
         @Override
@@ -95,29 +110,40 @@ public class HessianInitialContextFactor
 
         @Override
         public Object lookup(final String name) throws NamingException {
-            final HessianProxyFactory clientFactory = new HessianProxyFactory(loader);
-            final SerializerFactory factory = new SerializerFactory(loader);
-            factory.setAllowNonSerializable(allowNonSerializable);
-            clientFactory.setSerializerFactory(factory);
-            if (user != null) {
-                clientFactory.setUser(user);
-                clientFactory.setPassword(password);
-            }
-            clientFactory.setChunkedPost(chunked);
-            clientFactory.setDebug(debug);
-            clientFactory.setReadTimeout(readTimeout);
-            clientFactory.setConnectTimeout(connectTimeout);
-
-            final String completeUrl = url + name;
             try {
-                if (api != null) { // just use it
-                    return clientFactory.create(api, completeUrl, loader);
+                final Object clientFactory = factoryConstructor.newInstance(loader);
+                final Object factory = serializerConstructor.newInstance(loader);
+                Reflections.invokeByReflection(factory, "setAllowNonSerializable", BOOLEAN_PARAM,
new Object[] { allowNonSerializable});
+                Reflections.invokeByReflection(clientFactory, "setSerializerFactory", new
Class<?>[]{ serializerConstructor.getDeclaringClass() }, new Object[]{factory});
+                if (user != null) {
+                    Reflections.invokeByReflection(clientFactory, "setUser", STRING_PARAM,
new Object[]{user});
+                    Reflections.invokeByReflection(clientFactory, "setPassword", STRING_PARAM,
new Object[]{password});
                 }
+                Reflections.invokeByReflection(clientFactory, "setChunkedPost", BOOLEAN_PARAM,
new Object[]{chunked});
+                Reflections.invokeByReflection(clientFactory, "setDebug", BOOLEAN_PARAM,
new Object[]{debug});
+                Reflections.invokeByReflection(clientFactory, "setReadTimeout", LONG_PARAM,
new Object[]{readTimeout});
+                Reflections.invokeByReflection(clientFactory, "setConnectTimeout", LONG_PARAM,
new Object[]{connectTimeout});
 
-                return clientFactory.create(completeUrl); // will do a remote call to get
the api
+                final String completeUrl = url + name;
+                try {
+                    if (api != null) { // just use it
+                        return Reflections.invokeByReflection(clientFactory, "create", CREATE_PARAM,
new Object[] { api, completeUrl, loader });
+                    }
+
+                    return Reflections.invokeByReflection(clientFactory, "create", STRING_PARAM,
new Object[]{completeUrl});
+                } catch (final Exception e) {
+                    throw new NamingException(e.getMessage());
+                }
             } catch (final Exception e) {
-                throw new NamingException(e.getMessage());
+                throw new OpenEJBRuntimeException(e);
             }
+
+
+        }
+
+        @Override
+        public Hashtable<?, ?> getEnvironment() throws NamingException {
+            return environment;
         }
     }
 }

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianServer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianServer.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianServer.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianServer.java
Thu Jul 11 07:18:13 2013
@@ -16,17 +16,8 @@
  */
 package org.apache.openejb.server.hessian;
 
-import com.caucho.hessian.io.AbstractHessianInput;
-import com.caucho.hessian.io.AbstractHessianOutput;
-import com.caucho.hessian.io.Hessian2Input;
-import com.caucho.hessian.io.Hessian2Output;
-import com.caucho.hessian.io.HessianDebugInputStream;
-import com.caucho.hessian.io.HessianDebugOutputStream;
-import com.caucho.hessian.io.HessianFactory;
-import com.caucho.hessian.io.HessianInput;
-import com.caucho.hessian.io.HessianOutput;
-import com.caucho.hessian.io.SerializerFactory;
-import com.caucho.hessian.server.HessianSkeleton;
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.util.reflection.Reflections;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
@@ -35,29 +26,39 @@ import java.io.OutputStream;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+// done by relfection to let hessian be in the app
 public class HessianServer {
     public static final String CONTENT_TYPE_HESSIAN = "application/x-hessian";
 
+    private static final Class<?>[] BOOLEAN_PARAM = new Class<?>[]{ boolean.class
};
+    private static final Object[] TRUE_PARAM = new Object[]{ true };
+
     private final ClassLoader loader;
+    private final Class<?> serializerFactoryClass;
 
-    private SerializerFactory serializerFactory;
-    private HessianSkeleton skeleton;
+    private Object serializerFactory;
+    private Object skeleton;
     private Logger debugLogger = null;
 
-    public HessianServer(final ClassLoader classLoader) {
+    public HessianServer(final ClassLoader classLoader) throws HessianIsMissingException
{
         this.loader = classLoader;
 
-        serializerFactory = new SerializerFactory(loader);
-        serializerFactory.setAllowNonSerializable(true);
+        try {
+            serializerFactoryClass = classLoader.loadClass("com.caucho.hessian.io.SerializerFactory");
+            serializerFactory = serializerFactoryClass.getConstructor(ClassLoader.class).newInstance(loader);
+        } catch (final Exception e) {
+            throw new HessianIsMissingException(e);
+        }
+        Reflections.invokeByReflection(serializerFactory, "setAllowNonSerializable", BOOLEAN_PARAM,
TRUE_PARAM);
     }
 
-    public HessianServer serializerFactory(final SerializerFactory serializerFactory) {
-        this.serializerFactory = (serializerFactory != null ? serializerFactory : new SerializerFactory(loader));
+    public HessianServer serializerFactory(final Object serializerFactory) {
+        this.serializerFactory = serializerFactory;
         return this;
     }
 
     public HessianServer sendCollectionType(final boolean sendCollectionType) {
-        this.serializerFactory.setSendCollectionType(sendCollectionType);
+        Reflections.invokeByReflection(serializerFactory, "setSendCollectionType", BOOLEAN_PARAM,
new Object[]{ sendCollectionType });
         return this;
     }
 
@@ -67,11 +68,15 @@ public class HessianServer {
     }
 
     public HessianServer createSkeleton(final Object instance, final Class<?> itf)
{
-        skeleton = new HessianSkeleton(instance, itf);
+        try {
+            skeleton = loader.loadClass("com.caucho.hessian.server.HessianSkeleton").getConstructor(Object.class,
Class.class).newInstance(instance, itf);
+        } catch (final Exception e) {
+            throw new OpenEJBRuntimeException(e);
+        }
         return this;
     }
 
-    public SerializerFactory getSerializerFactory() {
+    public Object getSerializerFactory() {
         return serializerFactory;
     }
 
@@ -80,12 +85,11 @@ public class HessianServer {
         OutputStream osToUse = outputStream;
 
         if (debugLogger != null && debugLogger.isLoggable(Level.FINE)) {
-            final HessianDebugInputStream dis = new HessianDebugInputStream(inputStream,
debugLogger, Level.FINE);
-            dis.startTop2();
-            final HessianDebugOutputStream dos = new HessianDebugOutputStream(outputStream,
debugLogger, Level.FINE);
-            dos.startTop2();
-            isToUse = dis;
-            osToUse = dos;
+            isToUse = InputStream.class.cast(loader.loadClass("com.caucho.hessian.io.HessianDebugInputStream").getConstructor(InputStream.class,
Logger.class, Level.class).newInstance(inputStream, debugLogger, Level.FINE));
+            Reflections.invokeByReflection(isToUse, "startTop2", new Class<?>[0], null);
+
+            osToUse = OutputStream.class.cast(loader.loadClass("com.caucho.hessian.io.HessianDebugOutputStream").getConstructor(OutputStream.class,
Logger.class, Level.class).newInstance(outputStream, debugLogger, Level.FINE));
+            Reflections.invokeByReflection(osToUse, "startTop2", new Class<?>[0], null);
         }
 
         if (!isToUse.markSupported()) {
@@ -97,56 +101,55 @@ public class HessianServer {
         int major;
         int minor;
 
-        AbstractHessianInput in;
-        AbstractHessianOutput out;
+        Object in;
+        Object out;
 
-        if (code == 'H') { // Hessian 2.0 stream
+        if (code == 'H' || code == 'C') { // Hessian 2.0 stream
             major = isToUse.read();
             minor = isToUse.read();
             if (major != 0x02) {
                 throw new IOException("Version " + major + "." + minor + " is not understood");
             }
-            in = new Hessian2Input(isToUse);
-            out = new Hessian2Output(osToUse);
-            in.readCall();
-        } else if (code == 'C') { // Hessian 2.0 call... for some reason not handled in HessianServlet!
-            isToUse.reset();
-            in = new Hessian2Input(isToUse);
-            out = new Hessian2Output(osToUse);
-            in.readCall();
+            in = loader.loadClass("com.caucho.hessian.io.Hessian2Input").getConstructor(InputStream.class).newInstance(isToUse);
+            out = loader.loadClass("com.caucho.hessian.io.Hessian2Output").getConstructor(OutputStream.class).newInstance(osToUse);
+            Reflections.invokeByReflection(in, "readCall", new Class<?>[0], null);
         } else if (code == 'c') { // Hessian 1.0 call
             major = isToUse.read();
             minor = isToUse.read();
-            in = new HessianInput(isToUse);
+            in = loader.loadClass("com.caucho.hessian.io.HessianInput").getConstructor(InputStream.class).newInstance(isToUse);
             if (major >= 2) {
-                out = new Hessian2Output(osToUse);
+                out = loader.loadClass("com.caucho.hessian.io.Hessian2Output").getConstructor(OutputStream.class).newInstance(osToUse);
             } else {
-                out = new HessianOutput(osToUse);
+                out = loader.loadClass("com.caucho.hessian.io.HessianOutput").getConstructor(OutputStream.class).newInstance(osToUse);
             }
         } else {
             throw new IOException("Expected 'H'/'C' (Hessian 2.0) or 'c' (Hessian 1.0) in
hessian input at " + code);
         }
 
-        if (serializerFactory != null) {
-            in.setSerializerFactory(serializerFactory);
-            out.setSerializerFactory(serializerFactory);
-        }
+        Reflections.invokeByReflection(in, "setSerializerFactory", new Class<?>[] {
serializerFactoryClass }, new Object[] { serializerFactory });
+        Reflections.invokeByReflection(out, "setSerializerFactory", new Class<?>[]
{ serializerFactoryClass }, new Object[] { serializerFactory });
 
         try {
-            skeleton.invoke(in, out);
+            Reflections.invokeByReflection(skeleton, "invoke", new Class<?>[] { loader.loadClass("com.caucho.hessian.io.AbstractHessianInput"),
loader.loadClass("com.caucho.hessian.io.AbstractHessianOutput") }, new Object[] { in, out
});
         } finally {
             try {
-                in.close();
+                Reflections.invokeByReflection(in, "close", new Class<?>[0], null);
                 isToUse.close();
             } catch (final IOException ex) {
                 // ignore
             }
             try {
-                out.close();
+                Reflections.invokeByReflection(out, "close", new Class<?>[0], null);
                 osToUse.close();
             } catch (final IOException ex) {
                 // ignore
             }
         }
     }
+
+    public static class HessianIsMissingException extends Exception {
+        public HessianIsMissingException(final Exception e) {
+            super(e);
+        }
+    }
 }

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/HessianService.java
Thu Jul 11 07:18:13 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.openejb.server.hessian;
 
-import com.caucho.hessian.io.SerializerFactory;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.assembler.classic.AppInfo;
@@ -51,7 +50,7 @@ public class HessianService implements S
     private boolean disabled;
     private boolean debug;
     private boolean sendCollectionType;
-    private SerializerFactory serializerFactory;
+    private String serializerFactory;
     private String realmName;
     private String virtualHost;
     private String transportGuarantee;
@@ -70,18 +69,38 @@ public class HessianService implements S
                 continue;
             }
 
-            final HessianServer server = new HessianServer(beanContext.getClassLoader()).debug(debug);
-            if (serializerFactory != null) {
-                server.serializerFactory(serializerFactory).sendCollectionType(sendCollectionType);
-            } else {
-                server.sendCollectionType(sendCollectionType);
-            }
-            server.createSkeleton(ProxyEJB.simpleProxy(beanContext, new Class<?>[]{
remoteItf }), remoteItf);
+            final ClassLoader old = Thread.currentThread().getContextClassLoader();
+            final ClassLoader classLoader = beanContext.getClassLoader();
+            Thread.currentThread().setContextClassLoader(classLoader);
 
             try {
-                LOGGER.info("Hessian(url=" + registry.deploy(beanContext.getClassLoader(),
server, virtualHost, appName(app, beanContext), authMethod, transportGuarantee, realmName,
String.class.cast(beanContext.getDeploymentID())) + ", interface=" + remoteItf.getName() +
")");
-            } catch (final URISyntaxException e) {
-                throw new OpenEJBRuntimeException(e);
+                final HessianServer server;
+                try {
+                    server = new HessianServer(classLoader).debug(debug);
+                } catch (final HessianServer.HessianIsMissingException e) {
+                    LOGGER.info("Hessian is not available so openejb-hessian will not deploy
any service");
+                    break;
+                }
+
+                if (serializerFactory != null) {
+                    try {
+                        server.serializerFactory(classLoader.loadClass(serializerFactory).newInstance()).sendCollectionType(sendCollectionType);
+                    } catch (final Exception e) {
+                        throw new OpenEJBRuntimeException(e);
+                    }
+                } else {
+                    server.sendCollectionType(sendCollectionType);
+                }
+
+                server.createSkeleton(ProxyEJB.simpleProxy(beanContext, new Class<?>[]{
remoteItf }), remoteItf);
+
+                try {
+                    LOGGER.info("Hessian(url=" + registry.deploy(classLoader, server, virtualHost,
appName(app, beanContext), authMethod, transportGuarantee, realmName, String.class.cast(beanContext.getDeploymentID()))
+ ", interface=" + remoteItf.getName() + ")");
+                } catch (final URISyntaxException e) {
+                    throw new OpenEJBRuntimeException(e);
+                }
+            } finally {
+                Thread.currentThread().setContextClassLoader(old);
             }
         }
     }
@@ -258,10 +277,6 @@ public class HessianService implements S
         transportGuarantee = props.getProperty("transportGuarantee", "NONE");
         virtualHost = props.getProperty("virtualHost", "localhost");
         authMethod = props.getProperty("authMethod", "NONE");
-
-        final String serializerFactoryClass = props.getProperty("serializerFactory", null);
-        if (serializerFactoryClass != null) {
-            serializerFactory = SerializerFactory.class.cast(Thread.currentThread().getContextClassLoader().loadClass(serializerFactoryClass).newInstance());
-        }
+        serializerFactory = props.getProperty("serializerFactory", null);
     }
 }

Modified: tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/TomcatHessianRegistry.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/TomcatHessianRegistry.java?rev=1502134&r1=1502133&r2=1502134&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/TomcatHessianRegistry.java
(original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/main/java/org/apache/openejb/server/hessian/TomcatHessianRegistry.java
Thu Jul 11 07:18:13 2013
@@ -55,7 +55,7 @@ import java.util.List;
 import java.util.Map;
 
 public class TomcatHessianRegistry implements HessianRegistry {
-    private static final String TOMEE_HESSIAN_SECURITY_ROLE_PREFIX = "tomee.jaxws.security-role.";
+    private static final String TOMEE_HESSIAN_SECURITY_ROLE_PREFIX = "tomee.hessian.security-role.";
 
     private final Map<String, Pair<Context, Integer>> fakeContexts = new HashMap<String,
Pair<Context, Integer>>();
 



Mime
View raw message