[jboss-cvs] JBossAS SVN: r93451 - in projects/jboss-osgi/projects/bundles/jndi/trunk: src/main/java/org/jboss/osgi/jndi/internal and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Sep 14 03:54:23 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-09-14 03:54:23 -0400 (Mon, 14 Sep 2009)
New Revision: 93451
Modified:
projects/jboss-osgi/projects/bundles/jndi/trunk/pom.xml
projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/InitialContextFactory.java
projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/JNDIServiceActivator.java
Log:
Start connector optionally
Modified: projects/jboss-osgi/projects/bundles/jndi/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/jndi/trunk/pom.xml 2009-09-14 07:51:11 UTC (rev 93450)
+++ projects/jboss-osgi/projects/bundles/jndi/trunk/pom.xml 2009-09-14 07:54:23 UTC (rev 93451)
@@ -88,6 +88,7 @@
org.jboss.net.sockets,
org.jboss.osgi.common.log;version="1.0",
org.jboss.osgi.spi.capability;version="1.0",
+ org.jboss.osgi.spi.util;version="1.0",
org.jboss.util.naming,
org.jboss.util.threadpool,
org.osgi.framework,
Modified: projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/InitialContextFactory.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/InitialContextFactory.java 2009-09-14 07:51:11 UTC (rev 93450)
+++ projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/InitialContextFactory.java 2009-09-14 07:54:23 UTC (rev 93451)
@@ -49,16 +49,33 @@
this.jndiPort = jndiPort;
}
- @SuppressWarnings("unchecked")
public Object getService(Bundle bundle, ServiceRegistration registration)
{
+ try
+ {
+ return getInitialContext(bundle);
+ }
+ catch (NamingException ex)
+ {
+ throw new IllegalStateException("Cannot get the InitialContext", ex);
+ }
+ }
+
+ public void ungetService(Bundle bundle, ServiceRegistration registration, Object service)
+ {
+ // nothing to do
+ }
+
+ InitialContext getInitialContext(Bundle bundle) throws NamingException
+ {
ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
try
{
- // [TODO] use the calling bundle's class loader
+ //Thread.currentThread().setContextClassLoader(BundleClassLoader.createClassLoader(bundle));
+
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- Hashtable env = new Hashtable();
+ Hashtable<String, String> env = new Hashtable<String, String>();
env.put("java.naming.factory.initial", NamingContextFactory.class.getName());
env.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
env.put("java.naming.provider.url", "jnp://" + jndiHost + ":" + jndiPort);
@@ -66,18 +83,9 @@
InitialContext iniCtx = new InitialContext(env);
return iniCtx;
}
- catch (NamingException ex)
- {
- throw new IllegalStateException("Cannot get the InitialContext", ex);
- }
finally
{
Thread.currentThread().setContextClassLoader(ctxLoader);
}
}
-
- public void ungetService(Bundle bundle, ServiceRegistration registration, Object service)
- {
- // nothing to do
- }
}
\ No newline at end of file
Modified: projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/JNDIServiceActivator.java
===================================================================
--- projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/JNDIServiceActivator.java 2009-09-14 07:51:11 UTC (rev 93450)
+++ projects/jboss-osgi/projects/bundles/jndi/trunk/src/main/java/org/jboss/osgi/jndi/internal/JNDIServiceActivator.java 2009-09-14 07:54:23 UTC (rev 93451)
@@ -27,13 +27,14 @@
import static org.jboss.osgi.jndi.Constants.REMOTE_JNDI_PORT;
import static org.jboss.osgi.jndi.Constants.REMOTE_JNDI_RMI_PORT;
+import java.io.IOException;
+import java.net.Socket;
+
import javax.naming.InitialContext;
-import org.jboss.osgi.common.log.LogServiceTracker;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.log.LogService;
/**
* A BundleActivator for the JNDI related services
@@ -45,12 +46,9 @@
{
private ServiceRegistration registration;
private JNPServer jnpServer;
- private LogService log;
public void start(BundleContext context)
{
- log = new LogServiceTracker(context);
-
String jndiHost = context.getProperty(REMOTE_JNDI_HOST);
if (jndiHost == null)
jndiHost = "localhost";
@@ -63,12 +61,20 @@
if (jndiPort == null)
jndiPort = "1099";
- jnpServer = new JNPServer(context, jndiHost, Integer.parseInt(jndiPort), Integer.parseInt(jndiRmiPort));
- jnpServer.start();
+ try
+ {
+ // Assume that the JNPServer is already running if we can connect to it
+ Socket socket = new Socket(jndiHost, Integer.parseInt(jndiPort));
+ socket.close();
+ }
+ catch (IOException ex)
+ {
+ jnpServer = new JNPServer(context, jndiHost, Integer.parseInt(jndiPort), Integer.parseInt(jndiRmiPort));
+ jnpServer.start();
+ }
InitialContextFactory serviceFactory = new InitialContextFactory(jndiHost, jndiPort);
registration = context.registerService(InitialContext.class.getName(), serviceFactory, null);
- log.log(LogService.LOG_DEBUG, "InitialContext registered");
}
public void stop(BundleContext context)
More information about the jboss-cvs-commits
mailing list