Author: rmannibucau
Date: Tue Aug  6 09:01:42 2013
New Revision: 1510888

URL: http://svn.apache.org/r1510888
Log:
trying to ensure compatiility with previous ejbd protocol (without 
authenticationInfo)

Modified:
    
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
    
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
    
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
    
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
    
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
    
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java

Modified: 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
 Tue Aug  6 09:01:42 2013
@@ -54,7 +54,7 @@ public class Client {
     private boolean FINER = logger.isLoggable(Level.FINER);
 
     public static final ThreadLocal<Set<URI>> failed = new 
ThreadLocal<Set<URI>>();
-    private static final ProtocolMetaData PROTOCOL_VERSION = new 
ProtocolMetaData("3.1");
+    private static final ProtocolMetaData PROTOCOL_VERSION = new 
ProtocolMetaData("4.6");
     private static final int maxConditionRetry = 
Integer.parseInt(System.getProperty("openejb.client.retry.condition.max", 
"20"));
 
     private List<Class<? extends Throwable>> retryConditions = new 
CopyOnWriteArrayList<Class<? extends Throwable>>();

Modified: 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java
 Tue Aug  6 09:01:42 2013
@@ -239,7 +239,6 @@ public class EJBRequest implements Clust
 
     @Override
     public void readExternal(final ObjectInput in) throws IOException, 
ClassNotFoundException {
-
         ClassNotFoundException ex = null;
 
         deploymentId = null;
@@ -407,6 +406,10 @@ public class EJBRequest implements Clust
         @SuppressWarnings("unchecked")
         @Override
         public void readExternal(final ObjectInput in) throws IOException, 
ClassNotFoundException {
+            readExternal(in , new ProtocolMetaData("4.6"));
+        }
+
+        public void readExternal(final ObjectInput in, final ProtocolMetaData 
metaData) throws IOException, ClassNotFoundException {
 
             this.version = in.readByte();
 
@@ -444,8 +447,10 @@ public class EJBRequest implements Clust
             }
 
             //Version 3
-            if (this.version >= 3) {
+            if (metaData.isAtLeast(4, 6)) {
                 authentication = 
JNDIContext.AuthenticationInfo.class.cast(in.readObject());
+            } else {
+                authentication = null;
             }
 
             if (result != null) {

Modified: 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
 Tue Aug  6 09:01:42 2013
@@ -26,9 +26,8 @@ public class EJBResponse implements Clus
      * Version provides the protocol hint for backwards compatibility:
      * 1. Initial
      * 2. Append times.
-     * 3. JNDIContext.AuthenticationInfo.
      */
-    public static final byte VERSION = 3;
+    public static final byte VERSION = 2;
 
     private transient byte version = VERSION;
     private transient int responseCode = -1;

Modified: 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java
 Tue Aug  6 09:01:42 2013
@@ -62,6 +62,10 @@ public class ProtocolMetaData {
         this.minor = Integer.parseInt(new String(chars, 7, 1));
     }
 
+    public boolean isAtLeast(final int major, int minor) {
+        return this.major >= major || (this.major == major && this.minor >= 
minor);
+    }
+
     public String getId() {
         return id;
     }

Modified: 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
 Tue Aug  6 09:01:42 2013
@@ -50,7 +50,7 @@ import java.util.zip.GZIPInputStream;
 
 public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
 
-    private static final ProtocolMetaData PROTOCOL_VERSION = new 
ProtocolMetaData("3.1");
+    private static final ProtocolMetaData PROTOCOL_VERSION = new 
ProtocolMetaData("4.6"); // aligned with 
org.apache.openejb.client.EJBRequest.readExternal(java.io.ObjectInput)() and 
org.apache.openejb.client.Client.PROTOCOL_VERSION
 
     static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_SERVER_REMOTE, 
"org.apache.openejb.server.util.resources");
 
@@ -205,7 +205,7 @@ public class EjbDaemon implements org.ap
             // things up with the client accordingly.
             switch (requestType) {
                 case EJB_REQUEST:
-                    processEjbRequest(ois, oos);
+                    processEjbRequest(ois, oos, protocolMetaData);
                     break;
                 case JNDI_REQUEST:
                     processJndiRequest(ois, oos);
@@ -281,8 +281,8 @@ public class EjbDaemon implements org.ap
         return beanContext;
     }
 
-    public void processEjbRequest(final ObjectInputStream in, final 
ObjectOutputStream out) {
-        ejbHandler.processRequest(in, out);
+    public void processEjbRequest(final ObjectInputStream in, final 
ObjectOutputStream out, final ProtocolMetaData metaData) {
+        ejbHandler.processRequest(in, out, metaData);
     }
 
     public void processJndiRequest(final ObjectInputStream in, final 
ObjectOutputStream out) throws Exception {

Modified: 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java?rev=1510888&r1=1510887&r2=1510888&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
 Tue Aug  6 09:01:42 2013
@@ -25,6 +25,7 @@ import org.apache.openejb.client.EJBObje
 import org.apache.openejb.client.EJBRequest;
 import org.apache.openejb.client.EJBResponse;
 import org.apache.openejb.client.JNDIContext;
+import org.apache.openejb.client.ProtocolMetaData;
 import org.apache.openejb.client.ResponseCodes;
 import org.apache.openejb.client.ThrowableArtifact;
 import org.apache.openejb.client.serializer.EJBDSerializer;
@@ -67,7 +68,7 @@ class EjbRequestHandler {
         return new BasicClusterableRequestHandler();
     }
 
-    public void processRequest(final ObjectInputStream in, final 
ObjectOutputStream out) {
+    public void processRequest(final ObjectInputStream in, final 
ObjectOutputStream out, final ProtocolMetaData metaData) {
 
         // Setup the client proxy replacement to replace
         // the proxies with the IntraVM proxy implementations
@@ -125,7 +126,7 @@ class EjbRequestHandler {
 
                 res.start(EJBResponse.Time.DESERIALIZATION);
 
-                req.getBody().readExternal(in);
+                req.getBody().readExternal(in, metaData);
 
                 //Client version retrieved from body
                 version = req.getVersion();
@@ -158,14 +159,12 @@ class EjbRequestHandler {
 
         Object securityToken = null;
         try {
-            if (version >= 3) { // login if needed with request
-                final JNDIContext.AuthenticationInfo authentication = 
req.getBody().getAuthentication();
-                if (authentication != null) {
-                    try {
-                        securityToken = 
securityService.login(authentication.getRealm(), authentication.getUser(), new 
String(authentication.getPassword()));
-                    } catch (final Throwable t) {
-                        res.setResponse(req.getVersion(), 
ResponseCodes.AUTH_DENIED, t);
-                    }
+            final JNDIContext.AuthenticationInfo authentication = 
req.getBody().getAuthentication();
+            if (authentication != null) {
+                try {
+                    securityToken = 
securityService.login(authentication.getRealm(), authentication.getUser(), new 
String(authentication.getPassword()));
+                } catch (final Throwable t) {
+                    res.setResponse(req.getVersion(), 
ResponseCodes.AUTH_DENIED, t);
                 }
             }
 


Reply via email to