You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2015/11/02 23:20:58 UTC
[1/8] tomee git commit: TOMEE-1649 adding eviction for 'cdi'
websockets
Repository: tomee
Updated Branches:
refs/heads/tomee-7.0.0-M1 e99dbb774 -> bcb8bf032
TOMEE-1649 adding eviction for 'cdi' websockets
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/59e366a8
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/59e366a8
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/59e366a8
Branch: refs/heads/tomee-7.0.0-M1
Commit: 59e366a86f7b9455701ef520873b7656d9626537
Parents: 58ec241
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Nov 2 10:08:13 2015 -0800
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Mon Nov 2 10:08:29 2015 -0800
----------------------------------------------------------------------
.../org/apache/openejb/core/WebContext.java | 37 ++++-
.../tomee/catalina/JavaeeInstanceManager.java | 16 +-
.../tomee/catalina/OpenEJBContextConfig.java | 36 +++-
.../tomee/catalina/TomEEWebappClassLoader.java | 15 ++
.../JavaEEDefaultServerEnpointConfigurator.java | 166 ++++++++++++++++++-
5 files changed, 258 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/59e366a8/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
index 8674bfa..55d98c1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
@@ -53,7 +53,7 @@ public class WebContext {
private Context jndiEnc;
private final AppContext appContext;
private Map<String, Object> bindings;
- private final Map<Object, CreationalContext<?>> creatonalContexts = new ConcurrentHashMap<Object, CreationalContext<?>>();
+ private final Map<Object, CreationalContext<?>> creationalContexts = new ConcurrentHashMap<>();
private WebBeansContext webbeansContext;
private String contextRoot;
private String host;
@@ -129,8 +129,7 @@ public class WebContext {
return appContext;
}
- public Object newInstance(final Class beanClass) throws OpenEJBException {
-
+ public <T> Instance newWeakableInstance(final Class<T> beanClass) throws OpenEJBException {
final WebBeansContext webBeansContext = getWebBeansContext();
final ConstructorInjectionBean<Object> beanDefinition = getConstructorInjectionBean(beanClass, webBeansContext);
final CreationalContext<Object> creationalContext;
@@ -156,10 +155,16 @@ public class WebContext {
if (webBeansContext != null) {
final InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
bean.getInjectionTarget().inject(beanInstance, creationalContext);
+ }
+ return new Instance(beanInstance, creationalContext);
+ }
- creatonalContexts.put(beanInstance, creationalContext);
+ public Object newInstance(final Class beanClass) throws OpenEJBException {
+ final Instance instance = newWeakableInstance(beanClass);
+ if (instance.getCreationalContext() != null) {
+ creationalContexts.put(instance.getValue(), instance.getCreationalContext());
}
- return beanInstance;
+ return instance.getValue();
}
private ConstructorInjectionBean<Object> getConstructorInjectionBean(final Class beanClass, final WebBeansContext webBeansContext) {
@@ -227,7 +232,7 @@ public class WebContext {
// if the bean is dependent simply cleanup the creational context once it is created
final Class<? extends Annotation> scope = beanDefinition.getScope();
if (scope == null || Dependent.class.equals(scope)) {
- creatonalContexts.put(beanInstance, creationalContext);
+ creationalContexts.put(beanInstance, creationalContext);
}
}
@@ -262,9 +267,27 @@ public class WebContext {
}
public void destroy(final Object o) {
- final CreationalContext<?> ctx = creatonalContexts.remove(o);
+ final CreationalContext<?> ctx = creationalContexts.remove(o);
if (ctx != null) {
ctx.release();
}
}
+
+ public static class Instance {
+ private final Object value;
+ private final CreationalContext<?> cc;
+
+ public Instance(final Object value, final CreationalContext<?> cc) {
+ this.value = value;
+ this.cc = cc;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public CreationalContext<?> getCreationalContext() {
+ return cc;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/59e366a8/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
index 506bd00..3a4540e 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
@@ -25,6 +25,7 @@ import org.apache.webbeans.exception.WebBeansCreationException;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.naming.NamingException;
+import javax.servlet.ServletContext;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -40,6 +41,10 @@ public class JavaeeInstanceManager implements InstanceManager {
this.webContext = webContext;
}
+ public ServletContext getServletContext() {
+ return webContext == null ? null : webContext.getServletContext();
+ }
+
@Override
public Object newInstance(final Class<?> clazz) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException {
try {
@@ -51,6 +56,16 @@ public class JavaeeInstanceManager implements InstanceManager {
}
}
+ public WebContext.Instance newWeakableInstance(final Class<?> clazz) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException {
+ try {
+ final WebContext.Instance object = webContext.newWeakableInstance(clazz);
+ postConstruct(object.getValue(), clazz);
+ return object;
+ } catch (final OpenEJBException | WebBeansCreationException | WebBeansConfigurationException e) {
+ throw (InstantiationException) new InstantiationException(e.getMessage()).initCause(e);
+ }
+ }
+
@Override
public Object newInstance(final String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException {
final ClassLoader classLoader = webContext.getClassLoader();
@@ -178,5 +193,4 @@ public class JavaeeInstanceManager implements InstanceManager {
preDestroy.setAccessible(accessibility);
}
}
-
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/59e366a8/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
index 357a912..7e2e410 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
@@ -63,6 +63,13 @@ import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.web.context.WebConversationFilter;
import org.apache.xbean.finder.IAnnotationFinder;
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.ws.rs.core.Application;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -83,9 +90,6 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import javax.servlet.ServletContainerInitializer;
-import javax.servlet.http.HttpServlet;
-import javax.ws.rs.core.Application;
public class OpenEJBContextConfig extends ContextConfig {
private static Logger logger = Logger.getInstance(LogCategory.OPENEJB, OpenEJBContextConfig.class);
@@ -427,6 +431,32 @@ public class OpenEJBContextConfig extends ContextConfig {
final ClassLoader classLoader = context.getLoader().getClassLoader();
+ try {
+ classLoader.loadClass("org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator");
+ context.addServletContainerInitializer(new ServletContainerInitializer() {
+ @Override
+ public void onStartup(final Set<Class<?>> c, final ServletContext ctx) throws ServletException {
+ ctx.addListener(new ServletContextListener() {
+ @Override
+ public void contextInitialized(final ServletContextEvent sce) {
+ //no -op
+ }
+
+ @Override
+ public void contextDestroyed(final ServletContextEvent sce) { // ensure we cleanup our "eviction" processes
+ try {
+ org.apache.tomee.catalina.websocket.JavaEEDefaultServerEnpointConfigurator.unregisterProcesses(sce.getServletContext());
+ } catch (final Throwable th) {
+ // no-op
+ }
+ }
+ });
+ }
+ }, null);
+ } catch (final Throwable noWebSocket) {
+ // no-op: ok
+ }
+
// add myfaces auto-initializer if mojarra is not present
try {
classLoader.loadClass("com.sun.faces.context.SessionMap");
http://git-wip-us.apache.org/repos/asf/tomee/blob/59e366a8/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
index 1b672b6..17fd006 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappClassLoader.java
@@ -430,6 +430,21 @@ public class TomEEWebappClassLoader extends ParallelWebappClassLoader {
}
return Collections.enumeration(list);
}
+ if ("META-INF/services/javax.websocket.ContainerProvider".equals(name)) {
+ final Collection<URL> list = new ArrayList<>(Collections.list(super.getResources(name)));
+ final Iterator<URL> it = list.iterator();
+ while (it.hasNext()) {
+ final URL next = it.next();
+ final File file = Files.toFile(next);
+ if (!file.isFile() && NewLoaderLogic.skip(next)) {
+ it.remove();
+ }
+ }
+ if (list.size() == 1) {
+ return Collections.enumeration(list);
+ }
+ return Collections.enumeration(list);
+ }
return URLClassLoaderFirst.filterResources(name, super.getResources(name));
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/59e366a8/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
index 34df1dc..6613c70 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
@@ -16,14 +16,51 @@
*/
package org.apache.tomee.catalina.websocket;
+import org.apache.openejb.core.WebContext;
import org.apache.openejb.loader.SystemInstance;
import org.apache.tomcat.InstanceManager;
+import org.apache.tomcat.websocket.BackgroundProcess;
+import org.apache.tomcat.websocket.BackgroundProcessManager;
+import org.apache.tomcat.websocket.WsWebSocketContainer;
+import org.apache.tomcat.websocket.pojo.PojoEndpointBase;
+import org.apache.tomcat.websocket.server.Constants;
import org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator;
+import org.apache.tomee.catalina.JavaeeInstanceManager;
import org.apache.tomee.catalina.TomcatWebAppBuilder;
+import javax.servlet.ServletContext;
+import javax.websocket.Endpoint;
+import javax.websocket.Session;
+import javax.websocket.WebSocketContainer;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.LinkedList;
import java.util.Map;
+import java.util.Set;
public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpointConfigurator {
+ private static final String BG_PROCESSES_LIST = JavaEEDefaultServerEnpointConfigurator.class.getName() + ".bgProcesses";
+
+ // for websocket eviction
+ private static final Field END_POINT_SESSION_MAP_LOCK;
+ private static final Field ENDPOINT_SESSION_MAP;
+ private static final Method GET_POJO;
+ static {
+ try {
+ ENDPOINT_SESSION_MAP = WsWebSocketContainer.class.getDeclaredField("endpointSessionMap");
+ ENDPOINT_SESSION_MAP.setAccessible(true);
+ END_POINT_SESSION_MAP_LOCK = WsWebSocketContainer.class.getDeclaredField("endPointSessionMapLock");
+ END_POINT_SESSION_MAP_LOCK.setAccessible(true);
+
+ GET_POJO = PojoEndpointBase.class.getDeclaredMethod("getPojo");
+ GET_POJO.setAccessible(true);
+ } catch (final Exception e) {
+ throw new IllegalStateException("Toncat not compatible with tomee", e);
+ }
+ }
+
private final Map<ClassLoader, InstanceManager> instanceManagers;
public JavaEEDefaultServerEnpointConfigurator() {
@@ -50,7 +87,38 @@ public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpoin
}
try {
- return clazz.cast(instanceManager.newInstance(clazz));
+ final Object instance;
+ if (JavaeeInstanceManager.class.isInstance(instanceManager)) {
+ final JavaeeInstanceManager javaeeInstanceManager = JavaeeInstanceManager.class.cast(instanceManager);
+ final WebContext.Instance cdiInstance = javaeeInstanceManager.newWeakableInstance(clazz);
+ instance = cdiInstance.getValue();
+ if (cdiInstance.getCreationalContext() != null) { // TODO: if we manage to have better listeners on tomcat we can use it rather than it
+ final ServletContext sc = javaeeInstanceManager.getServletContext();
+ if (sc != null) {
+ Collection<CdiCleanUpBackgroundProcess> processes;
+ synchronized (sc) {
+ processes = (Collection<CdiCleanUpBackgroundProcess>) sc.getAttribute(BG_PROCESSES_LIST);
+ if (processes == null) {
+ processes = new LinkedList<>();
+ sc.setAttribute(BG_PROCESSES_LIST, processes);
+ }
+ }
+
+ final WebSocketContainer wsc = WebSocketContainer.class.cast(sc.getAttribute(Constants.SERVER_CONTAINER_SERVLET_CONTEXT_ATTRIBUTE));
+ final Object lock = END_POINT_SESSION_MAP_LOCK.get(wsc);
+ if (wsc != null && WsWebSocketContainer.class.isInstance(wsc)) {
+ final CdiCleanUpBackgroundProcess process = new CdiCleanUpBackgroundProcess(wsc, cdiInstance, lock);
+ synchronized (processes) {
+ processes.add(process);
+ }
+ BackgroundProcessManager.getInstance().register(process);
+ }
+ }
+ }
+ } else {
+ instance = instanceManager.newInstance(clazz);
+ }
+ return clazz.cast(instance);
} catch (final Exception e) {
if (InstantiationException.class.isInstance(e)) {
throw InstantiationException.class.cast(e);
@@ -58,4 +126,100 @@ public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpoin
throw new InstantiationException(e.getMessage());
}
}
+
+ public static void unregisterProcesses(final ServletContext sc) { // no sync needed at this point - no more "runtime"
+ final Collection<CdiCleanUpBackgroundProcess> processes = (Collection<CdiCleanUpBackgroundProcess>) sc.getAttribute(BG_PROCESSES_LIST);
+ if (processes == null) {
+ return;
+ }
+ for (final CdiCleanUpBackgroundProcess p : processes) {
+ try {
+ p.stop();
+ } catch (final RuntimeException e) {
+ // no-op
+ }
+ }
+ }
+
+ private static class CdiCleanUpBackgroundProcess implements BackgroundProcess {
+ private volatile int period = 1; // 1s by default
+ private volatile int acceptRetries = 3; // in case there is latency between this call and registerSession()
+ private volatile Set<Session> sessions;
+ private volatile boolean stopped;
+
+ private final WebSocketContainer container;
+ private final Object lock;
+ private final WebContext.Instance cdiInstance;
+
+ private CdiCleanUpBackgroundProcess(final WebSocketContainer wsc, final WebContext.Instance cdiInstance, final Object lock) {
+ this.container = wsc;
+ this.cdiInstance = cdiInstance;
+ this.lock = lock;
+ }
+
+ @Override
+ public void backgroundProcess() {
+ if (!hasSession() && --acceptRetries > 0) {
+ stop();
+ }
+ }
+
+ @Override
+ public void setProcessPeriod(final int period) {
+ this.period = period;
+ }
+
+ @Override
+ public int getProcessPeriod() {
+ return period;
+ }
+
+ private boolean hasSession() {
+ try {
+ if (sessions == null) { // needs to be lazy cause tomcat register sessions after
+ final Map<Endpoint, Set<Session>> sessionsByEndpoint = (Map<Endpoint, Set<Session>>) ENDPOINT_SESSION_MAP.get(container);
+ if (sessionsByEndpoint != null) { // find sessions
+ synchronized (lock) {
+ for (final Map.Entry<Endpoint, Set<Session>> e : sessionsByEndpoint.entrySet()) {
+ if (e.getKey() == cdiInstance.getValue()) {
+ sessions = e.getValue();
+ break;
+ }
+ if (PojoEndpointBase.class.isInstance(e.getKey())) {
+ try {
+ final Object pojo = GET_POJO.invoke(e.getKey());
+ if (pojo == cdiInstance.getValue()) {
+ sessions = e.getValue();
+ break;
+ }
+ } catch (final InvocationTargetException e1) {
+ // no-op
+ }
+ }
+ }
+ }
+ }
+ }
+
+ synchronized (lock) {
+ return sessions != null && !sessions.isEmpty();
+ }
+ } catch (final IllegalAccessException e) {
+ // no-op
+ }
+ return false;
+ }
+
+ public void stop() {
+ if (stopped) {
+ return;
+ }
+ stopped = true;
+ try {
+ cdiInstance.getCreationalContext().release();
+ } finally {
+ BackgroundProcessManager.getInstance().unregister(this);
+ }
+ }
+ }
}
[2/8] tomee git commit: better handling of creational contexts for
web components
Posted by an...@apache.org.
better handling of creational contexts for web components
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3035c836
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3035c836
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3035c836
Branch: refs/heads/tomee-7.0.0-M1
Commit: 3035c83604755cacf8073d6cbcbd0992bd6ddcf9
Parents: 59e366a
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Nov 2 10:22:16 2015 -0800
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Mon Nov 2 10:22:16 2015 -0800
----------------------------------------------------------------------
.../main/java/org/apache/openejb/core/WebContext.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/3035c836/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
index 55d98c1..073be91 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
@@ -25,7 +25,6 @@ import org.apache.openejb.cdi.ConstructorInjectionBean;
import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.config.WebBeansContext;
-import javax.enterprise.context.Dependent;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.naming.Context;
@@ -132,7 +131,7 @@ public class WebContext {
public <T> Instance newWeakableInstance(final Class<T> beanClass) throws OpenEJBException {
final WebBeansContext webBeansContext = getWebBeansContext();
final ConstructorInjectionBean<Object> beanDefinition = getConstructorInjectionBean(beanClass, webBeansContext);
- final CreationalContext<Object> creationalContext;
+ CreationalContext<Object> creationalContext;
final Object o;
if (webBeansContext == null) {
creationalContext = null;
@@ -155,6 +154,9 @@ public class WebContext {
if (webBeansContext != null) {
final InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
bean.getInjectionTarget().inject(beanInstance, creationalContext);
+ if (shouldBeReleased(bean.getScope())) {
+ creationalContexts.put(beanInstance, creationalContext);
+ }
}
return new Instance(beanInstance, creationalContext);
}
@@ -229,9 +231,7 @@ public class WebContext {
final InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
bean.getInjectionTarget().inject(beanInstance, creationalContext);
- // if the bean is dependent simply cleanup the creational context once it is created
- final Class<? extends Annotation> scope = beanDefinition.getScope();
- if (scope == null || Dependent.class.equals(scope)) {
+ if (shouldBeReleased(beanDefinition.getScope())) {
creationalContexts.put(beanInstance, creationalContext);
}
}
@@ -242,6 +242,10 @@ public class WebContext {
}
}
+ private boolean shouldBeReleased(final Class<? extends Annotation> scope) {
+ return scope == null || !getWebBeansContext().getBeanManagerImpl().isNormalScope(scope);
+ }
+
public void setBindings(final Map<String, Object> bindings) {
this.bindings = bindings;
}
[8/8] tomee git commit: Merge remote-tracking branch
'refs/remotes/origin/master' into tomee-7.0.0-M1
Posted by an...@apache.org.
Merge remote-tracking branch 'refs/remotes/origin/master' into tomee-7.0.0-M1
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/bcb8bf03
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/bcb8bf03
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/bcb8bf03
Branch: refs/heads/tomee-7.0.0-M1
Commit: bcb8bf032bad305ad4d30d7090fdd5d506db69a6
Parents: c99a184 93d2cc0
Author: andygumbrecht@apache.org <an...@gmx.de>
Authored: Mon Nov 2 23:19:16 2015 +0100
Committer: andygumbrecht@apache.org <an...@gmx.de>
Committed: Mon Nov 2 23:19:16 2015 +0100
----------------------------------------------------------------------
.../arquillian/remote/RemoteTomEEContainer.java | 8 +++++++-
.../arquillian/webapp/TomEEWebappContainer.java | 5 ++++-
.../openejb/maven/plugin/AbstractCommandMojo.java | 3 ++-
.../openejb/maven/plugin/UpdatableTomEEMojo.java | 4 ++++
.../tomee/catalina/GlobalListenerSupport.java | 2 +-
.../org/apache/tomee/catalina/TomcatLoader.java | 1 -
.../tomee/jul/handler/rotating/PerfRunner.java | 16 ++++++++++++++++
7 files changed, 34 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[6/8] tomee git commit: TOMEE-1650 avoid too weak defaults for remote
ejbs
Posted by an...@apache.org.
TOMEE-1650 avoid too weak defaults for remote ejbs
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f244ed17
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f244ed17
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f244ed17
Branch: refs/heads/tomee-7.0.0-M1
Commit: f244ed1769d6968df5413394647fb764f320054f
Parents: 7f4526a
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Nov 2 12:11:59 2015 -0800
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Mon Nov 2 12:11:59 2015 -0800
----------------------------------------------------------------------
.../apache/tomee/arquillian/remote/RemoteTomEEContainer.java | 8 +++++++-
.../apache/tomee/arquillian/webapp/TomEEWebappContainer.java | 5 ++++-
.../org/apache/openejb/maven/plugin/AbstractCommandMojo.java | 3 ++-
.../org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java | 4 ++++
.../org/apache/tomee/catalina/GlobalListenerSupport.java | 2 +-
.../main/java/org/apache/tomee/catalina/TomcatLoader.java | 1 -
6 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java b/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
index ce953f7..110e113 100644
--- a/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
+++ b/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
@@ -154,7 +154,11 @@ public class RemoteTomEEContainer extends TomEEContainer<RemoteTomEEConfiguratio
opts = opts.trim();
}
if (opts == null || opts.isEmpty()) {
- return Arrays.asList("-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false", ARQUILLIAN_FILTER);
+ return Arrays.asList(
+ "-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false",
+ ARQUILLIAN_FILTER,
+ "-Dopenejb.system.apps=true", "-Dtomee.remote.support=true"
+ );
}
final List<String> splitOnSpace = new ArrayList<String>();
@@ -168,6 +172,8 @@ public class RemoteTomEEContainer extends TomEEContainer<RemoteTomEEConfiguratio
splitOnSpace.add("-Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false");
}
splitOnSpace.add(ARQUILLIAN_FILTER);
+ splitOnSpace.add("-Dopenejb.system.apps=true");
+ splitOnSpace.add("-Dtomee.remote.support=true");
return splitOnSpace;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java b/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
index b7cf46a..90ca223 100644
--- a/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
+++ b/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
@@ -173,7 +173,10 @@ public class TomEEWebappContainer extends TomEEContainer<TomEEWebappConfiguratio
container = new RemoteServer();
container.setPortStartup(httpPort);
- container.start(Arrays.asList("-Dorg.apache.openejb.servlet.filters=" + ArquillianFilterRunner.class.getName() + "=" + ServletMethodExecutor.ARQUILLIAN_SERVLET_MAPPING), "start", true);
+ container.start(Arrays.asList(
+ "-Dopenejb.system.apps=true",
+ "-Dtomee.remote.support=true",
+ "-Dorg.apache.openejb.servlet.filters=" + ArquillianFilterRunner.class.getName() + "=" + ServletMethodExecutor.ARQUILLIAN_SERVLET_MAPPING), "start", true);
container.killOnExit();
} catch (final Exception e) {
throw new LifecycleException("Unable to start remote container", e);
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java
----------------------------------------------------------------------
diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java
index 6aa3489..4e0f09e 100644
--- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java
+++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java
@@ -46,7 +46,8 @@ public abstract class AbstractCommandMojo extends AbstractAddressMojo {
try {
return new InitialContext(props).lookup(name);
} catch (final Exception e) {
- throw new TomEEException(e.getMessage(), e);
+ throw new TomEEException("Not able to execute " + getClass().getSimpleName() +
+ ", maybe add -Dopenejb.system.apps=true -Dtomee.remote.support=true to tomee", e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java
----------------------------------------------------------------------
diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java
index 7b6e28f..63147cc 100644
--- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java
+++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java
@@ -104,6 +104,10 @@ public abstract class UpdatableTomEEMojo extends AbstractTomEEMojo {
s.getExtensions().addAll(s.getUpdateOnlyExtenions());
if (reloadOnUpdate) {
deployOpenEjbApplication = true;
+ if (systemVariables == null) {
+ systemVariables = new HashMap<>();
+ systemVariables.put("tomee.remote.support", "true");
+ }
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java
index c867689..0bdf9cb 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/GlobalListenerSupport.java
@@ -44,7 +44,7 @@ import java.util.Map;
* @version $Rev$ $Date$
*/
public class GlobalListenerSupport implements PropertyChangeListener, LifecycleListener {
- private static final boolean REMOTE_SUPPORT = SystemInstance.get().getOptions().get("tomee.remote.support", true);
+ private static final boolean REMOTE_SUPPORT = SystemInstance.get().getOptions().get("tomee.remote.support", false);
/**
* The LifecycleEvent type for the "component init" event.
http://git-wip-us.apache.org/repos/asf/tomee/blob/f244ed17/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
index aaec6ab..06cafe9 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java
@@ -130,7 +130,6 @@ public class TomcatLoader implements Loader {
}
public void initDefaults(final Properties properties) {
- setIfNull(properties, "openejb.system.apps", "true");
setIfNull(properties, "openejb.deployments.classpath", "false");
setIfNull(properties, "openejb.deployments.classpath.filter.systemapps", "false");
[7/8] tomee git commit: RAT
Posted by an...@apache.org.
RAT
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/93d2cc0f
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/93d2cc0f
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/93d2cc0f
Branch: refs/heads/tomee-7.0.0-M1
Commit: 93d2cc0f75e3f66e4ea8212c702df35a3bd7e6d8
Parents: f244ed1
Author: andygumbrecht@apache.org <an...@gmx.de>
Authored: Mon Nov 2 23:18:29 2015 +0100
Committer: andygumbrecht@apache.org <an...@gmx.de>
Committed: Mon Nov 2 23:18:29 2015 +0100
----------------------------------------------------------------------
.../tomee/jul/handler/rotating/PerfRunner.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/93d2cc0f/tomee/tomee-juli/src/test/java/org/apache/tomee/jul/handler/rotating/PerfRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-juli/src/test/java/org/apache/tomee/jul/handler/rotating/PerfRunner.java b/tomee/tomee-juli/src/test/java/org/apache/tomee/jul/handler/rotating/PerfRunner.java
index c4fd956..5158182 100644
--- a/tomee/tomee-juli/src/test/java/org/apache/tomee/jul/handler/rotating/PerfRunner.java
+++ b/tomee/tomee-juli/src/test/java/org/apache/tomee/jul/handler/rotating/PerfRunner.java
@@ -1,3 +1,19 @@
+/*
+ * 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.tomee.jul.handler.rotating;
import org.apache.juli.OneLineFormatter;
[5/8] tomee git commit: PMD
Posted by an...@apache.org.
PMD
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/7f4526a0
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/7f4526a0
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/7f4526a0
Branch: refs/heads/tomee-7.0.0-M1
Commit: 7f4526a0036215ed6ba9d78a39e004f204f69ebe
Parents: 3035c83
Author: andygumbrecht@apache.org <an...@gmx.de>
Authored: Mon Nov 2 20:04:54 2015 +0100
Committer: andygumbrecht@apache.org <an...@gmx.de>
Committed: Mon Nov 2 20:04:54 2015 +0100
----------------------------------------------------------------------
.../catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/7f4526a0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
index 6613c70..f73b80f 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
@@ -141,7 +141,7 @@ public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpoin
}
}
- private static class CdiCleanUpBackgroundProcess implements BackgroundProcess {
+ private static final class CdiCleanUpBackgroundProcess implements BackgroundProcess {
private volatile int period = 1; // 1s by default
private volatile int acceptRetries = 3; // in case there is latency between this call and registerSession()
private volatile Set<Session> sessions;
[3/8] tomee git commit: Merge remote-tracking branch
'refs/remotes/origin/master' into tomee-7.0.0-M1
Posted by an...@apache.org.
Merge remote-tracking branch 'refs/remotes/origin/master' into tomee-7.0.0-M1
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6648975a
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6648975a
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6648975a
Branch: refs/heads/tomee-7.0.0-M1
Commit: 6648975a2a8421b7b4bfa676b710d475a84bd0f7
Parents: e99dbb7 3035c83
Author: andygumbrecht@apache.org <an...@gmx.de>
Authored: Mon Nov 2 19:54:17 2015 +0100
Committer: andygumbrecht@apache.org <an...@gmx.de>
Committed: Mon Nov 2 19:54:17 2015 +0100
----------------------------------------------------------------------
.../org/apache/openejb/core/WebContext.java | 51 ++++--
.../tomee/catalina/JavaeeInstanceManager.java | 16 +-
.../tomee/catalina/OpenEJBContextConfig.java | 36 +++-
.../tomee/catalina/TomEEWebappClassLoader.java | 15 ++
.../JavaEEDefaultServerEnpointConfigurator.java | 166 ++++++++++++++++++-
5 files changed, 267 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
[4/8] tomee git commit: PMD
Posted by an...@apache.org.
PMD
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c99a1843
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c99a1843
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c99a1843
Branch: refs/heads/tomee-7.0.0-M1
Commit: c99a1843269943f8ddb271758e215babac355bc4
Parents: 6648975
Author: andygumbrecht@apache.org <an...@gmx.de>
Authored: Mon Nov 2 20:03:53 2015 +0100
Committer: andygumbrecht@apache.org <an...@gmx.de>
Committed: Mon Nov 2 20:03:53 2015 +0100
----------------------------------------------------------------------
.../catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/c99a1843/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
index 6613c70..f73b80f 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/websocket/JavaEEDefaultServerEnpointConfigurator.java
@@ -141,7 +141,7 @@ public class JavaEEDefaultServerEnpointConfigurator extends DefaultServerEndpoin
}
}
- private static class CdiCleanUpBackgroundProcess implements BackgroundProcess {
+ private static final class CdiCleanUpBackgroundProcess implements BackgroundProcess {
private volatile int period = 1; // 1s by default
private volatile int acceptRetries = 3; // in case there is latency between this call and registerSession()
private volatile Set<Session> sessions;