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