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/08/10 21:49:09 UTC

svn commit: r1617149 - in /tomee/tomee/trunk/container: openejb-core/src/main/java/org/apache/openejb/assembler/classic/ openejb-core/src/main/java/org/apache/openejb/cdi/ openejb-core/src/main/java/org/apache/openejb/config/ openejb-jee/src/main/java/...

Author: rmannibucau
Date: Sun Aug 10 19:49:09 2014
New Revision: 1617149

URL: http://svn.apache.org/r1617149
Log:
ensure we get cdi jar urls correctly for webapps

Added:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CompositeBeans.java
Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanInfoService.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.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/EjbJarInfoBuilder.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/FinderFactory.java
    tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java
    tomee/tomee/trunk/container/openejb-jee/src/test/java/org/apache/openejb/jee/cdi/BeansTest.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/BeansInfo.java Sun Aug 10 19:49:09 2014
@@ -46,4 +46,5 @@ public class BeansInfo extends InfoObjec
     public String version = "1.1";
     public String discoveryMode;
     public final Map<String, ExclusionInfo> excludes = new HashMap<>();
+    public final Map<URL, String> discoveryModeByUrl = new HashMap<>();
 }

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=1617149&r1=1617148&r2=1617149&view=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 Sun Aug 10 19:49:09 2014
@@ -183,6 +183,7 @@ public class CdiScanner implements Scann
             final BeanArchiveService beanArchiveService = webBeansContext.getBeanArchiveService();
             final boolean openejb = OpenEJBBeanInfoService.class.isInstance(beanArchiveService);
 
