Author: dblevins
Date: Wed Aug 27 09:59:10 2008
New Revision: 689525
URL: http://svn.apache.org/viewvc?rev=689525&view=rev
Log:
Tweaked the code so the LocalInitialContext doesn't try to start the
ServiceManager if someone else has
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java?rev=689525&r1=689524&r2=689525&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContext.java
Wed Aug 27 09:59:10 2008
@@ -31,6 +31,7 @@
import javax.security.auth.login.LoginException;
import java.util.Hashtable;
import java.util.Properties;
+import java.util.Map;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
@@ -57,6 +58,14 @@
login();
startNetworkServices();
+
+ Properties properties = new Properties();
+ // set standard and vendor properties
+ createEJBContainer(properties);
+ }
+
+ public void createEJBContainer(Map<?,?> properties, String... modules){
+
}
public void close() throws NamingException {
@@ -113,12 +122,29 @@
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
try {
- logger.info("Starting network services");
Class serviceManagerClass =
classLoader.loadClass("org.apache.openejb.server.ServiceManager");
+
+ Method get = serviceManagerClass.getMethod("get");
+
+ try {
+ if (get.invoke(null) != null) return;
+ } catch (InvocationTargetException e) {
+ return;
+ }
+
+ logger.info("Starting network services");
+
+ Method getManager = serviceManagerClass.getMethod("getManager");
Method init = serviceManagerClass.getMethod("init");
Method start = serviceManagerClass.getMethod("start",
boolean.class);
- serviceManager = serviceManagerClass.newInstance();
+ try {
+ serviceManager = getManager.invoke(null);
+ } catch (InvocationTargetException e) {
+ String msg = "Option Enabled '" + OPENEJB_EMBEDDED_REMOTABLE +
"'. Error, unable to instantiate ServiceManager class
'org.apache.openejb.server.ServiceManager'.";
+ throw new IllegalStateException(msg, e);
+ }
+
try {
init.invoke(serviceManager);
} catch (InvocationTargetException e) {
@@ -139,9 +165,6 @@
} catch (NoSuchMethodException e) {
String msg = "Option Enabled '" + OPENEJB_EMBEDDED_REMOTABLE + "'.
Error, 'init' and 'start' methods not found on as expected on class
'org.apache.openejb.server.ServiceManager'. This should never happen.";
throw new IllegalStateException(msg, e);
- } catch (InstantiationException e) {
- String msg = "Option Enabled '" + OPENEJB_EMBEDDED_REMOTABLE + "'.
Error, unable to instantiate ServiceManager class
'org.apache.openejb.server.ServiceManager'.";
- throw new IllegalStateException(msg, e);
} catch (IllegalAccessException e) {
String msg = "Option Enabled '" + OPENEJB_EMBEDDED_REMOTABLE + "'.
Error, 'init' and 'start' methods cannot be accessed on class
'org.apache.openejb.server.ServiceManager'. The VM SecurityManager settings
must be adjusted.";
throw new IllegalStateException(msg, e);
Modified:
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java?rev=689525&r1=689524&r2=689525&view=diff
==============================================================================
---
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
(original)
+++
openejb/trunk/openejb3/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
Wed Aug 27 09:59:10 2008
@@ -71,6 +71,11 @@
return manager;
}
+ public static ServiceManager get() {
+ return manager;
+ }
+
+
// Have properties files (like xinet.d) that specifies what daemons to
// Look into the xinet.d file structure again
// conf/server.d/