You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/11/04 09:38:59 UTC

svn commit: r330756 - in /directory/protocol-providers/changepw/trunk: ./ src/main/java/org/apache/changepw/ src/main/java/org/apache/changepw/exceptions/ src/main/java/org/apache/changepw/protocol/ src/main/java/org/apache/changepw/service/

Author: trustin
Date: Fri Nov  4 00:38:49 2005
New Revision: 330756

URL: http://svn.apache.org/viewcvs?rev=330756&view=rev
Log:
Migrated protocol-provider for ChangePW protocol to MINA 0.9.

Added:
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolCodecFactory.java
      - copied, changed from r330736, directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java
Removed:
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java
Modified:
    directory/protocol-providers/changepw/trunk/project.xml
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordConfiguration.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordServer.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/exceptions/ChangePasswordException.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordDecoder.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordEncoder.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java
    directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/service/ChangePasswordContext.java

Modified: directory/protocol-providers/changepw/trunk/project.xml
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/project.xml?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/project.xml (original)
+++ directory/protocol-providers/changepw/trunk/project.xml Fri Nov  4 00:38:49 2005
@@ -100,7 +100,7 @@
     <dependency>
       <groupId>directory-network</groupId>
       <artifactId>mina</artifactId>
-      <version>0.8.0</version>
+      <version>0.9.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
@@ -125,7 +125,7 @@
   <build>
     <nagEmailAddress>dev@directory.apache.org</nagEmailAddress>
     <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
-    <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>
+    <unitTestSourceDirectory>${basedir}/src/test/java</unitTestSourceDirectory>
     <unitTest>
       <includes>
         <include>**/*Test*</include>

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordConfiguration.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordConfiguration.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordConfiguration.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordConfiguration.java Fri Nov  4 00:38:49 2005
@@ -33,6 +33,8 @@
 
 public class ChangePasswordConfiguration extends ServiceConfiguration
 {
+    private static final long serialVersionUID = 3509208713288140629L;
+
     /** the prop key const for changepw.principal */
     private static final String PRINCIPAL_KEY = "principal";
 

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordServer.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordServer.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordServer.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/ChangePasswordServer.java Fri Nov  4 00:38:49 2005
@@ -20,10 +20,10 @@
 import java.io.IOException;
 import java.util.Dictionary;
 
-import org.apache.changepw.protocol.ChangePasswordProtocolProvider;
+import org.apache.changepw.protocol.ChangePasswordProtocolHandler;
 import org.apache.kerberos.store.PrincipalStore;
+import org.apache.mina.common.IoHandler;
 import org.apache.mina.common.TransportType;
-import org.apache.mina.protocol.ProtocolProvider;
 import org.apache.mina.registry.Service;
 import org.apache.mina.registry.ServiceRegistry;
 import org.slf4j.Logger;
@@ -45,7 +45,7 @@
     private ServiceRegistry registry;
     private PrincipalStore store;
 
-    private ProtocolProvider provider;
+    private IoHandler handler;
     private Service tcpService;
     private Service udpService;
 
@@ -60,13 +60,13 @@
 
         try
         {
-            provider = new ChangePasswordProtocolProvider( config, this.store );
+            handler = new ChangePasswordProtocolHandler( config, this.store );
 
             udpService = new Service( name, TransportType.DATAGRAM, port );
             tcpService = new Service( name, TransportType.SOCKET, port );
 
-            registry.bind( udpService, provider );
-            registry.bind( tcpService, provider );
+            registry.bind( udpService, handler );
+            registry.bind( tcpService, handler );
 
             log.debug( name + " listening on port " + port );
         }
@@ -87,7 +87,7 @@
         registry.unbind( tcpService );
 
         registry = null;