+            final Map<URL, String> discoveryModes = beans.discoveryModeByUrl;
             for (final Map.Entry<URL, List<String>> next : beans.managedClasses.entrySet()) {
                 final List<String> value = next.getValue();
 
@@ -190,7 +191,8 @@ public class CdiScanner implements Scann
                 final BeanArchiveService.BeanArchiveInformation information;
                 if (openejb) {
                     final OpenEJBBeanInfoService beanInfoService = OpenEJBBeanInfoService.class.cast(beanArchiveService);
-                    information = beanInfoService.createBeanArchiveInformation(beans, classLoader);
+                    information = beanInfoService.createBeanArchiveInformation(beans, classLoader, discoveryModes.get(key));
+                    // TODO: log a warn is discoveryModes.get(key) == null
                     beanInfoService.getBeanArchiveInfo().put(key, information);
                 } else {
                     information = beanArchiveService.getBeanArchiveInformation(key);
@@ -207,8 +209,12 @@ public class CdiScanner implements Scann
                         }
 
                         final Class clazz = load(name, classLoader);
+                        if (clazz == null) {
+                            continue;
+                        }
+
                         if (scanModeAnnotated) {
-                            if (clazz != null && isBean(clazz)) {
+                            if (isBean(clazz)) {
                                 classes.add(clazz);
                             }
                         } else {

Added: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CompositeBeans.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CompositeBeans.java?rev=1617149&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CompositeBeans.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/CompositeBeans.java Sun Aug 10 19:49:09 2014
@@ -0,0 +1,36 @@
+/*
+ * 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.jee.Beans;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlTransient;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+public class CompositeBeans extends Beans {
+    @XmlTransient
+    private final Map<URL, String> discoveryByUrl = new HashMap<>();
+
+    public Map<URL, String> getDiscoveryByUrl() {
+        return discoveryByUrl;
+    }
+}

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanInfoService.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanInfoService.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanInfoService.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBBeanInfoService.java Sun Aug 10 19:49:09 2014
@@ -33,8 +33,8 @@ import java.util.Set;
 public class OpenEJBBeanInfoService implements BeanArchiveService {
     private Map<URL, BeanArchiveInformation> beanArchiveInfo = new HashMap<>();
 
-    public void register(final URL url, final BeansInfo info, final ClassLoader loader) {
-        final DefaultBeanArchiveInformation information = createBeanArchiveInformation(info, loader);
+    public void register(final URL url, final BeansInfo info, final ClassLoader loader, final String mode) {
+        final DefaultBeanArchiveInformation information = createBeanArchiveInformation(info, loader, mode);
         beanArchiveInfo.put(url, information);
     }
 
@@ -42,14 +42,14 @@ public class OpenEJBBeanInfoService impl
         return beanArchiveInfo;
     }
 
-    public DefaultBeanArchiveInformation createBeanArchiveInformation(BeansInfo info, ClassLoader loader) {
+    public DefaultBeanArchiveInformation createBeanArchiveInformation(final BeansInfo info, final ClassLoader loader, final String mode) {
         if (info.version != null && !"1.0".equals(info.version) && info.discoveryMode == null) {
             throw new WebBeansConfigurationException("beans.xml with version 1.1 and higher must declare a bean-discovery-mode!");
         }
 
         final DefaultBeanArchiveInformation information = new DefaultBeanArchiveInformation();
         information.setVersion(info.version);
-        information.setBeanDiscoveryMode(info.discoveryMode == null ? BeanDiscoveryMode.ANNOTATED : BeanDiscoveryMode.valueOf(info.discoveryMode.trim().toUpperCase(Locale.ENGLISH)));
+        information.setBeanDiscoveryMode(mode == null ? BeanDiscoveryMode.ANNOTATED : BeanDiscoveryMode.valueOf(mode.trim().toUpperCase(Locale.ENGLISH)));
         information.setDecorators(info.decorators);
         information.setInterceptors(info.interceptors);
         information.getAlternativeClasses().addAll(info.alternativeClasses);

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=1617149&r1=1617148&r2=1617149&view=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 Sun Aug 10 19:49:09 2014
@@ -124,6 +124,7 @@ import org.apache.openejb.util.Join;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.SuperProperties;
+import org.apache.openejb.util.URLs;
 import org.apache.openejb.util.proxy.DynamicProxyImplFactory;
 import org.apache.webbeans.corespi.scanner.xbean.BeanArchiveFilter;
 import org.apache.xbean.finder.Annotated;
@@ -1632,19 +1633,10 @@ public class AnnotationDeployer implemen
             //  more classes than actually apply to CDI.  This can "pollute"
             //  the CDI class space and break injection points
 
-            /*
-            if (!(finder instanceof FinderFactory.ModuleLimitedFinder)) {
-                return finder.getAnnotatedClassNames();
-            }
-
-            if (!(delegate instanceof AnnotationFinder)) {
-                return finder.getAnnotatedClassNames();
-            }
-            */
-
             // force cast otherwise we would be broken
-            final IAnnotationFinder delegate = ((FinderFactory.ModuleLimitedFinder) finder).getDelegate();
-            final AnnotationFinder annotationFinder = (AnnotationFinder) delegate;
+            final IAnnotationFinder delegate = FinderFactory.ModuleLimitedFinder.class.isInstance(finder) ?
+                    FinderFactory.ModuleLimitedFinder.class.cast(finder).getDelegate() : finder;
+            final AnnotationFinder annotationFinder = AnnotationFinder.class.cast(delegate);
 
             final Archive archive = annotationFinder.getArchive();
             final Map<URL, List<String>> classes = new HashMap<>();
@@ -1669,6 +1661,26 @@ public class AnnotationDeployer implemen
 
         public static URL hasBeansXml(final URL url) {
             if (url.getPath().endsWith("WEB-INF/classes/")) {
+                {
+                    final File file = new File(URLs.toFile(url).getParent(), "beans.xml");
+                    if (file.exists()) {
+                        try {
+                            return file.toURI().toURL();
+                        } catch (final MalformedURLException e) {
+                            return url;
+                        }
+                    }
+                }
+                {
+                    final File file = new File(URLs.toFile(url), "classes/beans.xml");
+                    if (file.exists()) {
+                        try {
+                            return file.toURI().toURL();
+                        } catch (final MalformedURLException e) {
+                            return url;
+                        }
+                    }
+                }
                 return url;
             }
             if (url.getPath().endsWith("!/META-INF/beans.xml")) {

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=1617149&r1=1617148&r2=1617149&view=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 Sun Aug 10 19:49:09 2014
@@ -22,6 +22,7 @@ import org.apache.openejb.ClassLoaderUti
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.api.LocalClient;
 import org.apache.openejb.api.RemoteClient;
+import org.apache.openejb.cdi.CompositeBeans;
 import org.apache.openejb.classloader.ClassLoaderConfigurer;
 import org.apache.openejb.classloader.WebAppEnricher;
 import org.apache.openejb.config.event.BeforeDeploymentEvent;
@@ -76,6 +77,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -742,7 +744,7 @@ public class DeploymentLoader implements
             try {
                 descriptors = getDescriptors(classLoader, null);
             } catch (final IOException e) {
-                descriptors = new HashMap<String, URL>();
+                descriptors = new HashMap<>();
             }
         }
 
@@ -1043,54 +1045,54 @@ public class DeploymentLoader implements
         // parent returns nothing when calling getresources because we don't want here to be fooled by maven classloader
         final URLClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), new EmptyResourcesClassLoader());
 
-        final ArrayList<URL> xmls;
+        final List<URL> xmls = new LinkedList<>();
         try {
-            xmls = Collections.list(loader.getResources("META-INF/beans.xml"));
-            xmls.add((URL) webModule.getAltDDs().get("beans.xml"));
+            final URL e = (URL) webModule.getAltDDs().get("beans.xml");
+            if (e != null) { // first!
+                xmls.add(e);
+            }
+            xmls.addAll(Collections.list(loader.getResources("META-INF/beans.xml")));
         } catch (final IOException e) {
-
             return;
         }
 
-        Beans complete = null;
+        final CompositeBeans complete = new CompositeBeans();
         for (final URL url : xmls) {
             if (url == null) {
                 continue;
             }
-            complete = mergeBeansXml(complete, url);
+            mergeBeansXml(complete, url);
         }
-        if (complete != null) {
+        if (!complete.getDiscoveryByUrl().isEmpty()) {
             complete.removeDuplicates();
+            webModule.getAltDDs().put("beans.xml", complete);
         }
-
-        webModule.getAltDDs().put("beans.xml", complete);
     }
 
-    private Beans mergeBeansXml(final Beans current, final URL url) {
-        Beans returnValue = current;
+    private Beans mergeBeansXml(final CompositeBeans current, final URL url) {
         try {
             final Beans beans;
             try {
                 beans = ReadDescriptors.readBeans(url.openStream());
             } catch (final IOException e) {
-                return returnValue;
+                return current;
             }
 
-            if (current == null) {
-                returnValue = beans;
-            } else {
-                current.getAlternativeClasses().addAll(beans.getAlternativeClasses());
-                current.getAlternativeStereotypes().addAll(beans.getAlternativeStereotypes());
-                current.getDecorators().addAll(beans.getDecorators());
-                current.getInterceptors().addAll(beans.getInterceptors());
-                current.getScan().getExclude().addAll(beans.getScan().getExclude());
-            }
+            current.getAlternativeClasses().addAll(beans.getAlternativeClasses());
+            current.getAlternativeStereotypes().addAll(beans.getAlternativeStereotypes());
+            current.getDecorators().addAll(beans.getDecorators());
+            current.getInterceptors().addAll(beans.getInterceptors());
+            current.getScan().getExclude().addAll(beans.getScan().getExclude());
+
             // check is done here since later we lost the data of the origin
-            ReadDescriptors.checkDuplicatedByBeansXml(beans, returnValue);
+            ReadDescriptors.checkDuplicatedByBeansXml(beans, current);
+
+            final String beanDiscoveryMode = beans.getBeanDiscoveryMode();
+            current.getDiscoveryByUrl().put(url, beanDiscoveryMode == null ? "ALL" : beanDiscoveryMode);
         } catch (final OpenEJBException e) {
             logger.error("Unable to read beans.xml from: " + url.toExternalForm(), e);
         }
-        return returnValue;
+        return current;
     }
 
     private void addBeansXmls(final AppModule appModule) {
@@ -1105,15 +1107,15 @@ public class DeploymentLoader implements
             return;
         }
 
-        Beans complete = null;
+        final CompositeBeans complete = new CompositeBeans();
         for (final URL url : xmls) {
             if (url == null) {
                 continue;
             }
-            complete = mergeBeansXml(complete, url);
+            mergeBeansXml(complete, url);
         }
 
-        if (complete == null) {
+        if (complete.getDiscoveryByUrl().isEmpty()) {
             return;
         }
         complete.removeDuplicates();

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java Sun Aug 10 19:49:09 2014
@@ -47,6 +47,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.StatefulBeanInfo;
 import org.apache.openejb.assembler.classic.StatelessBeanInfo;
 import org.apache.openejb.assembler.classic.TimeoutInfo;
+import org.apache.openejb.cdi.CompositeBeans;
 import org.apache.openejb.jee.ActivationConfig;
 import org.apache.openejb.jee.ActivationConfigProperty;
 import org.apache.openejb.jee.ApplicationException;
@@ -257,6 +258,12 @@ public class EjbJarInfoBuilder {
             ejbJar.beans.duplicatedAlternativeStereotypes.addAll(beans.getDuplicatedAlternatives().getStereotypes());
             ejbJar.beans.duplicatedInterceptors.addAll(beans.getDuplicatedInterceptors());
             ejbJar.beans.duplicatedDecorators.addAll(beans.getDuplicatedDecorators());
+
+            if (CompositeBeans.class.isInstance(beans)) {
+                ejbJar.beans.discoveryModeByUrl.putAll(CompositeBeans.class.cast(beans).getDiscoveryByUrl());
+            } else {
+                ejbJar.beans.discoveryModeByUrl.put(null, beans.getBeanDiscoveryMode());
+            }
         }
 
         return ejbJar;

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java Sun Aug 10 19:49:09 2014
@@ -43,8 +43,8 @@ public class EjbModule extends Module im
     private OpenejbJar openejbJar;
     private Webservices webservices;
 
-    private final AtomicReference<IAnnotationFinder> finder = new AtomicReference<IAnnotationFinder>();
-    private final Set<String> watchedResources = new TreeSet<String>();
+    private final AtomicReference<IAnnotationFinder> finder = new AtomicReference<>();
+    private final Set<String> watchedResources = new TreeSet<>();
     private Beans beans;
     private boolean webapp;
 

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=1617149&r1=1617148&r2=1617149&view=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 Sun Aug 10 19:49:09 2014
@@ -21,7 +21,6 @@ import org.apache.openejb.OpenEJBRuntime
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.xbean.finder.Annotated;
 import org.apache.xbean.finder.AnnotationFinder;
-import org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder;
 import org.apache.xbean.finder.IAnnotationFinder;
 import org.apache.xbean.finder.UrlSet;
 import org.apache.xbean.finder.archive.Archive;
@@ -45,6 +44,7 @@ public class FinderFactory {
 
     private static final FinderFactory factory = new FinderFactory();
     public static final String FORCE_LINK = "openejb.finder.force.link";
+    private static volatile boolean MODULE_LIMITED = "true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.finder.module-scoped", "false"));
 
     private static FinderFactory get() {
         final FinderFactory factory = SystemInstance.get().getComponent(FinderFactory.class);
@@ -63,7 +63,7 @@ public class FinderFactory {
         final AnnotationFinder finder;
         if (module instanceof WebModule) {
             final WebModule webModule = (WebModule) module;
-            return newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())).link();
+            finder = newFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls())).link();
         } else if (module instanceof ConnectorModule) {
             final ConnectorModule connectorModule = (ConnectorModule) module;
             finder = newFinder(new ConfigurableClasspathArchive(connectorModule, connectorModule.getLibraries())).link();
@@ -97,7 +97,7 @@ public class FinderFactory {
             finder = new AnnotationFinder(new ClassesArchive());
         }
 
-        return new ModuleLimitedFinder(finder);
+        return MODULE_LIMITED ? new ModuleLimitedFinder(finder) : finder;
     }
 
     private static AnnotationFinder newFinder(final Archive archive) {
@@ -132,7 +132,7 @@ public class FinderFactory {
         }
     }
 
-    public static class ModuleLimitedFinder implements IAnnotationFinder, AutoCloseable {
+    public static class ModuleLimitedFinder implements IAnnotationFinder {
         private final IAnnotationFinder delegate;
 
         public ModuleLimitedFinder(final IAnnotationFinder delegate) {
@@ -260,13 +260,6 @@ public class FinderFactory {
             return delegate;
         }
 
-        @Override
-        public void close() {
-            if (AsynchronousInheritanceAnnotationFinder.class.isInstance(delegate)) {
-                AsynchronousInheritanceAnnotationFinder.class.cast(delegate).destroy();
-            }
-        }
-
         private abstract static class Predicate<T> {
             protected final List<String> accepted;
 
@@ -359,7 +352,7 @@ public class FinderFactory {
         }
     }
 
-    private static class OpenEJBAnnotationFinder extends AnnotationFinder {
+    public static class OpenEJBAnnotationFinder extends AnnotationFinder {
         private static final String[] JVM_SCANNING_CONFIG = SystemInstance.get().getProperty("openejb.scanning.xbean.jvm", "java.").split(",");
 
         public OpenEJBAnnotationFinder(final Archive archive) {

Modified: tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java (original)
+++ tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/Beans.java Sun Aug 10 19:49:09 2014
@@ -106,9 +106,6 @@ public class Beans {
     }
 
     public String getVersion() {
-        if (version == null) {
-            return "1.1";
-        }
         return version;
     }
 

Modified: tomee/tomee/trunk/container/openejb-jee/src/test/java/org/apache/openejb/jee/cdi/BeansTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/test/java/org/apache/openejb/jee/cdi/BeansTest.java?rev=1617149&r1=1617148&r2=1617149&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-jee/src/test/java/org/apache/openejb/jee/cdi/BeansTest.java (original)
+++ tomee/tomee/trunk/container/openejb-jee/src/test/java/org/apache/openejb/jee/cdi/BeansTest.java Sun Aug 10 19:49:09 2014
@@ -75,7 +75,7 @@ public class BeansTest {
     public void read11() throws Exception {
         final Beans b = read(
                 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-                        "<beans xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\">\n" +
+                        "<beans xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" version=\"1.1\">\n" +
                         "    <scan>\n" +
                         "        <exclude name=\"com.acme.swing.**\" />\n" +
                         "        <exclude name=\"com.acme.gwt.**\">\n" +