hammant     2003/07/15 00:08:10

  Modified:    src/java/org/apache/altrmi/blocks/autopublishing
                        AutoPublisher.java
               src/java/org/apache/altrmi/blocks/publishing
                        AbstractPublisher.java RmiPublisher.java
               src/java/org/apache/altrmi/blocks/subscription
                        AbstractSubscriber.java RmiSubscriber.java
                        SocketCustomStreamSubscriber.java
                        SocketObjectStreamSubscriber.java
  Added:       src/java/org/apache/altrmi/blocks/authentication
                        DefaultAuthenticatorBlock.java
  Removed:     src/java/org/apache/altrmi/blocks/authentication
                        DefaultAuthenticator.java
  Log:
  Big Refactor. Removal of accidental duplicate instances. Make comps more 
fail-safe
  
  Revision  Changes    Path
  1.4       +5 -5      
incubator-altrmi/src/java/org/apache/altrmi/blocks/autopublishing/AutoPublisher.java
  
  Index: AutoPublisher.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/autopublishing/AutoPublisher.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AutoPublisher.java        17 Feb 2003 20:27:39 -0000      1.3
  +++ AutoPublisher.java        15 Jul 2003 07:08:09 -0000      1.4
  @@ -79,7 +79,7 @@
       implements Configurable, ApplicationListener
   {
       private String m_publisherName;
  -    private Publisher m_altrmiPublisher;
  +    private Publisher m_publisher;
       private Map m_publications;
       private Vector m_events = new Vector();
   
  @@ -109,7 +109,7 @@
       {
           if( m_publisherName.equals( event.getName() ) )
           {
  -            m_altrmiPublisher = (Publisher)event.getBlock();
  +            m_publisher = (Publisher)event.getBlock();
           }
   
           if( m_publications.containsKey( event.getName() ) )
  @@ -140,7 +140,7 @@
   
               try
               {
  -                m_altrmiPublisher.publish( block, pi.getPublishAsName(),
  +                m_publisher.publish( block, pi.getPublishAsName(),
                       this.getClass().getClassLoader().loadClass( 
pi.getInterfaceToPublish() ) );
               }
               catch( PublicationException e )
  @@ -171,7 +171,7 @@
   
                   try
                   {
  -                    m_altrmiPublisher.unPublish( block, 
pi.getPublishAsName() );
  +                    m_publisher.unPublish( block, pi.getPublishAsName() );
                   }
                   catch( PublicationException e )
                   {
  
  
  
  1.4       +1 -1      
incubator-altrmi/src/java/org/apache/altrmi/blocks/publishing/AbstractPublisher.java
  
  Index: AbstractPublisher.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/publishing/AbstractPublisher.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractPublisher.java    17 Feb 2003 20:27:39 -0000      1.3
  +++ AbstractPublisher.java    15 Jul 2003 07:08:09 -0000      1.4
  @@ -1 +1 @@
  -/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1997-2003 The Apache Software Foundation. All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *    "This product includes software developed by the
 *    Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software
 *    itself, if and wherever such third-party acknowledgments
 *    normally appear.
 *
 * 4. The names "Incubator", "AltRMI", and "Apache Software Foundation"
 *    must not be used to endorse or promote products derived from this
 *    software without prior written permission. For written
 *    permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    nor may "Apache" appear in their name, without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation. For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 */
package org.apache.altrmi.blocks.publishing;



import java.io.File;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.StringTokenizer;

import java.util.Vector;

import org.apache.avalon.framework.activity.Initializable;

import org.apache.avalon.framework.activity.Startable;

import org.apache.avalon.framework.configuration.Configurable;

import org.apache.avalon.framework.configuration.Configuration;

import org.apache.avalon.framework.configuration.ConfigurationException;

import org.apache.avalon.framework.context.Context;

import org.apache.avalon.framework.context.Contextualizable;

import org.apache.avalon.framework.logger.AbstractLogEnabled;

import org.apache.avalon.framework.service.ServiceException;

import org.apache.avalon.framework.service.ServiceManager;

import org.apache.avalon.framework.service.Serviceable;

import org.apache.altrmi.common.MethodRequest;

import org.apache.altrmi.server.Authenticator;

import org.apache.altrmi.server.Publisher;

import org.apache.altrmi.server.ClassRetriever;

import org.apache.altrmi.server.MethodInvocationHandler;

import org.apache.altrmi.server.PublicationDescription;

import org.apache.altrmi.server.PublicationException;

import org.apache.altrmi.server.impl.AbstractServer;
import org.apache.altrmi.server.impl.LogEnabledServerMonitor;

import 
org.apache.altrmi.server.impl.classretrievers.AbstractDynamicGeneratorClassRetriever;

import 
org.apache.altrmi.server.impl.classretrievers.BcelDynamicGeneratorClassRetriever;

import org.apache.altrmi.server.impl.classretrievers.JarFileClassRetriever;

import org.apache.altrmi.server.impl.classretrievers.NoClassRetriever;

import org.apache.avalon.framework.context.ContextException;



/**

 * Abstract Publisher.

 *

 * @author Paul Hammant

 * @author Thomas Kiesgen

 * @version $Revision$

 */

public abstract class AbstractPublisher

    extends AbstractLogEnabled

    implements Publisher, Startable, Serviceable, Contextualizable, 
Configurable,

    Initializable

{

    private AbstractServer m_abstractServer;

    private ClassRetriever m_classRetriever;

    private Authenticator m_altrmiAuthenticator;

    protected File m_baseDirectory;

    private boolean m_isDynamicPublisher = false;



    /**

     *

     * @param configuration

     * @throws ConfigurationException

     */

    public void configure( Configuration configuration )

        throws ConfigurationException

    {

        String classRetrieverType = configuration.getChild( 
"classRetrieverType" ).getValue();



        if( classRetrieverType.equals( "jarFile" ) )

        {

            StringTokenizer st =

                new StringTokenizer( configuration.getChild( 
"generatedClassJarURLs" ).getValue(),

                                     "," );

            Vector vector = new Vector();



            while( st.hasMoreTokens() )

            {

                try

                {

                    String url = st.nextToken();



                    if( url.startsWith( "./" ) )

                    {

                        File file = new File( m_baseDirectory, url.substring( 
2, url.length() ) );



                        vector.add( file.toURL() );

                    }

                    else

                    {

                        vector.add( new URL( url ) );

                    }

                }

                catch( MalformedURLException e )

                {

                    getLogger()

                        .debug( "Can't create URL from config element 
'generatedClassJarURLs'",

                                e );

                }

            }



            URL[] urls = new URL[ vector.size() ];



            vector.copyInto( urls );



            m_classRetriever = new JarFileClassRetriever( urls );

        }

        else if( classRetrieverType.equals( "none" ) )

        {

            m_classRetriever = new NoClassRetriever();

        }

        else if( classRetrieverType.equals( "bcel" ) )

        {

            AbstractDynamicGeneratorClassRetriever generator = new 
BcelDynamicGeneratorClassRetriever();

            File classGenDir = new File( m_baseDirectory, 
configuration.getChild( "classGenDir" ).getValue( "" ) );

            generator.setClassGenDir( classGenDir.getAbsolutePath() );

            m_classRetriever = generator;



            m_isDynamicPublisher = true;

            getLogger().debug( "setting classgen dir for generator to " + 
classGenDir.getAbsolutePath() );

            getLogger().debug( "setting class retriever to bcel dynamic 
generator" );

        }





        else

        {

            throw new ConfigurationException(

                "classRetrieverType must be 'bcel', 'jarFile' or 'none'" );

        }

    }



    /**

     * contextualize as per Contextualizable interface

     * @param context

     */

    public void contextualize( final Context context ) throws ContextException

    {

        m_baseDirectory = ( File ) context.get("app.home");

    }



    /**

     * Service as per Serviceable interface

     * @param manager a service manager

     * @throws ServiceException if a problem during servicing

     * @phoenix:dependency name="org.apache.altrmi.server.Authenticator"

     */

    public void service( ServiceManager manager )

        throws ServiceException

    {

        m_altrmiAuthenticator =

            (Authenticator)manager.lookup( Authenticator.class.getName() );

    }



    /**

     * initialize as per Initializable interface

     * @throws Exception

     */

    public void initialize() throws Exception

    {

        m_abstractServer.setClassRetriever( m_classRetriever );

        m_abstractServer.setAuthenticator( m_altrmiAuthenticator );

    }



    /**

     *

     * @param implementation

     * @param asName

     * @param interfaceToExpose

     * @throws PublicationException

     */

    public void publish( Object implementation, String asName, Class 
interfaceToExpose )

        throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Publishing object [as: " + asName + ", impl: " 
+ implementation

                              + ", interf: "+ interfaceToExpose + "]" );



        if( m_isDynamicPublisher )

        {

            ( ( AbstractDynamicGeneratorClassRetriever ) m_classRetriever 
).generate( asName, interfaceToExpose, this.getClass().getClassLoader() );

                if( getLogger().isDebugEnabled() )

                {

                    getLogger().debug( "generated dynamic proxy for published 
interface " + asName );

                }

        }



        m_abstractServer.publish( implementation, asName, interfaceToExpose );

    }



    /**

     * Publish an service

     * @param implementation

     * @param asName

     * @param publicationDescription

     * @throws PublicationException

     */

    public void publish(

        Object implementation, String asName, PublicationDescription 
publicationDescription )

        throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Publishing object [as: " + asName + ", impl: " 
+ implementation + "]" );



        if( m_isDynamicPublisher )

        {

            ( ( AbstractDynamicGeneratorClassRetriever ) m_classRetriever 
).generate( asName, publicationDescription, this.getClass().getClassLoader() );

                if( getLogger().isDebugEnabled() )

                {

                    getLogger().debug( "generated dynamic proxy for published 
interface " + asName );

                }

        }







        m_abstractServer.publish( implementation, asName, 
publicationDescription );

    }



    /**

     *

     * @param object

     * @param asName

     * @throws PublicationException

     */

    public void unPublish( Object object, String asName ) throws 
PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Unpublishing object [nane: " + asName + ", 
impl: " + object + "]" );



        m_abstractServer.unPublish( object, asName );

    }



    /**

     *

     * @param object

     * @param asName

     * @param o1

     * @throws PublicationException

     */

    public void replacePublished( Object object, String asName, Object o1 ) 
throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Replacing published object [nane: " + asName + 
", existing: " + object + ", new: " + o1 + "]" );



        m_abstractServer.replacePublished( object, asName, o1 );

    }



    /**

     *

     * @throws Exception

     */

    public void start() throws Exception

    {

        m_abstractServer.start();

    }



    /**

     *

     * @throws Exception

     */

    public void stop() throws Exception

    {

        m_abstractServer.stop();

    }



    /**

     *

     * @param request

     * @param publishedName

     * @return

     */

    public MethodInvocationHandler getMethodInvocationHandler( MethodRequest 
request, String publishedName )

    {

        return m_abstractServer.getMethodInvocationHandler( request, 
publishedName );

    }



    /**

     *

     * @param publishedName

     * @return

     */

    public MethodInvocationHandler getMethodInvocationHandler(String 
publishedName)

    {

        return m_abstractServer.getMethodInvocationHandler( publishedName );

    }



    /**

     *

     * @return

     */

    protected AbstractServer getAbstractServer()

    {

        return m_abstractServer;

    }



    /**

     *

     * @param abstractServer

     */

    protected void setAbstractServer( AbstractServer abstractServer )

    {
        m_abstractServer = abstractServer;
        LogEnabledServerMonitor sm = new LogEnabledServerMonitor();
        sm.enableLogging(getLogger());
        m_abstractServer.setServerMonitor(sm);
    }

}

  \ No newline at end of file
  +/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1997-2003 The Apache Software Foundation. All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *    "This product includes software developed by the
 *    Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software
 *    itself, if and wherever such third-party acknowledgments
 *    normally appear.
 *
 * 4. The names "Incubator", "AltRMI", and "Apache Software Foundation"
 *    must not be used to endorse or promote products derived from this
 *    software without prior written permission. For written
 *    permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    nor may "Apache" appear in their name, without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation. For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 */
package org.apache.altrmi.blocks.publishing;



import java.io.File;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.StringTokenizer;

import java.util.Vector;

import org.apache.avalon.framework.activity.Initializable;

import org.apache.avalon.framework.activity.Startable;

import org.apache.avalon.framework.configuration.Configurable;

import org.apache.avalon.framework.configuration.Configuration;

import org.apache.avalon.framework.configuration.ConfigurationException;

import org.apache.avalon.framework.context.Context;

import org.apache.avalon.framework.context.Contextualizable;

import org.apache.avalon.framework.logger.AbstractLogEnabled;

import org.apache.avalon.framework.service.ServiceException;

import org.apache.avalon.framework.service.ServiceManager;

import org.apache.avalon.framework.service.Serviceable;

import org.apache.altrmi.common.MethodRequest;

import org.apache.altrmi.server.Authenticator;

import org.apache.altrmi.server.Publisher;

import org.apache.altrmi.server.ClassRetriever;

import org.apache.altrmi.server.MethodInvocationHandler;

import org.apache.altrmi.server.PublicationDescription;

import org.apache.altrmi.server.PublicationException;

import org.apache.altrmi.server.impl.AbstractServer;
import org.apache.altrmi.server.impl.LogEnabledServerMonitor;

import 
org.apache.altrmi.server.impl.classretrievers.AbstractDynamicGeneratorClassRetriever;

import 
org.apache.altrmi.server.impl.classretrievers.BcelDynamicGeneratorClassRetriever;

import org.apache.altrmi.server.impl.classretrievers.JarFileClassRetriever;

import org.apache.altrmi.server.impl.classretrievers.NoClassRetriever;

import org.apache.avalon.framework.context.ContextException;



/**

 * Abstract Publisher.

 *

 * @author Paul Hammant

 * @author Thomas Kiesgen

 * @version $Revision$

 */

public abstract class AbstractPublisher

    extends AbstractLogEnabled

    implements Publisher, Startable, Serviceable, Contextualizable, 
Configurable,

    Initializable

{

    private AbstractServer m_abstractServer;

    protected ClassRetriever m_classRetriever;

    protected Authenticator m_authenticator;

    protected File m_baseDirectory;

    private boolean m_isDynamicPublisher = false;



    /**

     *

     * @param configuration

     * @throws ConfigurationException

     */

    public void configure( Configuration configuration )

        throws ConfigurationException

    {

        String classRetrieverType = configuration.getChild( 
"classRetrieverType" ).getValue();



        if( classRetrieverType.equals( "jarFile" ) )

        {

            StringTokenizer st =

                new StringTokenizer( configuration.getChild( 
"generatedClassJarURLs" ).getValue(),

                                     "," );

            Vector vector = new Vector();



            while( st.hasMoreTokens() )

            {

                try

                {

                    String url = st.nextToken();



                    if( url.startsWith( "./" ) )

                    {

                        File file = new File( m_baseDirectory, url.substring( 
2, url.length() ) );



                        vector.add( file.toURL() );

                    }

                    else

                    {

                        vector.add( new URL( url ) );

                    }

                }

                catch( MalformedURLException e )

                {

                    getLogger()

                        .debug( "Can't create URL from config element 
'generatedClassJarURLs'",

                                e );

                }

            }



            URL[] urls = new URL[ vector.size() ];



            vector.copyInto( urls );



            m_classRetriever = new JarFileClassRetriever( urls );

        }

        else if( classRetrieverType.equals( "none" ) )

        {

            m_classRetriever = new NoClassRetriever();

        }

        else if( classRetrieverType.equals( "bcel" ) )

        {

            AbstractDynamicGeneratorClassRetriever generator = new 
BcelDynamicGeneratorClassRetriever();

            File classGenDir = new File( m_baseDirectory, 
configuration.getChild( "classGenDir" ).getValue( "" ) );

            generator.setClassGenDir( classGenDir.getAbsolutePath() );

            m_classRetriever = generator;



            m_isDynamicPublisher = true;

            getLogger().debug( "setting classgen dir for generator to " + 
classGenDir.getAbsolutePath() );

            getLogger().debug( "setting class retriever to bcel dynamic 
generator" );

        }





        else

        {

            throw new ConfigurationException(

                "classRetrieverType must be 'bcel', 'jarFile' or 'none'" );

        }

    }



    /**

     * contextualize as per Contextualizable interface

     * @param context

     */

    public void contextualize( final Context context ) throws ContextException

    {

        m_baseDirectory = ( File ) context.get("app.home");

    }



    /**

     * Service as per Serviceable interface

     * @param manager a service manager

     * @throws ServiceException if a problem during servicing

     * @phoenix:dependency name="org.apache.altrmi.server.Authenticator"

     */

    public void service( ServiceManager manager )

        throws ServiceException

    {

        m_authenticator =

            (Authenticator)manager.lookup( Authenticator.class.getName() );

    }



    /**

     * initialize as per Initializable interface

     * @throws Exception

     */

    public void initialize() throws Exception

    {


    }



    /**

     *

     * @param implementation

     * @param asName

     * @param interfaceToExpose

     * @throws PublicationException

     */

    public void publish( Object implementation, String asName, Class 
interfaceToExpose )

        throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Publishing object [as: " + asName + ", impl: " 
+ implementation

                              + ", interf: "+ interfaceToExpose + "]" );



        if( m_isDynamicPublisher )

        {

            ( ( AbstractDynamicGeneratorClassRetriever ) m_classRetriever 
).generate( asName, interfaceToExpose, this.getClass().getClassLoader() );

                if( getLogger().isDebugEnabled() )

                {

                    getLogger().debug( "generated dynamic proxy for published 
interface " + asName );

                }

        }



        m_abstractServer.publish( implementation, asName, interfaceToExpose );

    }



    /**

     * Publish an service

     * @param implementation

     * @param asName

     * @param publicationDescription

     * @throws PublicationException

     */

    public void publish(

        Object implementation, String asName, PublicationDescription 
publicationDescription )

        throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Publishing object [as: " + asName + ", impl: " 
+ implementation + "]" );



        if( m_isDynamicPublisher )

        {

            ( ( AbstractDynamicGeneratorClassRetriever ) m_classRetriever 
).generate( asName, publicationDescription, this.getClass().getClassLoader() );

                if( getLogger().isDebugEnabled() )

                {

                    getLogger().debug( "generated dynamic proxy for published 
interface " + asName );

                }

        }







        m_abstractServer.publish( implementation, asName, 
publicationDescription );

    }



    /**

     *

     * @param object

     * @param asName

     * @throws PublicationException

     */

    public void unPublish( Object object, String asName ) throws 
PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Unpublishing object [nane: " + asName + ", 
impl: " + object + "]" );



        m_abstractServer.unPublish( object, asName );

    }



    /**

     *

     * @param object

     * @param asName

     * @param o1

     * @throws PublicationException

     */

    public void replacePublished( Object object, String asName, Object o1 ) 
throws PublicationException

    {

        if( getLogger().isDebugEnabled() )

            getLogger().debug( "Replacing published object [nane: " + asName + 
", existing: " + object + ", new: " + o1 + "]" );



        m_abstractServer.replacePublished( object, asName, o1 );

    }



    /**

     *

     * @throws Exception

     */

    public void start() throws Exception

    {

        m_abstractServer.start();

    }



    /**

     *

     * @throws Exception

     */

    public void stop() throws Exception

    {

        m_abstractServer.stop();

    }



    /**

     *

     * @param request

     * @param publishedName

     * @return

     */

    public MethodInvocationHandler getMethodInvocationHandler( MethodRequest 
request, String publishedName )

    {

        return m_abstractServer.getMethodInvocationHandler( request, 
publishedName );

    }



    /**

     *

     * @param publishedName

     * @return

     */

    public MethodInvocationHandler getMethodInvocationHandler(String 
publishedName)

    {

        return m_abstractServer.getMethodInvocationHandler( publishedName );

    }



    /**

     *

     * @return

     */

    protected AbstractServer getAbstractServer()

    {

        return m_abstractServer;

    }



    /**

     *

     * @param abstractServer

     */

    protected void setAbstractServer( AbstractServer abstractServer )
    {
        m_abstractServer = abstractServer;
    }

}

  \ No newline at end of file
  
  
  
  1.4       +6 -3      
incubator-altrmi/src/java/org/apache/altrmi/blocks/publishing/RmiPublisher.java
  
  Index: RmiPublisher.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/publishing/RmiPublisher.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RmiPublisher.java 17 Feb 2003 20:27:39 -0000      1.3
  +++ RmiPublisher.java 15 Jul 2003 07:08:09 -0000      1.4
  @@ -54,11 +54,11 @@
    */
   package org.apache.altrmi.blocks.publishing;
   
  +import org.apache.altrmi.server.impl.LogEnabledServerMonitor;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.service.ServiceException;
   import org.apache.avalon.framework.service.ServiceManager;
  -import org.apache.altrmi.server.impl.rmi.RmiServer;
   
   /**
    * @phoenix:block
  @@ -99,7 +99,10 @@
       public void initialize() throws Exception
       {
   
  -        setAbstractServer( new RmiServer( m_host, m_port ) );
  +        LogEnabledServerMonitor sm = new 
LogEnabledServerMonitor(getLogger());
  +
  +        //TODO-PH-NOW
  +        //setAbstractServer( new RmiServer( new 
InvocationHandlerAdaptor(cr,aa,sm,ccf), sm,  m_host, m_port ) );
   
           setupLogger( getAbstractServer() );
           super.initialize();
  
  
  
  1.4       +15 -15    
incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/AbstractSubscriber.java
  
  Index: AbstractSubscriber.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/AbstractSubscriber.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractSubscriber.java   25 May 2003 16:49:55 -0000      1.3
  +++ AbstractSubscriber.java   15 Jul 2003 07:08:09 -0000      1.4
  @@ -79,6 +79,7 @@
   {
       protected Factory m_altrmiFactory;
       protected HostContext m_hostContext;
  +    private String m_proxyClassLocation;
   
       /**
        * Pass the <code>Configuration</code> to the <code>Configurable</code>
  @@ -90,20 +91,8 @@
       public void configure( Configuration configuration ) throws 
ConfigurationException
       {
   
  -        String proxyClassLocation = configuration.getChild( 
"proxyClassLocation" ).getValue();
  +        m_proxyClassLocation = configuration.getChild( 
"m_proxyClassLocation" ).getValue();
   
  -        if( proxyClassLocation.equals( "client" ) )
  -        {
  -            m_altrmiFactory = new ClientSideClassFactory();
  -        }
  -        else if( proxyClassLocation.equals( "server" ) )
  -        {
  -            m_altrmiFactory = new ServerSideClassFactory();
  -        }
  -        else
  -        {
  -            throw new ConfigurationException( "proxyClassLocation must be 
'client' or 'server'" );
  -        }
       }
   
       public Object lookup( String publishedName ) throws ConnectionException
  @@ -131,7 +120,18 @@
        */
       public void initialize() throws Exception
       {
  -        m_altrmiFactory.setHostContext( m_hostContext );
  +        if( m_proxyClassLocation.equals( "client" ) )
  +        {
  +            m_altrmiFactory = new ClientSideClassFactory(m_hostContext, 
false);
  +        }
  +        else if( m_proxyClassLocation.equals( "server" ) )
  +        {
  +            m_altrmiFactory = new ServerSideClassFactory(m_hostContext, 
false);
  +        }
  +        else
  +        {
  +            throw new IllegalArgumentException( "proxyClassLocation must be 
'client' or 'server'" );
  +        }
       }
   
       public void close()
  
  
  
  1.3       +2 -2      
incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/RmiSubscriber.java
  
  Index: RmiSubscriber.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/RmiSubscriber.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RmiSubscriber.java        17 Feb 2003 20:27:39 -0000      1.2
  +++ RmiSubscriber.java        15 Jul 2003 07:08:09 -0000      1.3
  @@ -98,7 +98,7 @@
       public void initialize()
           throws Exception
       {
  -        m_hostContext = new RmiHostContext( m_host, m_port );
  +        m_hostContext = new RmiHostContext.WithSimpleDefaults( m_host, 
m_port );
           super.initialize();
       }
   }
  
  
  
  1.4       +8 -2      
incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/SocketCustomStreamSubscriber.java
  
  Index: SocketCustomStreamSubscriber.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/SocketCustomStreamSubscriber.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SocketCustomStreamSubscriber.java 17 Feb 2003 20:27:39 -0000      1.3
  +++ SocketCustomStreamSubscriber.java 15 Jul 2003 07:08:09 -0000      1.4
  @@ -57,6 +57,10 @@
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.altrmi.client.impl.socket.SocketCustomStreamHostContext;
  +import org.apache.altrmi.client.impl.DefaultClientMonitor;
  +import org.apache.altrmi.client.impl.AvalonFrameworkClientMonitor;
  +import org.apache.altrmi.client.impl.DefaultConnectionPinger;
  +import org.apache.altrmi.common.DefaultThreadPool;
   
   /**
    * @phoenix:block
  @@ -97,7 +101,9 @@
       public void initialize()
           throws Exception
       {
  -        m_hostContext = new SocketCustomStreamHostContext( m_host, m_port );
  +        m_hostContext = new 
SocketCustomStreamHostContext.WithCurrentClassLoader( new DefaultThreadPool(),
  +                new AvalonFrameworkClientMonitor(getLogger()),
  +                new DefaultConnectionPinger(),  m_host, m_port );
           super.initialize();
       }
   }
  
  
  
  1.4       +5 -2      
incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/SocketObjectStreamSubscriber.java
  
  Index: SocketObjectStreamSubscriber.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-altrmi/src/java/org/apache/altrmi/blocks/subscription/SocketObjectStreamSubscriber.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SocketObjectStreamSubscriber.java 17 Feb 2003 20:27:39 -0000      1.3
  +++ SocketObjectStreamSubscriber.java 15 Jul 2003 07:08:10 -0000      1.4
  @@ -57,6 +57,9 @@
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.altrmi.client.impl.socket.SocketObjectStreamHostContext;
  +import org.apache.altrmi.client.impl.AvalonFrameworkClientMonitor;
  +import org.apache.altrmi.client.impl.DefaultConnectionPinger;
  +import org.apache.altrmi.common.DefaultThreadPool;
   
   /**
    * @phoenix:block
  @@ -97,7 +100,7 @@
       public void initialize()
           throws Exception
       {
  -        m_hostContext = new SocketObjectStreamHostContext( m_host, m_port );
  +        m_hostContext = new 
SocketObjectStreamHostContext.WithCurrentClassLoader( new DefaultThreadPool(), 
new AvalonFrameworkClientMonitor(getLogger()), new DefaultConnectionPinger(),  
m_host, m_port );
           super.initialize();
       }
   }
  
  
  
  1.1                  
incubator-altrmi/src/java/org/apache/altrmi/blocks/authentication/DefaultAuthenticatorBlock.java
  
  Index: DefaultAuthenticatorBlock.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1997-2003 The Apache Software Foundation. All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *    "This product includes software developed by the
   *    Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software
   *    itself, if and wherever such third-party acknowledgments
   *    normally appear.
   *
   * 4. The names "Incubator", "AltRMI", and "Apache Software Foundation"
   *    must not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation. For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.altrmi.blocks.authentication;
          
//org.apache.avalon.excalibur.altrmi.blockpublishing.authentication.DefaultAuthenticatorBlock
  
  import org.apache.avalon.framework.activity.Initializable;
  import org.apache.altrmi.common.Authentication;
  import org.apache.altrmi.common.AuthenticationException;
  import org.apache.altrmi.server.Authenticator;
  
  /**
   * @phoenix:block
   * @phoenix:service name="org.apache.altrmi.server.Authenticator"
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public class DefaultAuthenticatorBlock
      implements Authenticator, Initializable
  {
      private Authenticator m_authenticator;
  
      /**
       * 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_authenticator =
              new org.apache.altrmi.server.impl.DefaultAuthenticator();
      }
  
      public void checkAuthority( Authentication authentication, String 
publishedName )
          throws AuthenticationException
      {
          m_authenticator.checkAuthority( authentication, publishedName );
      }
  
      public String getTextToSign()
      {
          return m_authenticator.getTextToSign();
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to