-        provider = null;
+        handler = null;
         udpService = null;
         tcpService = null;
 

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/exceptions/ChangePasswordException.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/exceptions/ChangePasswordException.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/exceptions/ChangePasswordException.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/exceptions/ChangePasswordException.java Fri Nov  4 00:38:49 2005
@@ -27,6 +27,8 @@
  */
 public class ChangePasswordException extends KerberosException
 {
+    private static final long serialVersionUID = 4880242751298831543L;
+
     // ------------------------------------------------------------------------
     // C O N S T R U C T O R S
     // ------------------------------------------------------------------------

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordDecoder.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordDecoder.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordDecoder.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordDecoder.java Fri Nov  4 00:38:49 2005
@@ -21,24 +21,19 @@
 
 import org.apache.changepw.io.ChangePasswordRequestDecoder;
 import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.protocol.ProtocolDecoder;
-import org.apache.mina.protocol.ProtocolDecoderOutput;
-import org.apache.mina.protocol.ProtocolSession;
-import org.apache.mina.protocol.ProtocolViolationException;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 
 public class ChangePasswordDecoder implements ProtocolDecoder
 {
-    public void decode( ProtocolSession session, ByteBuffer in, ProtocolDecoderOutput out )
-            throws ProtocolViolationException
+    public void decode( IoSession session, ByteBuffer in, ProtocolDecoderOutput out ) throws IOException
     {
         ChangePasswordRequestDecoder decoder = new ChangePasswordRequestDecoder();
-        try
-        {
-            out.write( decoder.decode( in.buf() ) );
-        }
-        catch ( IOException ioe )
-        {
-            ioe.printStackTrace();
-        }
+        out.write( decoder.decode( in.buf() ) );
+    }
+
+    public void dispose( IoSession session ) throws Exception
+    {
     }
 }

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordEncoder.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordEncoder.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordEncoder.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordEncoder.java Fri Nov  4 00:38:49 2005
@@ -24,40 +24,31 @@
 import org.apache.changepw.messages.ChangePasswordError;
 import org.apache.changepw.messages.ChangePasswordReply;
 import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.protocol.ProtocolEncoder;
-import org.apache.mina.protocol.ProtocolEncoderOutput;
-import org.apache.mina.protocol.ProtocolSession;
-import org.apache.mina.protocol.ProtocolViolationException;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolEncoder;
+import org.apache.mina.filter.codec.ProtocolEncoderOutput;
 
 public class ChangePasswordEncoder implements ProtocolEncoder
 {
-    public void encode( ProtocolSession session, Object message, ProtocolEncoderOutput out )
-            throws ProtocolViolationException
+    public void encode( IoSession session, Object message, ProtocolEncoderOutput out ) throws IOException
     {
         ByteBuffer buf = ByteBuffer.allocate( 512 );
 
-        try
+        if ( message instanceof ChangePasswordReply )
         {
-            if ( message instanceof ChangePasswordReply )
-            {
-                encodeReply( (ChangePasswordReply) message, buf );
-            }
-            else
+            encodeReply( (ChangePasswordReply) message, buf );
+        }
+        else
+        {
+            if ( message instanceof ChangePasswordError )
             {
-                if ( message instanceof ChangePasswordError )
-                {
-                    encodeError( (ChangePasswordError) message, buf );
-                }
+                encodeError( (ChangePasswordError) message, buf );
             }
+        }
 
-            buf.flip();
+        buf.flip();
 
-            out.write( buf );
-        }
-        catch ( IOException ioe )
-        {
-            throw new ProtocolViolationException();
-        }
+        out.write( buf );
     }
 
     private void encodeReply( ChangePasswordReply reply, ByteBuffer buf ) throws IOException
@@ -72,5 +63,9 @@
         ChangePasswordErrorEncoder encoder = new ChangePasswordErrorEncoder();
 
         encoder.encode( buf.buf(), error );
+    }
+
+    public void dispose( IoSession arg0 ) throws Exception
+    {
     }
 }

Copied: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolCodecFactory.java (from r330736, directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java)
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolCodecFactory.java?p2=directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolCodecFactory.java&p1=directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java&r1=330736&r2=330756&rev=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolProvider.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolCodecFactory.java Fri Nov  4 00:38:49 2005
@@ -17,47 +17,33 @@
 
 package org.apache.changepw.protocol;
 
-import org.apache.changepw.ChangePasswordConfiguration;
-import org.apache.kerberos.store.PrincipalStore;
-import org.apache.mina.protocol.ProtocolCodecFactory;
-import org.apache.mina.protocol.ProtocolDecoder;
-import org.apache.mina.protocol.ProtocolEncoder;
-import org.apache.mina.protocol.ProtocolHandler;
-import org.apache.mina.protocol.ProtocolProvider;
+import org.apache.mina.filter.codec.ProtocolCodecFactory;
+import org.apache.mina.filter.codec.ProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolEncoder;
 
