hammant     2002/11/29 13:22:08

  Modified:    src/java/org/apache/avalon/cornerstone/blocks/rmification
                        DefaultRMIfication.java
               src/java/org/apache/avalon/cornerstone/services/rmification
                        RMIfication.java
  Log:
  Extra RMIfication features from Mauro Talevi
  
  Revision  Changes    Path
  1.10      +38 -3     
jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/rmification/DefaultRMIfication.java
  
  Index: DefaultRMIfication.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/rmification/DefaultRMIfication.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultRMIfication.java   21 Sep 2002 02:58:52 -0000      1.9
  +++ DefaultRMIfication.java   29 Nov 2002 21:22:08 -0000      1.10
  @@ -11,6 +11,7 @@
   import java.rmi.NotBoundException;
   import java.rmi.Remote;
   import java.rmi.RemoteException;
  +import java.rmi.RMISecurityManager;
   import java.rmi.registry.LocateRegistry;
   import java.rmi.registry.Registry;
   import java.rmi.server.UnicastRemoteObject;
  @@ -32,6 +33,7 @@
    * @phoenix:service 
name="org.apache.avalon.cornerstone.services.rmification.RMIfication"
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Eung-ju Park</a>
  + * @author Mauro Talevi
    * @version $Revision$
    */
   public class DefaultRMIfication
  @@ -56,6 +58,15 @@
           throws Exception
       {
           m_remotes = new HashMap();
  +        // check if SecurityManager is set
  +        if ( System.getSecurityManager() == null ) {
  +            System.setSecurityManager( new RMISecurityManager() );
  +            if( getLogger().isInfoEnabled() )
  +            {
  +                final String message = "RMISecurityManager set";
  +                getLogger().info( message );
  +            }
  +        }
   
           if( m_createRegistry )
           {
  @@ -85,12 +96,36 @@
           m_remotes = null;
       }
   
  +    public void export( final Remote remote )
  +        throws RemoteException
  +    {
  +        UnicastRemoteObject.exportObject( remote );
  +
  +        if( getLogger().isDebugEnabled() )
  +        {
  +            final String message = "Exported Remote " + remote.toString();
  +            getLogger().debug( message );
  +        }
  +    }
  +
  +    public void unexport( final Remote remote  )
  +        throws RemoteException
  +    {
  +        UnicastRemoteObject.unexportObject( remote, true );
  +
  +        if( getLogger().isDebugEnabled() )
  +        {
  +            final String message = "Unexported Remote " + remote.toString();
  +            getLogger().debug( message );
  +        }
  +    }
  +
       public void publish( final Remote remote, final String publicationName )
           throws RemoteException, MalformedURLException
       {
           synchronized( m_remotes )
           {
  -            UnicastRemoteObject.exportObject( remote );
  +            export( remote );
               m_registry.rebind( publicationName, remote );
   
               m_remotes.put( publicationName, remote );
  @@ -111,7 +146,7 @@
               final Remote remote = (Remote) m_remotes.get( publicationName );
   
               m_registry.unbind( publicationName );
  -            UnicastRemoteObject.unexportObject( remote, true );
  +            unexport( remote );
   
               m_remotes.remove( publicationName );
           }
  
  
  
  1.6       +18 -1     
jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/services/rmification/RMIfication.java
  
  Index: RMIfication.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/services/rmification/RMIfication.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- RMIfication.java  17 Feb 2002 01:45:57 -0000      1.5
  +++ RMIfication.java  29 Nov 2002 21:22:08 -0000      1.6
  @@ -16,6 +16,7 @@
    * This service provides a way to publish an <code>Remote<code> object via RMI.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Eung-ju Park</a>
  + * @author Mauro Talevi
    * @version $Revision$
    */
   public interface RMIfication
  @@ -23,6 +24,22 @@
       String ROLE = RMIfication.class.getName();
   
       /**
  +     * Export a Remote object
  +     *
  +     * @param remote the remote object to export
  +     */
  +    void export( Remote remote )
  +        throws RemoteException;
  +
  +    /**
  +     * Unexport a Remote object
  +     *
  +     * @param remote the remote object to unexport
  +     */
  +    void unexport( Remote remote )
  +        throws RemoteException;
  +
  +     /**
        * Publish a set of interfaces
        *
        * @param remote the remote object to publish
  
  
  

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

Reply via email to