svn commit: r1504455 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau Date: Thu Jul 18 13:07:17 2013 New Revision: 1504455 URL: http://svn.apache.org/r1504455 Log: avoiding NPE when cleaning up rest servlets Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1504455r1=1504454r2=1504455view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Thu Jul 18 13:07:17 2013 @@ -184,9 +184,11 @@ public class OpenEJBContextConfig extend for (final String clazz : webAppInfo.restApplications) { final Container child = mappedChildren.get(clazz); try { // remove only fake servlets to let users use their own stuff -final String servletClass = StandardWrapper.class.cast(child).getServletClass(); -if (child != null (org.apache.openejb.server.rest.OpenEJBRestServlet.equals(servletClass) || !HttpServlet.class.isAssignableFrom(info.loader().loadClass(servletClass { -context.removeChild(child); +if (child != null) { +final String servletClass = StandardWrapper.class.cast(child).getServletClass(); +if (org.apache.openejb.server.rest.OpenEJBRestServlet.equals(servletClass) || !HttpServlet.class.isAssignableFrom(info.loader().loadClass(servletClass))) { +context.removeChild(child); +} } } catch (final NoClassDefFoundError e) { context.removeChild(child);
svn commit: r1504488 - /tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java
Author: rmannibucau Date: Thu Jul 18 14:26:44 2013 New Revision: 1504488 URL: http://svn.apache.org/r1504488 Log: missing protocol in apache snapshot repo Modified: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java Modified: tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java?rev=1504488r1=1504487r2=1504488view=diff == --- tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java (original) +++ tomee/tomee/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/ProvisioningUtil.java Thu Jul 18 14:26:44 2013 @@ -42,7 +42,7 @@ public class ProvisioningUtil { private static final String ADDITIONAL_LIB_CONFIG = provisioning.properties; private static final String REPO1 = http://repo1.maven.org/maven2/;; -private static final String APACHE_SNAPSHOT = repository.apache.org/snapshots/; +private static final String APACHE_SNAPSHOT = https://repository.apache.org/snapshots/;; private static final String ZIP_KEY = zip; private static final String DESTINATION_KEY = destination; private static final String JAR_KEY = jar;
svn commit: r1506196 - /tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml
Author: rmannibucau Date: Tue Jul 23 18:17:08 2013 New Revision: 1506196 URL: http://svn.apache.org/r1506196 Log: fixing jettison version Modified: tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml Modified: tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml?rev=1506196r1=1506195r2=1506196view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/pom.xml Tue Jul 23 18:17:08 2013 @@ -116,7 +116,7 @@ dependency groupIdorg.codehaus.jettison/groupId artifactIdjettison/artifactId - version1.3.3/version + version1.3.4/version /dependency /dependencies
svn commit: r1506414 - /tomee/tomee/trunk/pom.xml
Author: rmannibucau Date: Wed Jul 24 06:50:01 2013 New Revision: 1506414 URL: http://svn.apache.org/r1506414 Log: updating maven dependency plugin in parent to be compliant with last maven version Modified: tomee/tomee/trunk/pom.xml Modified: tomee/tomee/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1506414r1=1506413r2=1506414view=diff == --- tomee/tomee/trunk/pom.xml (original) +++ tomee/tomee/trunk/pom.xml Wed Jul 24 06:50:01 2013 @@ -191,7 +191,7 @@ plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-dependency-plugin/artifactId - version2.6/version + version2.8/version /plugin plugin groupIdorg.apache.maven.plugins/groupId
svn commit: r1506834 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
Author: rmannibucau Date: Thu Jul 25 07:43:15 2013 New Revision: 1506834 URL: http://svn.apache.org/r1506834 Log: TOMEE-1008 EJBContainer can get null as properties Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1506834r1=1506833r2=1506834view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Thu Jul 25 07:43:15 2013 @@ -76,6 +76,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; @@ -301,6 +302,10 @@ public class OpenEjbContainer extends EJ @Override public EJBContainer createEJBContainer(Map?, ? map) { +if (map == null) { // JBoss EJB API pass null when calling EJBContainer.createEJBContainer() +map = new HashMapObject, Object(); +} + if (isOtherProvider(map)) return null; if (instance != null || OpenEJB.isInitialized()) {
svn commit: r1507796 - in /tomee/tomee/trunk: container/openejb-core/src/main/java/org/apache/openejb/cdi/ server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/ server/openejb-http/src
Author: rmannibucau Date: Sun Jul 28 13:04:52 2013 New Revision: 1507796 URL: http://svn.apache.org/r1507796 Log: TOMEE-1009 better handling of request thread local cleaning Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java?rev=1507796r1=1507795r2=1507796view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java Sun Jul 28 13:04:52 2013 @@ -49,6 +49,8 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpSession; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.Collection; public class CdiAppContextsService extends AbstractContextsService implements ContextsService { @@ -72,6 +74,14 @@ public class CdiAppContextsService exten private final WebBeansContext webBeansContext; +private static final ThreadLocalCollectionRunnable endRequestRunnables = new ThreadLocalCollectionRunnable() { +@Override +protected CollectionRunnable initialValue() { +return new ArrayListRunnable(); +} +}; + + public CdiAppContextsService() { this(WebBeansContext.currentInstance(), WebBeansContext.currentInstance().getOpenWebBeansConfiguration().supportsConversation()); } @@ -93,6 +103,21 @@ public class CdiAppContextsService exten singletonContext.setActive(true); } +private void endRequest() { +for (final Runnable r : endRequestRunnables.get()) { +try { +r.run(); +} catch (final Exception e) { +logger.error(e.getMessage(), e); +} +} +endRequestRunnables.remove(); +} + +public static void pushRequestReleasable(final Runnable runnable) { +endRequestRunnables.get().add(runnable); +} + @Override public void init(Object initializeObject) { //Start application context @@ -237,12 +262,15 @@ public class CdiAppContextsService exten } private void destroyRequestContext() { +// execute request tasks +endRequest(); + if (supportsConversation()) { // OWB-595 cleanupConversation(); } //Get context -RequestContext context = getRequestContext(); +final RequestContext context = getRequestContext(); //Destroy context if (context != null) { @@ -250,7 +278,7 @@ public class CdiAppContextsService exten } // clean up the EL caches after each request -ELContextStore elStore = ELContextStore.getInstance(false); +final ELContextStore elStore = ELContextStore.getInstance(false); if (elStore != null) { elStore.destroyELContextStore(); } Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java?rev=1507796r1=1507795r2=1507796view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Contexts.java Sun Jul 28 13:04:52 2013 @@ -24,8 +24,8 @@ import org.apache.cxf.jaxrs.utils.Annota import org.apache.cxf.jaxrs.utils.JAXRSUtils; import org.apache.cxf.message.Exchange; import org.apache.cxf.message.Message; +import org.apache.openejb.cdi.CdiAppContextsService; import org.apache.openejb.rest.ThreadLocalContextManager; -import org.apache.openejb.server.httpd.EndWebBeansListener; import javax.annotation.Resource; import javax.servlet.ServletConfig; @@ -98,7 +98,7 @@ public final class Contexts { */ public static void bind(Exchange exchange, CollectionClass? types) { EXCHANGE.set(exchange); // used in lazy mode by RESTResourceFinder if cdi beans uses @Context, === initThreadLocal
svn commit: r1508047 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/Assembler.java core/timer/EjbTimerServiceImpl.java
Author: rmannibucau Date: Mon Jul 29 13:16:37 2013 New Revision: 1508047 URL: http://svn.apache.org/r1508047 Log: TOMEE-1010 don't undeploy webapp before ejb#stop when standalone webapp is undeployed Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1508047r1=1508046r2=1508047view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Jul 29 13:16:37 2013 @@ -1539,7 +1539,7 @@ public class Assembler extends Assembler final UndeployException undeployException = new UndeployException(messages.format(destroyApplication.failed, appInfo.path)); final WebAppBuilder webAppBuilder = SystemInstance.get().getComponent(WebAppBuilder.class); -if (webAppBuilder != null) { +if (webAppBuilder != null !appInfo.webAppAlone) { try { webAppBuilder.undeployWebApps(appInfo); } catch (Exception e) { @@ -1599,6 +1599,14 @@ public class Assembler extends Assembler } } +if (webAppBuilder != null appInfo.webAppAlone) { // now that EJB are stopped we can undeploy webapps +try { +webAppBuilder.undeployWebApps(appInfo); +} catch (Exception e) { +undeployException.getCauses().add(new Exception(App: + appInfo.path + : + e.getMessage(), e)); +} +} + // get the client ids final ListString clientIds = new ArrayListString(); for (final ClientInfo clientInfo : appInfo.clients) { Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1508047r1=1508046r2=1508047view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Mon Jul 29 13:16:37 2013 @@ -729,7 +729,15 @@ public class EjbTimerServiceImpl impleme // call the timeout method try { final RpcContainer container = (RpcContainer) deployment.getContainer(); +if (container == null) { +return; +} + final Method ejbTimeout = timerData.getTimeoutMethod(); +if (ejbTimeout == null) { +return; +} + SetAccessible.on(ejbTimeout); container.invoke(deployment.getDeploymentID(), InterfaceType.TIMEOUT,
svn commit: r1508343 - in /tomee/tomee/trunk: container/openejb-core/pom.xml pom.xml
Author: rmannibucau Date: Tue Jul 30 08:56:02 2013 New Revision: 1508343 URL: http://svn.apache.org/r1508343 Log: ensuring a unique stax lib Modified: tomee/tomee/trunk/container/openejb-core/pom.xml tomee/tomee/trunk/pom.xml Modified: tomee/tomee/trunk/container/openejb-core/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/pom.xml?rev=1508343r1=1508342r2=1508343view=diff == --- tomee/tomee/trunk/container/openejb-core/pom.xml (original) +++ tomee/tomee/trunk/container/openejb-core/pom.xml Tue Jul 30 08:56:02 2013 @@ -614,6 +614,10 @@ artifactIdopenjpa/artifactId /dependency dependency + groupIdstax/groupId + artifactIdstax-api/artifactId +/dependency +dependency groupIdorg.apache.bval/groupId artifactIdbval-core/artifactId /dependency Modified: tomee/tomee/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1508343r1=1508342r2=1508343view=diff == --- tomee/tomee/trunk/pom.xml (original) +++ tomee/tomee/trunk/pom.xml Tue Jul 30 08:56:02 2013 @@ -1238,6 +1238,11 @@ /exclusions /dependency dependency +groupIdstax/groupId +artifactIdstax-api/artifactId +version1.0.1/version + /dependency + dependency groupIdorg.apache.openjpa/groupId artifactIdopenjpa/artifactId version${openjpa.version}/version @@ -1273,6 +1278,10 @@ groupIdcom.sun.xml.bind/groupId artifactIdjaxb-impl/artifactId /exclusion + exclusion +groupIdjavax.xml.stream/groupId +artifactIdstax-api/artifactId + /exclusion /exclusions /dependency
svn commit: r1509722 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java
Author: rmannibucau Date: Fri Aug 2 14:14:07 2013 New Revision: 1509722 URL: http://svn.apache.org/r1509722 Log: making objects static in SessionNormalScopeBeanHandler Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java?rev=1509722r1=1509721r2=1509722view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Fri Aug 2 14:14:07 2013 @@ -41,18 +41,18 @@ public class SessionNormalScopeBeanHandl } } -private final ThreadLocalMapBean?, UpdateInfo objects = new ThreadLocalMapBean?, UpdateInfo() { +private static final ThreadLocalMapBean?, UpdateInfo OBJECTS = new ThreadLocalMapBean?, UpdateInfo() { @Override protected MapBean?, UpdateInfo initialValue() { CdiAppContextsService.pushRequestReleasable(new Runnable() { // update in batch @Override public void run() { -final MapBean?, UpdateInfo values = objects.get(); +final MapBean?, UpdateInfo values = OBJECTS.get(); for (final UpdateInfo o : values.values()) { o.updateBean(); } values.clear(); -objects.remove(); +OBJECTS.remove(); } }); return new HashMapBean?, UpdateInfo(); @@ -66,7 +66,7 @@ public class SessionNormalScopeBeanHandl @Override public Object get() { final Object webbeansInstance = getContextualInstance(); -final MapBean?, UpdateInfo beanUpdateInfoMap = objects.get(); +final MapBean?, UpdateInfo beanUpdateInfoMap = OBJECTS.get(); UpdateInfo info = beanUpdateInfoMap.get(this); if (info == null) {
svn commit: r1510482 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer: EjbTimerService.java EjbTimerServiceImpl.java NullEjbTimerServiceImpl.java
Author: rmannibucau Date: Mon Aug 5 14:00:24 2013 New Revision: 1510482 URL: http://svn.apache.org/r1510482 Log: TOMEE-1011 timerStore is designed as a singleton by ejb Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java?rev=1510482r1=1510481r2=1510482view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java Mon Aug 5 14:00:24 2013 @@ -45,4 +45,6 @@ public interface EjbTimerService { void start() throws OpenEJBException; void stop(); + +TimerStore getTimerStore(); } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1510482r1=1510481r2=1510482view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Mon Aug 5 14:00:24 2013 @@ -123,7 +123,7 @@ public class EjbTimerServiceImpl impleme deployment = SystemInstance.get().getComponent(ContainerSystem.class).getBeanContext(dId); transactionManager = getDefaultTransactionManager(); -timerStore = new MemoryTimerStore(transactionManager); // TODO: check it should be serialized or not +timerStore = deployment.getEjbTimerService().getTimerStore(); scheduler = (Scheduler) Proxy.newProxyInstance(deployment.getClassLoader(), new Class?[]{Scheduler.class}, new LazyScheduler(deployment)); } @@ -673,6 +673,7 @@ public class EjbTimerServiceImpl impleme } } +@Override public TimerStore getTimerStore() { return timerStore; } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java?rev=1510482r1=1510481r2=1510482view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java Mon Aug 5 14:00:24 2013 @@ -78,4 +78,7 @@ public class NullEjbTimerServiceImpl imp public void stop() { } +public TimerStore getTimerStore() { +return null; +} }
svn commit: r1510498 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java
Author: rmannibucau Date: Mon Aug 5 14:28:26 2013 New Revision: 1510498 URL: http://svn.apache.org/r1510498 Log: TOMEE-1012 AsynchronousPool.RejectedExecutionHandlerClass = Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java?rev=1510498r1=1510497r2=1510498view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java Mon Aug 5 14:28:26 2013 @@ -16,6 +16,7 @@ */ package org.apache.openejb.util; +import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.loader.Options; import org.apache.openejb.util.executor.OfferRejectedExecutionHandler; @@ -98,8 +99,17 @@ public class ExecutorBuilder { RejectedExecutionHandler handler = this.rejectedExecutionHandler; if (handler == null) { -final Duration duration = options.get(prefix + .OfferTimeout, new Duration(30, TimeUnit.SECONDS)); -handler = new OfferRejectedExecutionHandler(duration); +final String rejectedExecutionHandlerClass = options.get(prefix + .RejectedExecutionHandlerClass, (String) null); +if (rejectedExecutionHandlerClass == null) { +final Duration duration = options.get(prefix + .OfferTimeout, new Duration(30, TimeUnit.SECONDS)); +handler = new OfferRejectedExecutionHandler(duration); +} else { +try { +handler = RejectedExecutionHandler.class.cast(Thread.currentThread().getContextClassLoader().loadClass(rejectedExecutionHandlerClass).newInstance()); +} catch (final Exception e) { +throw new OpenEJBRuntimeException(e); +} +} } final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(corePoolSize
svn commit: r1510878 - in /tomee/tomee/trunk: maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/ tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/ tomee/tomee-catalina
Author: rmannibucau Date: Tue Aug 6 07:53:28 2013 New Revision: 1510878 URL: http://svn.apache.org/r1510878 Log: TOMEE-1014 making tomee webapp optional for ejbd Added: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/remote/ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/remote/TomEERemoteWebapp.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/IgnoredStandardContext.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1510878r1=1510877r2=1510878view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Tue Aug 6 07:53:28 2013 @@ -208,9 +208,12 @@ public abstract class AbstractTomEEMojo @Parameter(property = tomee-plugin.deploy-openejb-internal-application, defaultValue = false) protected boolean deployOpenEjbApplication; -@Parameter(property = tomee-plugin.remove-tomee-webapps, defaultValue = false) +@Parameter(property = tomee-plugin.remove-tomee-webapps, defaultValue = true) protected boolean removeTomeeWebapp; +@Parameter(property = tomee-plugin.ejb-remote, defaultValue = true) +protected boolean ejbRemote; + @Parameter(defaultValue = ${project.packaging}, readonly = true) protected String packaging; @@ -643,6 +646,9 @@ public abstract class AbstractTomEEMojo if (quickSession) { strings.add(-Dopenejb.session.manager=org.apache.tomee.catalina.session.QuickSessionManager); } +if (removeTomeeWebapp ejbRemote) { // if we have tomee webapp no need to activate ejb remote support this way +strings.add(-Dtomee.remote.support=true); +} if (!deployOpenEjbApplication) { // true is the default so don't need to set the property if (args == null || !args.contains(-D + deployOpenEjbAppKey)) { strings.add(-D + deployOpenEjbAppKey + =false); Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java?rev=1510878r1=1510877r2=1510878view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java Tue Aug 6 07:53:28 2013 @@ -84,8 +84,8 @@ public abstract class UpdatableTomEEMojo forceReloadable = true; } -if (removeTomeeWebapp) { -getLog().warn(TomEE webapp is asked to be removed (removeTomeeWebapptrue/removeTomeeWebapp) so you can use reload feature); +if (removeTomeeWebapp !ejbRemote) { +getLog().warn(TomEE webapp is asked to be removed (ejbRemotetrue or removeTomeeWebapptrue/removeTomeeWebapp) so you can use reload feature); } super.run(); @@ -330,8 +330,8 @@ public abstract class UpdatableTomEEMojo } private Deployer deployer() { -if (removeTomeeWebapp) { -throw new OpenEJBRuntimeException(Can't use reload feature without TomEE Webapp, please set removeTomeeWebapp to false); +if (removeTomeeWebapp !ejbRemote) { +throw new OpenEJBRuntimeException(Can't use reload feature without TomEE Webapp, please set removeTomeeWebapp to false or ejbRemote to true); } final Properties properties = new Properties(); Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java?rev=1510878r1=1510877r2=1510878view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina
svn commit: r1510888 - in /tomee/tomee/trunk/server: openejb-client/src/main/java/org/apache/openejb/client/ openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/
Author: rmannibucau Date: Tue Aug 6 09:01:42 2013 New Revision: 1510888 URL: http://svn.apache.org/r1510888 Log: trying to ensure compatiility with previous ejbd protocol (without authenticationInfo) Modified: tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java tomee/tomee/trunk/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java Modified: tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java?rev=1510888r1=1510887r2=1510888view=diff == --- tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java (original) +++ tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java Tue Aug 6 09:01:42 2013 @@ -54,7 +54,7 @@ public class Client { private boolean FINER = logger.isLoggable(Level.FINER); public static final ThreadLocalSetURI failed = new ThreadLocalSetURI(); -private static final ProtocolMetaData PROTOCOL_VERSION = new ProtocolMetaData(3.1); +private static final ProtocolMetaData PROTOCOL_VERSION = new ProtocolMetaData(4.6); private static final int maxConditionRetry = Integer.parseInt(System.getProperty(openejb.client.retry.condition.max, 20)); private ListClass? extends Throwable retryConditions = new CopyOnWriteArrayListClass? extends Throwable(); Modified: tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java?rev=1510888r1=1510887r2=1510888view=diff == --- tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java (original) +++ tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBRequest.java Tue Aug 6 09:01:42 2013 @@ -239,7 +239,6 @@ public class EJBRequest implements Clust @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - ClassNotFoundException ex = null; deploymentId = null; @@ -407,6 +406,10 @@ public class EJBRequest implements Clust @SuppressWarnings(unchecked) @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { +readExternal(in , new ProtocolMetaData(4.6)); +} + +public void readExternal(final ObjectInput in, final ProtocolMetaData metaData) throws IOException, ClassNotFoundException { this.version = in.readByte(); @@ -444,8 +447,10 @@ public class EJBRequest implements Clust } //Version 3 -if (this.version = 3) { +if (metaData.isAtLeast(4, 6)) { authentication = JNDIContext.AuthenticationInfo.class.cast(in.readObject()); +} else { +authentication = null; } if (result != null) { Modified: tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java?rev=1510888r1=1510887r2=1510888view=diff == --- tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java (original) +++ tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java Tue Aug 6 09:01:42 2013 @@ -26,9 +26,8 @@ public class EJBResponse implements Clus * Version provides the protocol hint for backwards compatibility: * 1. Initial * 2. Append times. - * 3. JNDIContext.AuthenticationInfo. */ -public static final byte VERSION = 3; +public static final byte VERSION = 2; private transient byte version = VERSION; private transient int responseCode = -1; Modified: tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client/ProtocolMetaData.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-client/src/main/java/org/apache/openejb/client
svn commit: r1510890 - in /tomee/tomee/trunk/arquillian: ./ arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian-common/src/main/resources/META-INF/services/ arquillian-ope
Author: rmannibucau Date: Tue Aug 6 09:16:33 2013 New Revision: 1510890 URL: http://svn.apache.org/r1510890 Log: TOMEE-1015 updating to arquillian 1.1.1.Final to get multiline support in arquillian.xml Removed: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/PatchConfigurationExtension.java tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/PatchConfigurationRegistar.java tomee/tomee/trunk/arquillian/arquillian-common/src/main/resources/META-INF/services/ Modified: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBConfiguration.java tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java tomee/tomee/trunk/arquillian/pom.xml Modified: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBConfiguration.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBConfiguration.java?rev=1510890r1=1510889r2=1510890view=diff == --- tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBConfiguration.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBConfiguration.java Tue Aug 6 09:16:33 2013 @@ -16,6 +16,7 @@ */ package org.apache.openejb.arquillian.openejb; +import org.jboss.arquillian.config.descriptor.api.Multiline; import org.jboss.arquillian.container.spi.ConfigurationException; import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration; @@ -31,6 +32,7 @@ public class OpenEJBConfiguration implem return properties; } +@Multiline public void setProperties(String properties) { this.properties = properties; } Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java?rev=1510890r1=1510889r2=1510890view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java Tue Aug 6 09:16:33 2013 @@ -17,6 +17,7 @@ package org.apache.openejb.arquillian.common; +import org.jboss.arquillian.config.descriptor.api.Multiline; import org.jboss.arquillian.container.spi.ConfigurationException; import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration; @@ -34,11 +35,12 @@ public class TomEEConfiguration implemen protected String stopHost = localhost; // generally localhost but host (http) can be different protected String stopCommand = SHUTDOWN; // default one - can be overriden in server.xml protected String serverXml = null; -protected String properties = ; protected String portRange = ; // only used if port 0, empty means whatever, can be 1024-65535 protected boolean quickSession = true; protected boolean unpackWars = true; +protected String properties = ; + public boolean isUnpackWars() { return unpackWars; } @@ -110,6 +112,7 @@ public class TomEEConfiguration implemen return properties; } +@Multiline public void setProperties(String properties) { this.properties = properties; } Modified: tomee/tomee/trunk/arquillian/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/pom.xml?rev=1510890r1=1510889r2=1510890view=diff == --- tomee/tomee/trunk/arquillian/pom.xml (original) +++ tomee/tomee/trunk/arquillian/pom.xml Tue Aug 6 09:16:33 2013 @@ -32,7 +32,7 @@ nameOpenEJB :: Arquillian Adaptors Parent/name properties -version.arquillian1.0.4.Final/version.arquillian +version.arquillian1.1.1.Final/version.arquillian version.shrinkwrap.descriptor2.0.0-alpha-5/version.shrinkwrap.descriptor version.shrinkwrap.shrinkwrap1.1.2/version.shrinkwrap.shrinkwrap /properties
svn commit: r1510894 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java
Author: rmannibucau Date: Tue Aug 6 10:16:23 2013 New Revision: 1510894 URL: http://svn.apache.org/r1510894 Log: wrong key usage in SessionNormalScopeBeanHandler Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java?rev=1510894r1=1510893r2=1510894view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Tue Aug 6 10:16:23 2013 @@ -68,10 +68,8 @@ public class SessionNormalScopeBeanHandl final Object webbeansInstance = getContextualInstance(); final MapBean?, UpdateInfo beanUpdateInfoMap = OBJECTS.get(); -UpdateInfo info = beanUpdateInfoMap.get(this); -if (info == null) { -info = new UpdateInfo(bean, getBeanManager(), webbeansInstance); -beanUpdateInfoMap.put(bean, info); +if (!beanUpdateInfoMap.containsKey(bean)) { +beanUpdateInfoMap.put(bean, new UpdateInfo(bean, getBeanManager(), webbeansInstance)); } return webbeansInstance;
svn commit: r1511019 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
Author: rmannibucau Date: Tue Aug 6 16:25:31 2013 New Revision: 1511019 URL: http://svn.apache.org/r1511019 Log: new OWB api for DecoratorHandler Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1511019r1=1511018r2=1511019view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Tue Aug 6 16:25:31 2013 @@ -1587,7 +1587,7 @@ public class BeanContext extends Deploym CreationalContextImpl.class.cast(creationalContext).putDelegate(beanInstance); final Object decoratorInstance = decorator.create(CreationalContext.class.cast(creationalContext)); instances.put(decorator, decoratorInstance); -beanInstance = pf.createProxyInstance(proxyClass, instance, new DecoratorHandler(interceptorInfo, instances, i - 1, instance)); +beanInstance = pf.createProxyInstance(proxyClass, instance, new DecoratorHandler(interceptorInfo, instances, i - 1, instance, cdiEjbBean.getId())); } } }
svn commit: r1511186 - /tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Author: rmannibucau Date: Wed Aug 7 06:04:47 2013 New Revision: 1511186 URL: http://svn.apache.org/r1511186 Log: TOMEE-1016 webapp rest ejbs for ears are not filtered from their origin Modified: tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Modified: tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1511186r1=1511185r2=1511186view=diff == --- tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original) +++ tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Wed Aug 7 06:04:47 2013 @@ -98,7 +98,7 @@ public abstract class RESTService implem return; } -final MapString, EJBRestServiceInfo restEjbs = getRestEjbs(appInfo); +final MapString, EJBRestServiceInfo restEjbs = getRestEjbs(appInfo, webApp.moduleId); final ClassLoader classLoader = getClassLoader(webContext.getClassLoader()); final CollectionInjection injections = webContext.getInjections(); @@ -544,7 +544,7 @@ public abstract class RESTService implem Thread.currentThread().setContextClassLoader(appClassLoader); try { -final MapString, EJBRestServiceInfo restEjbs = getRestEjbs(appInfo); +final MapString, EJBRestServiceInfo restEjbs = getRestEjbs(appInfo, null); if (restEjbs.isEmpty()) { return; } @@ -639,9 +639,13 @@ public abstract class RESTService implem protected abstract boolean containsJaxRsConfiguration(final Properties properties); -protected MapString, EJBRestServiceInfo getRestEjbs(final AppInfo appInfo) { +protected MapString, EJBRestServiceInfo getRestEjbs(final AppInfo appInfo, final String webapp) { final MapString, BeanContext beanContexts = new HashMapString, BeanContext(); for (final EjbJarInfo ejbJar : appInfo.ejbJars) { +if (ejbJar.webapp webapp != null !ejbJar.moduleId.equals(webapp)) { +continue; +} + for (final EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) { if (bean.restService) { final BeanContext beanContext = containerSystem.getBeanContext(bean.ejbDeploymentId);
svn commit: r1511188 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
Author: rmannibucau Date: Wed Aug 7 06:20:41 2013 New Revision: 1511188 URL: http://svn.apache.org/r1511188 Log: TOMEE-1017 web fragments should consider adding an entry if not already here only Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1511188r1=1511187r2=1511188view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Wed Aug 7 06:20:41 2013 @@ -29,8 +29,8 @@ import org.apache.openejb.jee.FacesConfi import org.apache.openejb.jee.HandlerChains; import org.apache.openejb.jee.JavaWsdlMapping; import org.apache.openejb.jee.JaxbJavaee; +import org.apache.openejb.jee.Keyable; import org.apache.openejb.jee.Listener; -import org.apache.openejb.jee.PersistenceContextRef; import org.apache.openejb.jee.TldTaglib; import org.apache.openejb.jee.WebApp; import org.apache.openejb.jee.WebFragment; @@ -79,6 +79,7 @@ import java.net.URL; import java.util.Collection; import java.util.Iterator; import java.util.List; +import java.util.Map; public class ReadDescriptors implements DynamicDeployer { private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, ReadDescriptors.class); @@ -562,14 +563,16 @@ public class ReadDescriptors implements final Source url = getSource(rawUrl); try { final WebFragment webFragment = JaxbOpenejb.unmarshal(WebFragment.class, url.get()); - webModule.getWebApp().getPersistenceContextRef().addAll(webFragment.getPersistenceContextRef()); - webModule.getWebApp().getPersistenceUnitRef().addAll(webFragment.getPersistenceUnitRef()); - webModule.getWebApp().getMessageDestinationRef().addAll(webFragment.getMessageDestinationRef()); - webModule.getWebApp().getDataSource().addAll(webFragment.getDataSource()); - webModule.getWebApp().getEjbLocalRef().addAll(webFragment.getEjbLocalRef()); - webModule.getWebApp().getEjbRef().addAll(webFragment.getEjbRef()); - webModule.getWebApp().getEnvEntry().addAll(webFragment.getEnvEntry()); - webModule.getWebApp().getServiceRef().addAll(webFragment.getServiceRef()); + +// in tomcat if the env entry is already don't override it + mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceContextRefMap(), webFragment.getPersistenceContextRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceUnitRefMap(), webFragment.getPersistenceUnitRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getMessageDestinationRefMap(), webFragment.getMessageDestinationRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getDataSourceMap(), webFragment.getDataSource()); + mergeOnlyMissingEntries(webModule.getWebApp().getEjbLocalRefMap(), webFragment.getEjbLocalRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getEjbRefMap(), webFragment.getEjbRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getServiceRefMap(), webFragment.getServiceRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getEnvEntryMap(), webFragment.getEnvEntry()); } catch (final Exception e) { logger.warning(can't read + url.toString(), e); } @@ -578,6 +581,15 @@ public class ReadDescriptors implements } } +private static A extends KeyableString void mergeOnlyMissingEntries(final MapString, A existing, final CollectionA news) { +for (final A entry : news) { +final String key = entry.getKey(); +if (!existing.containsKey(key)) { +existing.put(key, entry); +} +} +} + public static ApplicationClient readApplicationClient(final URL url) throws OpenEJBException { final ApplicationClient applicationClient; try {
svn commit: r1511833 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
Author: rmannibucau Date: Thu Aug 8 15:31:31 2013 New Revision: 1511833 URL: http://svn.apache.org/r1511833 Log: TOMEE-1017 web fragments should consider adding an entry if not already here only - resources were not merged Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1511833r1=1511832r2=1511833view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Thu Aug 8 15:31:31 2013 @@ -573,6 +573,8 @@ public class ReadDescriptors implements mergeOnlyMissingEntries(webModule.getWebApp().getEjbRefMap(), webFragment.getEjbRef()); mergeOnlyMissingEntries(webModule.getWebApp().getServiceRefMap(), webFragment.getServiceRef()); mergeOnlyMissingEntries(webModule.getWebApp().getEnvEntryMap(), webFragment.getEnvEntry()); + mergeOnlyMissingEntries(webModule.getWebApp().getResourceEnvRefMap(), webFragment.getResourceEnvRef()); + mergeOnlyMissingEntries(webModule.getWebApp().getResourceRefMap(), webFragment.getResourceRef()); } catch (final Exception e) { logger.warning(can't read + url.toString(), e); }
svn commit: r1512239 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
Author: rmannibucau Date: Fri Aug 9 10:27:01 2013 New Revision: 1512239 URL: http://svn.apache.org/r1512239 Log: trying to use openjpa.ConnectionFactoryName and openjpa.ConnectionFactory2Name when no jtadatasource or nonjtadatasource are configured in an openjpa persistence unit Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1512239r1=1512238r2=1512239view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Fri Aug 9 10:27:01 2013 @@ -1313,6 +1313,15 @@ public class AutoConfig implements Dynam // unit.setNonJtaDataSource(unit.getJtaDataSource()+NonJta); //} +if (org.apache.openjpa.persistence.PersistenceProviderImpl.equals(unit.getProvider())) { +if (unit.getJtaDataSource() == null) { + unit.setJtaDataSource(unit.getProperty(openjpa.ConnectionFactoryName)); +} +if (unit.getNonJtaDataSource() == null) { + unit.setNonJtaDataSource(unit.getProperty(openjpa.ConnectionFactory2Name)); +} +} + logger.debug(raw jta-data-source + unit.getJtaDataSource() + /jta-datasource); logger.debug(raw non-jta-data-source + unit.getNonJtaDataSource() + /non-jta-datasource);
svn commit: r1513051 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/Assembler.java cdi/ThreadSingletonServiceImpl.java
Author: rmannibucau Date: Mon Aug 12 06:48:26 2013 New Revision: 1513051 URL: http://svn.apache.org/r1513051 Log: TOMEE-1019 more late init for openejb.session-context and openejb.classloader.skip-app-loader-if-possible Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1513051r1=1513050r2=1513051view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Aug 12 06:48:26 2013 @@ -217,7 +217,7 @@ public class Assembler extends Assembler public static final String TIMER_STORE_CLASS = timerStore.class; private static final ReentrantLock lock = new ReentrantLock(true); -private static final boolean SKIP_APP_LOADER_IF_POSSIBLE = true.equalsIgnoreCase(SystemInstance.get().getProperty(openejb.classloader.skip-app-loader-if-possible, true)); +private final boolean skipLoaderIfPossible; Messages messages = new Messages(Assembler.class.getPackage().getName()); private final CoreContainerSystem containerSystem; @@ -281,6 +281,7 @@ public class Assembler extends Assembler } public Assembler(final JndiFactory jndiFactory) { +skipLoaderIfPossible = true.equalsIgnoreCase(SystemInstance.get().getProperty(openejb.classloader.skip-app-loader-if-possible, true)); persistenceClassLoaderHandler = new PersistenceClassLoaderHandlerImpl(); installNaming(); @@ -1862,7 +1863,7 @@ public class Assembler extends Assembler // some lib (DS for instance) rely on AppClassLoader for CDI bean manager usage (common for tests cases where you // try to get the app BM from the AppClassLoader having stored it in a map). // since we don't really need to create a classloader here when starting from classpath just let skip this step -if (SKIP_APP_LOADER_IF_POSSIBLE) { // TODO: maybe use a boolean to know if all urls comes from the classpath to avoid this validation +if (skipLoaderIfPossible) { // TODO: maybe use a boolean to know if all urls comes from the classpath to avoid this validation final CollectionFile urls = new ArrayListFile(); for (final URL url : ClassLoaders.findUrls(parent)) { // need to convert it to file since urls can be file:/xxx or jar:file:///xxx try { Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1513051r1=1513050r2=1513051view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java Mon Aug 12 06:48:26 2013 @@ -58,7 +58,7 @@ public class ThreadSingletonServiceImpl public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, ThreadSingletonServiceImpl.class); -private final String sessionContextClass; +private String sessionContextClass = null; //this needs to be static because OWB won't tell us what the existing SingletonService is and you can't set it twice. private static final ThreadLocalWebBeansContext contexts = new ThreadLocalWebBeansContext(); @@ -66,11 +66,15 @@ public class ThreadSingletonServiceImpl private static final String WEBBEANS_FAILOVER_ISSUPPORTFAILOVER = org.apache.webbeans.web.failover.issupportfailover; public ThreadSingletonServiceImpl() { -sessionContextClass = SystemInstance.get().getProperty(openejb.session-context, ).trim(); +// no-op } @Override public void initialize(final StartupObject startupObject) { +if (sessionContextClass == null) { // done here cause Cdibuilder trigger this class loading and that's from Warmup so we can't init too early config +sessionContextClass = SystemInstance.get().getProperty(openejb.session-context, ).trim(); +} + final AppContext appContext = startupObject.getAppContext(); appContext.setCdiEnabled(hasBeans(startupObject.getAppInfo()));
svn commit: r1513074 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/DeployTimeEnhancer.java resource/jdbc/DataSourceFactory.java util/classloader/UR
Author: rmannibucau Date: Mon Aug 12 08:15:25 2013 New Revision: 1513074 URL: http://svn.apache.org/r1513074 Log: OPENEJB-2035 replacing real jar when using deploy time enhacement otherwise existing classloaders are broken + trying to use container classloader to create datasource when possible Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java?rev=1513074r1=1513073r2=1513074view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java Mon Aug 12 08:15:25 2013 @@ -27,7 +27,6 @@ import org.apache.openejb.util.Logger; import org.apache.openejb.util.Saxs; import org.apache.openejb.util.URLs; import org.apache.openejb.util.classloader.URLClassLoaderFirst; -import org.apache.xbean.finder.filter.Filter; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -39,7 +38,6 @@ import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -60,7 +58,6 @@ public class DeployTimeEnhancer { private static final String PROPERTIES_FILE_PROP = propertiesFile; private static final String META_INF_PERSISTENCE_XML = META-INF/persistence.xml; private static final String TMP_ENHANCEMENT_SUFFIX = .tmp-enhancement; -private static final String JAR_ENHANCEMENT_SUFFIX = -enhanced; private final Method enhancerMethod; private final Constructor? optionsConstructor; @@ -91,37 +88,32 @@ public class DeployTimeEnhancer { // find persistence.xml final MapString, ListString classesByPXml = new HashMapString, ListString(); -final Filter filter = new AlreadyEnhancedFilter(); final ListURL usedUrls = new ArrayListURL(); // for fake classloader for (URL url : event.getUrls()) { final File file = URLs.toFile(url); -if (filter.accept(file.getName())) { -if (file.isDirectory()) { -final String pXmls = getWarPersistenceXml(url); -if (pXmls != null) { -feed(classesByPXml, pXmls); -} +if (file.isDirectory()) { +final String pXmls = getWarPersistenceXml(url); +if (pXmls != null) { +feed(classesByPXml, pXmls); +} -usedUrls.add(url); -} else if (file.getName().endsWith(.jar)) { -try { -final JarFile jar = new JarFile(file); -ZipEntry entry = jar.getEntry(META_INF_PERSISTENCE_XML); -if (entry != null) { -final String path = file.getAbsolutePath(); -final File unpacked = new File(path.substring(0, path.length() - 4) + TMP_ENHANCEMENT_SUFFIX); -JarExtractor.extract(file, unpacked); +usedUrls.add(url); +} else if (file.getName().endsWith(.jar)) { +try { +final JarFile jar = new JarFile(file); +ZipEntry entry = jar.getEntry(META_INF_PERSISTENCE_XML); +if (entry != null) { +final String path = file.getAbsolutePath(); +final File unpacked = new File(path.substring(0, path.length() - 4) + TMP_ENHANCEMENT_SUFFIX); +JarExtractor.extract(file, unpacked); -// replace jar by folder url since otherwise enhancement doesn't work -usedUrls.add(unpacked.toURI().toURL()); +// replace jar by folder url since otherwise enhancement doesn't work +usedUrls.add(unpacked.toURI().toURL()); -feed(classesByPXml, new File(unpacked, META_INF_PERSISTENCE_XML).getAbsolutePath()); -} -} catch (IOException e
svn commit: r1513627 - /tomee/tomee/trunk/examples/polling-parent/pom.xml
Author: rmannibucau Date: Tue Aug 13 19:54:01 2013 New Revision: 1513627 URL: http://svn.apache.org/r1513627 Log: updating xbean for polling sample Modified: tomee/tomee/trunk/examples/polling-parent/pom.xml Modified: tomee/tomee/trunk/examples/polling-parent/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/polling-parent/pom.xml?rev=1513627r1=1513626r2=1513627view=diff == --- tomee/tomee/trunk/examples/polling-parent/pom.xml (original) +++ tomee/tomee/trunk/examples/polling-parent/pom.xml Tue Aug 13 19:54:01 2013 @@ -164,7 +164,7 @@ /dependencyManagement properties -xbean.version3.11/xbean.version +xbean.version3.14/xbean.version project.build.sourceEncodingUTF-8/project.build.sourceEncoding /properties
svn commit: r1513745 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
Author: rmannibucau Date: Wed Aug 14 07:22:26 2013 New Revision: 1513745 URL: http://svn.apache.org/r1513745 Log: passivation capable id are kept by bm Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java?rev=1513745r1=1513744r2=1513745view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Wed Aug 14 07:22:26 2013 @@ -256,6 +256,15 @@ public class WebappBeanManager extends B return deploymentBeans; } +@Override +public Bean? getPassivationCapableBean(final String id) { +final Bean? bean = super.getPassivationCapableBean(id); +if (bean == null) { +return getParentBm().getPassivationCapableBean(id); +} +return bean; +} + public void afterStart() { deploymentBeans = new CopyOnWriteArraySetBean?(); // override parent one with a webapp bean list for (final Bean? bean : getParentBm().getBeans()) {
svn commit: r1516714 - in /tomee/tomee/trunk: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ container/openejb-core/src/main/java/org/apache/openejb/rest/ server/opene
Author: rmannibucau Date: Fri Aug 23 07:11:37 2013 New Revision: 1516714 URL: http://svn.apache.org/r1516714 Log: TOMEE-1020 creating @Provider (jaxrs) from contructor if parameters uses @Context Added: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java - copied, changed from r1516706, tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiInterceptorContextTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ServiceInfos.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ServiceInfos.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ServiceInfos.java?rev=1516714r1=1516713r2=1516714view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ServiceInfos.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/util/ServiceInfos.java Fri Aug 23 07:11:37 2013 @@ -72,6 +72,10 @@ public final class ServiceInfos { } public static ListObject resolve(final CollectionServiceInfo serviceInfos, final String[] ids) { +return resolve(serviceInfos, ids, null); +} + +public static ListObject resolve(final CollectionServiceInfo serviceInfos, final String[] ids, final Factory factory) { if (ids == null || ids.length == 0) { return null; } @@ -81,8 +85,13 @@ public final class ServiceInfos { Object instance = resolve(serviceInfos, id); if (instance == null) { // maybe id == classname try { -instance = Thread.currentThread().getContextClassLoader().loadClass(id).newInstance(); -} catch (Exception e) { +final Class? aClass = Thread.currentThread().getContextClassLoader().loadClass(id); +if (factory == null) { +instance = aClass.newInstance(); +} else { +instance = factory.newInstance(aClass); +} +} catch (final Exception e) { // ignore } } @@ -147,4 +156,8 @@ public final class ServiceInfos { return service; } + +public static interface Factory { +Object newInstance(final Class? clazz) throws Exception; +} } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java?rev=1516714r1=1516713r2=1516714view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/rest/ThreadLocalContextManager.java Fri Aug 23 07:11:37 2013 @@ -17,7 +17,17 @@ package org.apache.openejb.rest; +import javax.servlet.ServletConfig; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.Application; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Request; +import javax.ws.rs.core.SecurityContext; +import javax.ws.rs.core.UriInfo; +import javax.ws.rs.ext.ContextResolver; +import javax.ws.rs.ext.Providers; import java.util.Map; public class ThreadLocalContextManager { @@ -53,4 +63,29 @@ public class ThreadLocalContextManager { } OTHERS.remove(); } + +public static Object findThreadLocal(final Class? type) { +if (Request.class.equals(type)) { +return ThreadLocalContextManager.REQUEST; +} else if (UriInfo.class.equals(type)) { +return ThreadLocalContextManager.URI_INFO; +} else if (HttpHeaders.class.equals(type)) { +return ThreadLocalContextManager.HTTP_HEADERS; +} else if (SecurityContext.class.equals(type)) { +return ThreadLocalContextManager.SECURITY_CONTEXT; +} else if (ContextResolver.class.equals(type)) { +return ThreadLocalContextManager.CONTEXT_RESOLVER; +} else if (Providers.class.equals(type)) { +return ThreadLocalContextManager.PROVIDERS
svn commit: r1517462 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
Author: rmannibucau Date: Mon Aug 26 08:45:42 2013 New Revision: 1517462 URL: http://svn.apache.org/r1517462 Log: typo introduced in a previous refactoring Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1517462r1=1517461r2=1517462view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java Mon Aug 26 08:45:42 2013 @@ -233,7 +233,7 @@ public class CdiScanner implements Scann return; } -for (final String clazz : CONTAINER_CLASSES.get(bval)) { +for (final String clazz : CONTAINER_CLASSES.get(key)) { try { classes.add(loader.loadClass(clazz)); } catch (final Throwable th) { // classnotfoundexception ot noclassdeffounderror
svn commit: r1517468 - /tomee/tomee/trunk/examples/alternate-descriptors/pom.xml
Author: rmannibucau Date: Mon Aug 26 08:58:22 2013 New Revision: 1517468 URL: http://svn.apache.org/r1517468 Log: slf4j is not an option since G uses it Modified: tomee/tomee/trunk/examples/alternate-descriptors/pom.xml Modified: tomee/tomee/trunk/examples/alternate-descriptors/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/alternate-descriptors/pom.xml?rev=1517468r1=1517467r2=1517468view=diff == --- tomee/tomee/trunk/examples/alternate-descriptors/pom.xml (original) +++ tomee/tomee/trunk/examples/alternate-descriptors/pom.xml Mon Aug 26 08:58:22 2013 @@ -90,10 +90,6 @@ scopetest/scope exclusions exclusion - artifactIdslf4j-api/artifactId - groupIdorg.slf4j/groupId -/exclusion -exclusion artifactIdopenjpa/artifactId groupIdorg.apache.openjpa/groupId /exclusion
svn commit: r1517470 - /tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml
Author: rmannibucau Date: Mon Aug 26 09:00:01 2013 New Revision: 1517470 URL: http://svn.apache.org/r1517470 Log: using correct arquillian version Modified: tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml Modified: tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml?rev=1517470r1=1517469r2=1517470view=diff == --- tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml (original) +++ tomee/tomee/trunk/examples/multiple-tomee-arquillian/pom.xml Mon Aug 26 09:00:01 2013 @@ -98,13 +98,7 @@ dependency groupIdorg.jboss.arquillian.junit/groupId artifactIdarquillian-junit-container/artifactId - version1.0.0.Final/version - scopetest/scope -/dependency -dependency - groupIdorg.jboss.arquillian.container/groupId - artifactIdarquillian-container-test-impl-base/artifactId - version1.0.0.Final/version + version1.1.1.Final/version scopetest/scope /dependency dependency
svn commit: r1517495 - in /tomee/tomee/trunk: server/openejb-cxf/pom.xml tomee/tomee-plus-webapp/pom.xml
Author: rmannibucau Date: Mon Aug 26 11:25:46 2013 New Revision: 1517495 URL: http://svn.apache.org/r1517495 Log: forcing xml-apis which is needed by xerces but in scope test in our parent pom Modified: tomee/tomee/trunk/server/openejb-cxf/pom.xml tomee/tomee/trunk/tomee/tomee-plus-webapp/pom.xml Modified: tomee/tomee/trunk/server/openejb-cxf/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/pom.xml?rev=1517495r1=1517494r2=1517495view=diff == --- tomee/tomee/trunk/server/openejb-cxf/pom.xml (original) +++ tomee/tomee/trunk/server/openejb-cxf/pom.xml Mon Aug 26 11:25:46 2013 @@ -76,6 +76,11 @@ artifactIdxercesImpl/artifactId /dependency dependency + groupIdxml-apis/groupId + artifactIdxml-apis/artifactId + scoperuntime/scope !-- transitive from xerces -- +/dependency +dependency groupIdorg.slf4j/groupId artifactIdslf4j-api/artifactId /dependency Modified: tomee/tomee/trunk/tomee/tomee-plus-webapp/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-plus-webapp/pom.xml?rev=1517495r1=1517494r2=1517495view=diff == --- tomee/tomee/trunk/tomee/tomee-plus-webapp/pom.xml (original) +++ tomee/tomee/trunk/tomee/tomee-plus-webapp/pom.xml Mon Aug 26 11:25:46 2013 @@ -87,6 +87,11 @@ /exclusions /dependency dependency + groupIdxml-apis/groupId + artifactIdxml-apis/artifactId + scoperuntime/scope !-- transitive from xerces but in test scope in parent so needed here -- +/dependency +dependency groupIdorg.apache.openejb/groupId artifactIdopenejb-rest/artifactId version${openejb.version}/version
svn commit: r1517512 - /tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/
Author: rmannibucau Date: Mon Aug 26 12:02:44 2013 New Revision: 1517512 URL: http://svn.apache.org/r1517512 Log: fixing faces-config.xml for jsf 2.2 reading (in not blocking mode and not in working mode) Removed: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFromAction.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigNavigationCase.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigNavigationRule.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigRedirect.java Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesApplication.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfig.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFlowDefinition.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/XmlString.java Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesApplication.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesApplication.java?rev=1517512r1=1517511r2=1517512view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesApplication.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesApplication.java Mon Aug 26 12:02:44 2013 @@ -76,12 +76,12 @@ import javax.xml.bind.annotation.adapter elResolver, propertyResolver, variableResolver, -resourceHandler, -systemEventListener, +resourceHandler, +systemEventListener, localeConfig, resourceBundle, applicationExtension, -defaultValidators +defaultValidators }) public class FacesApplication { Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfig.java?rev=1517512r1=1517511r2=1517512view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfig.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfig.java Mon Aug 26 12:02:44 2013 @@ -86,7 +86,9 @@ import javax.xml.bind.annotation.adapter lifecycle, validator, behavior, -facesConfigExtension +facesConfigExtension, +flowDefinitions, +protectedViews }) public class FacesConfig { Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFlowDefinition.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFlowDefinition.java?rev=1517512r1=1517511r2=1517512view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFlowDefinition.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/FacesConfigFlowDefinition.java Mon Aug 26 12:02:44 2013 @@ -105,7 +105,7 @@ public class FacesConfigFlowDefinition { @XmlElement(name = flow-return) protected ListFacesConfigFlowDefinitionFlowReturn flowReturn; @XmlElement(name = navigation-rule) -protected ListFacesConfigNavigationRule navigationRule; +protected ListFacesNavigationRule navigationRule; @XmlElement(name = flow-call) protected ListFacesConfigFlowDefinitionFlowCall flowCall; @XmlElement(name = method-call) @@ -340,9 +340,9 @@ public class FacesConfigFlowDefinition { * * */ -public ListFacesConfigNavigationRule getNavigationRule() { +public ListFacesNavigationRule getNavigationRule() { if (navigationRule == null) { -navigationRule = new ArrayListFacesConfigNavigationRule(); +navigationRule = new ArrayListFacesNavigationRule(); } return this.navigationRule; } Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/XmlString.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/XmlString.java?rev=1517512r1=1517511r2=1517512view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/XmlString.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee
svn commit: r1518605 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java
Author: rmannibucau Date: Thu Aug 29 11:40:34 2013 New Revision: 1518605 URL: http://svn.apache.org/r1518605 Log: TOMEE-1024 @Description on parameters Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java?rev=1518605r1=1518604r2=1518605view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java Thu Aug 29 11:40:34 2013 @@ -16,7 +16,6 @@ */ package org.apache.openejb.monitoring; -import com.sun.jmx.mbeanserver.Introspector; import org.apache.openejb.api.internal.Internal; import org.apache.openejb.api.jmx.Description; import org.apache.openejb.api.jmx.MBean; @@ -228,22 +227,24 @@ public class DynamicMBeanWrapper impleme } private MBeanOperationInfo newMethodDescriptor(final String operationDescr, final Method m) { +final MBeanOperationInfo jvmInfo = new MBeanOperationInfo(operationDescr, m); return new MBeanOperationInfo( m.getName(), operationDescr, -methodSignature(m), +methodSignature(jvmInfo, m), m.getReturnType().getName(), MBeanOperationInfo.UNKNOWN, -Introspector.descriptorForElement(m)); +jvmInfo.getDescriptor()); // avoid to copy the logic } -private static MBeanParameterInfo[] methodSignature(final Method method) { +private static MBeanParameterInfo[] methodSignature(final MBeanOperationInfo jvmInfo, final Method method) { final Class?[] classes = method.getParameterTypes(); final Annotation[][] annots = method.getParameterAnnotations(); -return parameters(classes, annots); +return parameters(jvmInfo, classes, annots); } -static MBeanParameterInfo[] parameters(final Class?[] classes, +static MBeanParameterInfo[] parameters(final MBeanOperationInfo jvmInfo, + final Class?[] classes, final Annotation[][] annots) { final MBeanParameterInfo[] params = new MBeanParameterInfo[classes.length]; @@ -251,7 +252,7 @@ public class DynamicMBeanWrapper impleme String desc = ; for (int i = 0; i classes.length; i++) { -final Descriptor d = Introspector.descriptorForAnnotations(annots[i]); +final Descriptor d = jvmInfo.getSignature()[i].getDescriptor(); final String pn = arg + i; for (final Annotation a : annots[i]) { final Class? extends Annotation type = a.annotationType();
svn commit: r1518607 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config: AppInfoBuilder.java CleanEnvEntries.java
Author: rmannibucau Date: Thu Aug 29 11:43:20 2013 New Revision: 1518607 URL: http://svn.apache.org/r1518607 Log: TOMEE-1023 merging app env-entry with ejbs Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java?rev=1518607r1=1518606r2=1518607view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java Thu Aug 29 11:43:20 2013 @@ -236,8 +236,6 @@ class AppInfoBuilder { // Get the ejb-jar.xml object final EnterpriseBean enterpriseBean = beanData.get(beanInfo.ejbName); -setApplicationEnvEntries(appModule.getApplication(), enterpriseBean); - // Build the JNDI info tree for the EJB jndiEncInfoBuilder.build(enterpriseBean, beanInfo.ejbName, ejbJar.moduleName, ejbModule.getModuleUri(), ejbJar.moduleJndiEnc, beanInfo.jndiEnc); @@ -307,14 +305,6 @@ class AppInfoBuilder { } -private void setApplicationEnvEntries(final Application app, final EnterpriseBean enterpriseBean) { -if (app == null || enterpriseBean == null) { -return; -} - -enterpriseBean.getEnvEntry().addAll(app.getEnvEntry()); -} - private void buildPojoConfiguration(final AppModule appModule, final AppInfo appInfo) { for (final Map.EntryString, PojoConfiguration config : appModule.getPojoConfigurations().entrySet()) { final IdPropertiesInfo info = new IdPropertiesInfo(); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java?rev=1518607r1=1518606r2=1518607view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/CleanEnvEntries.java Thu Aug 29 11:43:20 2013 @@ -26,8 +26,10 @@ import org.apache.openejb.jee.JndiConsum import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; +import java.util.Map; import java.util.Set; /** @@ -48,63 +50,77 @@ public class CleanEnvEntries implements return appModule; } -public AppModule removeUnsetEnvEntries(AppModule appModule) throws OpenEJBException { +public AppModule removeUnsetEnvEntries(final AppModule appModule) throws OpenEJBException { +final MapString, EnvEntry appEnvEntryMap = getAppEnvEntryMap(appModule); -for (ClientModule module : appModule.getClientModules()) { +for (final ClientModule module : appModule.getClientModules()) { final JndiConsumer consumer = module.getApplicationClient(); if (consumer == null) continue; -removeUnsetEnvEntries(consumer); +removeUnsetEnvEntries(appEnvEntryMap, consumer); } -for (WebModule module : appModule.getWebModules()) { +for (final WebModule module : appModule.getWebModules()) { final JndiConsumer consumer = module.getWebApp(); if (consumer == null) continue; -removeUnsetEnvEntries(consumer); +removeUnsetEnvEntries(appEnvEntryMap, consumer); } -for (EjbModule module : appModule.getEjbModules()) { +for (final EjbModule module : appModule.getEjbModules()) { final EjbJar ejbJar = module.getEjbJar(); if (ejbJar == null) continue; -for (EnterpriseBean consumer : ejbJar.getEnterpriseBeans()) { -removeUnsetEnvEntries(consumer); +for (final EnterpriseBean consumer : ejbJar.getEnterpriseBeans()) { +removeUnsetEnvEntries(appEnvEntryMap, consumer); } } return appModule; } -private void removeUnsetEnvEntries(JndiConsumer consumer) { +private static MapString, EnvEntry getAppEnvEntryMap(final AppModule appModule) { +if (appModule.getApplication() != null appModule.getApplication().getEnvEntry() != null) { +return appModule.getApplication().getEnvEntryMap
svn commit: r1518611 - /tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
Author: rmannibucau Date: Thu Aug 29 11:47:34 2013 New Revision: 1518611 URL: http://svn.apache.org/r1518611 Log: TOMEE-1025 queues and topics are destinations Modified: tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Modified: tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=1518611r1=1518610r2=1518611view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Thu Aug 29 11:47:34 2013 @@ -1024,7 +1024,7 @@ ServiceProvider id=Default Queue service=Resource - types=javax.jms.Queue, Queue + types=javax.jms.Queue, Queue, javax.jms.Destination constructor=destination class-name=org.apache.activemq.command.ActiveMQQueue @@ -1036,7 +1036,7 @@ ServiceProvider id=Default Topic service=Resource - types=javax.jms.Topic, Topic + types=javax.jms.Topic, Topic, javax.jms.Destination constructor=destination class-name=org.apache.activemq.command.ActiveMQTopic
svn commit: r1518661 - /tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent$JAXB.java
Author: rmannibucau Date: Thu Aug 29 14:28:16 2013 New Revision: 1518661 URL: http://svn.apache.org/r1518661 Log: tolerating body context whatever the case is since tomcat uses it in its samples Modified: tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent$JAXB.java Modified: tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent$JAXB.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent%24JAXB.java?rev=1518661r1=1518660r2=1518661view=diff == --- tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent$JAXB.java (original) +++ tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/BodyContent$JAXB.java Thu Aug 29 14:28:16 2013 @@ -42,13 +42,13 @@ public class BodyContent$JAXB public static BodyContent parseBodyContent(XoXMLStreamReader reader, RuntimeContext context, String value) throws Exception { -if (tagdependent.equals(value)) { +if (tagdependent.equalsIgnoreCase(value)) { return BodyContent.TAGDEPENDENT; -} else if (JSP.equals(value)) { +} else if (JSP.equalsIgnoreCase(value)) { return BodyContent.JSP; -} else if (empty.equals(value)) { +} else if (empty.equalsIgnoreCase(value)) { return BodyContent.EMPTY; -} else if (scriptless.equals(value)) { +} else if (scriptless.equalsIgnoreCase(value)) { return BodyContent.SCRIPTLESS; } else { context.unexpectedEnumValue(reader, BodyContent.class, value, tagdependent, JSP, empty, scriptless);
svn commit: r1519379 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/core/timer/ test/java/org/apache/openejb/timer/
Author: rmannibucau Date: Mon Sep 2 10:04:23 2013 New Revision: 1519379 URL: http://svn.apache.org/r1519379 Log: TOMEE-1011 calendar timer can be auto created or not Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java - copied, changed from r1519376, tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/InitialIntervalTimerTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/DatabaseTimerStore.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/MemoryTimerStore.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerStore.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/EjbTimerImplSerializableTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1519379r1=1519378r2=1519379view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Sep 2 10:04:23 2013 @@ -1034,7 +1034,8 @@ public class Assembler extends Assembler null, entry.getKey(), scheduleData.getExpression(), - scheduleData.getConfig()); + scheduleData.getConfig(), +true); } } beanContext.setEjbTimerService(timerService); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java?rev=1519379r1=1519378r2=1519379view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java Mon Sep 2 10:04:23 2013 @@ -22,6 +22,9 @@ import org.quartz.impl.triggers.Abstract import javax.ejb.ScheduleExpression; import javax.ejb.TimerConfig; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.lang.reflect.Method; /** @@ -30,11 +33,13 @@ import java.lang.reflect.Method; public class CalendarTimerData extends TimerData { private static final long serialVersionUID = 1L; -private final ScheduleExpression scheduleExpression; +private ScheduleExpression scheduleExpression; +private boolean autoCreated; -public CalendarTimerData(long id, EjbTimerServiceImpl timerService, String deploymentId, Object primaryKey, Method timeoutMethod, TimerConfig timerConfig, ScheduleExpression scheduleExpression) { +public CalendarTimerData(long id, EjbTimerServiceImpl timerService, String deploymentId, Object primaryKey, Method timeoutMethod, TimerConfig timerConfig, ScheduleExpression scheduleExpression, boolean auto) { super(id, timerService, deploymentId, primaryKey, timeoutMethod, timerConfig); this.scheduleExpression = scheduleExpression; +this.autoCreated = auto; } @Override @@ -46,6 +51,10 @@ public class CalendarTimerData extends T return scheduleExpression; } +public boolean isAutoCreated() { +return autoCreated; +} + @Override public AbstractTrigger? initializeTrigger() { try { @@ -57,6 +66,24 @@ public class CalendarTimerData extends T } @Override +protected void writeObject(final ObjectOutputStream out) throws IOException { +super.writeObject(out
svn commit: r1519716 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer: CalendarTimerData.java TimerData.java
Author: rmannibucau Date: Tue Sep 3 15:14:09 2013 New Revision: 1519716 URL: http://svn.apache.org/r1519716 Log: making CalendarTimerData serializable Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java?rev=1519716r1=1519715r2=1519716view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/CalendarTimerData.java Tue Sep 3 15:14:09 2013 @@ -65,16 +65,14 @@ public class CalendarTimerData extends T } } -@Override -protected void writeObject(final ObjectOutputStream out) throws IOException { -super.writeObject(out); +private void writeObject(final ObjectOutputStream out) throws IOException { +super.doWriteObject(out); out.writeBoolean(autoCreated); out.writeObject(scheduleExpression); } -@Override -protected void readObject(final ObjectInputStream in) throws IOException { -super.readObject(in); +private void readObject(final ObjectInputStream in) throws IOException { +super.doReadObject(in); autoCreated = in.readBoolean(); try { scheduleExpression = ScheduleExpression.class.cast(in.readObject()); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java?rev=1519716r1=1519715r2=1519716view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java Tue Sep 3 15:14:09 2013 @@ -112,7 +112,11 @@ public abstract class TimerData implemen this.timeoutMethod = timeoutMethod; } -protected void writeObject(final ObjectOutputStream out) throws IOException { +private void writeObject(final ObjectOutputStream out) throws IOException { +doWriteObject(out); +} + +protected void doWriteObject(final ObjectOutputStream out) throws IOException { out.writeLong(id); out.writeUTF(deploymentId); out.writeBoolean(persistent); @@ -124,7 +128,11 @@ public abstract class TimerData implemen out.writeUTF(timeoutMethod.getName()); } -protected void readObject(final ObjectInputStream in) throws IOException { +private void readObject(final ObjectInputStream in) throws IOException { +doReadObject(in); +} + +protected void doReadObject(final ObjectInputStream in) throws IOException { id = in.readLong(); deploymentId = in.readUTF(); persistent = in.readBoolean(); @@ -154,7 +162,6 @@ public abstract class TimerData implemen timeoutMethod = method; break; } - } }
svn commit: r1519725 - /tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java
Author: rmannibucau Date: Tue Sep 3 15:45:18 2013 New Revision: 1519725 URL: http://svn.apache.org/r1519725 Log: typo in comments Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java?rev=1519725r1=1519724r2=1519725view=diff == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java Tue Sep 3 15:45:18 2013 @@ -92,14 +92,14 @@ public class QuartzPersistenceForEJBTime @Configuration public Properties configuration() { return new PropertiesBuilder() -// see src/main/resources/import-QuartzPersistenceForEJBTimersDB.sql for the init script +// see src/test/resources/import-QuartzPersistenceForEJBTimersDB.sql for the init script .p(QuartzPersistenceForEJBTimersDB, new://Resource?type=DataSource) .p(QuartzPersistenceForEJBTimersDB.JtaManaged, true) .p(QuartzPersistenceForEJBTimersDB.JdbcUrl, jdbc:hsqldb:mem:QuartzPersistenceForEJBTimersDB) .p(QuartzPersistenceForEJBTimersDB.UserName, SA) .p(QuartzPersistenceForEJBTimersDB.Password, ) -// see src/main/resources/import-QuartzPersistenceForEJBTimersDBNoTx.sql for the init script +// see src/test/resources/import-QuartzPersistenceForEJBTimersDBNoTx.sql for the init script .p(QuartzPersistenceForEJBTimersDBNoTx, new://Resource?type=DataSource) .p(QuartzPersistenceForEJBTimersDBNoTx.JtaManaged, false) .p(QuartzPersistenceForEJBTimersDBNoTx.JdbcUrl, jdbc:hsqldb:mem:QuartzPersistenceForEJBTimersDBNoTx)
svn commit: r1519724 - in /tomee/tomee/trunk/container/openejb-core/src/test: java/org/apache/openejb/timer/ resources/
Author: rmannibucau Date: Tue Sep 3 15:44:11 2013 New Revision: 1519724 URL: http://svn.apache.org/r1519724 Log: adding a quartz test with persistence Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java tomee/tomee/trunk/container/openejb-core/src/test/resources/import-QuartzPersistenceForEJBTimersDB.sql tomee/tomee/trunk/container/openejb-core/src/test/resources/import-QuartzPersistenceForEJBTimersDBNoTx.sql Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java?rev=1519724view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java Tue Sep 3 15:44:11 2013 @@ -0,0 +1,143 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.timer; + +import org.apache.openejb.config.AppModule; +import org.apache.openejb.config.EjbModule; +import org.apache.openejb.jee.EjbJar; +import org.apache.openejb.jee.SingletonBean; +import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.testing.Configuration; +import org.apache.openejb.testing.Module; +import org.apache.openejb.testng.PropertiesBuilder; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.quartz.impl.jdbcjobstore.HSQLDBDelegate; +import org.quartz.impl.jdbcjobstore.JobStoreCMT; +import org.quartz.simpl.SimpleThreadPool; + +import javax.annotation.PreDestroy; +import javax.annotation.Resource; +import javax.ejb.EJB; +import javax.ejb.Schedule; +import javax.ejb.Singleton; +import javax.ejb.Timeout; +import javax.ejb.Timer; +import javax.ejb.TimerConfig; +import javax.ejb.TimerService; +import java.util.Collection; +import java.util.Properties; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +@RunWith(ApplicationComposer.class) +public class QuartzPersistenceForEJBTimersTest { +@EJB +private MyTimedEjb bean; + +@Test +public void doTest() { +assertNotNull(bean); +assertEquals(0, bean.timers().size()); +bean.newTimer(); +assertEquals(1, bean.timers().size()); +} + +@Module +public AppModule application() { +final EjbModule ejbModule = new EjbModule(new EjbJar()); +ejbModule.getEjbJar().addEnterpriseBean(new SingletonBean(MyTimedEjb.class).localBean()); + +final Properties quartzConfig = new PropertiesBuilder() +.p(org.quartz.scheduler.instanceName, TestScheduler) +.p(org.quartz.scheduler.instanceId, AUTO) +.p(org.quartz.threadPool.class, SimpleThreadPool.class.getName()) +.p(org.quartz.threadPool.threadCount, 4) +.p(org.quartz.threadPool.threadPriority, 5) +.p(org.quartz.jobStore.class, JobStoreCMT.class.getName()) +.p(org.quartz.jobStore.driverDelegateClass, HSQLDBDelegate.class.getName()) +.p(org.quartz.jobStore.dataSource, QUARTZ) +.p(org.quartz.jobStore.nonManagedTXDataSource, QUARTZ_NOTX) +.p(org.quartz.jobStore.tablePrefix, qrtz_) +.p(org.quartz.jobStore.isClustered, true) +.p(org.quartz.jobStore.clusterCheckinInterval, 6) +.p(org.quartz.jobStore.txIsolationLevelSerializable, true) +.p(org.quartz.jobStore.maxMisfiresToHandleAtATime, 100) +.p(org.quartz.dataSource.QUARTZ.jndiURL, openejb:Resource/QuartzPersistenceForEJBTimersDB) +.p(org.quartz.dataSource.QUARTZ_NOTX.jndiURL, openejb:Resource/QuartzPersistenceForEJBTimersDBNoTx) +.build(); + + +final AppModule appModule = new AppModule(Thread.currentThread().getContextClassLoader(), null); +appModule.getEjbModules().add(ejbModule
svn commit: r1519990 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/core/timer/ test/java/org/apache/openejb/timer/ test/resources/
Author: rmannibucau Date: Wed Sep 4 12:04:04 2013 New Revision: 1519990 URL: http://svn.apache.org/r1519990 Log: correct serializability for TimerData and related expressions Removed: tomee/tomee/trunk/container/openejb-core/src/test/resources/import-QuartzPersistenceForEJBTimersDBNoTx.sql Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/QuartzPersistenceForEJBTimersTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java?rev=1519990r1=1519989r2=1519990view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EJBCronTrigger.java Wed Sep 4 12:04:04 2013 @@ -21,6 +21,7 @@ import org.apache.openejb.util.Logger; import org.quartz.impl.triggers.CronTriggerImpl; import javax.ejb.ScheduleExpression; +import java.io.Serializable; import java.text.DateFormatSymbols; import java.util.ArrayList; import java.util.Calendar; @@ -576,7 +577,7 @@ public class EJBCronTrigger extends Cron } - private abstract static class FieldExpression { + private abstract static class FieldExpression implements Serializable { protected static final Calendar CALENDAR = new GregorianCalendar(Locale.US); // For getting min/max field values @@ -624,14 +625,8 @@ public class EJBCronTrigger extends Cron } protected boolean isValidResult(Calendar calendar, Integer result){ - - if (result!=null result=calendar.getActualMinimum(field) result =calendar.getActualMaximum(field)){ -return true; -} - - return false; - - } +return result != null result = calendar.getActualMinimum(field) result = calendar.getActualMaximum(field); +} /** * Returns the next allowed value in this calendar for the given Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java?rev=1519990r1=1519989r2=1519990view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerData.java Wed Sep 4 12:04:04 2013 @@ -125,6 +125,7 @@ public abstract class TimerData implemen out.writeObject(primaryKey); out.writeObject(timerService); out.writeObject(info); +out.writeObject(trigger); out.writeUTF(timeoutMethod.getName()); } @@ -143,12 +144,14 @@ public abstract class TimerData implemen primaryKey = in.readObject(); timerService = (EjbTimerServiceImpl) in.readObject(); info = in.readObject(); +trigger = AbstractTrigger.class.cast(in.readObject()); } catch (ClassNotFoundException e) { throw new IOException(e); } final String mtd = in.readUTF(); final BeanContext beanContext = SystemInstance.get().getComponent(ContainerSystem.class).getBeanContext(deploymentId); +scheduler = timerService.getScheduler(); for (IteratorMap.EntryMethod, MethodContext it = beanContext.iteratorMethodContext(); it.hasNext(); ) { final MethodContext methodContext = it.next().getValue(); /* this doesn't work in all cases Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java?rev=1519990r1=1519989r2=1519990view=diff == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/timer/GetTimerTest.java Wed
svn commit: r1520221 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java
Author: rmannibucau Date: Thu Sep 5 05:35:12 2013 New Revision: 1520221 URL: http://svn.apache.org/r1520221 Log: new owb api Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java?rev=1520221r1=1520220r2=1520221view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebAppInjectionResolver.java Thu Sep 5 05:35:12 2013 @@ -32,10 +32,10 @@ public class WebAppInjectionResolver ext } @Override -public SetBean? implResolveByType(final Type injectionPointType, final Class? injectinPointClass, final Annotation... qualifiers) { -final SetBean? set = super.implResolveByType(injectionPointType, injectinPointClass, qualifiers); +public SetBean? implResolveByType(final boolean delegate, final Type injectionPointType, final Class? injectinPointClass, final Annotation... qualifiers) { +final SetBean? set = super.implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); if (set.isEmpty()) { -return context.getParent().getBeanManagerImpl().getInjectionResolver().implResolveByType(injectionPointType, injectinPointClass, qualifiers); +return context.getParent().getBeanManagerImpl().getInjectionResolver().implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); } return set; }
svn commit: r1520847 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: OpenEjbContainer.java util/JuliLogStreamFactory.java
Author: rmannibucau Date: Sun Sep 8 09:22:22 2013 New Revision: 1520847 URL: http://svn.apache.org/r1520847 Log: OPENEJB-2037 better handling of logging for EJBContainer Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1520847r1=1520846r2=1520847view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Sun Sep 8 09:22:22 2013 @@ -92,22 +92,19 @@ import static org.apache.openejb.cdi.Sco * @version $Rev$ $Date$ */ public class OpenEjbContainer extends EJBContainer { - static { -Core.warmup(); - // if tomee embedded was ran we'll lost log otherwise final String logManger = System.getProperty(java.util.logging.manager); if (logManger != null) { try { Thread.currentThread().getContextClassLoader().loadClass(logManger); -} catch (Exception ignored) { +} catch (final Exception ignored) { final Field field; try { field = LogManager.class.getDeclaredField(manager); field.setAccessible(true); field.set(null, new JuliLogStreamFactory.OpenEJBLogManager()); -} catch (Exception ignore) { +} catch (final Exception ignore) { // ignore } } @@ -115,9 +112,9 @@ public class OpenEjbContainer extends EJ } public static final String OPENEJB_EMBEDDED_REMOTABLE = openejb.embedded.remotable; -static Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, OpenEjbContainer.class); private static OpenEjbContainer instance; +private static Logger logger = null; // initialized lazily to get the logging config from properties private ServiceManagerProxy serviceManager; private Options options; @@ -141,8 +138,8 @@ public class OpenEjbContainer extends EJ session = new MockHttpSession(); try { startContexts(webBeanContext.getContextsService(), servletContext, session); -} catch (Exception e) { -logger.warning(can't start all CDI contexts, e); +} catch (final Exception e) { +logger().warning(can't start all CDI contexts, e); } } @@ -163,7 +160,7 @@ public class OpenEjbContainer extends EJ try { assembler.destroyApplication(info); } catch (UndeployException e) { -logger.error(e.getMessage(), e); +logger().error(e.getMessage(), e); } } } @@ -171,10 +168,10 @@ public class OpenEjbContainer extends EJ try { stopContexts(webBeanContext.getContextsService(), servletContext, session); } catch (Exception e) { -logger.warning(can't stop all CDI contexts, e); +logger().warning(can't stop all CDI contexts, e); } -logger.info(Destroying OpenEJB container); +logger().info(Destroying OpenEJB container); OpenEJB.destroy(); instance = null; } @@ -223,7 +220,7 @@ public class OpenEjbContainer extends EJ try { OWBInjector.inject(webBeanContext.getBeanManagerImpl(), object, null); } catch (Throwable t) { -logger.warning(an error occured while injecting the class ' + object.getClass().getName() + ': + t.getMessage()); +logger().warning(an error occured while injecting the class ' + object.getClass().getName() + ': + t.getMessage()); } finally { if (context != null) { ThreadContext.exit(oldContext); @@ -276,10 +273,17 @@ public class OpenEjbContainer extends EJ serviceManager = new ServiceManagerProxy(); serviceManager.start(); } catch (ServiceManagerProxy.AlreadyStartedException e) { -logger.debug(Network services already started. Ignoring option + OPENEJB_EMBEDDED_REMOTABLE); +logger().debug(Network services already started. Ignoring option + OPENEJB_EMBEDDED_REMOTABLE); } } +private static Logger logger() { // don't trigger init too eagerly to be sure to be configured +if (logger == null) { +logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP
svn commit: r1524405 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: config/DeploymentLoader.java persistence/PersistenceBootstrap.java
Author: rmannibucau Date: Wed Sep 18 13:39:39 2013 New Revision: 1524405 URL: http://svn.apache.org/r1524405 Log: TOMEE-1032 trying to read WEB-INF/persistence.xml file in our persistence bootstrap (for openjpa enhancement at load time) Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1524405r1=1524404r2=1524405view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Wed Sep 18 13:39:39 2013 @@ -110,7 +110,7 @@ public class DeploymentLoader implements private boolean scanManagedBeans = true; private static final CollectionString KNOWN_DESCRIPTORS = Arrays.asList(app-ctx.xml, module.properties, application.properties, web.xml, ejb-jar.xml, openejb-jar.xml, env-entries.properties, beans.xml, ra.xml, application.xml, application-client.xml, persistence-fragment.xml, persistence.xml, validation.xml, NewLoaderLogic.EXCLUSION_FILE); -private static String ALTDD = SystemInstance.get().getOptions().get(OPENEJB_ALTDD_PREFIX, (String) null); +public static String ALTDD = SystemInstance.get().getOptions().get(OPENEJB_ALTDD_PREFIX, (String) null); public AppModule load(final File jarFile) throws OpenEJBException { // verify we have a valid file Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java?rev=1524405r1=1524404r2=1524405view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java Wed Sep 18 13:39:39 2013 @@ -16,10 +16,13 @@ */ package org.apache.openejb.persistence; +import org.apache.openejb.config.DeploymentLoader; import org.apache.openejb.core.TempClassLoader; import org.apache.openejb.javaagent.Agent; import org.apache.openejb.loader.IO; +import org.apache.openejb.util.URLs; import org.apache.openejb.util.Saxs; +import org.apache.xbean.finder.ClassLoaders; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -30,6 +33,7 @@ import javax.persistence.spi.Persistence import javax.sql.DataSource; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -43,9 +47,11 @@ import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Properties; @@ -84,38 +90,74 @@ public class PersistenceBootstrap { try { debug(searching for persistence.xml files); -ArrayListURL urls = Collections.list(classLoader.getResources(META-INF/persistence.xml)); +// create persistence.xml names respecting altdd +final CollectionString pXmlNames = new ArrayListString(); +if (DeploymentLoader.ALTDD != null) { +for (final String p : DeploymentLoader.ALTDD.split(,)) { +pXmlNames.add(p + .persistence.xml); +pXmlNames.add(p + -persistence.xml); +} +} else { +pXmlNames.add(persistence.xml); +} + +final ListURL urls = new LinkedListURL(); +for (final String pXmlName : pXmlNames) { // find persistence.xml in the classloader and in WEB-INF + urls.addAll(Collections.list(classLoader.getResources(META-INF/ + pXmlName))); +try { +final CollectionURL loaderUrls = ClassLoaders.findUrls(classLoader); +for (final URL url : loaderUrls) { +final File file = URLs.toFile(url); +if (classes.equals(file.getName()) WEB-INF.equals
svn commit: r1524648 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
Author: rmannibucau Date: Thu Sep 19 08:12:03 2013 New Revision: 1524648 URL: http://svn.apache.org/r1524648 Log: TOMEE-1034 ability to preload some classes at container setup (Maven.resolver() use case) + fixing new OWB API in core Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java?rev=1524648r1=1524647r2=1524648view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Thu Sep 19 08:12:03 2013 @@ -51,15 +51,15 @@ public class WebappBeanManager extends B } @Override -public void fireEvent(final Object event, final EventMetadata metadata) { +public void fireEvent(final Object event, final EventMetadata metadata, final boolean isLifecycleEvent) { final Class? eventClass = event.getClass(); if(ClassUtil.isDefinitionContainsTypeVariables(ClassUtil.getClass(metadata.getType( { throw new IllegalArgumentException(Event class : + event.getClass().getName() + can not be defined as generic type); } -getNotificationManager().fireEvent(event, metadata); +getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); if (isEvent(eventClass)) { -getParentBm().getNotificationManager().fireEvent(event, metadata); +getParentBm().getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); } }
svn commit: r1524656 - /tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java
Author: rmannibucau Date: Thu Sep 19 08:32:42 2013 New Revision: 1524656 URL: http://svn.apache.org/r1524656 Log: don't forget to pre-init the class otherwise it is useless Modified: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java Modified: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java?rev=1524656r1=1524655r2=1524656view=diff == --- tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianUtil.java Thu Sep 19 08:32:42 2013 @@ -137,7 +137,7 @@ public final class ArquillianUtil { @Override public void run() { try { -loader.loadClass(clazz); +Class.forName(clazz, true, loader); } catch (final Throwable th) { // no-op }
svn commit: r1524926 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
Author: rmannibucau Date: Fri Sep 20 07:47:37 2013 New Revision: 1524926 URL: http://svn.apache.org/r1524926 Log: TOMEE-1038 avoid ambiguity and then not deterministic auto resource creation Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1524926r1=1524925r2=1524926view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Fri Sep 20 07:47:37 2013 @@ -1611,6 +1611,7 @@ public class AutoConfig implements Dynam final Properties overrides = ConfigurationFactory.getSystemProperties(nonJtaResourceInfo.id, nonJtaResourceInfo.service); nonJtaResourceInfo.properties.putAll(overrides); nonJtaResourceInfo.properties.setProperty(JtaManaged, false); +nonJtaResourceInfo.properties.remove(Definition); // if created from annotation we just want live config logAutoCreateResource(nonJtaResourceInfo, DataSource, unit.getName()); logger.info(configureService.configuring, nonJtaResourceInfo.id, nonJtaResourceInfo.service, jtaResourceInfo.id); @@ -1671,6 +1672,7 @@ public class AutoConfig implements Dynam final Properties overrides = ConfigurationFactory.getSystemProperties(jtaResourceInfo.id, jtaResourceInfo.service); jtaResourceInfo.properties.putAll(overrides); jtaResourceInfo.properties.setProperty(JtaManaged, true); +jtaResourceInfo.properties.remove(Definition); // if created from annotation we just want live config logAutoCreateResource(jtaResourceInfo, DataSource, unit.getName()); logger.info(configureService.configuring, jtaResourceInfo.id, jtaResourceInfo.service, nonJtaResourceInfo.id);
svn commit: r1525270 - in /tomee/tomee/trunk/arquillian/ziplock: ./ src/main/java/org/apache/ziplock/maven/ src/test/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apac
Author: rmannibucau Date: Sat Sep 21 18:05:50 2013 New Revision: 1525270 URL: http://svn.apache.org/r1525270 Log: TOMEE-1041 basic mvn integration in ziplock - surely to enhance Added: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java tomee/tomee/trunk/arquillian/ziplock/src/test/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/org/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/org/apache/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/org/apache/ziplock/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/org/apache/ziplock/maven/ tomee/tomee/trunk/arquillian/ziplock/src/test/java/org/apache/ziplock/maven/MvnTest.java Modified: tomee/tomee/trunk/arquillian/ziplock/pom.xml Modified: tomee/tomee/trunk/arquillian/ziplock/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/pom.xml?rev=1525270r1=1525269r2=1525270view=diff == --- tomee/tomee/trunk/arquillian/ziplock/pom.xml (original) +++ tomee/tomee/trunk/arquillian/ziplock/pom.xml Sat Sep 21 18:05:50 2013 @@ -37,6 +37,13 @@ /dependency dependency + groupIdorg.jboss.shrinkwrap.resolver/groupId + artifactIdshrinkwrap-resolver-impl-maven/artifactId + version2.0.0/version + scopeprovided/scope +/dependency + +dependency groupIdorg.apache.openejb/groupId artifactIdopenejb-jee/artifactId version${openejb.version}/version @@ -47,5 +54,15 @@ version${javaee-api.version}/version /dependency +dependency + groupIdjunit/groupId + artifactIdjunit/artifactId +/dependency +dependency + groupIdorg.jboss.shrinkwrap/groupId + artifactIdshrinkwrap-impl-base/artifactId + version${version.shrinkwrap.shrinkwrap}/version + scopetest/scope +/dependency /dependencies /project Added: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java?rev=1525270view=auto == --- tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java (added) +++ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java Sat Sep 21 18:05:50 2013 @@ -0,0 +1,189 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.ziplock.maven; + +import org.apache.ziplock.IO; +import org.jboss.shrinkwrap.api.Archive; +import org.jboss.shrinkwrap.api.ArchivePath; +import org.jboss.shrinkwrap.api.Filter; +import org.jboss.shrinkwrap.api.GenericArchive; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.Asset; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.importer.ExplodedImporter; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.jboss.shrinkwrap.resolver.api.maven.Maven; +import org.jboss.shrinkwrap.resolver.api.maven.ScopeType; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.StringWriter; +import java.util.HashMap; +import java.util.Map; + +public final class Mvn { +/** + * Client war. + * + * @return create a war with src/main/resources, src/main/webapp and all compile and runtime dependencies + */ +public static Archive? war() { +return war(test.war, null); +} + +/** + * Server war without tests clases. + * + * @return create a war with src/main/resources, src/main/webapp and all compile, runtime and test dependencies + */ +public static Archive? testWar() { +return war(test.war, null
svn commit: r1525331 - in /tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven: Mvn.java PreloadableTestWar.java PreloadableWar.java
Author: rmannibucau Date: Sun Sep 22 08:21:56 2013 New Revision: 1525331 URL: http://svn.apache.org/r1525331 Log: TOMEE-1041 adding Mvn.Builder to create archives Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java?rev=1525331r1=1525330r2=1525331view=diff == --- tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java (original) +++ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java Sun Sep 22 08:21:56 2013 @@ -38,88 +38,148 @@ import java.util.HashMap; import java.util.Map; public final class Mvn { -/** - * Client war. - * - * @return create a war with src/main/resources, src/main/webapp and all compile and runtime dependencies - */ -public static Archive? war() { -return war(test.war, null); -} +public static class Builder { +private File basedir = null; +private File resources = null; +private File webapp = null; +private File classes = null; +private String basePackage = null; +private String name = test.war; +private MapFile, String additionalResources = new HashMapFile, String(); +private ScopeType[] scopes = { ScopeType.COMPILE, ScopeType.RUNTIME }; -/** - * Server war without tests clases. - * - * @return create a war with src/main/resources, src/main/webapp and all compile, runtime and test dependencies - */ -public static Archive? testWar() { -return war(test.war, null, ScopeType.COMPILE, ScopeType.RUNTIME, ScopeType.TEST); -} +public Builder scopes(final ScopeType... scopes) { +this.scopes = scopes; +return this; +} -public static Archive? war(final String name, final String basePackage, final ScopeType... scopes) { -final File basedir = basedir(); +public Builder basedir(final File path) { +this.basedir = path; +return this; +} -final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, name); +public Builder resources(final File path) { +this.resources = path; +return this; +} -if (basePackage == null) { -final File classes = new File(basedir, target/classes/); -add(webArchive, classes, /WEB-INF/classes/); -} else { -webArchive.addPackages(true, basePackage); +public Builder webapp(final File path) { +this.webapp = path; +return this; } -final File webapp = new File(basedir, src/main/webapp); -add(webArchive, webapp, /); -if (basePackage != null) { -final File resources = new File(basedir, src/main/resources); -add(webArchive, resources, /WEB-INF/classes/); +public Builder classes(final File path) { +this.classes = path; +return this; } -final ScopeType[] types; -if (scopes == null || scopes.length == 0) { -types = new ScopeType[]{ ScopeType.COMPILE, ScopeType.RUNTIME }; -} else { -types = scopes; +public Builder applicationPackage(final String base) { +this.basePackage = base; +return this; } -try { -final File[] deps = Maven.resolver().offline().loadPomFromFile(new File(basedir, pom.xml)) - .importDependencies(types).resolve().withTransitivity().asFile(); -if (deps.length 0) { -webArchive.addAsLibraries(deps); -} -} catch (final Exception e) { -// no-op + +public Builder name(final String name) { +this.name = name; +return this; } -return webArchive; -} +public Builder additionalResource(final File folder, final String root) { +additionalResources.put(folder, root); +return this; +} + +public Archive? build() { +initDefaults(); + +final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, name); + +if (basePackage != null) { +webArchive.addPackages(true, basePackage); +} +add(webArchive, classes, /WEB-INF/classes/) +.add(webArchive, resources, /WEB-INF/classes/) +.add(webArchive, webapp, /); +for (final
svn commit: r1525608 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
Author: rmannibucau Date: Mon Sep 23 14:35:18 2013 New Revision: 1525608 URL: http://svn.apache.org/r1525608 Log: we don't need this ugly hack which makes tomee maven plugin don't look like tomee standalone - was before we fix NPE in DataTypeConverter Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1525608r1=1525607r2=1525608view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Mon Sep 23 14:35:18 2013 @@ -122,7 +122,7 @@ public class RemoteServer { } public void start() { -start(Collections.EMPTY_LIST, start, true); +start(Collections.StringemptyList(), start, true); } public void start(final ListString additionalArgs, final String cmd, final boolean checkPortAvailable) { @@ -201,14 +201,10 @@ public class RemoteServer { final File conf = new File(home, conf); final File loggingProperties = new File(conf, logging.properties); -File endorsed = new File(home, endorsed); -if (javaVersion != null javaVersion.startsWith(1.7.)) { // java 7 -endorsed = new File(home, endorsed7); // doesn't exist but just to ignore it with j7 -} +final File endorsed = new File(home, endorsed); final File temp = new File(home, temp); -final ListString argsList = new ArrayListString() { -}; +final ListString argsList = new ArrayListString(); argsList.add(java); argsList.add(-XX:+HeapDumpOnOutOfMemoryError); @@ -228,10 +224,7 @@ public class RemoteServer { } if (javaOpts != null) { -final String[] strings = javaOpts.split( +); -for (final String string : strings) { -argsList.add(string); -} +Collections.addAll(argsList, javaOpts.split( +)); } final MapString, String addedArgs = new HashMapString, String();
svn commit: r1525843 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java
Author: rmannibucau Date: Tue Sep 24 10:54:54 2013 New Revision: 1525843 URL: http://svn.apache.org/r1525843 Log: using objectweb default since we don't provide any apache packaged version of BlockLogBuffer Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java?rev=1525843r1=1525842r2=1525843view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java Tue Sep 24 10:54:54 2013 @@ -77,7 +77,7 @@ public class GeronimoTransactionManagerF SystemInstance.get().setComponent(XAResourceWrapper.class, new GeronimoXAResourceWrapper()); xidFactory = new XidFactoryImpl(tmId == null ? DEFAULT_TM_ID: tmId); -txLog = new HOWLLog(bufferClassName == null ? org.apache.howl.log.BlockLogBuffer : bufferClassName, +txLog = new HOWLLog(bufferClassName == null ? org.objectweb.howl.log.BlockLogBuffer : bufferClassName, bufferSizeKb == 0 ? DEFAULT_BUFFER_SIZE : bufferSizeKb, checksumEnabled, adler32Checksum,
svn commit: r1525886 - /tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java
Author: rmannibucau Date: Tue Sep 24 13:37:40 2013 New Revision: 1525886 URL: http://svn.apache.org/r1525886 Log: adding a test on xa datasources Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java?rev=1525886view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java Tue Sep 24 13:37:40 2013 @@ -0,0 +1,171 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.resource.jdbc; + +import org.apache.openejb.jee.EjbJar; +import org.apache.openejb.jee.SingletonBean; +import org.apache.openejb.jee.jpa.unit.Persistence; +import org.apache.openejb.jee.jpa.unit.PersistenceUnit; +import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.loader.Files; +import org.apache.openejb.testing.Configuration; +import org.apache.openejb.testing.Module; +import org.hsqldb.jdbc.pool.JDBCXADataSource; +import org.junit.Test; +import org.junit.runner.RunWith; + +import javax.ejb.EJB; +import javax.ejb.EJBException; +import javax.ejb.Singleton; +import javax.persistence.Entity; +import javax.persistence.EntityManager; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.PersistenceContext; +import java.io.File; +import java.util.Properties; + +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + +@RunWith(ApplicationComposer.class) +public class XADataSourceTest { +@EJB +private XAEJB ejb; + +@Test +public void checkOperationsWork() { +ejb.doSthg(); +ejb.assertPersisted(); +try { +ejb.forceRollback(); +} catch (final EJBException ejbEx) { +assertThat(ejbEx.getCause(), instanceOf(IllegalArgumentException.class)); +} +} + +@Configuration +public java.util.Properties config() { +final File file = new File(target/test/xa/howl); +if (file.isDirectory()) { +Files.delete(file); +} + +final Properties p = new Properties(); +p.put(openejb.jdbc.log, dbcp-alternative); + +p.put(txMgr, new://TransactionManager?type=TransactionManager); +p.put(txMgr.txRecovery, true); +p.put(txMgr.logFileDir, target/test/xa/howl); + +p.put(xadb, new://Resource?type=DataSource); +p.put(xadb.JdbcDriver, JDBCXADataSource.class.getName()); +p.put(xadb.JdbcUrl, jdbc:hsqldb:mem:xa); +p.put(xadb.UserName, sa); +p.put(xadb.Password, ); +p.put(xadb.JtaManaged, true); + +p.put(xadbn, new://Resource?type=DataSource); +p.put(xadbn.JdbcDriver, JDBCXADataSource.class.getName()); +p.put(xadbn.JdbcUrl, jdbc:hsqldb:mem:xa); +p.put(xadbn.UserName, sa); +p.put(xadbn.Password, ); +p.put(xadbn.JtaManaged, false); + +p.put(xadb2, new://Resource?type=DataSource); +p.put(xadb2.JdbcDriver, JDBCXADataSource.class.getName()); +p.put(xadb2.JdbcUrl, jdbc:hsqldb:mem:xa2); +p.put(xadb2.UserName, sa); +p.put(xadb2.Password, ); +p.put(xadb2.JtaManaged, true); + +p.put(xadbn2, new://Resource?type=DataSource); +p.put(xadbn2.JdbcDriver, JDBCXADataSource.class.getName()); +p.put(xadbn2.JdbcUrl, jdbc:hsqldb:mem:xa2); +p.put(xadbn2.UserName, sa); +p.put(xadbn2.Password, ); +p.put(xadbn2.JtaManaged, false); +return p; +} + +@Module +public Persistence pXml() throws Exception { +final Persistence persistence = new Persistence(); +{ +final PersistenceUnit persistenceUnit = new
svn commit: r1525901 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java test/java/org/apache/openejb/resource/jdbc/XADa
Author: rmannibucau Date: Tue Sep 24 14:38:30 2013 New Revision: 1525901 URL: http://svn.apache.org/r1525901 Log: TOMEE-1044 using equals instead of == to compare transactions Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java?rev=1525901r1=1525900r2=1525901view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/local/ManagedConnection.java Tue Sep 24 14:38:30 2013 @@ -82,7 +82,7 @@ public class ManagedConnection implement // if we have a tx check it is the same this connection is linked to if (currentTransaction != null) { if (isUnderTransaction(currentTransaction.getStatus())) { -if (currentTransaction != transaction) { +if (!currentTransaction.equals(transaction)) { throw new SQLException(Connection can not be used while enlisted in another transaction); } return invokeUnderTransaction(delegate, method, args); Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java?rev=1525901r1=1525900r2=1525901view=diff == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java Tue Sep 24 14:38:30 2013 @@ -22,6 +22,8 @@ import org.apache.openejb.jee.jpa.unit.P import org.apache.openejb.jee.jpa.unit.PersistenceUnit; import org.apache.openejb.junit.ApplicationComposer; import org.apache.openejb.loader.Files; +import org.apache.openejb.resource.jdbc.dbcp.DbcpDataSourceCreator; +import org.apache.openejb.resource.jdbc.pool.DataSourceCreator; import org.apache.openejb.testing.Configuration; import org.apache.openejb.testing.Module; import org.hsqldb.jdbc.pool.JDBCXADataSource; @@ -67,7 +69,7 @@ public class XADataSourceTest { } final Properties p = new Properties(); -p.put(openejb.jdbc.log, dbcp-alternative); +p.put(DataSourceCreator.class.getName(), DbcpDataSourceCreator.class.getName()); p.put(txMgr, new://TransactionManager?type=TransactionManager); p.put(txMgr.txRecovery, true);
svn commit: r1526114 - /tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java
Author: rmannibucau Date: Wed Sep 25 06:03:53 2013 New Revision: 1526114 URL: http://svn.apache.org/r1526114 Log: TOMEE-1045 better app matching algorithm in undeploy mojo Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java?rev=1526114r1=1526113r2=1526114view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UnDeployMojo.java Wed Sep 25 06:03:53 2013 @@ -22,6 +22,10 @@ import org.apache.maven.plugin.MojoFailu import org.apache.maven.plugins.annotations.Mojo; import org.apache.openejb.OpenEJBException; import org.apache.openejb.assembler.Deployer; +import org.apache.openejb.assembler.classic.AppInfo; + +import java.util.ArrayList; +import java.util.Collection; /** * Simply undeploy an application in a running TomEE @@ -32,8 +36,29 @@ public class UnDeployMojo extends Abstra public void execute() throws MojoExecutionException, MojoFailureException { final Deployer deployer = (Deployer) lookup(openejb/DeployerBusinessRemote); try { -deployer.undeploy(path); -} catch (OpenEJBException e) { +final CollectionAppInfo apps = deployer.getDeployedApps(); +final CollectionString paths = new ArrayListString(apps.size()); +for (final AppInfo info : apps) { +paths.add(info.path); +} + +if (paths.contains(path)) { // exact matching +deployer.undeploy(path); +} else { +for (final String proposed : paths) { // exact matching + extension +if (path.equals(proposed + .war) || path.equals(proposed + .ear) || path.equals(proposed + .jar)) { +deployer.undeploy(proposed); +return; +} +} +for (final String proposed : paths) { // just the app/folder name +if (proposed.endsWith(/ + path) || proposed.endsWith(\\ + path)) { +deployer.undeploy(proposed); +return; +} +} +} +} catch (final OpenEJBException e) { throw new TomEEException(e.getMessage(), e); } }
svn commit: r1526142 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/Assembler.java config/AppModule.java config/AutoConfig.java config/DeploymentLoa
Author: rmannibucau Date: Wed Sep 25 09:27:03 2013 New Revision: 1526142 URL: http://svn.apache.org/r1526142 Log: TOMEE-1047 TOMEE-1046 allowing to deploy N times resource adapters (could be great to find a better config than system properties) + allowing to use existing resource as jta datasource - skipping some check if it comes from a resource adapter. In clear we can now use tranql Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1526142r1=1526141r2=1526142view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Sep 25 09:27:03 2013 @@ -775,6 +775,7 @@ public class Assembler extends Assembler } for (final ResourceInfo outbound : connector.outbound) { createResource(outbound); +outbound.properties.setProperty(openejb.connector, true); // set it after as a marker but not as an attribute (no getOpenejb().setConnector(...)) } for (final MdbContainerInfo inbound : connector.inbound) { createContainer(inbound); Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=1526142r1=1526141r2=1526142view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java Wed Sep 25 09:27:03 2013 @@ -77,28 +77,32 @@ public class AppModule implements Deploy this(classLoader, jarLocation, null, false); } -public T extends DeploymentModule AppModule(final T module) { +public T extends DeploymentModule AppModule(final T... modules) { +final T firstModule = modules[0]; + this.standaloneModule = true; -this.classLoader = module.getClassLoader(); -this.application = new Application(module.getModuleId()); +this.classLoader = firstModule.getClassLoader(); +this.application = new Application(firstModule.getModuleId()); -this.id = new ID(null, application, null, module.getFile(), module.getModuleUri(), this); +this.id = new ID(null, application, null, firstModule.getFile(), firstModule.getModuleUri(), this); this.validation = new ValidationContext(this); -final Class? extends DeploymentModule type = module.getClass(); +for (final T module : modules) { +final Class? extends DeploymentModule type = module.getClass(); -if (type == EjbModule.class) { -getEjbModules().add((EjbModule) module); -} else if (type == ClientModule.class) { -getClientModules().add((ClientModule) module); -} else if (type == ConnectorModule.class) { -getConnectorModules().add((ConnectorModule) module); -} else if (type == WebModule.class) { -getWebModules().add((WebModule) module); -} else if (type == PersistenceModule.class) { -addPersistenceModule((PersistenceModule) module); -} else { -throw new IllegalArgumentException(Unknown module type: + type.getName()); +if (type == EjbModule.class) { +getEjbModules().add((EjbModule) module); +} else if (type == ClientModule.class) { +getClientModules().add((ClientModule) module); +} else if (type == ConnectorModule.class) { +getConnectorModules().add((ConnectorModule) module); +} else if (type == WebModule.class) { +getWebModules().add((WebModule) module); +} else if (type == PersistenceModule.class) { +addPersistenceModule((PersistenceModule
svn commit: r1526181 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
Author: rmannibucau Date: Wed Sep 25 14:09:45 2013 New Revision: 1526181 URL: http://svn.apache.org/r1526181 Log: forcing container loader in scheduler thread factory to avoid side effects Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java?rev=1526181r1=1526180r2=1526181view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java Wed Sep 25 14:09:45 2013 @@ -16,6 +16,7 @@ */ package org.apache.openejb.util; +import org.apache.openejb.core.ParentClassLoaderFinder; import org.apache.openejb.monitoring.Managed; import java.lang.ref.SoftReference; @@ -1152,16 +1153,25 @@ public class PoolT { @Override public Thread newThread(final Runnable r) { -final Thread t = new Thread(group, r, org.apache.openejb.pool.scheduler. + count.getAndIncrement()); -if (!t.isDaemon()) { -t.setDaemon(true); -} +final ClassLoader loader = Thread.currentThread().getContextClassLoader(); +final ClassLoader containerLoader = ParentClassLoaderFinder.Helper.get(); +Thread.currentThread().setContextClassLoader(containerLoader); +try { +final Thread t = new Thread(group, r, org.apache.openejb.pool.scheduler. + count.getAndIncrement()); +if (!t.isDaemon()) { +t.setDaemon(true); +} -if (t.getPriority() != Thread.NORM_PRIORITY) { -t.setPriority(Thread.NORM_PRIORITY); -} +if (t.getPriority() != Thread.NORM_PRIORITY) { +t.setPriority(Thread.NORM_PRIORITY); +} + +t.setContextClassLoader(containerLoader); -return t; +return t; +} finally { +Thread.currentThread().setContextClassLoader(loader); +} } } }
svn commit: r1526213 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/resource/jdbc/dbcp/ test/java/org/apache/openejb/r
Author: rmannibucau Date: Wed Sep 25 16:00:02 2013 New Revision: 1526213 URL: http://svn.apache.org/r1526213 Log: completing xa test (hsqldb doesnt support it) + adding a way to get a xa datasource in our dbcp datasources from our resources Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1526213r1=1526212r2=1526213view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Sep 25 16:00:02 2013 @@ -2071,8 +2071,12 @@ public class Assembler extends Assembler public void createResource(final ResourceInfo serviceInfo) throws OpenEJBException { final ObjectRecipe serviceRecipe = createRecipe(serviceInfo); -serviceRecipe.setProperty(transactionManager, transactionManager); -serviceRecipe.setProperty(ServiceId, serviceInfo.id); +if (false.equalsIgnoreCase(serviceInfo.properties.getProperty(SkipImplicitAttributes, false))) { +serviceRecipe.setProperty(transactionManager, transactionManager); +serviceRecipe.setProperty(ServiceId, serviceInfo.id); +} +serviceInfo.properties.remove(SkipImplicitAttributes); + serviceRecipe.setProperty(properties, new UnsetPropertiesRecipe()); final Properties props = PropertyPlaceHolderHelper.holds(serviceInfo.properties); @@ -2501,6 +2505,12 @@ public class Assembler extends Assembler private static void logUnusedProperties(final MapString, Object unsetProperties, final ServiceInfo info) { for (final String property : unsetProperties.keySet()) { //TODO: DMB: Make more robust later +if (property.equalsIgnoreCase(Definition)) { +return; +} +if (property.equalsIgnoreCase(SkipImplicitAttributes)) { +return; +} if (property.equalsIgnoreCase(JndiName)) { return; } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java?rev=1526213r1=1526212r2=1526213view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java Wed Sep 25 16:00:02 2013 @@ -16,17 +16,25 @@ */ package org.apache.openejb.resource.jdbc.dbcp; +import org.apache.commons.dbcp.ConnectionFactory; +import org.apache.openejb.OpenEJB; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.resource.jdbc.BasicDataSourceUtil; import org.apache.openejb.resource.jdbc.IsolationLevels; import org.apache.openejb.resource.jdbc.cipher.PasswordCipher; import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin; +import javax.naming.InitialContext; import javax.sql.DataSource; +import javax.sql.XADataSource; import java.io.File; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; import java.util.Properties; +import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Logger; @@ -51,6 +59,52 @@ public class BasicManagedDataSource exte registerAsMbean(name); } +@Override +protected ConnectionFactory createConnectionFactory() throws SQLException { +final String xaDataSource = getXADataSource(); +if (xaDataSource != null getXaDataSourceInstance() == null) { +try { +try { + Thread.currentThread().getContextClassLoader().loadClass(xaDataSource); +} catch (final ClassNotFoundException cnfe) { +setJndiXaDataSource(xaDataSource); +} catch (final NoClassDefFoundError
svn commit: r1526225 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
Author: rmannibucau Date: Wed Sep 25 16:43:41 2013 New Revision: 1526225 URL: http://svn.apache.org/r1526225 Log: TOMEE-1048 supporting redeployment of timers Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1526225r1=1526224r2=1526225view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Wed Sep 25 16:43:41 2013 @@ -500,7 +500,12 @@ public class EjbTimerServiceImpl impleme triggerDataMap.put(EjbTimeoutJob.TIMER_DATA, timerData); try { -if (!scheduler.checkExists(new TriggerKey(atrigger.getName(), atrigger.getGroup( { +final TriggerKey triggerKey = new TriggerKey(atrigger.getName(), atrigger.getGroup()); +if (!scheduler.checkExists(triggerKey)) { +scheduler.scheduleJob(trigger); +} else if (Trigger.TriggerState.PAUSED.equals(scheduler.getTriggerState(triggerKey))) { // redeployment +// more consistent in the semantic than a resume but resume would maybe be more relevant here +scheduler.unscheduleJob(triggerKey); scheduler.scheduleJob(trigger); } } catch (Exception e) {
svn commit: r1526411 - /tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java
Author: rmannibucau Date: Thu Sep 26 08:13:41 2013 New Revision: 1526411 URL: http://svn.apache.org/r1526411 Log: forgot to call get so toString was used to build path Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java Modified: tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java?rev=1526411r1=1526410r2=1526411view=diff == --- tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java (original) +++ tomee/tomee/trunk/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/Mvn.java Thu Sep 26 08:13:41 2013 @@ -258,7 +258,7 @@ public final class Mvn { public void update(final Archive? archive) { for (final Map.EntryArchivePath, Asset r : paths.entrySet()) { -archive.add(r.getValue(), prefix + r.getKey()); +archive.add(r.getValue(), prefix + r.getKey().get()); } } }
svn commit: r1526419 - in /tomee/tomee/trunk/container: openejb-core/src/main/java/org/apache/openejb/config/ openejb-core/src/test/java/org/apache/openejb/cdi/ openejb-core/src/test/resources/ openej
Author: rmannibucau Date: Thu Sep 26 08:52:45 2013 New Revision: 1526419 URL: http://svn.apache.org/r1526419 Log: TOMEE-1050 tolerate weld/candi config in beans.xml Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/cdi/BeansXmlNamespaceTest.java tomee/tomee/trunk/container/openejb-core/src/test/resources/beans-namespace.xml Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1526419r1=1526418r2=1526419view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Thu Sep 26 08:52:45 2013 @@ -633,6 +633,7 @@ public class ReadDescriptors implements } catch (SAXException e) { throw new OpenEJBException(Cannot parse the beans.xml);// file: + url.toExternalForm(), e); } catch (JAXBException e) { +e.printStackTrace(); throw new OpenEJBException(Cannot unmarshall the beans.xml);// file: + url.toExternalForm(), e); } catch (IOException e) { throw new OpenEJBException(Cannot read the beans.xml);// file: + url.toExternalForm(), e); Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/cdi/BeansXmlNamespaceTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/cdi/BeansXmlNamespaceTest.java?rev=1526419view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/cdi/BeansXmlNamespaceTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/cdi/BeansXmlNamespaceTest.java Thu Sep 26 08:52:45 2013 @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.cdi; + +import org.apache.openejb.OpenEJBException; +import org.apache.openejb.config.ReadDescriptors; +import org.apache.openejb.jee.Beans; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class BeansXmlNamespaceTest { +@Test +public void read() throws OpenEJBException { +final Beans beans = ReadDescriptors.readBeans(getClass().getResourceAsStream(/beans-namespace.xml)); +assertEquals(1, beans.getInterceptors().size()); +assertEquals(foo, beans.getInterceptors().iterator().next()); +assertEquals(1, beans.getDecorators().size()); +assertEquals(bar, beans.getDecorators().iterator().next()); +} +} Added: tomee/tomee/trunk/container/openejb-core/src/test/resources/beans-namespace.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/resources/beans-namespace.xml?rev=1526419view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/resources/beans-namespace.xml (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/resources/beans-namespace.xml Thu Sep 26 08:52:45 2013 @@ -0,0 +1,45 @@ +?xml version=1.0 encoding=UTF-8? +!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the License); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing
svn commit: r1526948 - in /tomee/tomee/trunk/server/openejb-http/src: main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest
Author: rmannibucau Date: Fri Sep 27 15:20:07 2013 New Revision: 1526948 URL: http://svn.apache.org/r1526948 Log: adding a test on OPTIONS request method Added: tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest.java Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java?rev=1526948r1=1526947r2=1526948view=diff == --- tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java (original) +++ tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpListenerRegistry.java Fri Sep 27 15:20:07 2013 @@ -31,8 +31,10 @@ public class HttpListenerRegistry implem private final ThreadLocalFilterListener currentFilterListener = new ThreadLocalFilterListener(); public HttpListenerRegistry() { +// no-op } +@Override public void onMessage(HttpRequest request, HttpResponse response) throws Exception { final String path = request.getURI().getPath(); final FilterListener currentFL = currentFilterListener.get(); Added: tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest.java?rev=1526948view=auto == --- tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest.java (added) +++ tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/CustomHttpMethodTest.java Fri Sep 27 15:20:07 2013 @@ -0,0 +1,79 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.server.httpd; + +import org.apache.openejb.jee.EjbJar; +import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.loader.IO; +import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.testing.Configuration; +import org.apache.openejb.testing.EnableServices; +import org.apache.openejb.testing.Module; +import org.apache.openejb.testng.PropertiesBuilder; +import org.apache.openejb.util.NetworkUtil; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Properties; +import java.util.concurrent.atomic.AtomicReference; + +import static org.junit.Assert.assertEquals; + +@EnableServices({ httpejbd }) +@RunWith(ApplicationComposer.class) +public class CustomHttpMethodTest { +private int nextAvailablePort = -1; + +@Test +public void custom() throws URISyntaxException, IOException { +final AtomicReferenceString method = new AtomicReferenceString(); +final HttpListenerRegistry registry = SystemInstance.get().getComponent(HttpListenerRegistry.class); +registry.addHttpListener(new HttpListener() { +@Override +public void onMessage(final HttpRequest request, final HttpResponse response) throws Exception { +method.set(request.getMethod()); +} +}, /custom); +try { +final URL url = new URL(http://localhost:; + nextAvailablePort + /custom); +final HttpURLConnection connection = HttpURLConnection.class.cast(url.openConnection()); +connection.setRequestMethod(OPTIONS); +final InputStream inputStream = connection.getInputStream(); +IO.slurp(inputStream); +assertEquals(OPTIONS, method.get()); +inputStream.close(); +} finally { +registry.removeHttpListener
svn commit: r1527471 - in /tomee/tomee/trunk: arquillian/arquillian-tomee-common/ arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ arquillian/arquillian-tomee-emb
Author: rmannibucau Date: Mon Sep 30 07:44:54 2013 New Revision: 1527471 URL: http://svn.apache.org/r1527471 Log: TOMEE-1051 using a filter for arquillian to avoid issues when mapping an app filter to /* Added: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/filter/ tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/filter/AllFilterTest.java tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/filter/MyFilter.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml?rev=1527471r1=1527470r2=1527471view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/pom.xml Mon Sep 30 07:44:54 2013 @@ -31,6 +31,12 @@ dependencies dependency + groupIdorg.apache.geronimo.specs/groupId + artifactIdgeronimo-servlet_2.5_spec/artifactId + version1.2/version + scopetest/scope +/dependency +dependency groupIdorg.apache.openejb/groupId artifactIdarquillian-common/artifactId version${project.version}/version Added: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java?rev=1527471view=auto == --- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java (added) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java Mon Sep 30 07:44:54 2013 @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.arquillian.common; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServlet; +import java.io.IOException; + +// this filter simply allows us to invoke arquillian servlet directly +// instead of needing to pass through the servlet filters +// +// it allows us to work out of the box with framework using a dispatcher (filter) on /* +// it is commonn with tapestry, spring, wicket, +// +// We can't rely on scanning (@WebFilter) since we can't enrich the app because we need it for client tests too and +// we need it to be added first +// +// @WebFilter(urlPatterns = /ArquillianServletRunner, filterName = org.apache.openejb.arquillian.common.ArquillianFilterRunner) +public class ArquillianFilterRunner
svn commit: r1527478 - /tomee/site/trunk/content/tomee-maven-plugin.mdtext
Author: rmannibucau Date: Mon Sep 30 08:06:11 2013 New Revision: 1527478 URL: http://svn.apache.org/r1527478 Log: adding a note on quit command in tomee mvn plugin Modified: tomee/site/trunk/content/tomee-maven-plugin.mdtext Modified: tomee/site/trunk/content/tomee-maven-plugin.mdtext URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-maven-plugin.mdtext?rev=1527478r1=1527477r2=1527478view=diff == --- tomee/site/trunk/content/tomee-maven-plugin.mdtext (original) +++ tomee/site/trunk/content/tomee-maven-plugin.mdtext Mon Sep 30 08:06:11 2013 @@ -40,6 +40,9 @@ Should print output like the following: Note that for the tomee:deploy and tomee:undeploy goals, the path can either be specified within the configuration/ section of the `pom.xml` using the path parameter, or it can be passed via the user property tomee-plugin.archive. If a relative path is passed for the deploy path archive, this must be relative to the TomEE server. +Note 2: running tomee maven plugin you can type 'quit' directly in the console to shutdown correctly the +server. 'reload' is also available when internal openejb application is deployed. + Available configuration elements: div class=sectionh3Optional Parametersa name=Optional_Parameters/a/h3
svn commit: r1527481 - /tomee/tomee/trunk/tomee/tomee-static-content/pom.xml
Author: rmannibucau Date: Mon Sep 30 08:13:10 2013 New Revision: 1527481 URL: http://svn.apache.org/r1527481 Log: adding parent to tomee-static-content to be able to deploy Modified: tomee/tomee/trunk/tomee/tomee-static-content/pom.xml Modified: tomee/tomee/trunk/tomee/tomee-static-content/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-static-content/pom.xml?rev=1527481r1=1527480r2=1527481view=diff == --- tomee/tomee/trunk/tomee/tomee-static-content/pom.xml (original) +++ tomee/tomee/trunk/tomee/tomee-static-content/pom.xml Mon Sep 30 08:13:10 2013 @@ -14,6 +14,11 @@ -- project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; + parent +artifactIdtomee/artifactId +groupIdorg.apache.openejb/groupId +version1.6.0-SNAPSHOT/version + /parent modelVersion4.0.0/modelVersion groupIdorg.apache.openejb.staticweb/groupId artifactIdtomee-static-content/artifactId
svn commit: r1528315 - in /tomee/tomee/trunk/server/openejb-cxf-rs/src: main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java
Author: rmannibucau Date: Wed Oct 2 06:34:37 2013 New Revision: 1528315 URL: http://svn.apache.org/r1528315 Log: adding a test on jaxrs jmx mbeans Added: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1528315r1=1528314r2=1528315view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Wed Oct 2 06:34:37 2013 @@ -28,7 +28,6 @@ import org.apache.cxf.jaxrs.model.Method import org.apache.cxf.jaxrs.model.OperationResourceInfo; import org.apache.cxf.jaxrs.provider.JAXBElementProvider; import org.apache.cxf.jaxrs.provider.json.JSONProvider; -import org.apache.cxf.jaxrs.utils.ResourceUtils; import org.apache.cxf.service.invoker.Invoker; import org.apache.cxf.transport.http.AbstractHTTPDestination; import org.apache.cxf.transport.http.HTTPTransportFactory; @@ -449,13 +448,15 @@ public class CxfRsHttpListener implement Collections.sort(resourcesToLog); -for (Logs.LogResourceEndpointInfo resource : resourcesToLog) { +for (final Logs.LogResourceEndpointInfo resource : resourcesToLog) { // Init and register MBeans final ObjectNameBuilder jmxName = new ObjectNameBuilder(openejb.management) +.set(j2eeType, JAX-RS) .set(J2EEServer, openejb) -.set(name, resource.classname) -.set(j2eeType, REST- + resource.type); +.set(J2EEApplication, base) +.set(EndpointType, resource.type) +.set(name, resource.classname); ObjectName jmxObjectName = jmxName.build(); LocalMBeanServer.registerDynamicWrapperSilently( @@ -463,7 +464,6 @@ public class CxfRsHttpListener implement jmxObjectName); jmxNames.add(jmxObjectName); -// LOGGER.info( Service URI: + Logs.forceLength(resource.address, addressSize, true) + - @@ -533,9 +533,7 @@ public class CxfRsHttpListener implement { final String provider = serviceConfiguration.getProperties().getProperty(PROVIDERS_KEY); if (provider != null) { -if (providersConfig == null) { -providersConfig = new HashSetString(); -} +providersConfig = new HashSetString(); providersConfig.addAll(Arrays.asList(provider.split(,))); } @@ -638,20 +636,15 @@ public class CxfRsHttpListener implement this.address = jmxName.address; this.classname = jmxName.classname; -final String[] names = new String[operations.size()]; -final String[] values = new String[operations.size()]; +final String[] names = new String[jmxName.operations.size()]; +final String[] values = new String[jmxName.operations.size()]; int idx = 0; -for (Logs.LogOperationEndpointInfo operation : jmxName.operations) { -names[idx] = Logs.forceLength(operation.http, jmxName.methodSize, false) + -+ Logs.forceLength(operation.address, operation.address.length(), true); -values[idx] = Logs.forceLength(operation.method, jmxName.methodStrSize, true); +for (final Logs.LogOperationEndpointInfo operation : jmxName.operations) { +names[idx] = operation.http + + operation.address; +values[idx] = operation.method; idx++; } -LocalMBeanServer.tabularData( -Operations, -Operations for this endpoint, -names, values -); +operations = LocalMBeanServer.tabularData(Operations, Operations for this endpoint, names, values); } @ManagedAttribute Added: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java?rev=1528315view=auto == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb
svn commit: r1528361 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core: ./ cmp/ entity/ mdb/ singleton/ stateful/ stateless/ timer/
Author: rmannibucau Date: Wed Oct 2 08:26:36 2013 New Revision: 1528361 URL: http://svn.apache.org/r1528361 Log: starting @Scedule in BeanContext.start + ensuring it can be eagerly started if used in @PostContruct Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/BaseContext.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerService.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/MemoryTimerStore.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/NullEjbTimerServiceImpl.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/TimerServiceWrapper.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/BaseContext.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/BaseContext.java?rev=1528361r1=1528360r2=1528361view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/BaseContext.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/BaseContext.java Wed Oct 2 08:26:36 2013 @@ -17,6 +17,7 @@ package org.apache.openejb.core; import org.apache.openejb.BeanContext; +import org.apache.openejb.OpenEJBException; import org.apache.openejb.core.ivm.IntraVmArtifact; import org.apache.openejb.core.timer.EjbTimerService; import org.apache.openejb.core.timer.TimerServiceImpl; @@ -178,12 +179,20 @@ public abstract class BaseContext implem public TimerService getTimerService() throws IllegalStateException { check(Call.getTimerService); -ThreadContext threadContext = ThreadContext.getThreadContext(); -BeanContext beanContext = threadContext.getBeanContext(); -EjbTimerService timerService = beanContext.getEjbTimerService(); +final ThreadContext threadContext = ThreadContext.getThreadContext(); +final BeanContext beanContext = threadContext.getBeanContext(); +final EjbTimerService timerService = beanContext.getEjbTimerService(); if (timerService == null) { throw new IllegalStateException(This ejb does not support timers + beanContext.getDeploymentID()); } + +if (!timerService.isStarted()) { +try { +timerService.start(); +} catch (final OpenEJBException e) { +throw new IllegalStateException(e); +} +} return new TimerServiceImpl(timerService, threadContext.getPrimaryKey(), beanContext.getEjbTimeout()); } Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java?rev=1528361r1=1528360r2=1528361view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java Wed Oct 2 08:26:36 2013 @@ -16,19 +16,26 @@ */ package org.apache.openejb.core.cmp; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.rmi.NoSuchObjectException; -import java.rmi.RemoteException; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.Set; +import org.apache.openejb.ApplicationException; +import org.apache.openejb.BeanContext; +import org.apache.openejb.ContainerType; +import org.apache.openejb.InterfaceType; +import org.apache.openejb.OpenEJBException; +import org.apache.openejb.ProxyInfo; +import
svn commit: r1528729 - in /tomee/tomee/trunk/server: openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/ openejb-cxf/src/main/java/org
Author: rmannibucau Date: Thu Oct 3 06:31:05 2013 New Revision: 1528729 URL: http://svn.apache.org/r1528729 Log: adding wsdl and slurp wsdl in cxf jaxws mbeans Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/WsJMXTest.java tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java?rev=1528729r1=1528728r2=1528729view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java Thu Oct 3 06:31:05 2013 @@ -49,6 +49,13 @@ public class CxfService extends WsServic SaajInterceptor.registerInterceptors(); } +@Override +protected void setWsdl(final HttpListener listener, final String wsdl) { +if (CxfWsContainer.class.isInstance(listener)) { +CxfWsContainer.class.cast(listener).setWsldUrl(wsdl); +} +} + protected HttpListener createEjbWsContainer(URL moduleBaseUrl, PortData port, BeanContext beanContext, ServiceConfiguration config) { final Bus bus = CxfUtil.getBus(); Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java?rev=1528729r1=1528728r2=1528729view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java Thu Oct 3 06:31:05 2013 @@ -20,13 +20,9 @@ package org.apache.openejb.server.cxf; import org.apache.cxf.Bus; import org.apache.cxf.transport.http.AbstractHTTPDestination; import org.apache.cxf.transport.http.HTTPTransportFactory; -import org.apache.openejb.api.internal.Internal; -import org.apache.openejb.api.jmx.Description; -import org.apache.openejb.api.jmx.MBean; import org.apache.openejb.assembler.classic.util.ServiceConfiguration; import org.apache.openejb.core.webservices.PortData; import org.apache.openejb.monitoring.LocalMBeanServer; -import org.apache.openejb.monitoring.ObjectNameBuilder; import org.apache.openejb.server.cxf.transport.HttpTransportFactory; import org.apache.openejb.server.cxf.transport.util.CxfUtil; import org.apache.openejb.server.httpd.HttpListener; @@ -34,7 +30,6 @@ import org.apache.openejb.server.httpd.H import org.apache.openejb.server.httpd.HttpResponse; import javax.management.ObjectName; -import javax.management.openmbean.TabularData; import java.util.ArrayList; import java.util.List; @@ -47,7 +42,6 @@ public abstract class CxfWsContainer imp protected final ServiceConfiguration serviceConfiguration; private ObjectName jmxName; - public CxfWsContainer(final Bus bus, final PortData port, final ServiceConfiguration config) { this.bus = bus; this.port = port; @@ -72,6 +66,8 @@ public abstract class CxfWsContainer imp protected abstract CxfEndpoint createEndpoint(); protected abstract ObjectName registerMBean(); +protected abstract void setWsldUrl(String wsdl); + public void destroy() { unregisterMBean(); Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java?rev=1528729r1=1528728r2=1528729view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java Thu Oct 3 06:31:05 2013 @@ -28,17 +28,21 @@ import org.apache.openejb.assembler.clas import org.apache.openejb.core.webservices.HandlerChainData; import
svn commit: r1528735 - in /tomee/tomee/trunk/server/openejb-cxf-rs/src: main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java
Author: rmannibucau Date: Thu Oct 3 07:18:46 2013 New Revision: 1528735 URL: http://svn.apache.org/r1528735 Log: adding getWadl in cxf-rs mbeans Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1528735r1=1528734r2=1528735view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Thu Oct 3 07:18:46 2013 @@ -20,12 +20,15 @@ import org.apache.cxf.endpoint.Server; import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.JAXRSServiceImpl; +import org.apache.cxf.jaxrs.ext.RequestHandler; import org.apache.cxf.jaxrs.ext.ResourceComparator; import org.apache.cxf.jaxrs.lifecycle.ResourceProvider; import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider; import org.apache.cxf.jaxrs.model.ClassResourceInfo; import org.apache.cxf.jaxrs.model.MethodDispatcher; import org.apache.cxf.jaxrs.model.OperationResourceInfo; +import org.apache.cxf.jaxrs.model.ProviderInfo; +import org.apache.cxf.jaxrs.model.wadl.WadlGenerator; import org.apache.cxf.jaxrs.provider.JAXBElementProvider; import org.apache.cxf.jaxrs.provider.json.JSONProvider; import org.apache.cxf.service.invoker.Invoker; @@ -38,9 +41,11 @@ import org.apache.openejb.api.internal.I import org.apache.openejb.api.jmx.Description; import org.apache.openejb.api.jmx.MBean; import org.apache.openejb.api.jmx.ManagedAttribute; +import org.apache.openejb.api.jmx.ManagedOperation; import org.apache.openejb.assembler.classic.ServiceInfo; import org.apache.openejb.assembler.classic.util.ServiceConfiguration; import org.apache.openejb.assembler.classic.util.ServiceInfos; +import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.monitoring.LocalMBeanServer; import org.apache.openejb.monitoring.ObjectNameBuilder; @@ -70,6 +75,8 @@ import java.io.IOException; import java.io.InputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; +import java.net.HttpURLConnection; +import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -114,6 +121,16 @@ public class CxfRsHttpListener implement STATIC_CONTENT_TYPES.put(ico, image/ico); STATIC_CONTENT_TYPES.put(pdf, application/pdf); STATIC_CONTENT_TYPES.put(xsd, application/xml); + +// bug in CXF? it prevents to get the wadl as json otherwise +if (true.equalsIgnoreCase(SystemInstance.get().getProperty(openejb.cxf-rs.wadl-generator.ignoreMessageWriters, true))) { +for (final ProviderInfoRequestHandler rh : org.apache.cxf.jaxrs.provider.ProviderFactory.getSharedInstance().getRequestHandlers()) { +final RequestHandler provider = rh.getProvider(); +if (WadlGenerator.class.isInstance(provider)) { + WadlGenerator.class.cast(provider).setIgnoreMessageWriters(false); +} +} +} } public CxfRsHttpListener(final HTTPTransportFactory httpTransportFactory, final String star) { @@ -648,6 +665,41 @@ public class CxfRsHttpListener implement @ManagedAttribute @Description(The type of the REST service) +public String getWadlUrl() { +if (address.endsWith(?_wadl)) { +return address; +} +return address + ?_wadl; +} + +@ManagedOperation +@Description(The type of the REST service) +public String getWadl(final String format) { +if (format != null format.toLowerCase().contains(json)) { +InputStream inputStream = null; +try { +final URL url = new URL(getWadlUrl() + _type=json); +final HttpURLConnection connection = HttpURLConnection.class.cast(url.openConnection()); +connection.setRequestProperty(Accept, application/json); +connection.setRequestProperty(Content-type, application/json); +inputStream = connection.getInputStream(); +return IO.slurp(inputStream); +} catch (final Exception e) { +return e.getMessage(); +} finally
svn commit: r1528748 - /tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
Author: rmannibucau Date: Thu Oct 3 08:47:17 2013 New Revision: 1528748 URL: http://svn.apache.org/r1528748 Log: adding some logs in tomee webapp adapter to see if the failling test on buildbot is due to buildbot envrt or a bug Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java?rev=1528748r1=1528747r2=1528748view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java Thu Oct 3 08:47:17 2013 @@ -99,9 +99,9 @@ public class TomEEWebappContainer extend System.setProperty(catalina.home, openejbHome.getAbsolutePath()); System.setProperty(catalina.base, openejbHome.getAbsolutePath()); -System.setProperty(openejb.deploymentId.format, {appId}/{ejbJarId}/{ejbName}); +System.setProperty(openejb.deploymentId.format, System.getProperty(openejb.deploymentId.format, {appId}/{ejbJarId}/{ejbName})); -Paths paths = new Paths(webapp); +final Paths paths = new Paths(webapp); installer = new Installer(paths, true); if (!configuration.isUseInstallerServlet()) { installer.installAll(); @@ -141,22 +141,32 @@ public class TomEEWebappContainer extend if (!wereOpenejbHomeSet configuration.isUseInstallerServlet()) { // instead of calling the Installer, let's just do like users do // call the servlet installer instead -String baseUrl = http://; + configuration.getHost() + : + configuration.getHttpPort() + /tomee/installer; +final String baseUrl = http://; + configuration.getHost() + : + configuration.getHttpPort() + /tomee/installer; assert installer != null; installer.addTomEEAdminConfInTomcatUsers(true); -RemoteServer tmpContainer = new RemoteServer(); +final RemoteServer tmpContainer = new RemoteServer(); tmpContainer.start(); -URL url = new URL(baseUrl); -URLConnection uc = url.openConnection(); -// dG9tZWU6dG9tZWU= -- Base64 of tomee:tomee -String authorizationString = Basic dG9tZWU6dG9tZWU=; -uc.setRequestProperty (Authorization, authorizationString); -InputStream is = uc.getInputStream(); -org.apache.openejb.loader.IO.slurp(is); -is.close(); +final URL url = new URL(baseUrl); +logger.info(Calling TomEE Installer Servlet on + url); + +for (int i = 0; i 3; i++) { +final URLConnection uc = url.openConnection(); +// dG9tZWU6dG9tZWU= -- Base64 of tomee:tomee +final String authorizationString = Basic dG9tZWU6dG9tZWU=; +uc.setRequestProperty (Authorization, authorizationString); +try { +final InputStream is = uc.getInputStream(); +org.apache.openejb.loader.IO.slurp(is); +is.close(); +break; +} catch (final Exception e) { +logger.warning(e.getMessage()); +Thread.sleep(1000); +} +} tmpContainer.stop(); tmpContainer.getServer().waitFor(); @@ -164,6 +174,7 @@ public class TomEEWebappContainer extend container = new RemoteServer(); container.start(Arrays.asList(-Dorg.apache.openejb.servlet.filters= + ArquillianFilterRunner.class.getName() + = + ServletMethodExecutor.ARQUILLIAN_SERVLET_MAPPING), start, true); +container.killOnExit(); } catch (Exception e) { throw new LifecycleException(Unable to start remote container, e); }
svn commit: r1528814 - /tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Author: rmannibucau Date: Thu Oct 3 11:36:24 2013 New Revision: 1528814 URL: http://svn.apache.org/r1528814 Log: no more need of this hack by default since it will be addressed in cxf Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1528814r1=1528813r2=1528814view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Thu Oct 3 11:36:24 2013 @@ -122,8 +122,8 @@ public class CxfRsHttpListener implement STATIC_CONTENT_TYPES.put(pdf, application/pdf); STATIC_CONTENT_TYPES.put(xsd, application/xml); -// bug in CXF? it prevents to get the wadl as json otherwise -if (true.equalsIgnoreCase(SystemInstance.get().getProperty(openejb.cxf-rs.wadl-generator.ignoreMessageWriters, true))) { +// CXF-5319: bug in CXF? it prevents to get the wadl as json otherwise +if (true.equalsIgnoreCase(SystemInstance.get().getProperty(openejb.cxf-rs.wadl-generator.ignoreMessageWriters, false))) { for (final ProviderInfoRequestHandler rh : org.apache.cxf.jaxrs.provider.ProviderFactory.getSharedInstance().getRequestHandlers()) { final RequestHandler provider = rh.getProvider(); if (WadlGenerator.class.isInstance(provider)) {
svn commit: r1530319 - in /tomee/tomee/trunk: arquillian/arquillian-tomee-remote/ arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/ container/openejb-core/src
Author: rmannibucau Date: Tue Oct 8 15:54:55 2013 New Revision: 1530319 URL: http://svn.apache.org/r1530319 Log: TOMEE-1053 @HandlesTypes support Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Impl.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Init.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml?rev=1530319r1=1530318r2=1530319view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Tue Oct 8 15:54:55 2013 @@ -104,6 +104,25 @@ /dependency dependency + groupIdorg.apache.openejb/groupId + artifactIdtomee-loader/artifactId + version1.6.0-SNAPSHOT/version + scopetest/scope +/dependency +dependency + groupIdorg.apache.openejb/groupId + artifactIdtomee-catalina/artifactId + version1.6.0-SNAPSHOT/version + scopetest/scope +/dependency +dependency + groupIdorg.apache.xbean/groupId + artifactIdxbean-finder-shaded/artifactId + version3.14/version + scopeprovided/scope +/dependency + +dependency groupIdorg.apache.geronimo.specs/groupId artifactIdgeronimo-j2ee-deployment_1.1_spec/artifactId version1.1/version Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java?rev=1530319view=auto == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java (added) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java Tue Oct 8 15:54:55 2013 @@ -0,0 +1,20 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.arquillian.handletypes; + +public interface API { +} Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java?rev=1530319view=auto == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java (added) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java Tue Oct 8 15:54:55 2013 @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF
svn commit: r1530323 - /tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
Author: rmannibucau Date: Tue Oct 8 16:00:55 2013 New Revision: 1530323 URL: http://svn.apache.org/r1530323 Log: removing debug deps Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml?rev=1530323r1=1530322r2=1530323view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Tue Oct 8 16:00:55 2013 @@ -104,25 +104,6 @@ /dependency dependency - groupIdorg.apache.openejb/groupId - artifactIdtomee-loader/artifactId - version1.6.0-SNAPSHOT/version - scopetest/scope -/dependency -dependency - groupIdorg.apache.openejb/groupId - artifactIdtomee-catalina/artifactId - version1.6.0-SNAPSHOT/version - scopetest/scope -/dependency -dependency - groupIdorg.apache.xbean/groupId - artifactIdxbean-finder-shaded/artifactId - version3.14/version - scopeprovided/scope -/dependency - -dependency groupIdorg.apache.geronimo.specs/groupId artifactIdgeronimo-j2ee-deployment_1.1_spec/artifactId version1.1/version
svn commit: r1530524 - in /tomee/tomee/trunk: arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/ container/openejb-core/src/main/java/org/apache/openejb/config
Author: rmannibucau Date: Wed Oct 9 08:26:53 2013 New Revision: 1530524 URL: http://svn.apache.org/r1530524 Log: TOMEE-1053 @HandlesTypes support - linking lazily = only when inheritance is used in @HandlesTypes + printing a message saying it will be 'slow' Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/AnotherChild.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decorated.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decoration.java - copied, changed from r1530497, tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/API.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesAnnotationOnlyTest.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesInterfaceOnlyTest.java - copied, changed from r1530497, tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/InitAnnotationOnly.java - copied, changed from r1530497, tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Init.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/InitInterfaceOnly.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/HandleTypesTest.java tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Init.java tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/AnotherChild.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/AnotherChild.java?rev=1530524view=auto == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/AnotherChild.java (added) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/AnotherChild.java Wed Oct 9 08:26:53 2013 @@ -0,0 +1,20 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.arquillian.handletypes; + +public class AnotherChild implements API { +} Added: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decorated.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decorated.java?rev=1530524view=auto == --- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decorated.java (added) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/handletypes/Decorated.java Wed Oct 9 08:26:53 2013 @@ -0,0 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http
svn commit: r1530527 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau Date: Wed Oct 9 08:37:43 2013 New Revision: 1530527 URL: http://svn.apache.org/r1530527 Log: TOMEE-1053 @HandlesTypes support - no more linking but enableFindImplementations/enableFindSubclasses Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1530527r1=1530526r2=1530527view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Wed Oct 9 08:37:43 2013 @@ -416,11 +416,8 @@ public class OpenEJBContextConfig extend if (typeInitializerMap.size() 0 finder != null) { final ClassLoader loader = context.getLoader().getClassLoader(); -if (handlesTypesNonAnnotations) { -if (AnnotationFinder.class.isInstance(finder)) { -AnnotationFinder.class.cast(finder).link(); -} -} +boolean foundSubClasses = false; +boolean foundImplementations = false; for (final Map.EntryClass?, SetServletContainerInitializer entry : typeInitializerMap.entrySet()) { final Class? annotation = entry.getKey(); @@ -435,6 +432,19 @@ public class OpenEJBContextConfig extend } else { try { // we need to load the class (entry.getKey()) with the finder classloader = tempClassLoader otherwise isAssignable is false in almost all cases logger.info(Using @HandlesTypes on a parent class (and not an annotation) is a performance killer. See + annotation.getName() + on + sci.getClass().getName()); +if (AnnotationFinder.class.isInstance(finder)) { +if (annotation.isInterface()) { +if (!foundImplementations) { + AnnotationFinder.class.cast(finder).enableFindImplementations(); +foundImplementations = true; +} +} else { +if (!foundSubClasses) { + AnnotationFinder.class.cast(finder).enableFindSubclasses(); +foundSubClasses = true; +} +} +} final Class? reloadedClass = tempLoader.loadClass(annotation.getName()); final ListClass? implementations = List.class.cast(finder.findImplementations(reloadedClass));
svn commit: r1530530 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau Date: Wed Oct 9 08:43:33 2013 New Revision: 1530530 URL: http://svn.apache.org/r1530530 Log: TOMEE-1053 @HandlesTypes support - better cleanup Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1530530r1=1530529r2=1530530view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Wed Oct 9 08:43:33 2013 @@ -455,11 +455,11 @@ public class OpenEJBContextConfig extend } } } - -// done -finder = null; -tempLoader = null; } + +// done +finder = null; +tempLoader = null; } catch (RuntimeException e) { // if exception occurs we have to clear the threadlocal webInfClassesAnnotationsProcessed = false; throw e;
svn commit: r1530618 - in /tomee/tomee/trunk/examples/deltaspike-configproperty: ./ src/main/java/org/superbiz/deltaspike/config/
Author: rmannibucau Date: Wed Oct 9 14:15:51 2013 New Revision: 1530618 URL: http://svn.apache.org/r1530618 Log: DS 0.5 on deltaspike-configproperty Modified: tomee/tomee/trunk/examples/deltaspike-configproperty/pom.xml tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java Modified: tomee/tomee/trunk/examples/deltaspike-configproperty/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-configproperty/pom.xml?rev=1530618r1=1530617r2=1530618view=diff == --- tomee/tomee/trunk/examples/deltaspike-configproperty/pom.xml (original) +++ tomee/tomee/trunk/examples/deltaspike-configproperty/pom.xml Wed Oct 9 14:15:51 2013 @@ -32,7 +32,7 @@ plugins plugin groupIdorg.apache.maven.plugins/groupId -artifactIdmaven-compiler-plugin/artifactId +artifactIdmaven-compiler-plugin/artifactId version3.0/version configuration source1.6/source @@ -58,12 +58,12 @@ dependency groupIdorg.apache.deltaspike.core/groupId artifactIddeltaspike-core-impl/artifactId - version0.2-incubating/version + version0.5/version /dependency dependency groupIdorg.apache.deltaspike.core/groupId artifactIddeltaspike-core-api/artifactId - version0.2-incubating/version + version0.5/version /dependency dependency groupIdjunit/groupId Modified: tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java?rev=1530618r1=1530617r2=1530618view=diff == --- tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java (original) +++ tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/Counter.java Wed Oct 9 14:15:51 2013 @@ -16,7 +16,7 @@ */ package org.superbiz.deltaspike.config; -import org.apache.deltaspike.core.api.config.annotation.ConfigProperty; +import org.apache.deltaspike.core.api.config.ConfigProperty; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; Modified: tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java?rev=1530618r1=1530617r2=1530618view=diff == --- tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java (original) +++ tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSource.java Wed Oct 9 14:15:51 2013 @@ -21,6 +21,7 @@ import org.apache.deltaspike.core.util.P import java.io.IOException; import java.net.URL; +import java.util.Collections; import java.util.Enumeration; import java.util.Map; import java.util.Properties; @@ -57,6 +58,11 @@ public class MyConfigSource extends Base } @Override +public MapString, String getProperties() { +return Collections.emptyMap(); // not scannable +} + +@Override public String getPropertyValue(String key) { return properties.getProperty(key); } @@ -65,4 +71,9 @@ public class MyConfigSource extends Base public String getConfigName() { return MY_CONF_FILE_NAME; } + +@Override +public boolean isScannable() { +return false; +} } Modified: tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java?rev=1530618r1=1530617r2=1530618view=diff == --- tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java (original) +++ tomee/tomee/trunk/examples/deltaspike-configproperty/src/main/java/org/superbiz/deltaspike/config/MyConfigSourceProvider.java Wed Oct 9 14:15:51 2013 @@ -23,7 +23,6 @@ import java.util.Arrays; import java.util.List; public class
svn commit: r1531198 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java
Author: rmannibucau Date: Fri Oct 11 05:26:48 2013 New Revision: 1531198 URL: http://svn.apache.org/r1531198 Log: TOMEE-1055 completing docBase find algorithm Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java?rev=1531198r1=1531197r2=1531198view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java Fri Oct 11 05:26:48 2013 @@ -23,6 +23,7 @@ import org.apache.catalina.Host; import org.apache.catalina.core.StandardContext; import org.apache.catalina.core.StandardEngine; import org.apache.catalina.core.StandardHost; +import org.apache.catalina.util.ContextName; import java.io.File; @@ -42,7 +43,7 @@ public class Contexts { public static File warPath(final Context standardContext) { final File file = realWarPath(standardContext); if (file == null) { -return file; +return null; } final String name = file.getName(); @@ -69,20 +70,29 @@ public class Contexts { container = container.getParent(); } -File file = new File(standardContext.getDocBase()); -if (!file.isAbsolute()) { -if (container == null) { -docBase = new File(engineBase(standardContext), standardContext.getDocBase()); -} else { -final String appBase = ((Host) container).getAppBase(); -file = new File(appBase); -if (!file.isAbsolute()) { -file = new File(engineBase(standardContext), appBase); +if (standardContext.getDocBase() != null) { +File file = new File(standardContext.getDocBase()); +if (!file.isAbsolute()) { +if (container == null) { +docBase = new File(engineBase(standardContext), standardContext.getDocBase()); +} else { +final String appBase = ((Host) container).getAppBase(); +file = new File(appBase); +if (!file.isAbsolute()) { +file = new File(engineBase(standardContext), appBase); +} +docBase = new File(file, standardContext.getDocBase()); } -docBase = new File(file, standardContext.getDocBase()); +} else { +docBase = file; } } else { -docBase = file; +final String path = standardContext.getPath(); +if (path == null) { +throw new IllegalStateException(Can't find docBase); +} else { +docBase = new File(new ContextName(path, standardContext.getWebappVersion()).getBaseName()); +} } if (!docBase.exists()) { // for old compatibility, will be removed soon
svn commit: r1531551 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/BeanContext.java test/java/org/apache/openejb/appexception/ test/java/org/apache/openejb/appexcept
Author: rmannibucau Date: Sat Oct 12 15:58:08 2013 New Revision: 1531551 URL: http://svn.apache.org/r1531551 Log: TOMEE-1057 @ApplicationException even if not registered in ejb-jar.xml Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/AppExceptionTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1531551r1=1531550r2=1531551view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java Sat Oct 12 15:58:08 2013 @@ -53,15 +53,8 @@ import org.apache.webbeans.portable.Inje import org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory; import org.apache.xbean.recipe.ConstructionException; -import javax.ejb.EJBHome; -import javax.ejb.EJBLocalHome; -import javax.ejb.EJBLocalObject; -import javax.ejb.EJBObject; -import javax.ejb.Lock; -import javax.ejb.LockType; -import javax.ejb.MessageDrivenBean; -import javax.ejb.TimedObject; -import javax.ejb.Timer; +import javax.ejb.*; +import javax.ejb.ApplicationException; import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Decorator; @@ -84,6 +77,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.TreeSet; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; @SuppressWarnings(unchecked) @@ -225,7 +219,7 @@ public class BeanContext extends Deploym private final ListInterceptorInstance userInterceptors = new ArrayListInterceptorInstance(); private final ListInjection injections = new ArrayListInjection(); private final MapClass, InterfaceType interfaces = new HashMapClass, InterfaceType(); -private final MapClass, ExceptionType exceptions = new HashMapClass, ExceptionType(); +private final MapClass, ExceptionType exceptions = new ConcurrentHashMapClass, ExceptionType(); private final boolean localbean; private Duration accessTimeout; @@ -527,11 +521,17 @@ public class BeanContext extends Deploym } // Unregistered - runtime exceptions are system exception and the rest are application exceptions +final Class? extends Throwable eClass = e.getClass(); +final ApplicationException applicationException = eClass.getAnnotation(ApplicationException.class); +if (applicationException != null) { +addApplicationException(eClass, applicationException.rollback(), applicationException.inherited()); +return getExceptionType(e); +} + if (e instanceof RuntimeException) { return ExceptionType.SYSTEM; -} else { -return ExceptionType.APPLICATION; } +return ExceptionType.APPLICATION; } public BeanContext(final String id, final Context jndiContext, final ModuleContext moduleContext, final Class beanClass, final Class mdbInterface, final MapString, String activationProperties) throws SystemException { Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/AppExceptionTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/AppExceptionTest.java?rev=1531551view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/AppExceptionTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/appexception/AppExceptionTest.java Sat Oct 12 15:58:08 2013 @@ -0,0 +1,64 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language
svn commit: r1531809 - /tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
Author: rmannibucau Date: Mon Oct 14 08:04:21 2013 New Revision: 1531809 URL: http://svn.apache.org/r1531809 Log: TOMEE-1058 Expose configurable classpath parameter. Thanks Bob Ziuchkovski for the patch Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1531809r1=1531808r2=1531809view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Mon Oct 14 08:04:21 2013 @@ -178,6 +178,9 @@ public abstract class AbstractTomEEMojo @Parameter protected MapString, String systemVariables; +@Parameter +private ListString classpaths; + @Parameter(property = tomee-plugin.quick-session, defaultValue = true) private boolean quickSession; @@ -234,7 +237,6 @@ public abstract class AbstractTomEEMojo protected File deployedFile = null; protected RemoteServer server = null; -private String additionalCp = null; @Override public void execute() throws MojoExecutionException, MojoFailureException { @@ -269,8 +271,11 @@ public abstract class AbstractTomEEMojo } } +if (classpaths == null) { // NPE protection for activateSimpleLog() and run() +classpaths = new ArrayListString(); +} if (simpleLog) { -additionalCp = activateSimpleLog(); +activateSimpleLog(); } if (!keepServerXmlAsthis) { @@ -279,9 +284,22 @@ public abstract class AbstractTomEEMojo if (!skipCurrentProject) { copyWar(); } + run(); } +protected String getAdditionalClasspath() { +if (!classpaths.isEmpty()) { +final StringBuilder cpBuilder = new StringBuilder(); +for (final String cp : classpaths) { +cpBuilder.append(cp); +cpBuilder.append(File.pathSeparatorChar); +} +return cpBuilder.substring(0, cpBuilder.length() - 1); // Dump the final path separator +} +return null; +} + private ListString webappsAlreadyAdded() { final ListString list = new ArrayListString(); final File webapps = new File(catalinaBase, webappDir); @@ -305,17 +323,18 @@ public abstract class AbstractTomEEMojo if (loggingProperties.exists() !new File(config, conf/logging.properties).exists()) { try { final String content = IO.slurp(loggingProperties) -.replace(SimpleFormatter.class.getName(), SimpleTomEEFormatter.class.getName()); +.replace(SimpleFormatter.class.getName(), SimpleTomEEFormatter.class.getName()); final FileWriter writer = new FileWriter(loggingProperties); try { writer.write(content); } finally { IO.close(writer); } -} catch (Exception e) { +} catch (final Exception e) { getLog().error(Can't set SimpleTomEEFormatter, e); return null; } +classpaths.add(cp); return cp; } return null; @@ -520,9 +539,9 @@ public abstract class AbstractTomEEMojo if (tomeeHttpsPort != null tomeeHttpsPort 0 parser.value(HTTPS, null) == null) { // ensure connector is not commented value = value.replace(Service name=\Catalina\, Service name=\Catalina\\n -+ Connector port=\ + tomeeHttpsPort + \ protocol=\HTTP/1.1\ SSLEnabled=\true\\n + -scheme=\https\ secure=\true\\n + -clientAuth=\false\ sslProtocol=\TLS\ /\n); ++ Connector port=\ + tomeeHttpsPort + \ protocol=\HTTP/1.1\ SSLEnabled=\true\\n + +scheme=\https\ secure=\true\\n + +clientAuth=\false\ sslProtocol=\TLS\ /\n); } if (tomeeHttpsPort == null) { @@ -534,12 +553,12 @@ public abstract class AbstractTomEEMojo try { writer = new FileWriter(serverXml); writer.write(value -.replace(parser.http(), Integer.toString(tomeeHttpPort)) -.replace(parser.https(), Integer.toString(tomeeHttpsPort)) -.replace(parser.ajp(), Integer.toString(tomeeAjpPort
svn commit: r1531832 - in /tomee/tomee/trunk/maven/tomee-maven-plugin: ./ src/main/java/org/apache/openejb/maven/plugin/ src/test/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/
Author: rmannibucau Date: Mon Oct 14 09:26:31 2013 New Revision: 1531832 URL: http://svn.apache.org/r1531832 Log: adding a basic way to test tomee maven plugin Added: tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/Config.java tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/Url.java tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/ tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/test/TomEEMavenPluginTest.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/pom.xml tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/pom.xml?rev=1531832r1=1531831r2=1531832view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/pom.xml (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/pom.xml Mon Oct 14 09:26:31 2013 @@ -62,6 +62,15 @@ groupIdorg.codehaus.plexus/groupId artifactIdplexus-utils/artifactId /dependency + +dependency + groupIdorg.apache.openejb/groupId + artifactIdapache-tomee/artifactId + version${project.version}/version + scopetest/scope + classifierwebprofile/classifier + typezip/type +/dependency /dependencies properties Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1531832r1=1531831r2=1531832view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Mon Oct 14 09:26:31 2013 @@ -1,4 +1,3 @@ -package org.apache.openejb.maven.plugin; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -15,6 +14,7 @@ package org.apache.openejb.maven.plugin; * See the License for the specific language governing permissions and * limitations under the License. */ +package org.apache.openejb.maven.plugin; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; @@ -119,10 +119,10 @@ public abstract class AbstractTomEEMojo protected String tomeeClassifier; @Parameter(property = tomee-plugin.shutdown, defaultValue = 8005) -protected int tomeeShutdownPort = 8005; +protected int tomeeShutdownPort; @Parameter(property = tomee-plugin.ajp, defaultValue = 8009) -protected int tomeeAjpPort = 8009; +protected int tomeeAjpPort; @Parameter(property = tomee-plugin.https) protected Integer tomeeHttpsPort; @@ -182,7 +182,7 @@ public abstract class AbstractTomEEMojo private ListString classpaths; @Parameter(property = tomee-plugin.quick-session, defaultValue = true) -private boolean quickSession; +protected boolean quickSession; @Parameter(property = tomee-plugin.force-reloadable, defaultValue = false) protected boolean forceReloadable; @@ -370,7 +370,7 @@ public abstract class AbstractTomEEMojo getLog().warn(can't create ' + destParent.getPath() + '); } -for (String file : files) { +for (final String file : files) { updateLib(file, destParent, defaultType); } } @@ -827,7 +827,7 @@ public abstract class AbstractTomEEMojo } } -private void unzip(File mvnTomEE, File catalinaBase) { +private void unzip(final File mvnTomEE, final File catalinaBase) { ZipFile in = null; try { in = new ZipFile(mvnTomEE); Added: tomee/tomee/trunk/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/Config.java URL: http
svn commit: r1531960 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
Author: rmannibucau Date: Mon Oct 14 16:07:49 2013 New Revision: 1531960 URL: http://svn.apache.org/r1531960 Log: typo in swizzle fix commit, we shouldn't exclude all swizzle Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java?rev=1531960r1=1531959r2=1531960view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java Mon Oct 14 16:07:49 2013 @@ -321,7 +321,7 @@ public class URLClassLoaderFirst extends if (swizzle.startsWith(stream.)) return true; if (swizzle.startsWith(rss.)) return true; if (swizzle.startsWith(Grep.class) || swizzle.startsWith(Lexer.class)) return true; -return true; +return false; } if (org.startsWith(w3c.dom)) return true; if (org.startsWith(quartz)) return true;
svn commit: r1533368 - in /tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf: CxfService.java CxfWsContainer.java ejb/EjbWsContainer.java pojo/PojoWsContainer.java
Author: rmannibucau Date: Fri Oct 18 09:25:00 2013 New Revision: 1533368 URL: http://svn.apache.org/r1533368 Log: TOMEE-1060 using a single http transport factory Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java?rev=1533368r1=1533367r2=1533368view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java Fri Oct 18 09:25:00 2013 @@ -24,12 +24,15 @@ import org.apache.openejb.core.webservic import org.apache.openejb.server.cxf.client.SaajInterceptor; import org.apache.openejb.server.cxf.ejb.EjbWsContainer; import org.apache.openejb.server.cxf.pojo.PojoWsContainer; +import org.apache.openejb.server.cxf.transport.HttpTransportFactory; import org.apache.openejb.server.cxf.transport.util.CxfUtil; import org.apache.openejb.server.httpd.HttpListener; import org.apache.openejb.server.webservices.WsService; import javax.naming.Context; import java.net.URL; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Properties; import java.util.TreeMap; @@ -39,6 +42,8 @@ public class CxfService extends WsServic private final MapString, CxfWsContainer wsContainers = new TreeMapString, CxfWsContainer(); +private HttpTransportFactory httpTransportFactory; + public String getName() { return cxf; } @@ -47,6 +52,16 @@ public class CxfService extends WsServic super.init(props); CxfUtil.configureBus(); SaajInterceptor.registerInterceptors(); + +initBusTransport(CxfUtil.getBus()); +} + +private void initBusTransport(final Bus bus) { +httpTransportFactory = new HttpTransportFactory(bus); +final ListString ids = new ArrayListString(httpTransportFactory.getTransportIds().size() + 1); +ids.addAll(httpTransportFactory.getTransportIds()); +ids.add(http://schemas.xmlsoap.org/wsdl/soap/;); +httpTransportFactory.setTransportIds(ids); } @Override @@ -64,7 +79,7 @@ public class CxfService extends WsServic try { CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl, META-INF/jax-ws-catalog.xml); -final EjbWsContainer container = new EjbWsContainer(bus, port, beanContext, config); +final EjbWsContainer container = new EjbWsContainer(bus, httpTransportFactory, port, beanContext, config); container.start(); wsContainers.put(beanContext.getDeploymentID().toString(), container); return container; @@ -83,7 +98,7 @@ public class CxfService extends WsServic try { CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl, META-INF/jax-ws-catalog.xml); -PojoWsContainer container = new PojoWsContainer(loader, bus, port, context, target, bdgs, services); +PojoWsContainer container = new PojoWsContainer(loader, httpTransportFactory, bus, port, context, target, bdgs, services); container.start(); wsContainers.put(serviceId, container); return container; Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java?rev=1533368r1=1533367r2=1533368view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java Fri Oct 18 09:25:00 2013 @@ -23,40 +23,32 @@ import org.apache.cxf.transport.http.HTT import org.apache.openejb.assembler.classic.util.ServiceConfiguration; import org.apache.openejb.core.webservices.PortData; import org.apache.openejb.monitoring.LocalMBeanServer; -import org.apache.openejb.server.cxf.transport.HttpTransportFactory; import org.apache.openejb.server.cxf.transport.util.CxfUtil; import org.apache.openejb.server.httpd.HttpListener; import org.apache.openejb.server.httpd.HttpRequest; import
svn commit: r1534509 - in /tomee/tomee/trunk: arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml container/openejb-core/src/main/java/org/apache/openejb/res
Author: rmannibucau Date: Tue Oct 22 06:32:36 2013 New Revision: 1534509 URL: http://svn.apache.org/r1534509 Log: TOMEE-1062 AMQ 5.9.0 Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java tomee/tomee/trunk/pom.xml Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml?rev=1534509r1=1534508r2=1534509view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-tests/arquillian-tomee-jms-tests/src/test/resources/arquillian.xml Tue Oct 22 06:32:36 2013 @@ -26,7 +26,7 @@ property name=dirtarget/apache-tomee-remote/property property name=appWorkingDirtarget/arquillian-test-working-dir/property property name=properties -Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;broker.persistent=false +Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;persistent=false My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb @@ -42,7 +42,7 @@ property name=dirtarget/apache-tomee-remote/property property name=appWorkingDirtarget/arquillian-test-working-dir/property property name=properties -Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;broker.persistent=false +Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;persistent=false My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb @@ -58,7 +58,7 @@ property name=dirtarget/apache-tomee-remote/property property name=appWorkingDirtarget/arquillian-test-working-dir/property property name=properties -Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;broker.persistent=false +Default\ JMS\ Resource\ Adapter.BrokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=falseamp;persistent=false My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb @@ -66,4 +66,4 @@ /property /configuration /container -/arquillian \ No newline at end of file +/arquillian Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java?rev=1534509r1=1534508r2=1534509view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java Tue Oct 22 06:32:36 2013 @@ -60,7 +60,7 @@ public class ActiveMQ5Factory implements final Properties properties = getLowerCaseProperties(); final URI uri = URLs.uri(brokerURI.getRawSchemeSpecificPart()); broker = BrokerFactory.createBroker(uri); -brokers.put(brokerURI, broker); +brokers.put(brokerURI, ActiveMQ5Factorybroker); if (!uri.getScheme().toLowerCase().startsWith(xbean)) { Modified: tomee/tomee/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1534509r1=1534508r2=1534509view=diff == --- tomee/tomee/trunk/pom.xml (original) +++ tomee/tomee/trunk/pom.xml Tue Oct 22 06:32:36 2013 @@ -142,7 +142,7 @@ project.build.sourceEncodingUTF-8/project.build.sourceEncoding bval.version0.5/bval.version -org.apache.activemq.version5.8.0/org.apache.activemq.version +org.apache.activemq.version5.9.0/org.apache.activemq.version quartz.version2.2.0/quartz.version org.springframework.version3.1.3.RELEASE/org.springframework.version junit.version4.11/junit.version
svn commit: r1534513 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java
Author: rmannibucau Date: Tue Oct 22 06:37:43 2013 New Revision: 1534513 URL: http://svn.apache.org/r1534513 Log: oops typo Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java?rev=1534513r1=1534512r2=1534513view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQ5Factory.java Tue Oct 22 06:37:43 2013 @@ -60,7 +60,7 @@ public class ActiveMQ5Factory implements final Properties properties = getLowerCaseProperties(); final URI uri = URLs.uri(brokerURI.getRawSchemeSpecificPart()); broker = BrokerFactory.createBroker(uri); -brokers.put(brokerURI, ActiveMQ5Factorybroker); +brokers.put(brokerURI, broker); if (!uri.getScheme().toLowerCase().startsWith(xbean)) {
svn commit: r1534921 - in /tomee/tomee/trunk/container/openejb-jee-accessors/src: main/java/org/apache/openejb/jee/ test/resources/
Author: rmannibucau Date: Wed Oct 23 06:27:57 2013 New Revision: 1534921 URL: http://svn.apache.org/r1534921 Log: TOMEE-1021 swallowing errors reading faces-config.xml - Note: this is done hacking the generating code while we don't upgrade to JSF 2.2 Modified: tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesAbsoluteOrdering$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesBehavior$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesComponent$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesConverter$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesFactory$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesLifecycle$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesNavigationRule$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesOrdering$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesReferencedBean$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesRenderKit$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesValidator$JAXB.java tomee/tomee/trunk/container/openejb-jee-accessors/src/test/resources/a-faces-config-22.xml Modified: tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesAbsoluteOrdering$JAXB.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesAbsoluteOrdering%24JAXB.java?rev=1534921r1=1534920r2=1534921view=diff == --- tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesAbsoluteOrdering$JAXB.java (original) +++ tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesAbsoluteOrdering$JAXB.java Wed Oct 23 06:27:57 2013 @@ -116,7 +116,9 @@ public class FacesAbsoluteOrdering$JAXB } nameOrOthers.add(nameOrOthersItem1); } else { -context.unexpectedElement(elementReader, new QName(http://java.sun.com/xml/ns/javaee;, others), new QName(http://java.sun.com/xml/ns/javaee;, name)); +// just here ATM to not prevent users to get JSF 2.2 feature because we can't read it +// TODO: handle it properly +// context.unexpectedElement(elementReader, new QName(http://java.sun.com/xml/ns/javaee;, others), new QName(http://java.sun.com/xml/ns/javaee;, name)); } } if (nameOrOthers != null) { Modified: tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication$JAXB.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication%24JAXB.java?rev=1534921r1=1534920r2=1534921view=diff == --- tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication$JAXB.java (original) +++ tomee/tomee/trunk/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/FacesApplication$JAXB.java Wed Oct 23 06:27:57 2013 @@ -381,7 +381,9 @@ public class FacesApplication$JAXB } defaultValidators.add(defaultValidatorsItem); } else { -context.unexpectedElement(elementReader, new QName(http://java.sun.com/xml/ns/javaee;, action-listener), new QName(http://java.sun.com/xml/ns/javaee;, default-render-kit-id), new QName(http://java.sun.com/xml/ns/javaee;, message-bundle), new QName(http://java.sun.com/xml/ns/javaee;, navigation-handler), new QName(http://java.sun.com/xml/ns/javaee;, view-handler), new QName(http://java.sun.com/xml/ns/javaee;, state-manager), new QName(http://java.sun.com/xml/ns/javaee;, el-resolver), new QName(http://java.sun.com/xml/ns/javaee;, property-resolver), new QName(http://java.sun.com/xml/ns/javaee;, variable-resolver), new QName(http://java.sun.com/xml/ns/javaee;, resource-handler), new QName(http://java.sun.com/xml/ns/javaee;, system-event-listener), new QName(http://java.sun.com/xml/ns/javaee;, locale-config), new QName(http://java.sun.com/xml/ns/javaee;, resource-bundle), new QName(http://java.sun.com/xml/ns/javaee;, application-e xtension
svn commit: r1535046 - /tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
Author: rmannibucau Date: Wed Oct 23 15:01:19 2013 New Revision: 1535046 URL: http://svn.apache.org/r1535046 Log: adding tomee-plugin.catalina-base to be able to override catalina base in tomee mvn plugin Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1535046r1=1535045r2=1535046view=diff == --- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original) +++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Wed Oct 23 15:01:19 2013 @@ -139,7 +139,7 @@ public abstract class AbstractTomEEMojo @Parameter(property = tomee-plugin.debugPort, defaultValue = 5005) protected int debugPort; -@Parameter(defaultValue = ${project.build.directory}/apache-tomee) +@Parameter(defaultValue = ${project.build.directory}/apache-tomee, property = tomee-plugin.catalina-base) protected File catalinaBase; /**
svn commit: r1535283 - /tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java
Author: rmannibucau Date: Thu Oct 24 06:20:30 2013 New Revision: 1535283 URL: http://svn.apache.org/r1535283 Log: adding a test validating our behavior for @PostContruct + @Singleton + @Async in postcontruct method is fine (regarding the need) Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java?rev=1535283view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java Thu Oct 24 06:20:30 2013 @@ -0,0 +1,114 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.core.singleton; + +import org.apache.openejb.jee.EnterpriseBean; +import org.apache.openejb.jee.SingletonBean; +import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.testing.Module; +import org.junit.Test; +import org.junit.runner.RunWith; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import javax.ejb.AsyncResult; +import javax.ejb.Asynchronous; +import javax.ejb.EJB; +import javax.ejb.SessionContext; +import javax.ejb.Singleton; +import javax.ejb.Startup; +import java.util.concurrent.Future; + +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertTrue; + +@RunWith(ApplicationComposer.class) +public class AsyncPostContructTest { +@EJB +private BuildMeAsync buildMeAsync; + +@Module +public EnterpriseBean asyncConstructBean() { +final SingletonBean singletonBean = new SingletonBean(BuildMeAsync.class); +singletonBean.setInitOnStartup(true); +return singletonBean.localBean(); +} + +@Test +public void postConstructShouldEndsBeforeAsyncCall() { +final long start = buildMeAsync.getStartEnd(); +final long async = buildMeAsync.getAsyncStart(); +assertTrue(async start); +assertSame(buildMeAsync.getAsyncInstance(), buildMeAsync.getAsyncInstance()); +} + +@Startup +@Singleton +public static class BuildMeAsync { +@Resource +private SessionContext sc; + +private FutureBoolean future; +private long startEnd; +private long asyncStart; +private Object startInstance; +private Object asyncInstance; + +@PostConstruct +public void start() { +startInstance = this; +future = sc.getBusinessObject(BuildMeAsync.class).async(); +try { +Thread.sleep(100); +} catch (final InterruptedException e) { +// no-op +} +startEnd = System.currentTimeMillis(); +} + +@Asynchronous +public FutureBoolean async() { +asyncStart = System.currentTimeMillis(); +asyncInstance = this; +return new AsyncResultBoolean(true); +} + +public void waitFuture() { +try { +future.get(); +} catch (final Exception e) { +// no-op +} +} + +public long getStartEnd() { +return startEnd; +} + +public long getAsyncStart() { +return asyncStart; +} + +public Object getStartInstance() { +return startInstance; +} + +public Object getAsyncInstance() { +return asyncInstance; +} +} +}
svn commit: r1535644 - in /tomee/tomee/trunk/server: openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/ openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ openejb-cxf/src/main/java/o
Author: rmannibucau Date: Fri Oct 25 06:26:10 2013 New Revision: 1535644 URL: http://svn.apache.org/r1535644 Log: cleaning a bit CXF logs - which can conflict with our logs - when deploying webservices Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1535644r1=1535643r2=1535644view=diff == --- tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java (original) +++ tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java Fri Oct 25 06:26:10 2013 @@ -16,7 +16,9 @@ */ package org.apache.openejb.server.cxf.rs; +import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.endpoint.Server; +import org.apache.cxf.endpoint.ServerImpl; import org.apache.cxf.helpers.IOUtils; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.JAXRSServiceImpl; @@ -87,11 +89,14 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Level; import java.util.regex.Pattern; public class CxfRsHttpListener implements RsHttpListener { private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB_RS, CxfRsHttpListener.class); +private static final java.util.logging.Logger SERVER_IMPL_LOGGER = LogUtils.getL7dLogger(ServerImpl.class); + public static final String CXF_JAXRS_PREFIX = cxf.jaxrs.; public static final String PROVIDERS_KEY = CXF_JAXRS_PREFIX + providers; public static final String STATIC_RESOURCE_KEY = CXF_JAXRS_PREFIX + static-resources-list; @@ -382,7 +387,14 @@ public class CxfRsHttpListener implement factory.setResourceClasses(classes); factory.setInvoker(new AutoJAXRSInvoker(restEjbs)); -server = factory.create(); +final Level level = SERVER_IMPL_LOGGER.getLevel(); +SERVER_IMPL_LOGGER.setLevel(Level.OFF); +try { +server = factory.create(); +} finally { +SERVER_IMPL_LOGGER.setLevel(level); +} + this.context = webContext; if (!webContext.startsWith(/)) { this.context = / + webContext; Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java?rev=1535644r1=1535643r2=1535644view=diff == --- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java (original) +++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java Fri Oct 25 06:26:10 2013 @@ -18,6 +18,7 @@ package org.apache.openejb.server.cxf; import org.apache.cxf.Bus; +import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.databinding.DataBinding; import org.apache.cxf.endpoint.Server; import org.apache.cxf.endpoint.ServerImpl; @@ -27,6 +28,7 @@ import org.apache.cxf.jaxws.support.JaxW import org.apache.cxf.jaxws.support.JaxWsImplementorInfo; import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean; import org.apache.cxf.service.Service; +import org.apache.cxf.service.factory.ReflectionServiceFactoryBean; import org.apache.cxf.transport.http.HTTPTransportFactory; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.assembler.classic.ServiceInfo; @@ -48,9 +50,16 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.Executor; +import java.util.logging.Level; +import java.util.logging.Logger; public abstract class CxfEndpoint { public static final String CXF_JAXWS_PREFIX = cxf.jaxws.; + +// to be able
svn commit: r1535656 - /tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
Author: rmannibucau Date: Fri Oct 25 08:34:44 2013 New Revision: 1535656 URL: http://svn.apache.org/r1535656 Log: using fastBoot property when using jaxb Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java?rev=1535656r1=1535655r2=1535656view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java Fri Oct 25 08:34:44 2013 @@ -17,6 +17,8 @@ */ package org.apache.openejb.jee; +import org.apache.openejb.loader.SystemInstance; + import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import java.util.Map; @@ -24,10 +26,30 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; public final class JAXBContextFactory { +private static final boolean USE_FAST_BOOT = true.equals(SystemInstance.get().getProperty(openejb.jaxb.fastBoot, true)); +private static final String FAST_BOOT = com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot; private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(JAXBContextFactory.class.getName()); //private static boolean useSXC = false; +private static String setFastBoot() { +final String fastBoot = System.getProperty(FAST_BOOT); +if (USE_FAST_BOOT) { +System.setProperty(FAST_BOOT, Boolean.TRUE.toString()); +} +return fastBoot; +} + +private static void resetFastBoot(final String fastBoot) { +if (USE_FAST_BOOT) { +if (fastBoot == null) { +System.clearProperty(FAST_BOOT); +} else { +System.setProperty(FAST_BOOT, fastBoot); +} +} +} + public static JAXBContext newInstance(final String s) throws JAXBException { //if (useSXC) { //try { @@ -37,7 +59,12 @@ public final class JAXBContextFactory { //} final Event event = Event.start(s); try { -return JAXBContext.newInstance(s); +final String fastBoot = setFastBoot(); +try { +return JAXBContext.newInstance(s); +} finally { +resetFastBoot(fastBoot); +} } finally { event.stop(); } @@ -53,7 +80,12 @@ public final class JAXBContextFactory { final Event event = Event.start(s); try { -return JAXBContext.newInstance(s, classLoader); +final String fastBoot = setFastBoot(); +try { +return JAXBContext.newInstance(s, classLoader); +} finally { +resetFastBoot(fastBoot); +} } finally { event.stop(); } @@ -69,7 +101,12 @@ public final class JAXBContextFactory { final Event event = Event.start(s); try { -return JAXBContext.newInstance(s, classLoader, properties); +final String fastBoot = setFastBoot(); +try { +return JAXBContext.newInstance(s, classLoader, properties); +} finally { +resetFastBoot(fastBoot); +} } finally { event.stop(); } @@ -90,7 +127,12 @@ public final class JAXBContextFactory { sb.deleteCharAt(sb.length() - 1); final Event event = Event.start(sb.toString()); try { -return JAXBContext.newInstance(classes); +final String fastBoot = setFastBoot(); +try { +return JAXBContext.newInstance(classes); +} finally { +resetFastBoot(fastBoot); +} } finally { event.stop(); } @@ -112,7 +154,12 @@ public final class JAXBContextFactory { sb.deleteCharAt(sb.length() - 1); final Event event = Event.start(sb.toString()); try { -return JAXBContext.newInstance(classes, properties); +final String fastBoot = setFastBoot(); +try { +return JAXBContext.newInstance(classes, properties); +} finally { +resetFastBoot(fastBoot); +} } finally { event.stop(); }
svn commit: r1535684 - in /tomee/tomee/trunk/server/openejb-webservices/src: main/java/org/apache/openejb/server/webservices/saaj/ test/java/org/apache/openejb/server/webservices/saaj/
Author: rmannibucau Date: Fri Oct 25 11:08:26 2013 New Revision: 1535684 URL: http://svn.apache.org/r1535684 Log: using sun default soap*factories + using sun as default provider if using our factories. We saw with jlmonteiro it can help a lot under some conditions when security is on. Modified: tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java tomee/tomee/trunk/server/openejb-webservices/src/test/java/org/apache/openejb/server/webservices/saaj/SaajUniverseTest.java Modified: tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java?rev=1535684r1=1535683r2=1535684view=diff == --- tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java (original) +++ tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajFactoryFinder.java Fri Oct 25 11:08:26 2013 @@ -53,17 +53,23 @@ class SaajFactoryFinder { } private static void initDefaultSAAJProvider() { -final String provider = SystemInstance.get().getOptions().get(SAAJ_PROVIDER_PROPERTY, (String) null); +final String provider = SystemInstance.get().getOptions().get(SAAJ_PROVIDER_PROPERTY, sun); // sun is the best default we can get + can impact perfs a lot if (provider != null) { if (provider.equalsIgnoreCase(axis2)) { DEFAULT_SAAJ_UNIVERSE = SaajUniverse.Type.AXIS2; } else if (provider.equalsIgnoreCase(sun)) { DEFAULT_SAAJ_UNIVERSE = SaajUniverse.Type.SUN; +} else if (provider.equalsIgnoreCase(default)) { +DEFAULT_SAAJ_UNIVERSE = null; } else { throw new ServerRuntimeException(Invalid SAAJ universe specified: + provider); } -logger.info(Default SAAJ universe: + DEFAULT_SAAJ_UNIVERSE); +if (DEFAULT_SAAJ_UNIVERSE != null) { +logger.info(Default SAAJ universe: + DEFAULT_SAAJ_UNIVERSE); +} else { +logger.info(Default SAAJ universe not set); +} } else { logger.info(Default SAAJ universe not set); } Modified: tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java?rev=1535684r1=1535683r2=1535684view=diff == --- tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java (original) +++ tomee/tomee/trunk/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java Fri Oct 25 11:08:26 2013 @@ -16,6 +16,7 @@ */ package org.apache.openejb.server.webservices.saaj; +import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; @@ -25,10 +26,12 @@ public class SaajUniverse { private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_WS, SaajUniverse.class); static { -setProperty(javax.xml.soap.MessageFactory, org.apache.openejb.server.webservices.saaj.MessageFactoryImpl); -setProperty(javax.xml.soap.SOAPFactory, org.apache.openejb.server.webservices.saaj.SoapFactoryImpl); -setProperty(javax.xml.soap.SOAPConnectionFactory, org.apache.openejb.server.webservices.saaj.SoapConnectionFactoryImpl); -setProperty(javax.xml.soap.MetaFactory, org.apache.openejb.server.webservices.saaj.SaajMetaFactoryImpl); +if (SystemInstance.get().getOptions().get(openejb.soap.override-factory, false)) { // default are far faster than our chain +setProperty(javax.xml.soap.MessageFactory, org.apache.openejb.server.webservices.saaj.MessageFactoryImpl); +setProperty(javax.xml.soap.SOAPFactory, org.apache.openejb.server.webservices.saaj.SoapFactoryImpl); +setProperty(javax.xml.soap.SOAPConnectionFactory, org.apache.openejb.server.webservices.saaj.SoapConnectionFactoryImpl); +setProperty(javax.xml.soap.MetaFactory, org.apache.openejb.server.webservices.saaj.SaajMetaFactoryImpl); +} } private static void setProperty(String name, String value) { Modified: tomee/tomee/trunk
svn commit: r1535719 - /tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
Author: rmannibucau Date: Fri Oct 25 12:55:06 2013 New Revision: 1535719 URL: http://svn.apache.org/r1535719 Log: SystemInstance not available in jee Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java?rev=1535719r1=1535718r2=1535719view=diff == --- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java (original) +++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java Fri Oct 25 12:55:06 2013 @@ -17,8 +17,6 @@ */ package org.apache.openejb.jee; -import org.apache.openejb.loader.SystemInstance; - import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import java.util.Map; @@ -26,7 +24,7 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; public final class JAXBContextFactory { -private static final boolean USE_FAST_BOOT = true.equals(SystemInstance.get().getProperty(openejb.jaxb.fastBoot, true)); +private static final boolean USE_FAST_BOOT = true.equals(System.getProperty(openejb.jaxb.fastBoot, true)); private static final String FAST_BOOT = com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot; private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(JAXBContextFactory.class.getName());
svn commit: r1535727 - /tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
Author: rmannibucau Date: Fri Oct 25 13:30:12 2013 New Revision: 1535727 URL: http://svn.apache.org/r1535727 Log: TOMEE-1065 when ear has a single war using the war context for arquillian Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1535727r1=1535726r2=1535727view=diff == --- tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java Fri Oct 25 13:30:12 2013 @@ -247,17 +247,18 @@ public abstract class TomEEContainerCon } final AppInfo appInfo; +final String archiveName = archive.getName(); try { appInfo = deployer().deploy(file.getAbsolutePath()); if (appInfo != null) { -moduleIds.put(archive.getName(), new DeployedApp(appInfo.path, file.getParentFile())); +moduleIds.put(archiveName, new DeployedApp(appInfo.path, file.getParentFile())); Files.deleteOnExit(file); // i folder } else { LOGGER.severe(appInfo was not found for + file.getPath() + , available are: + apps()); throw new OpenEJBException(can't get appInfo); } } catch (OpenEJBException re) { // clean up in undeploy needs it -moduleIds.put(archive.getName(), new DeployedApp(file.getPath(), file.getParentFile())); +moduleIds.put(archiveName, new DeployedApp(file.getPath(), file.getParentFile())); throw re; } @@ -269,7 +270,7 @@ public abstract class TomEEContainerCon String arquillianServlet; // Avoids inconvertible types error in windows build -if (archive instanceof WebArchive) { +if (archiveName.endsWith(.war) || (archiveName.endsWith(.ear) appInfo.webApps.size() == 1)) { arquillianServlet = / + getArchiveNameWithoutExtension(archive); } else { arquillianServlet = /arquillian-protocol;
svn commit: r1536354 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau Date: Mon Oct 28 13:56:11 2013 New Revision: 1536354 URL: http://svn.apache.org/r1536354 Log: cleaning up no more used variables Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1536354r1=1536353r2=1536354view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Mon Oct 28 13:56:11 2013 @@ -57,7 +57,6 @@ import org.apache.tomee.catalina.realm.T import org.apache.tomee.common.NamingUtil; import org.apache.tomee.common.ResourceFactory; import org.apache.tomee.loader.TomcatHelper; -import org.apache.xbean.finder.AnnotationFinder; import org.apache.xbean.finder.IAnnotationFinder; import javax.servlet.ServletContainerInitializer; @@ -416,8 +415,6 @@ public class OpenEJBContextConfig extend if (typeInitializerMap.size() 0 finder != null) { final ClassLoader loader = context.getLoader().getClassLoader(); -boolean foundSubClasses = false; -boolean foundImplementations = false; for (final Map.EntryClass?, SetServletContainerInitializer entry : typeInitializerMap.entrySet()) { final Class? annotation = entry.getKey();
svn commit: r1536355 - /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau Date: Mon Oct 28 14:00:33 2013 New Revision: 1536355 URL: http://svn.apache.org/r1536355 Log: generics are more an issue in xbean findByXXX than something great when used in a generic backbone Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1536355r1=1536354r2=1536355view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Mon Oct 28 14:00:33 2013 @@ -432,9 +432,9 @@ public class OpenEJBContextConfig extend final ListClass? implementations; if (annotation.isInterface()) { -implementations = finder.findImplementations(reloadedClass); +implementations = List.class.cast(finder.findImplementations(reloadedClass)); } else { -implementations = finder.findSubclasses(reloadedClass); +implementations = List.class.cast(finder.findSubclasses(reloadedClass)); } addClassesWithRightLoader(loader, sci, implementations);
svn commit: r1536594 - in /tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina: TomcatWebAppBuilder.java websocket/JavaEEDefaultServerEnpointConfigurator.java
Author: rmannibucau Date: Tue Oct 29 06:22:47 2013 New Revision: 1536594 URL: http://svn.apache.org/r1536594 Log: no need of websockets for tomee embedded by default + prefixing tomee realm objectname to avoid conflicts Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1536594r1=1536593r2=1536594view=diff == --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Tue Oct 29 06:22:47 2013 @@ -49,6 +49,7 @@ import org.apache.catalina.ha.CatalinaCl import org.apache.catalina.ha.tcp.SimpleTcpCluster; import org.apache.catalina.loader.VirtualWebappLoader; import org.apache.catalina.loader.WebappLoader; +import org.apache.catalina.realm.RealmBase; import org.apache.catalina.session.StandardManager; import org.apache.catalina.startup.Constants; import org.apache.catalina.startup.ContextConfig; @@ -141,7 +142,6 @@ import javax.servlet.jsp.JspFactory; import javax.sql.DataSource; import javax.transaction.TransactionManager; import javax.transaction.TransactionSynchronizationRegistry; -import javax.websocket.server.ServerEndpointConfig; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -160,6 +160,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeMap; +import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -206,6 +207,8 @@ public class TomcatWebAppBuilder impleme } } +private final MapClassLoader, InstanceManager instanceManagers = new ConcurrentHashMapClassLoader, InstanceManager(); + /** * Context information for web applications */ @@ -315,19 +318,22 @@ public class TomcatWebAppBuilder impleme deploymentLoader = new DeploymentLoader(); } -private static void forceEEServerEndpointConfigurator() { +private void forceEEServerEndpointConfigurator() { // by reflection cause // 1- tomcat algorithm uses ServiceLoader.next() so no real way to ensure it is our META-INF/services/... // 2- avoids getResources which can be slow depending the server config try { -final Field f = ServerEndpointConfig.Configurator.class.getDeclaredField(defaultImpl); +final Class? clazz = Thread.currentThread().getContextClassLoader().loadClass(javax.websocket.server.ServerEndpointConfig$Configurator); +final Field f = clazz.getDeclaredField(defaultImpl); boolean acc = f.isAccessible(); f.setAccessible(true); try { -f.set(null, new JavaEEDefaultServerEnpointConfigurator()); +f.set(null, new JavaEEDefaultServerEnpointConfigurator(instanceManagers)); } finally { f.setAccessible(acc); } +} catch (final ClassNotFoundException cnfe) { +// no-op } catch (final Exception e) { logger.warning(Can't set TomEE ServerEndpointConfig$Configurator, e); } @@ -372,6 +378,9 @@ public class TomcatWebAppBuilder impleme protected Realm tomeeRealm(final Realm realm) { final TomEERealm trealm = new TomEERealm(); +if (RealmBase.class.isInstance(realm)) { +trealm.setRealmPath(/tomee/ + RealmBase.class.cast(realm).getRealmPath()); +} trealm.addRealm(realm); return trealm; } @@ -1323,7 +1332,7 @@ public class TomcatWebAppBuilder impleme final JavaeeInstanceManager instanceManager = new JavaeeInstanceManager(webContext, standardContext); standardContext.setInstanceManager(instanceManager); - JavaEEDefaultServerEnpointConfigurator.registerInstanceManager(classLoader, instanceManager); +instanceManagers.put(classLoader, instanceManager); standardContext.getServletContext().setAttribute(InstanceManager.class.getName(), standardContext.getInstanceManager()); } catch (Exception e) { @@ -1832,8 +1841,11 @@ public class TomcatWebAppBuilder impleme logger.error(error stopping classloader of webapp + standardContext.getName(), e); } ClassLoaderUtil.cleanOpenJPACache(old
svn commit: r1536601 - /tomee/tomee/trunk/pom.xml
Author: rmannibucau Date: Tue Oct 29 08:11:44 2013 New Revision: 1536601 URL: http://svn.apache.org/r1536601 Log: TOMEE-962 myfaces 2.1.13 Modified: tomee/tomee/trunk/pom.xml Modified: tomee/tomee/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1536601r1=1536600r2=1536601view=diff == --- tomee/tomee/trunk/pom.xml (original) +++ tomee/tomee/trunk/pom.xml Tue Oct 29 08:11:44 2013 @@ -151,7 +151,7 @@ geronimo.connector.version3.1.1/geronimo.connector.version geronimo-osgi.version1.1/geronimo-osgi.version geronimo-javamail_1.4_spec.version1.7.1/geronimo-javamail_1.4_spec.version -myfaces.version2.1.12/myfaces.version +myfaces.version2.1.13/myfaces.version slf4j.version1.7.5/slf4j.version log4j.version1.2.17/log4j.version osgi.framework.version4.2.0/osgi.framework.version
svn commit: r1536800 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/config/FinderFactory.java test/java/org/apache/openejb/meta/MetaTest.java
Author: rmannibucau Date: Tue Oct 29 16:40:38 2013 New Revision: 1536800 URL: http://svn.apache.org/r1536800 Log: seems MetaRunner needs finder.link() so forcing the linkage Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/meta/MetaTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java?rev=1536800r1=1536799r2=1536800view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java Tue Oct 29 16:40:38 2013 @@ -62,7 +62,7 @@ public class FinderFactory { } public IAnnotationFinder create(DeploymentModule module) throws Exception { -IAnnotationFinder finder; +final AnnotationFinder finder; if (module instanceof WebModule) { WebModule webModule = (WebModule) module; final AnnotationFinder annotationFinder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())); @@ -92,13 +92,14 @@ public class FinderFactory { if (module instanceof Module) { final DebugArchive archive = new DebugArchive(new ConfigurableClasspathArchive((Module) module, url)); -final AnnotationFinder annotationFinder = newFinder(archive); -enableFinderOptions(annotationFinder); -finder = annotationFinder; +finder = newFinder(archive); } else { -final AnnotationFinder annotationFinder = newFinder(new DebugArchive(new ConfigurableClasspathArchive(module.getClassLoader(), url))); -enableFinderOptions(annotationFinder); -finder = annotationFinder; +finder = newFinder(new DebugArchive(new ConfigurableClasspathArchive(module.getClassLoader(), url))); +} +if (true.equals(module.getProperties().getProperty(FORCE_LINK, false))) { +finder.link(); +} else { +enableFinderOptions(finder); } } else { finder = new AnnotationFinder(new ClassesArchive()); Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/meta/MetaTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/meta/MetaTest.java?rev=1536800r1=1536799r2=1536800view=diff == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/meta/MetaTest.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/meta/MetaTest.java Tue Oct 29 16:40:38 2013 @@ -27,6 +27,7 @@ import org.apache.openejb.assembler.clas import org.apache.openejb.config.AppModule; import org.apache.openejb.config.ConfigurationFactory; import org.apache.openejb.config.EjbModule; +import org.apache.openejb.config.FinderFactory; import org.apache.openejb.jee.ContainerTransaction; import org.apache.openejb.jee.EjbJar; import org.apache.openejb.jee.EnterpriseBean; @@ -163,6 +164,9 @@ public @interface MetaTest { } final AppModule app = factory.loadApplication(this.getClass().getClassLoader(), test, files); +for (final EjbModule ejbModule : app.getEjbModules()) { + ejbModule.getProperties().setProperty(FinderFactory.FORCE_LINK, Boolean.TRUE.toString()); +} OpenEjbConfiguration conf = factory.getOpenEjbConfiguration(); @@ -249,7 +253,9 @@ public @interface MetaTest { OpenejbJar openejbJar = new OpenejbJar(); openejbJar.addEjbDeployment(ejbJar.getEnterpriseBeans()[0]).setContainerId(foo); -return new EjbModule(ejbJar, openejbJar); +final EjbModule ejbModule = new EjbModule(ejbJar, openejbJar); +ejbModule.getProperties().setProperty(FinderFactory.FORCE_LINK, Boolean.TRUE.toString()); +return ejbModule; } private T T newBean(ClassT beanType, Class ejbClass) {
svn commit: r1537544 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Author: rmannibucau Date: Thu Oct 31 16:28:15 2013 New Revision: 1537544 URL: http://svn.apache.org/r1537544 Log: TOMEE-1069 undeploying rar resources correctly Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1537544r1=1537543r2=1537544view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Thu Oct 31 16:28:15 2013 @@ -1317,7 +1317,9 @@ public class Assembler extends Assembler logger.debug(Undeploying Applications); final Assembler assembler = this; -for (final AppInfo appInfo : assembler.getDeployedApplications()) { +final ListAppInfo deployedApps = new ArrayListAppInfo(assembler.getDeployedApplications()); +Collections.reverse(deployedApps); // if an app relies on the previous one it surely relies on it too at undeploy time +for (final AppInfo appInfo : deployedApps) { try { assembler.destroyApplication(appInfo.path); } catch (UndeployException e) { @@ -1758,6 +1760,18 @@ public class Assembler extends Assembler logger.warning(can't unbind resource '{0}', id); } } +for (final ConnectorInfo connector : appInfo.connectors) { +if (connector.resourceAdapter == null || connector.resourceAdapter.id == null) { +continue; +} + +final String name = OPENEJB_RESOURCE_JNDI_PREFIX + connector.resourceAdapter.id; +try { +destroyLookedUpResource(globalContext, connector.resourceAdapter.id, name); +} catch (final NamingException e) { +logger.warning(can't unbind resource '{0}', connector); +} +} containerSystem.removeAppContext(appInfo.appId);
svn commit: r1538528 - in /tomee/tomee/trunk: examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java server/openejb-http/src/main/java/org/apache/openejb/server/htt
Author: rmannibucau Date: Mon Nov 4 08:44:14 2013 New Revision: 1538528 URL: http://svn.apache.org/r1538528 Log: removing OWB deprecated calls + a little cleanup in spring-data-proxy-meta Modified: tomee/tomee/trunk/examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java Modified: tomee/tomee/trunk/examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java?rev=1538528r1=1538527r2=1538528view=diff == --- tomee/tomee/trunk/examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java (original) +++ tomee/tomee/trunk/examples/spring-data-proxy-meta/src/test/java/org/superbiz/dynamic/DynamicUserDaoTest.java Mon Nov 4 08:44:14 2013 @@ -59,7 +59,6 @@ public class DynamicUserDaoTest { p.setProperty(openejb.exclude-include.order, exclude-include); p.setProperty(jdbc/DynamicUserDaoTest, new://Resource?type=DataSource); -p.setProperty(jdbc/DynamicUserDaoTest, new://Resource?type=DataSource); p.setProperty(jdbc/DynamicUserDaoTest.JdbcDriver, org.hsqldb.jdbcDriver); p.setProperty(jdbc/DynamicUserDaoTest.JdbcUrl, jdbc:hsqldb:mem:moviedb); p.setProperty(jdbc/DynamicUserDaoTest.UserName, sa); Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java?rev=1538528r1=1538527r2=1538528view=diff == --- tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java (original) +++ tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java Mon Nov 4 08:44:14 2013 @@ -21,10 +21,12 @@ import org.apache.openejb.cdi.WebappWebB import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.webbeans.config.WebBeansContext; +import org.apache.webbeans.context.ConversationContext; import org.apache.webbeans.conversation.ConversationManager; import org.apache.webbeans.el.ELContextStore; import org.apache.webbeans.spi.FailOverService; +import javax.enterprise.context.Conversation; import javax.enterprise.context.RequestScoped; import javax.enterprise.context.SessionScoped; import javax.servlet.ServletRequestEvent; @@ -33,8 +35,7 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpSessionActivationListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; -import java.util.ArrayList; -import java.util.Collection; +import java.util.Map; /** * @version $Rev$ $Date$ @@ -152,8 +153,13 @@ public class EndWebBeansListener impleme WebappWebBeansContext.class.cast(webBeansContext).getParent().getContextsService().endContext(SessionScoped.class, event.getSession()); } -ConversationManager conversationManager = webBeansContext.getConversationManager(); - conversationManager.destroyConversationContextWithSessionId(event.getSession().getId()); +final ConversationManager conversationManager = webBeansContext.getConversationManager(); +final MapConversation, ConversationContext cc = conversationManager.getAndRemoveConversationMapWithSessionId(event.getSession().getId()); +for (final ConversationContext c : cc.values()) { +if (c != null) { +c.destroy(); +} +} }
svn commit: r1538537 - in /tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd: BeginWebBeansListener.java EndWebBeansListener.java
Author: rmannibucau Date: Mon Nov 4 09:23:11 2013 New Revision: 1538537 URL: http://svn.apache.org/r1538537 Log: OWB-910 starting request scope when session is invalidated too Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java?rev=1538537r1=1538536r2=1538537view=diff == --- tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java (original) +++ tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java Mon Nov 4 09:23:11 2013 @@ -84,7 +84,7 @@ public class BeginWebBeansListener imple try { if (logger.isDebugEnabled()) { -logger.debug(Starting a new request : [{0}], event.getServletRequest().getRemoteAddr()); +logger.debug(Starting a new request : [{0}], event == null ? null : event.getServletRequest().getRemoteAddr()); } if (webBeansContext instanceof WebappWebBeansContext) { // start before child @@ -96,7 +96,7 @@ public class BeginWebBeansListener imple // the first time. See OWB-457 } catch (Exception e) { -logger.error(OWBLogConst.ERROR_0019, event.getServletRequest()); +logger.error(OWBLogConst.ERROR_0019, event == null ? null : event.getServletRequest()); WebBeansUtil.throwRuntimeExceptions(e); } } @@ -125,13 +125,20 @@ public class BeginWebBeansListener imple */ @Override public void sessionDestroyed(HttpSessionEvent event) { -// no-op +ensureRequestScope(); +} + +private void ensureRequestScope() { +if (!webBeansContext.getContextsService().getCurrentContext(RequestScoped.class).isActive()) { +requestInitialized(null); +EndWebBeansListener.FAKE_REQUEST.set(true); +} } @Override public void sessionWillPassivate(HttpSessionEvent event) { -// no-op +ensureRequestScope(); } @Override @@ -145,13 +152,14 @@ public class BeginWebBeansListener imple public void contextInitialized(ServletContextEvent servletContextEvent) { try { OpenEJBLifecycle.initializeServletContext(servletContextEvent.getServletContext(), webBeansContext); -} catch (Exception e) { -e.printStackTrace(); +} catch (final Exception e) { +logger.warning(e.getMessage(), e); } +ensureRequestScope(); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { -// no-op +ensureRequestScope(); } } Modified: tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java?rev=1538537r1=1538536r2=1538537view=diff == --- tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java (original) +++ tomee/tomee/trunk/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java Mon Nov 4 09:23:11 2013 @@ -29,6 +29,8 @@ import org.apache.webbeans.spi.FailOverS import javax.enterprise.context.Conversation; import javax.enterprise.context.RequestScoped; import javax.enterprise.context.SessionScoped; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import javax.servlet.http.HttpServletRequest; @@ -42,7 +44,9 @@ import java.util.Map; * * Used as a stack executed at the end of the request too. Avoid multiple (useless) listeners. */ -public class EndWebBeansListener implements ServletRequestListener, HttpSessionListener, HttpSessionActivationListener { +public class EndWebBeansListener implements ServletContextListener, ServletRequestListener, HttpSessionListener, HttpSessionActivationListener { + +static final ThreadLocalBoolean FAKE_REQUEST = new ThreadLocalBoolean(); private final String contextKey; @@ -86,11 +90,17 @@ public class EndWebBeansListener impleme logger.debug(Destroying a request : [{0}], event.getServletRequest().getRemoteAddr()); } -final Object
svn commit: r1539303 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Author: rmannibucau Date: Wed Nov 6 10:42:28 2013 New Revision: 1539303 URL: http://svn.apache.org/r1539303 Log: now we scan with linkage we can get rest applications which are abstract Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1539303r1=1539302r2=1539303view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Wed Nov 6 10:42:28 2013 @@ -1232,6 +1232,10 @@ public class AnnotationDeployer implemen } private static void addRestApplicationIfPossible(final WebModule webModule, final Class? extends Application app) { +if (Modifier.isAbstract(app.getModifiers())) { +return; +} + if (app.getConstructors().length == 0) { webModule.getRestApplications().add(app.getName()); } else { @@ -2007,6 +2011,10 @@ public class AnnotationDeployer implemen } catch (ClassNotFoundException e) { throw new OpenEJBException(Unable to load Application class: + application, e); } +if (Modifier.isAbstract(clazz.getModifiers())) { +continue; +} + try { Application app = Application.class.cast(clazz.newInstance()); try { @@ -2021,9 +2029,9 @@ public class AnnotationDeployer implemen } // if app depends on cdi no need to do it } -} catch (InstantiationException e) { +} catch (final InstantiationException e) { throw new OpenEJBException(Unable to instantiate Application class: + application, e); -} catch (IllegalAccessException e) { +} catch (final IllegalAccessException e) { throw new OpenEJBException(Unable to access Application class: + application, e); } }
svn commit: r1539582 - in /tomee/tomee/trunk/container/openejb-core/src: main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java test/java/org/apache/openejb/classloader/ test/java/org/
Author: rmannibucau Date: Thu Nov 7 10:10:18 2013 New Revision: 1539582 URL: http://svn.apache.org/r1539582 Log: TOMEE-1071 .skipping classes supposed in the jvm when they are effectively in the jvm Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/SkipClassesTest.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java?rev=1539582r1=1539581r2=1539582view=diff == --- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java (original) +++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java Thu Nov 7 10:10:18 2013 @@ -52,6 +52,8 @@ public class URLClassLoaderFirst extends } public static final String SLF4J_BINDER_CLASS = org/slf4j/impl/StaticLoggerBinder.class; +private static final String CLASS_EXT = .class; +public static final ClassLoader SYSTEM_CLASS_LOADER = ClassLoader.getSystemClassLoader(); public static void reloadConfig() { list(FORCED_SKIP, openejb.classloader.forced-skip); @@ -202,7 +204,7 @@ public class URLClassLoaderFirst extends if (name.startsWith(javax.faces.)) return false; if (name.startsWith(javax.mail.)) return false; if (name.startsWith(javax.)) return isInServer(name); -if (name.startsWith(sun.)) return true; +if (name.startsWith(sun.)) return isInJvm(name); // can be provided in the webapp if (name.startsWith(javax.servlet.jsp.jstl)) return false; @@ -323,7 +325,9 @@ public class URLClassLoaderFirst extends if (swizzle.startsWith(Grep.class) || swizzle.startsWith(Lexer.class)) return true; return false; } -if (org.startsWith(w3c.dom)) return true; +if (org.startsWith(w3c.dom)) { +return isInJvm(name); +} if (org.startsWith(quartz)) return true; if (org.startsWith(eclipse.jdt.)) return true; @@ -334,17 +338,16 @@ public class URLClassLoaderFirst extends } // other packages -if (name.startsWith(com.sun.)) { -final String sun = name.substring(com.sun..length()); -if (sun.startsWith(org.apache.)) return true; -if (sun.startsWith(crypto.)) return true; -return false; -} +if (name.startsWith(com.sun.)) return isInJvm(name); if (name.startsWith(serp.bytecode)) return true; return false; } +private static boolean isInJvm(final String name) { +return SYSTEM_CLASS_LOADER.getResource(name.replace('.', '/') + CLASS_EXT) != null; +} + private static boolean isInServer(final String name) { if (name.startsWith(javax.)) { final String sub = name.substring(javax..length()); Added: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/SkipClassesTest.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/SkipClassesTest.java?rev=1539582view=auto == --- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/SkipClassesTest.java (added) +++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/classloader/SkipClassesTest.java Thu Nov 7 10:10:18 2013 @@ -0,0 +1,31 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openejb.classloader; + +import static org.junit.Assert.assertFalse; +import static