User: starksm 
  Date: 01/04/22 23:08:06

  Modified:    src/main/org/jnp/server Main.java MainMBean.java
                        NamingServer.java
  Log:
  Add support for PROVIDER_URL values that refer to subcontexts
  
  Revision  Changes    Path
  1.3       +162 -161  jnp/src/main/org/jnp/server/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /cvsroot/jboss/jnp/src/main/org/jnp/server/Main.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Main.java 2000/12/12 10:57:11     1.2
  +++ Main.java 2001/04/23 06:08:06     1.3
  @@ -7,10 +7,12 @@
    */
   package org.jnp.server;
   
  +import java.io.FileNotFoundException;
   import java.io.IOException;
   import java.io.ObjectOutputStream;
   import java.net.Socket;
   import java.net.ServerSocket;
  +import java.net.URL;
   import java.rmi.Remote;
   import java.rmi.RemoteException;
   import java.rmi.MarshalledObject;
  @@ -19,178 +21,177 @@
   
   import javax.naming.*;
   
  +import org.apache.log4j.Category;
  +import org.apache.log4j.PropertyConfigurator;
  +
   import org.jnp.interfaces.Naming;
   import org.jnp.interfaces.NamingContext;
   import org.jnp.interfaces.java.javaURLContextFactory;
  +
  +/** A main() entry point for running the jnp naming service implementation as
  +a standalone process.
   
  -/**
  - *   <description> 
  - *      
  - *   @see <related>
  - *   @author $Author: oberg $
  - *   @version $Revision: 1.2 $
  - */
  +@author $Author: starksm $
  +@author [EMAIL PROTECTED]
  +@version $Revision: 1.3 $
  +*/
   public class Main
      implements Runnable, MainMBean
   {
  -   // Constants -----------------------------------------------------
  -    
  -   // Attributes ----------------------------------------------------
  -   NamingServer theServer;
  -   MarshalledObject serverStub;
  -   ServerSocket serverSocket;
  -   
  -   int port = 1099;
  -   int rmiPort = 0; // Anonymous
  -   boolean logging = false;
  -   
  -   // Static --------------------------------------------------------
  -   public static void main(String[] args)
  +    // Constants -----------------------------------------------------
  +
  +    // Attributes ----------------------------------------------------
  +    NamingServer theServer;
  +    MarshalledObject serverStub;
  +    ServerSocket serverSocket;
  +
  +    int port = 1099;
  +    int rmiPort = 0; // Anonymous
  +    Category log;
  +
  +    // Static --------------------------------------------------------
  +    public static void main(String[] args)
         throws Exception
  -   {
  -      new Main().start();
  -   }
  -
  -   // Constructors --------------------------------------------------
  -   public Main()
  -   {
  -      // Load properties from properties file
  -      try
  -      {
  -         
System.getProperties().load(getClass().getClassLoader().getResourceAsStream("jnp.properties"));
  -      } catch (Exception e)
  -      {
  +    {
  +        new Main().start();
  +    }
  +
  +    // Constructors --------------------------------------------------
  +    public Main()
  +    {
  +        // Load properties from properties file
  +        try
  +        {
  +            
System.getProperties().load(getClass().getClassLoader().getResourceAsStream("jnp.properties"));
  +        } catch (Exception e)
  +        {
            // Ignore
  -      }
  -      
  -      // Set configuration
  -      setPort(Integer.getInteger("jnp.port",getPort()).intValue());
  -      setLogging(Boolean.getBoolean("jnp.log"));
  -   }
  -
  -   // Public --------------------------------------------------------
  -   public void setRmiPort(int p) { rmiPort = p; }
  -   public int getRmiPort() { return rmiPort; }
  -   
  -   public void setPort(int p) { port = p; }
  -   public int getPort() { return port; }
  +        }
   
  -   public void setLogging(boolean l) { logging = l; }
  -   public boolean getLogging() { return logging; }
  +        // Set configuration
  +        setPort(Integer.getInteger("jnp.port",getPort()).intValue());
  +        log = Category.getInstance("org.jnp.Naming");
  +    }
   
  -   public void start()
  +    // Public --------------------------------------------------------
  +    public void setRmiPort(int p) { rmiPort = p; }
  +    public int getRmiPort() { return rmiPort; }
  +
  +    public void setPort(int p) { port = p; }
  +    public int getPort() { return port; }
  +
  +    public void start()
         throws Exception
  -   {
  -      // Create remote object
  -      theServer = new NamingServer();
  -   
  -      // Set local server reference
  -      NamingContext.setLocal(theServer);
  -             
  -      // Export server
  -      serverStub = new MarshalledObject(UnicastRemoteObject.exportObject(theServer, 
rmiPort));
  -      
  -      // Start listener
  -      try
  -      {
  -         serverSocket = null;
  -         serverSocket = new ServerSocket(getPort());
  -         log("Started on port " + getPort());
  -         listen();
  -      } catch (IOException e)
  -      {
  -         log("Could not start on port " + getPort());
  -      }
  -   }
  -   
  -   public void stop()
  -   {
  -      try
  -      {
  -         log("Stopped");
  -         
  -         // Unexport server
  -         UnicastRemoteObject.unexportObject(theServer, false);
  -
  -         // Stop listener
  -         ServerSocket s = serverSocket;
  -         serverSocket = null;
  -         s.close();
  -      } catch (Exception e) 
  -      {
  -         e.printStackTrace();
  -      }
  -   }
  -
  -   // Runnable implementation ---------------------------------------
  -   public void run()
  -   {
  -      Socket socket = null;
  -      
  -      // Accept a connection
  -      try 
  -      {
  -         socket = serverSocket.accept();
  -      } catch (IOException e) 
  -      {
  -         if (serverSocket == null) return; // Stopped by normal means
  -         
  -         System.err.println("Naming stopped: " + e.getMessage());
  -         e.printStackTrace();
  -         log("Restarting naming");
  -         try
  -         {
  -            start();
  -            
  -         } catch (Exception ex)
  -         {
  -            log("Restart failed");
  -            return;
  -         }
  -      }
  -      
  -      // Create a new thread to accept the next connection
  -      listen();
  -
  -      // Return the naming server stub
  -      try 
  -      {
  -        ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
  -        
  -        out.writeObject(serverStub);
  -      } catch (IOException ex) 
  -      {
  -         log("Error writing response: " + ex.getMessage());
  -         ex.printStackTrace();
  -      
  -      } finally 
  -      {
  -         try 
  -         {
  -            socket.close();
  -         } catch (IOException e) 
  -         {
  -         }
  -      }
  -   }
  -    
  -   // Y overrides ---------------------------------------------------
  -
  -   // Package protected ---------------------------------------------
  -    
  -   // Protected -----------------------------------------------------
  -   protected void log(String msg)
  -   {
  -      if (getLogging())
  -         System.err.println("[Naming] "+msg);
  -   }
  -   
  -   protected void listen()
  -   {
  +    {
  +        // Make sure the config file can be found
  +        ClassLoader loader = Thread.currentThread().getContextClassLoader();
  +        URL url = loader.getResource("log4j.properties");
  +        if( url == null )
  +            throw new FileNotFoundException("Failed to find log4j.properties");
  +        PropertyConfigurator.configure(url);
  +        log.info("Starting jnp server");
  +
  +        // Create remote object
  +        theServer = new NamingServer();
  +
  +        // Set local server reference
  +        NamingContext.setLocal(theServer);
  +
  +        // Export server
  +        serverStub = new 
MarshalledObject(UnicastRemoteObject.exportObject(theServer, rmiPort));
  +
  +        // Start listener
  +        try
  +        {
  +            serverSocket = null;
  +            serverSocket = new ServerSocket(getPort());
  +            log.info("Started on port " + getPort());
  +            listen();
  +        } catch (IOException e)
  +        {
  +            log.error("Could not start on port " + getPort(), e);
  +        }
  +    }
  +   
  +    public void stop()
  +    {
  +        try
  +        {
  +            log.info("Stopping");
  +
  +            // Unexport server
  +            UnicastRemoteObject.unexportObject(theServer, false);
  +
  +            // Stop listener
  +            ServerSocket s = serverSocket;
  +            serverSocket = null;
  +            s.close();
  +            log.info("Stopped");
  +        } catch (Exception e) 
  +        {
  +            log.error("Exception during shutdown", e);
  +        }
  +    }
  +
  +    // Runnable implementation ---------------------------------------
  +    public void run()
  +    {
  +        Socket socket = null;
  +
  +        // Accept a connection
  +        try 
  +        {
  +            socket = serverSocket.accept();
  +        } catch (IOException e) 
  +        {
  +            if (serverSocket == null) return; // Stopped by normal means
  +            log.error("Naming stopped", e);
  +            log.info("Restarting naming");
  +            try
  +            {
  +                start();
  +            } catch (Exception ex)
  +            {
  +                log.error("Restart failed", ex);
  +                return;
  +            }
  +        }
  +
  +        // Create a new thread to accept the next connection
  +        listen();
  +
  +        // Return the naming server stub
  +        try 
  +        {
  +            ObjectOutputStream out = new 
ObjectOutputStream(socket.getOutputStream());
  +            out.writeObject(serverStub);
  +        }
  +        catch (IOException ex) 
  +        {
  +             log.error("Error writing response", ex);
  +        }
  +        finally
  +        {
  +            try 
  +            {
  +                socket.close();
  +            } catch (IOException e) 
  +            {
  +            }
  +        }
  +    }
  +
  +    // Y overrides ---------------------------------------------------
  +
  +    // Package protected ---------------------------------------------
  +
  +    // Protected -----------------------------------------------------
  +    protected void listen()
  +    {
         new Thread(this).start();
  -   }
  -    
  -   // Private -------------------------------------------------------
  +    }
  +
  +    // Private -------------------------------------------------------
   
  -   // Inner classes -------------------------------------------------
  -}
  \ No newline at end of file
  +    // Inner classes -------------------------------------------------
  +}
  
  
  
  1.3       +2 -4      jnp/src/main/org/jnp/server/MainMBean.java
  
  Index: MainMBean.java
  ===================================================================
  RCS file: /cvsroot/jboss/jnp/src/main/org/jnp/server/MainMBean.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MainMBean.java    2000/12/12 10:57:11     1.2
  +++ MainMBean.java    2001/04/23 06:08:06     1.3
  @@ -11,8 +11,9 @@
    *   <description> 
    *      
    *   @see <related>
  - *   @author $Author: oberg $
  - *   @version $Revision: 1.2 $
  + *   @author $Author: starksm $
  + *   @author [EMAIL PROTECTED]
  + *   @version $Revision: 1.3 $
    */
   public interface MainMBean
   {
  @@ -24,9 +25,6 @@
      
      public void setPort(int p);
      public int getPort();
  -
  -   public void setLogging(boolean l);
  -   public boolean getLogging();
   
      public void start()
         throws Exception;
  
  
  
  1.5       +2 -2      jnp/src/main/org/jnp/server/NamingServer.java
  
  Index: NamingServer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jnp/src/main/org/jnp/server/NamingServer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NamingServer.java 2000/12/12 10:57:11     1.4
  +++ NamingServer.java 2001/04/23 06:08:06     1.5
  @@ -39,8 +39,8 @@
    *   <description> 
    *      
    *   @see <related>
  - *   @author $Author: oberg $
  - *   @version $Revision: 1.4 $
  + *   @author $Author: starksm $
  + *   @version $Revision: 1.5 $
    */
   public class NamingServer
      implements Naming, java.io.Serializable
  @@ -398,7 +398,7 @@
      {
         if (name.size() > 1)
         {
  -//         System.out.println("create#"+name.get(0)+"#");
  +         System.out.println("create#"+name.get(0)+"#");
            
            Object ctx = getObject(name);
            if (ctx != null)
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to