Author: rmannibucau
Date: Wed Jun 20 18:45:17 2012
New Revision: 1352261

URL: http://svn.apache.org/viewvc?rev=1352261&view=rev
Log:
TOMEE-247 test inithooks

Added:
    
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/HooksTest.java
Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1352261&r1=1352260&r2=1352261&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Wed Jun 20 18:45:17 2012
@@ -544,7 +544,7 @@ public class ConfigurationFactory implem
                     ((Runnable) instance).run();
                 } else {
                     for (Method mtd : instance.getClass().getMethods()) {
-                        if (mtd.getAnnotation(PostConstruct.class) != null) {
+                        if (!Object.class.equals(mtd.getDeclaringClass()) && 
mtd.getAnnotation(PostConstruct.class) != null) {
                             try {
                                 mtd.invoke(instance);
                             } catch (Exception e) {

Added: 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/HooksTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/HooksTest.java?rev=1352261&view=auto
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/HooksTest.java
 (added)
+++ 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/HooksTest.java
 Wed Jun 20 18:45:17 2012
@@ -0,0 +1,63 @@
+package org.apache.openejb.config;
+
+import java.util.Properties;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.loader.SystemInstance;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class HooksTest {
+    @BeforeClass
+    public static void init() {
+        SystemInstance.get().getProperties().putAll(new Properties() {{
+            setProperty("run", "new://InitHooks?name=" + 
HookRun.class.getName());
+            setProperty("lifecycle", "new://InitHooks?name=" + 
HookLifecycle.class.getName());
+        }});
+    }
+
+    @AfterClass
+    public static void reset() {
+        SystemInstance.reset();
+    }
+
+    @Test
+    public void check() throws OpenEJBException {
+        final ConfigurationFactory cf = new ConfigurationFactory();
+        cf.getOpenEjbConfiguration();
+        assertTrue(HookRun.ok);
+        assertTrue(HookLifecycle.start);
+        assertFalse(HookLifecycle.stop);
+        cf.destroy();
+        assertTrue(HookLifecycle.stop);
+    }
+
+    public static class HookRun implements Runnable {
+        private static boolean ok = false;
+
+        @Override
+        public void run() {
+            ok = true;
+        }
+    }
+
+    public static class HookLifecycle {
+        private static boolean start = false;
+        private static boolean stop = false;
+
+        @PostConstruct
+        public void start() {
+            start = true;
+        }
+
+        @PreDestroy
+        public void stop() {
+            stop = true;
+        }
+    }
+}


Reply via email to