You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/11/28 17:01:45 UTC

[1/2] tomee git commit: trying to optimize our exclusion logic

Repository: tomee
Updated Branches:
  refs/heads/tomee-1.7.x 405827b8a -> 0a921ee65


trying to optimize our exclusion logic


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

Branch: refs/heads/tomee-1.7.x
Commit: 0a921ee6546f140654b28413dff5af4e069de591
Parents: d34f2cf
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Nov 28 15:37:58 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Nov 28 17:01:13 2014 +0100

----------------------------------------------------------------------
 .../apache/openejb/config/NewLoaderLogic.java   | 45 ++++++++++++--------
 .../openejb/config/NewLoaderLogicTest.java      | 34 +++++++++++++++
 2 files changed, 62 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/0a921ee6/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java b/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
index d3fc1fc..9170975 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
@@ -34,7 +34,6 @@ import org.apache.xbean.finder.filter.Filter;
 import org.apache.xbean.finder.filter.Filters;
 import org.apache.xbean.finder.filter.IncludeExcludeFilter;
 import org.apache.xbean.finder.filter.PatternFilter;
-import org.apache.xbean.finder.filter.PrefixFilter;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -54,6 +53,8 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
+import static java.util.Arrays.asList;
+
 /**
  * @version $Rev$ $Date$
  */
@@ -200,6 +201,14 @@ public class NewLoaderLogic {
         return false;
     }
 
+    public static boolean skip(final String name) {
+        getExclusions();
+        if (filter != null && filter.accept(name)) {
+            return true;
+        }
+        return false;
+    }
+
     public static UrlSet applyBuiltinExcludes(final UrlSet urlSet, final Filter includeFilter, final Filter excludeFilter) throws MalformedURLException {
         getExclusions(); // force init
 
@@ -294,12 +303,11 @@ public class NewLoaderLogic {
     @SuppressWarnings("unchecked")
     public static Filter getFilter() {
         if (filter == null) {
-            final List<Filter> filters = new ArrayList<Filter>();
-            for (final String s : getExclusions()) {
-                filters.add(new PrefixOrStringFilter(s));
+            synchronized (NewLoaderLogic.class) {
+                if (filter == null) {
+                    filter = new OptimizedExclusionFilter(getExclusions());
+                }
             }
-
-            filter = Filters.optimize(filters);
         }
         return filter;
     }
@@ -547,23 +555,26 @@ public class NewLoaderLogic {
 
     }
 
-    private static class PrefixOrStringFilter extends PrefixFilter {
-
-        protected final String simplePrefix;
+    private static class OptimizedExclusionFilter implements Filter {
+        private final Set<String> included = new HashSet<String>();
 
-        public PrefixOrStringFilter(final String s) {
-            super(s);
-            if (s.endsWith("-")) {
-                simplePrefix = s.substring(0, s.length() - 1);
-            } else {
-                simplePrefix = s;
+        public OptimizedExclusionFilter(final String[] exclusions) {
+            included.addAll(asList(exclusions));
+            for (final String e : exclusions) {
+                if (e.endsWith("-")) {
+                    included.add(e.substring(0, e.length() - 1) + ".jar");
+                }
             }
         }
 
         @Override
         public boolean accept(final String name) {
-            return super.accept(name)
-                || name.endsWith(".jar") && name.substring(0, name.length() - ".jar".length()).equals(simplePrefix);
+            for (int i = 1; i <= name.length(); i++) {
+                if (included.contains(name.substring(0, i))) {
+                    return true;
+                }
+            }
+            return false;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/0a921ee6/container/openejb-core/src/test/java/org/apache/openejb/config/NewLoaderLogicTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/NewLoaderLogicTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/NewLoaderLogicTest.java
new file mode 100644
index 0000000..cfa01bf
--- /dev/null
+++ b/container/openejb-core/src/test/java/org/apache/openejb/config/NewLoaderLogicTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.config;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class NewLoaderLogicTest {
+    @Test
+    public void ensureExclusions() throws Exception {
+        assertTrue(NewLoaderLogic.skip("openejb-core"));
+        assertTrue(NewLoaderLogic.skip("openejb-core.jar"));
+        assertTrue(NewLoaderLogic.skip("openejb-core-12345.jar"));
+        assertTrue(NewLoaderLogic.skip("tomee-catalina-12345.jar"));
+        assertFalse(NewLoaderLogic.skip("openejb-noexclude.jar"));
+        assertFalse(NewLoaderLogic.skip("business-foo-1.2.3.jar"));
+    }
+}


[2/2] tomee git commit: TOMEE-1460 supporting deployment as soap webservice of the same ejb multiple times

Posted by rm...@apache.org.
TOMEE-1460 supporting deployment as soap webservice of the same ejb multiple times


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

Branch: refs/heads/tomee-1.7.x
Commit: d34f2cfa08382a98151366e983d78b6970c80db7
Parents: 405827b
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Nov 28 14:35:59 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Nov 28 17:01:13 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/d34f2cfa/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
----------------------------------------------------------------------
diff --git a/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java b/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
index eb3d7f9..78b6be1 100644
--- a/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
+++ b/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
@@ -57,7 +57,7 @@ public class EjbWsContainer extends CxfWsContainer {
 
     @Override
     protected String getFakeUrl() {
-        return beanContext.getEjbName();
+        return beanContext.getEjbName().replace('/', '-') + "_ejb" + beanContext.hashCode();
     }
 
     protected ObjectName registerMBean() {