2
* JBoss, Home of Professional Open Source
3
* Copyright 2005, JBoss Inc., and individual contributors as indicated
4
* by the @authors tag. See the copyright.txt in the distribution for a
5
* full listing of individual contributors.
7
* This is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU Lesser General Public License as
9
* published by the Free Software Foundation; either version 2.1 of
10
* the License, or (at your option) any later version.
12
* This software is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this software; if not, write to the Free
19
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
22
package org.jboss.remoting.samples.transporter.custom.server;
24
import org.jboss.remoting.samples.detection.jndi.SimpleJNDIServer;
25
import org.jboss.remoting.util.SecurityUtility;
26
import org.jnp.server.Main;
28
import java.lang.reflect.Method;
29
import java.net.InetAddress;
30
import java.security.AccessController;
31
import java.security.PrivilegedActionException;
32
import java.security.PrivilegedExceptionAction;
35
* @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
37
public class JNDIServer
39
public static final int JNDI_PORT = 2410;
41
public static void main(String[] args)
45
Object namingBean = null;
46
Class namingBeanImplClass = null;
49
namingBeanImplClass = Class.forName("org.jnp.server.NamingBeanImpl");
50
namingBean = namingBeanImplClass.newInstance();
51
Method startMethod = namingBeanImplClass.getMethod("start", new Class[] {});
52
setSystemProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
53
startMethod.invoke(namingBean, new Object[] {});
57
SimpleJNDIServer.println("Cannot find NamingBeanImpl: must be running jdk 1.4");
60
String host = InetAddress.getLocalHost().getHostAddress();
62
Main jserver = new Main();
63
if (namingBean != null)
65
Class namingBeanClass = Class.forName("org.jnp.server.NamingBean");
66
Method setNamingInfoMethod = jserver.getClass().getMethod("setNamingInfo", new Class[] {namingBeanClass});
67
setNamingInfoMethod.invoke(jserver, new Object[] {namingBean});
70
jserver.setPort(port);
71
jserver.setBindAddress(host);
72
jserver.setRmiPort(31000);
74
System.out.println("Started JNDI server on " + host + ":" + port);
88
static private void setSystemProperty(final String name, final String value)
90
if (SecurityUtility.skipAccessControl())
92
System.setProperty(name, value);
98
AccessController.doPrivileged( new PrivilegedExceptionAction()
100
public Object run() throws Exception
102
return System.setProperty(name, value);
106
catch (PrivilegedActionException e)
108
throw (RuntimeException) e.getCause();
b'\\ No newline at end of file'