You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2018/04/18 15:50:29 UTC

[1/4] tomee git commit: TOMEE-1694 use tomcat destroy hook

Repository: tomee
Updated Branches:
  refs/heads/tomee-1.7.x f4b052cc6 -> 4456ff806


TOMEE-1694 use tomcat destroy hook


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/dbb84791
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/dbb84791
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/dbb84791

Branch: refs/heads/tomee-1.7.x
Commit: dbb84791b72485f410d388bbb9a46d4f3a72c58c
Parents: f4b052c
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Jan 18 22:01:49 2016 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Thu Mar 29 16:54:17 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/tomee/catalina/JavaeeInstanceManager.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/dbb84791/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 6318de8..3a8d6a7 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
@@ -43,6 +43,10 @@ public class JavaeeInstanceManager implements InstanceManager {
     @Override
     public Object newInstance(final Class<?> clazz) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException {
         try {
+            if ("org.apache.tomcat.websocket.server.WsHttpUpgradeHandler".equals(clazz.getName())) {
+                return clazz.newInstance();
+            }
+
             final Object object = webContext.newInstance(clazz);
             postConstruct(object, clazz);
             return object;


[3/4] tomee git commit: Multi catch

Posted by jg...@apache.org.
Multi catch


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e3db1c18
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e3db1c18
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e3db1c18

Branch: refs/heads/tomee-1.7.x
Commit: e3db1c18f52ac8d581381fbe040cd18c24999a4e
Parents: 532ee1b
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Fri Mar 30 21:56:23 2018 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Fri Mar 30 21:56:23 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/tomee/catalina/JavaeeInstanceManager.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/e3db1c18/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 9efedec..e751d12 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
@@ -223,7 +223,11 @@ public class JavaeeInstanceManager implements InstanceManager {
         private static Object unwrapWebSocketPojo(final Object o) {
             try {
                 return WEB_SOCKET_TYPES.getPojo == null ? o : WEB_SOCKET_TYPES.getPojo.invoke(o);
-            } catch (final IllegalAccessException | InvocationTargetException | NullPointerException e) {
+            } catch (final IllegalAccessException e) {
+                return o;
+            } catch (final InvocationTargetException e) {
+                return o;
+            } catch (final NullPointerException e) {
                 return o;
             }
         }


[2/4] tomee git commit: TOMEE-1694 use tomcat destroy hook

Posted by jg...@apache.org.
TOMEE-1694 use tomcat destroy hook


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/532ee1be
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/532ee1be
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/532ee1be

Branch: refs/heads/tomee-1.7.x
Commit: 532ee1be14c1c5ecad1ba8052a154dc9876ccafa
Parents: dbb8479
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Jan 18 19:50:16 2016 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Thu Mar 29 16:56:12 2018 +0100

----------------------------------------------------------------------
 .../tomee/catalina/JavaeeInstanceManager.java   | 45 +++++++++++++++++++-
 1 file changed, 43 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/532ee1be/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 3a8d6a7..9efedec 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
@@ -18,6 +18,7 @@ package org.apache.tomee.catalina;
 
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.core.WebContext;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.tomcat.InstanceManager;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
 import org.apache.webbeans.exception.WebBeansCreationException;
@@ -85,8 +86,17 @@ public class JavaeeInstanceManager implements InstanceManager {
         if (o == null) {
             return;
         }
-        preDestroy(o, o.getClass());
-        webContext.destroy(o);
+        final Object unwrapped = unwrap(o);
+        preDestroy(unwrapped, unwrapped.getClass());
+        webContext.destroy(unwrapped);
+        if (unwrapped != o) { // PojoEndpointServer, they create and track a cc so release it
+            webContext.destroy(o);
+        }
+    }
+
+    private Object unwrap(final Object o) {
+        return "org.apache.tomcat.websocket.pojo.PojoEndpointServer".equals(o.getClass().getName()) ?
+            WebSocketTypes.unwrapWebSocketPojo(o) : o;
     }
 
     public void inject(final Object o) {
@@ -187,4 +197,35 @@ public class JavaeeInstanceManager implements InstanceManager {
         }
     }
 
+    private static class WebSocketTypes { // extracted for lazy loading
+        private static final WebSocketTypes WEB_SOCKET_TYPES = new WebSocketTypes();
+        private final Method getPojo;
+
+        private WebSocketTypes() {
+            Method tmp;
+            try {
+                tmp = WebSocketTypes.class.getClassLoader()
+                    .loadClass("org.apache.tomcat.websocket.pojo.PojoEndpointBase")
+                    .getDeclaredMethod("getPojo");
+                tmp.setAccessible(true);
+            } catch (final NoSuchMethodException e) {
+                if ("true".equals(SystemInstance.get().getProperty("tomee.websocket.skip", "false"))) {
+                    tmp = null;
+                } else {
+                    throw new IllegalStateException(e);
+                }
+            } catch (final ClassNotFoundException e) {
+                tmp = null; // no websocket support
+            }
+            getPojo = tmp;
+        }
+
+        private static Object unwrapWebSocketPojo(final Object o) {
+            try {
+                return WEB_SOCKET_TYPES.getPojo == null ? o : WEB_SOCKET_TYPES.getPojo.invoke(o);
+            } catch (final IllegalAccessException | InvocationTargetException | NullPointerException e) {
+                return o;
+            }
+        }
+    }
 }


[4/4] tomee git commit: Checkstyle

Posted by jg...@apache.org.
Checkstyle


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4456ff80
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4456ff80
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4456ff80

Branch: refs/heads/tomee-1.7.x
Commit: 4456ff8065bdc4e9d36820186e69ab844f4697f1
Parents: e3db1c1
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Fri Mar 30 23:44:27 2018 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Fri Mar 30 23:44:27 2018 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/4456ff80/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 e751d12..65bb2b3 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
@@ -197,7 +197,7 @@ public class JavaeeInstanceManager implements InstanceManager {
         }
     }
 
-    private static class WebSocketTypes { // extracted for lazy loading
+    private static final class WebSocketTypes { // extracted for lazy loading
         private static final WebSocketTypes WEB_SOCKET_TYPES = new WebSocketTypes();
         private final Method getPojo;