You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2015/04/15 18:53:40 UTC
[03/12] tomee git commit: TOMEE-1547 Fix compile issue from merge and
some slight tweaks
TOMEE-1547 Fix compile issue from merge and some slight tweaks
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/15df1fee
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/15df1fee
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/15df1fee
Branch: refs/heads/master
Commit: 15df1feeb23f855fb7e544a7bee3011bf5ac1861
Parents: 1c52f1e
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Wed Apr 15 10:54:07 2015 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Wed Apr 15 11:58:39 2015 +0100
----------------------------------------------------------------------
.../arquillian/tests/resource/ResourceTest.java | 18 ++++++------
.../openejb/assembler/classic/Assembler.java | 31 +++++++++-----------
.../apache/openejb/config/ReadDescriptors.java | 5 +---
.../core/ivm/naming/LazyObjectReference.java | 4 +++
4 files changed, 28 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/15df1fee/arquillian/arquillian-tomee-tests/arquillian-tomee-config-tests/src/test/java/org/apache/openejb/arquillian/tests/resource/ResourceTest.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-config-tests/src/test/java/org/apache/openejb/arquillian/tests/resource/ResourceTest.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-config-tests/src/test/java/org/apache/openejb/arquillian/tests/resource/ResourceTest.java
index dabc13b..2ea59a4 100644
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-config-tests/src/test/java/org/apache/openejb/arquillian/tests/resource/ResourceTest.java
+++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-config-tests/src/test/java/org/apache/openejb/arquillian/tests/resource/ResourceTest.java
@@ -19,15 +19,7 @@
package org.apache.openejb.arquillian.tests.resource;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.annotation.Resource;
-import javax.ejb.EJB;
-import javax.ejb.Lock;
-import javax.ejb.LockType;
-import javax.ejb.Singleton;
-
-import org.apache.openejb.api.resource.DestroyableResource;
+import org.apache.openejb.api.DestroyableResource;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
@@ -37,6 +29,14 @@ import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.ejb.Lock;
+import javax.ejb.LockType;
+import javax.ejb.Singleton;
+
@RunWith(Arquillian.class)
public class ResourceTest {
http://git-wip-us.apache.org/repos/asf/tomee/blob/15df1fee/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 940c6ab..2c63f36 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -1115,6 +1115,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
Object resource = containerSystemContext.lookup(OPENEJB_RESOURCE_JNDI_PREFIX + resourceInfo.id);
if (resource instanceof LazyResource) {
resource = LazyResource.class.cast(resource).getObject();
+ this.bindResource(resourceInfo.id, resource);
}
try {
@@ -1755,6 +1756,9 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
}
private void destroyResource(final String name, final String className, final Object object) {
+
+ final Method preDestroy = findPreDestroy(object);
+
if (object instanceof ResourceAdapterReference) {
final ResourceAdapterReference resourceAdapter = (ResourceAdapterReference) object;
try {
@@ -1813,9 +1817,13 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
} catch (final RuntimeException e) {
logger.error(e.getMessage(), e);
}
- } else if (hasPreDestroy(object)) {
+ } else if (preDestroy != null) {
logger.debug("Calling @PreDestroy on: " + className);
- preDestroy(object);
+ try {
+ preDestroy.invoke(object);
+ } catch (final Exception e) {
+ logger.error(e.getMessage(), e);
+ }
} else if (logger.isDebugEnabled() && !DataSource.class.isInstance(object)) {
logger.debug("Not processing resource on destroy: " + className);
}
@@ -1836,28 +1844,17 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
}
}
- private void preDestroy(final Object object) {
- final Method preDestroy = findMethodAnnotatedWith(PreDestroy.class, object.getClass());
- if (preDestroy != null) {
- try {
- preDestroy.invoke(object);
- } catch (Exception e) {
- logger.error("Error when calling @PreDestroy", e);
- }
- }
- }
-
- private boolean hasPreDestroy(final Object object) {
+ private Method findPreDestroy(final Object object) {
try {
Object resource = object;
- if (resource instanceof LazyResource) {
+ if (LazyResource.class.isInstance(resource) && LazyResource.class.cast(resource).isInitialized()) {
resource = LazyResource.class.cast(resource).getObject();
}
final Class<? extends Object> cls = resource.getClass();
- return findMethodAnnotatedWith(PreDestroy.class, cls) != null;
+ return findMethodAnnotatedWith(PreDestroy.class, cls);
} catch (Exception e) {
- return false;
+ return null;
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/15df1fee/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java b/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
index abd6dfc..5f951a1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
@@ -278,12 +278,9 @@ public class ReadDescriptors implements DynamicDeployer {
if (resource.getClassName() != null) {
try {
ParentClassLoaderFinder.Helper.get().loadClass(resource.getClassName());
- if (resource.getType() != null) {
- ParentClassLoaderFinder.Helper.get().loadClass(resource.getType());
- }
continue;
} catch (Exception e) {
- // ignore if these classes are found in the classloader
+ // ignore if this class is not found in the classloader
}
// if the resource class cannot be loaded,
http://git-wip-us.apache.org/repos/asf/tomee/blob/15df1fee/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/LazyObjectReference.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/LazyObjectReference.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/LazyObjectReference.java
index f4b74da..37aa6ee 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/LazyObjectReference.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/LazyObjectReference.java
@@ -43,4 +43,8 @@ public class LazyObjectReference<T> extends Reference {
}
return instance;
}
+
+ public boolean isInitialized() {
+ return instance != null;
+ }
}