Author: tveronezi
Date: Fri Nov 23 22:46:01 2012
New Revision: 1413099
URL: http://svn.apache.org/viewvc?rev=1413099&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-607
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/RunInstaller.java
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/RunInstaller.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/RunInstaller.java?rev=1413099&r1=1413098&r2=1413099&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/RunInstaller.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/command/impl/RunInstaller.java
Fri Nov 23 22:46:01 2012
@@ -23,9 +23,13 @@ import org.apache.tomee.webapp.Applicati
import org.apache.tomee.webapp.command.Command;
import org.apache.tomee.webapp.command.IsProtected;
+import javax.naming.Context;
+import javax.naming.InitialContext;
import java.io.File;
+import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
@IsProtected
public class RunInstaller implements Command {
@@ -66,24 +70,72 @@ public class RunInstaller implements Com
json.put("infos", installer.getAlerts().getInfos());
final Map<String, Object> test = new HashMap<String, Object>();
- test.put("hashHome", false);
- test.put("doesHomeExist", false);
- test.put("isHomeDirectory", false);
- test.put("hasLibDirectory", false);
-
json.put("test", test);
- final String homePath = System.getProperty("openejb.home");
- if(homePath != null) {
- final File homeDir = new File(homePath);
- test.put("doesHomeExist", homeDir.exists());
- if(homeDir.exists()) {
- test.put("isHomeDirectory", homeDir.isDirectory());
- final File libDir = new File(homeDir, "lib");
- test.put("hasLibDirectory", libDir.exists());
+ {
+ test.put("hasHome", false);
+ test.put("doesHomeExist", false);
+ test.put("isHomeDirectory", false);
+ test.put("hasLibDirectory", false);
+
+ final String homePath = System.getProperty("openejb.home");
+ if (homePath != null) {
+ test.put("hasHome", true);
+ final File homeDir = new File(homePath);
+ test.put("doesHomeExist", homeDir.exists());
+ if (homeDir.exists()) {
+ test.put("isHomeDirectory", homeDir.isDirectory());
+ final File libDir = new File(homeDir, "lib");
+ test.put("hasLibDirectory", libDir.exists());
+ }
}
}
+ {
+ test.put("wereTheOpenEJBClassesInstalled", false);
+ test.put("wereTheEjbClassesInstalled", false);
+ test.put("wasOpenEJBStarted", false);
+ test.put("canILookupAnything", false);
+
+ try {
+ final ClassLoader myLoader = this.getClass().getClassLoader();
+ Class.forName("org.apache.openejb.OpenEJB", true, myLoader);
+ test.put("wereTheOpenEJBClassesInstalled", true);
+ } catch (Exception e) {
+ // noop
+ }
+
+ try {
+ Class.forName("javax.ejb.EJBHome", true,
this.getClass().getClassLoader());
+ test.put("wereTheEjbClassesInstalled", true);
+ } catch (Exception e) {
+ // noop
+ }
+
+ try {
+ final Class openejb =
Class.forName("org.apache.openejb.OpenEJB", true,
this.getClass().getClassLoader());
+ final Method isInitialized =
openejb.getDeclaredMethod("isInitialized");
+ final Boolean running = (Boolean)
isInitialized.invoke(openejb);
+ test.put("wasOpenEJBStarted", running);
+ } catch (Exception e) {
+ // noop
+ }
+
+ try {
+ final Properties p = new Properties();
+ p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.core.LocalInitialContextFactory");
+ p.put("openejb.loader", "embed");
+
+ final InitialContext ctx = new InitialContext(p);
+ final Object obj = ctx.lookup("");
+
+ if
(obj.getClass().getName().equals("org.apache.openejb.core.ivm.naming.IvmContext"))
{
+ test.put("canILookupAnything", true);
+ }
+ } catch (Exception e) {
+ // noop
+ }
+ }
return json;
}
}