[release-tools] creating tag for openejb-4.5.0
git-svn-id: https://svn.apache.org/repos/asf/openejb/tags/openejb-4.5.0@1391627 13f79535-47bb-0310-9956-ffa450edef68
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 30811cf..dc61632 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
@@ -1129,12 +1129,6 @@
destroyResource(binding.getName(), binding.getClassName(), object);
}
- try {
- containerSystem.getJNDIContext().unbind("java:global");
- } catch (NamingException ignored) {
- // no-op
- }
-
SystemInstance.get().removeComponent(OpenEjbConfiguration.class);
SystemInstance.get().removeComponent(JtaEntityManagerRegistry.class);
SystemInstance.get().removeComponent(TransactionSynchronizationRegistry.class);
@@ -1223,6 +1217,11 @@
}
}
}
+ try {
+ containerSystem.getJNDIContext().unbind("java:global");
+ } catch (NamingException ignored) {
+ // no-op
+ }
EjbResolver globalResolver = new EjbResolver(null, EjbResolver.Scope.GLOBAL);
for (AppInfo info : deployedApplications.values()) {
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContext.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContext.java
index 031c719..94aefef 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContext.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContext.java
@@ -17,6 +17,8 @@
*/
package org.apache.tomee.catalina;
+import org.apache.naming.ContextBindings;
+import org.apache.openejb.assembler.DeployerEjb;
import org.apache.openejb.core.ThreadContext;
import javax.naming.Binding;
@@ -254,9 +256,19 @@
*/
private Context getThreadContext() throws NamingException {
ThreadContext threadContext = ThreadContext.getThreadContext();
+ if (skipEjbContext(threadContext)) {
+ return ContextBindings.getClassLoader();
+ }
Context context = threadContext.getBeanContext().getJndiEnc();
return context;
}
+ private boolean skipEjbContext(final ThreadContext threadContext) {
+ // we use it to deploy so if any lookup is done during the deployment
+ // we don't want to get the DeployerEjb JNDI tree
+ // since this method is pretty quick that's not an issue to do the test
+ return DeployerEjb.class.equals(threadContext.getBeanContext().getBeanClass());
+ }
+
}
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
index 3b58e47..62becb9 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
@@ -17,7 +17,10 @@
package org.apache.tomee.catalina;
import org.apache.openejb.config.TldScanner;
+import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.jee.WebApp;
+import javax.xml.bind.JAXBException;
import java.util.concurrent.Semaphore;
/**
@@ -154,6 +157,11 @@
final ClassLoader loader = Warmup.class.getClassLoader();
+ final JaxbJavaeeLoad jaxbJavaeeLoad = new JaxbJavaeeLoad(WebApp.class);
+ final Thread jaxb = new Thread(jaxbJavaeeLoad);
+ jaxb.setDaemon(true);
+ jaxb.start();
+
try { // see org.apache.openejb.Core
Class.forName("org.apache.openejb.util.Logger", true, loader);
Class.forName("org.apache.openejb.util.JuliLogStreamFactory", true, loader);
@@ -165,6 +173,7 @@
final Semaphore semaphore = new Semaphore(0);
final Thread tld = new Thread() {
+
@Override
public void run() {
try {
@@ -205,9 +214,27 @@
try {
semaphore.acquire(permits);
tld.join();
+ jaxb.join();
} catch (InterruptedException e) {
Thread.interrupted();
}
}
+
+ private static class JaxbJavaeeLoad implements Runnable {
+
+ private final Class<?> type;
+
+ private JaxbJavaeeLoad(Class<?> type) {
+ this.type = type;
+ }
+
+ @Override
+ public void run() {
+ try {
+ JaxbJavaee.getContext(type);
+ } catch (JAXBException e) {
+ }
+ }
+ }
}