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;
+ }
+ }
+}