-public class ChangePasswordProtocolProvider implements ProtocolProvider
+public class ChangePasswordProtocolCodecFactory implements ProtocolCodecFactory
 {
-    // Protocol handler is usually a singleton.
-    private ProtocolHandler HANDLER;
+    private static final ChangePasswordProtocolCodecFactory INSTANCE = 
+        new ChangePasswordProtocolCodecFactory();
 
-    // Codec factory is also usually a singleton.
-    private static ProtocolCodecFactory CODEC_FACTORY = new ProtocolCodecFactory()
+    public static ChangePasswordProtocolCodecFactory getInstance()
     {
-        public ProtocolEncoder newEncoder()
-        {
-            // Create a new encoder.
-            return new ChangePasswordEncoder();
-        }
-
-        public ProtocolDecoder newDecoder()
-        {
-            // Create a new decoder.
-            return new ChangePasswordDecoder();
-        }
-    };
+        return INSTANCE;
+    }
 
-    public ChangePasswordProtocolProvider( ChangePasswordConfiguration config, PrincipalStore store )
+    private ChangePasswordProtocolCodecFactory()
     {
-        HANDLER = new ChangePasswordProtocolHandler( config, store );
     }
-
-    public ProtocolCodecFactory getCodecFactory()
+    
+    public ProtocolEncoder getEncoder()
     {
-        return CODEC_FACTORY;
+        // Create a new encoder.
+        return new ChangePasswordEncoder();
     }
 
-    public ProtocolHandler getHandler()
+    public ProtocolDecoder getDecoder()
     {
-        return HANDLER;
+        // Create a new decoder.
+        return new ChangePasswordDecoder();
     }
 }

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/protocol/ChangePasswordProtocolHandler.java Fri Nov  4 00:38:49 2005
@@ -26,13 +26,14 @@
 import org.apache.changepw.service.ChangePasswordContext;
 import org.apache.kerberos.store.PrincipalStore;
 import org.apache.mina.common.IdleStatus;
-import org.apache.mina.protocol.ProtocolHandler;
-import org.apache.mina.protocol.ProtocolSession;
+import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.protocol.common.chain.Command;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ChangePasswordProtocolHandler implements ProtocolHandler
+public class ChangePasswordProtocolHandler implements IoHandler
 {
     private static final Logger log = LoggerFactory.getLogger( ChangePasswordProtocolHandler.class );
 
@@ -49,15 +50,20 @@
         changepwService = new ChangePasswordChain();
     }
 
-    public void sessionCreated( ProtocolSession session )
+    public void sessionCreated( IoSession session ) throws Exception
     {
         if ( log.isDebugEnabled() )
         {
             log.debug( session.getRemoteAddress() + " CREATED" );
         }
+        
+        session.getFilterChain().addFirst(
+                "codec",
+                new ProtocolCodecFilter(
+                        ChangePasswordProtocolCodecFactory.getInstance() ) );
     }
 
-    public void sessionOpened( ProtocolSession session )
+    public void sessionOpened( IoSession session )
     {
         if ( log.isDebugEnabled() )
         {
@@ -65,7 +71,7 @@
         }
     }
 
-    public void sessionClosed( ProtocolSession session )
+    public void sessionClosed( IoSession session )
     {
         if ( log.isDebugEnabled() )
         {
@@ -73,7 +79,7 @@
         }
     }
 
-    public void sessionIdle( ProtocolSession session, IdleStatus status )
+    public void sessionIdle( IoSession session, IdleStatus status )
     {
         if ( log.isDebugEnabled() )
         {
@@ -81,13 +87,13 @@
         }
     }
 
-    public void exceptionCaught( ProtocolSession session, Throwable cause )
+    public void exceptionCaught( IoSession session, Throwable cause )
     {
         log.error( session.getRemoteAddress() + " EXCEPTION", cause );
         session.close();
     }
 
-    public void messageReceived( ProtocolSession session, Object message )
+    public void messageReceived( IoSession session, Object message )
     {
         if ( log.isDebugEnabled() )
         {
@@ -115,7 +121,7 @@
         }
     }
 
-    public void messageSent( ProtocolSession session, Object message )
+    public void messageSent( IoSession session, Object message )
     {
         if ( log.isDebugEnabled() )
         {

Modified: directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/service/ChangePasswordContext.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/service/ChangePasswordContext.java?rev=330756&r1=330755&r2=330756&view=diff
==============================================================================
--- directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/service/ChangePasswordContext.java (original)
+++ directory/protocol-providers/changepw/trunk/src/main/java/org/apache/changepw/service/ChangePasswordContext.java Fri Nov  4 00:38:49 2005
@@ -31,6 +31,8 @@
 
 public class ChangePasswordContext extends ContextBase
 {
+    private static final long serialVersionUID = -5124209294966799740L;
+
     private ChangePasswordConfiguration config;
     private PrincipalStore store;
     private AbstractPasswordMessage request;