You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2002/04/13 12:36:08 UTC

cvs commit: jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/transport/publishing PartialSocketStreamConnectionHandler.java SocketStreamPublisher.java SocketStreamPublisher.xinfo AbstractStreamPublisher.java SocketCustomStreamConnectionHandler.java SocketCustomStreamPublisher.java SocketObjectStreamConnectionHandler.java SocketObjectStreamPublisher.java SocketObjectStreamPublisher.xinfo

hammant     02/04/13 03:36:08

  Modified:    lib      excalibur-altrmi-client-impl.jar
                        excalibur-altrmi-client-interfaces.jar
                        excalibur-altrmi-common.jar
                        excalibur-altrmi-generator.jar
                        excalibur-altrmi-server-impl.jar
                        excalibur-altrmi-server-interfaces.jar
  Added:       src/java/org/apache/avalon/cornerstone/blocks/transport/publishing
                        PartialSocketStreamConnectionHandler.java
                        SocketStreamPublisher.java
                        SocketStreamPublisher.xinfo
  Removed:     src/java/org/apache/avalon/cornerstone/blocks/transport/publishing
                        AbstractStreamPublisher.java
                        SocketCustomStreamConnectionHandler.java
                        SocketCustomStreamPublisher.java
                        SocketObjectStreamConnectionHandler.java
                        SocketObjectStreamPublisher.java
                        SocketObjectStreamPublisher.xinfo
  Log:
  Refactor of Altrmi server allows refactor of transport package (patches from Peter Royal)
  
  Revision  Changes    Path
  1.2       +805 -611  jakarta-avalon-cornerstone/lib/excalibur-altrmi-client-impl.jar
  
  	<<Binary file>>
  
  
  1.2       +50 -45    jakarta-avalon-cornerstone/lib/excalibur-altrmi-client-interfaces.jar
  
  	<<Binary file>>
  
  
  1.2       +432 -429  jakarta-avalon-cornerstone/lib/excalibur-altrmi-common.jar
  
  	<<Binary file>>
  
  
  1.2       +55 -47    jakarta-avalon-cornerstone/lib/excalibur-altrmi-generator.jar
  
  	<<Binary file>>
  
  
  1.2       +511 -370  jakarta-avalon-cornerstone/lib/excalibur-altrmi-server-impl.jar
  
  	<<Binary file>>
  
  
  1.2       +44 -44    jakarta-avalon-cornerstone/lib/excalibur-altrmi-server-interfaces.jar
  
  	<<Binary file>>
  
  
  1.1                  jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/transport/publishing/PartialSocketStreamConnectionHandler.java
  
  Index: PartialSocketStreamConnectionHandler.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.avalon.cornerstone.blocks.transport.publishing;
  
  import java.io.IOException;
  import java.net.ProtocolException;
  import java.net.Socket;
  import org.apache.avalon.cornerstone.services.connection.ConnectionHandler;
  import org.apache.avalon.framework.component.Component;
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  import org.apache.excalibur.altrmi.server.impl.socket.AbstractPartialSocketStreamServer;
  
  /**
   * Class PartialSocketStreamConnectionHandler
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @author Peter Royal.
   * @version $Revision: 1.1 $
   */
  public class PartialSocketStreamConnectionHandler extends AbstractLogEnabled
      implements Component, ConnectionHandler
  {
  
      private AbstractPartialSocketStreamServer m_PartialSockeStreamServer;
  
      /**
       * Constructor PartialSocketStreamConnectionHandler
       *
       *
       * @param partialSocketStreamServer
       *
       */
      public PartialSocketStreamConnectionHandler(
          AbstractPartialSocketStreamServer partialSocketStreamServer )
      {
          m_PartialSockeStreamServer = partialSocketStreamServer;
      }
  
      /**
       * Handle a connection.
       * This handler is responsible for processing connections as they occur.
       *
       * @param connection the connection
       * @exception IOException if an error reading from socket occurs
       * @exception ProtocolException if an error handling connection occurs
       */
      public void handleConnection( Socket connection ) throws IOException, ProtocolException
      {
          m_PartialSockeStreamServer.handleConnection( connection );
      }
  }
  
  
  
  1.1                  jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/transport/publishing/SocketStreamPublisher.java
  
  Index: SocketStreamPublisher.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.avalon.cornerstone.blocks.transport.publishing;
  
  
  
  import java.io.IOException;
  
  import java.net.InetAddress;
  import java.net.ServerSocket;
  import java.net.UnknownHostException;
  
  import org.apache.avalon.cornerstone.services.connection.ConnectionHandlerFactory;
  import org.apache.avalon.cornerstone.services.connection.ConnectionManager;
  import org.apache.avalon.cornerstone.services.connection.ConnectionHandler;
  import org.apache.avalon.cornerstone.services.sockets.ServerSocketFactory;
  import org.apache.avalon.cornerstone.services.sockets.SocketManager;
  import org.apache.avalon.framework.component.ComponentException;
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.excalibur.altrmi.server.impl.socket.PartialSocketCustomStreamServer;
  import org.apache.excalibur.altrmi.server.impl.socket.AbstractPartialSocketStreamServer;
  
  
  /**
   * Class AbstractStreamPublisher
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @author Mike Miller.
   * @author Peter Royal.
   * @version $Revision: 1.1 $
   */
  public class SocketStreamPublisher extends AbstractPublisher
          implements ConnectionHandlerFactory
  {
  
      protected SocketManager m_socketManager;
      protected ConnectionManager m_connectionManager;
      private int m_port;
      private InetAddress m_bindTo;
      private String m_socketStreamServerClass;
      boolean m_allAddresses = false;
  
      /**
       * Pass the <code>Configuration</code> to the <code>Configurable</code>
       * class. This method must always be called after the constructor
       * and before any other method.
       *
       * @param configuration the class configurations.
       */
      public final void configure(Configuration configuration) throws ConfigurationException
      {
  
          super.configure(configuration);
  
          m_port = configuration.getChild("port").getValueAsInteger();
  
          try
          {
              final String bindAddress = configuration.getChild("bind").getValue();
  
              if ("*".equals(bindAddress))
              {
                  m_allAddresses = true;
                  m_bindTo = null;
              }
              else
              {
                  m_allAddresses = false;
                  m_bindTo = InetAddress.getByName(bindAddress);
              }
          }
          catch (final UnknownHostException unhe)
          {
              throw new ConfigurationException("Malformed bind parameter", unhe);
          }
  
          m_socketStreamServerClass = configuration.getChild("socketStreamServerClass").getValue();
      }
  
      /**
       * Method compose
       *
       *
       * @param manager
       *
       * @throws ComponentException
       *
       */
      public final void compose(ComponentManager manager) throws ComponentException
      {
  
          super.compose(manager);
  
          m_socketManager = (SocketManager) manager.lookup(SocketManager.ROLE);
          m_connectionManager = (ConnectionManager) manager.lookup(ConnectionManager.ROLE);
      }
  
      protected ServerSocket makeServerSocket() throws ComponentException, IOException
      {
  
          final ServerSocketFactory factory = m_socketManager.getServerSocketFactory("plain");
  
          if (m_allAddresses)
          {
              return factory.createServerSocket(m_port, 5);
          }
          else
          {
              return factory.createServerSocket(m_port, 5, m_bindTo);
          }
      }
  
      /**
       * Construct an appropriate ConnectionHandler.
       *
       * @return the new ConnectionHandler
       * @exception Exception if an error occurs
       */
      public ConnectionHandler createConnectionHandler() throws Exception
      {
  
          final PartialSocketStreamConnectionHandler handler =
              new PartialSocketStreamConnectionHandler(
                  (AbstractPartialSocketStreamServer) m_AbstractServer );
  
          setupLogger( handler );
  
          return handler;
      }
  
      /**
       * Release a previously created ConnectionHandler.
       * e.g. for spooling.
       */
      public void releaseConnectionHandler( ConnectionHandler connectionHandler )
      {
      }
  
      /**
       * Initialialize the component. Initialization includes
       * allocating any resources required throughout the
       * components lifecycle.
       *
       * @exception Exception if an error occurs
       */
      public void initialize() throws Exception
      {
          m_AbstractServer = (AbstractPartialSocketStreamServer) Class.forName(m_socketStreamServerClass).newInstance();
  
          setupLogger( m_AbstractServer );
          super.initialize();
          m_connectionManager.connect( "SocketStreamListener", makeServerSocket(), this );
      }
  }
  
  
  
  1.1                  jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/transport/publishing/SocketStreamPublisher.xinfo
  
  Index: SocketStreamPublisher.xinfo
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE blockinfo PUBLIC "-//PHOENIX/Block Info DTD Version 1.0//EN"
                    "http://jakarta.apache.org/phoenix/blockinfo_1_0.dtd">
  
  <blockinfo>
  
    <!-- section to describe block -->
    <block>
      <version>1.0</version>
    </block>
  
    <!-- services that are offered by this block -->
    <services>
      <service name="org.apache.excalibur.altrmi.server.AltrmiPublisher" version="1.0" />
    </services>
  
    <dependencies>
      <dependency>
        <service name="org.apache.avalon.cornerstone.services.sockets.SocketManager" version="1.0"/>
      </dependency>
      <dependency>
        <service name="org.apache.avalon.cornerstone.services.connection.ConnectionManager"
                 version="1.0"/>
      </dependency>
      <dependency>
        <service name="org.apache.excalibur.altrmi.server.AltrmiAuthenticator" version="1.0"/>
      </dependency>
    </dependencies>
  
  </blockinfo>
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>