Great, got a doubt after months without touching it, thks :)
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



2014-02-10 8:09 GMT+01:00 Mark Struberg <[email protected]>:
> I also did test this on windows and it works.
> Reason is that thi are URL.toExternalPath, which always use forward slashes 
> on all platforms to my knowledge.
>
> Now we have no single new URL(...) anymore in our code.
>
> LieGrue,
> strub
>
>
>
>
>
> On Monday, 10 February 2014, 7:07, Romain Manni-Bucau <[email protected]> 
> wrote:
>
> Hi Mark
>>
>>Will it work on windows or /xxx will not match?
>>---------- Message transféré ----------
>>De : <[email protected]>
>>Date : 9 févr. 2014 23:23
>>Objet : svn commit: r1566452 - in /openwebbeans/trunk:
>>webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/
>>webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/
>>webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/ webbe...
>>À : <[email protected]>
>>
>>Author: struberg
>>Date: Sun Feb  9 22:23:28 2014
>>New Revision: 1566452
>>
>>URL: http://svn.apache.org/r1566452
>>Log:
>>OWB-928 improve scanning performance
>>
>>We now take the annotation information from ASM and don't do a
>>loadClass...getAnnotations anymore
>>
>>Added:
>>
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/OwbAnnotationFinder.java
>>Modified:
>>
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
>>
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/BeanArchiveFilter.java
>>
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/CdiArchive.java
>>
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/OpenWebBeansTestMetaDataDiscoveryService.java
>>
>>openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/scanner/WebScannerService.java
>>
>>Modified:
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java?rev=1566452&r1=1566451&r2=1566452&view=diff
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
>>(original)
>>+++
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
>>Sun Feb  9 22:23:28 2014
>>@@ -23,10 +23,12 @@ import org.apache.webbeans.config.OWBLog
>>import org.apache.webbeans.config.OpenWebBeansConfiguration;
>>import org.apache.webbeans.config.WebBeansContext;
>>import org.apache.webbeans.corespi.scanner.xbean.CdiArchive;
>>+import org.apache.webbeans.corespi.scanner.xbean.OwbAnnotationFinder;
>>import org.apache.webbeans.exception.WebBeansDeploymentException;
>>import org.apache.webbeans.logger.WebBeansLoggerFacade;
>>import org.apache.webbeans.spi.BDABeansXmlScanner;
>>import org.apache.webbeans.spi.BeanArchiveService;
>>+import org.apache.webbeans.spi.BeanArchiveService.BeanDiscoveryMode;
>>import org.apache.webbeans.spi.ScannerService;
>>import org.apache.webbeans.util.ClassUtil;
>>import org.apache.webbeans.util.UrlSet;
>>@@ -35,6 +37,7 @@ import org.apache.xbean.finder.Annotatio
>>import org.apache.xbean.finder.ClassLoaders;
>>
>>import java.io.IOException;
>>+import java.lang.annotation.Annotation;
>>import java.net.URL;
>>import java.util.Collections;
>>import java.util.Enumeration;
>>@@ -75,11 +78,16 @@ public abstract class AbstractMetaDataDi
>>
>>     protected ClassLoader loader;
>>     protected CdiArchive archive;
>>-    protected AnnotationFinder finder;
>>+    protected OwbAnnotationFinder finder;
>>     protected boolean isBDAScannerEnabled = false;
>>     protected BDABeansXmlScanner bdaBeansXmlScanner;
>>+    protected final WebBeansContext webBeansContext;
>>
>>
>>+    protected AbstractMetaDataDiscovery()
>>+    {
>>+        webBeansContext = WebBeansContext.getInstance();
>>+    }
>>
>>     protected AnnotationFinder initFinder()
>>     {
>>@@ -88,14 +96,13 @@ public abstract class AbstractMetaDataDi
>>             return finder;
>>         }
>>
>>-        WebBeansContext webBeansContext = WebBeansContext.getInstance();
>>         if (beanArchiveService == null)
>>         {
>>             beanArchiveService = webBeansContext.getBeanArchiveService();
>>         }
>>
>>-        archive = new CdiArchive(webBeansContext.getBeanManagerImpl(),
>>beanArchiveService, WebBeansUtil.getCurrentClassLoader(),
>>getBeanDeploymentUrls());
>>-        finder = new AnnotationFinder(archive);
>>+        archive = new CdiArchive(beanArchiveService,
>>WebBeansUtil.getCurrentClassLoader(), getBeanDeploymentUrls());
>>+        finder = new OwbAnnotationFinder(archive);
>>
>>         return finder;
>>     }
>>@@ -250,6 +257,16 @@ public abstract class AbstractMetaDataDi
>>                 path.contains("/idea_rt") ||
>>                 path.contains("/eclipse") ||
>>                 path.contains("/jcommander") ||
>>+                path.contains("/tomcat") ||
>>+                path.contains("/catalina") ||
>>+                path.contains("/jasper") ||
>>+                path.contains("/jsp-api") ||
>>+                path.contains("/myfaces-") ||
>>+                path.contains("/servlet-api") ||
>>+                path.contains("/javax") ||
>>+                path.contains("/annotation-api") ||
>>+                path.contains("/el-api") ||
>>+                path.contains("/mojarra") ||
>>                 path.contains("/openwebbeans-"))
>>             {
>>                 //X TODO this should be much more actually
>>@@ -316,7 +333,7 @@ public abstract class AbstractMetaDataDi
>>         // and also scan the bean archive!
>>         if (beanArchiveService == null)
>>         {
>>-            WebBeansContext webBeansContext =
>>WebBeansContext.getInstance();
>>+
>>             beanArchiveService = webBeansContext.getBeanArchiveService();
>>         }
>>
>>@@ -330,36 +347,94 @@ public abstract class AbstractMetaDataDi
>>     public Set<Class<?>> getBeanClasses()
>>     {
>>         final Set<Class<?>> classSet = new HashSet<Class<?>>();
>>-        for(String str : archive.getClasses())
>>+        for (CdiArchive.FoundClasses foundClasses :
>>archive.classesByUrl().values())
>>         {
>>-            try
>>+            boolean scanModeAnnotated =
>>BeanDiscoveryMode.ANNOTATED.equals(foundClasses.getBeanArchiveInfo().getBeanDiscoveryMode());
>>+            for(String className : foundClasses.getClassNames())
>>             {
>>-                Class<?> clazz = ClassUtil.getClassFromName(str);
>>-                if (clazz != null)
>>+                try
>>                 {
>>+                    if (scanModeAnnotated)
>>+                    {
>>+                        // in this case we need to find out whether we
>>should keep this class in the Archive
>>+                        AnnotationFinder.ClassInfo classInfo =
>>finder.getClassInfo(className);
>>+                        if (classInfo == null ||
>>!isBeanAnnotatedClass(classInfo))
>>+                        {
>>+                            continue;
>>+                        }
>>+                    }
>>
>>-                    // try to provoke a NoClassDefFoundError exception
>>which is thrown
>>-                    // if some dependencies of the class are missing
>>-                    clazz.getDeclaredFields();
>>-                    clazz.getDeclaredMethods();
>>+                    Class<?> clazz = ClassUtil.getClassFromName(className);
>>+                    if (clazz != null)
>>+                    {
>>+
>>+                        // try to provoke a NoClassDefFoundError exception
>>which is thrown
>>+                        // if some dependencies of the class are missing
>>+                        clazz.getDeclaredFields();
>>+                        clazz.getDeclaredMethods();
>>
>>-                    // we can add this class cause it has been loaded
>>completely
>>-                    classSet.add(clazz);
>>+                        // we can add this class cause it has been loaded
>>completely
>>+                        classSet.add(clazz);
>>
>>+                    }
>>                 }
>>-            }
>>-            catch (NoClassDefFoundError e)
>>-            {
>>-                if (logger.isLoggable(Level.WARNING))
>>+                catch (NoClassDefFoundError e)
>>                 {
>>-                    logger.log(Level.WARNING, OWBLogConst.WARN_0018, new
>>Object[] { str, e.toString() });
>>+                    if (logger.isLoggable(Level.WARNING))
>>+                    {
>>+                        logger.log(Level.WARNING, OWBLogConst.WARN_0018,
>>new Object[] { className, e.toString() });
>>+                    }
>>                 }
>>             }
>>+
>>         }
>>
>>         return classSet;
>>     }
>>
>>+    /**
>>+     * This method is called for classes from bean archives with
>>+     * bean-discovery-mode 'annotated'.
>>+     *
>>+     * This method is intended to be overwritten in integration scenarios
>>and e.g.
>>+     * allows to add other criterias for keeping the class.
>>+     *
>>+     * @param classInfo
>>+     * @return true if this class should be kept and further get picked up
>>as CDI Bean
>>+     */
>>+    protected boolean isBeanAnnotatedClass(AnnotationFinder.ClassInfo
>>classInfo)
>>+    {
>>+        // check whether this class has 'scope' annotations or a stereotype
>>+        for (AnnotationFinder.AnnotationInfo annotationInfo :
>>classInfo.getAnnotations())
>>+        {
>>+            if (isBeanAnnotation(annotationInfo))
>>+            {
>>+                return true;
>>+            }
>>+        }
>>+        return false;
>>+    }
>>+
>>+    protected boolean isBeanAnnotation(AnnotationFinder.AnnotationInfo
>>annotationInfo)
>>+    {
>>+        String annotationName = annotationInfo.getName();
>>+
>>+        // TODO add caches
>>+
>>+        try
>>+        {
>>+            Class<? extends Annotation> annotationType = (Class<? extends
>>Annotation>) WebBeansUtil.getCurrentClassLoader().loadClass(annotationName);
>>+            boolean isBeanAnnotation =
>>webBeansContext.getBeanManagerImpl().isScope(annotationType);
>>+            isBeanAnnotation = isBeanAnnotation ||
>>webBeansContext.getBeanManagerImpl().isStereotype(annotationType);
>>+
>>+            return isBeanAnnotation;
>>+        }
>>+        catch (ClassNotFoundException e)
>>+        {
>>+            return false;
>>+        }
>>+    }
>>+
>>
>>     @Override
>>     public Set<URL> getBeanXmls()
>>
>>Modified:
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/BeanArchiveFilter.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/BeanArchiveFilter.java?rev=1566452&r1=1566451&r2=1566452&view=diff
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/BeanArchiveFilter.java
>>(original)
>>+++
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/BeanArchiveFilter.java
>>Sun Feb  9 22:23:28 2014
>>@@ -18,11 +18,8 @@
>>  */
>>package org.apache.webbeans.corespi.scanner.xbean;
>>
>>-import java.lang.annotation.Annotation;
>>import java.util.List;
>>-import java.util.Set;
>>
>>-import org.apache.webbeans.container.BeanManagerImpl;
>>import org.apache.webbeans.spi.BeanArchiveService.BeanArchiveInformation;
>>import org.apache.webbeans.spi.BeanArchiveService.BeanDiscoveryMode;
>>import org.apache.xbean.finder.filter.Filter;
>>@@ -32,28 +29,18 @@ import org.apache.xbean.finder.filter.Fi
>>  */
>>public class BeanArchiveFilter implements Filter
>>{
>>-    private final ClassLoader loader;
>>-    private final BeanManagerImpl beanManager;
>>     private final BeanArchiveInformation beanArchiveInfo;
>>-    private final boolean scanAll;
>>     private final boolean scanNone;
>>-    private final boolean scanAnnotated;
>>
>>     private List<String> urlClasses;
>>-    private Set<String> allClasses;
>>
>>-    public BeanArchiveFilter(ClassLoader loader, BeanManagerImpl
>>beanManager, BeanArchiveInformation beanArchiveInfo, List<String>
>>urlClasses, Set<String> allClasses)
>>+    public BeanArchiveFilter(BeanArchiveInformation beanArchiveInfo,
>>List<String> urlClasses)
>>     {
>>-        this.loader = loader;
>>-        this.beanManager = beanManager;
>>         this.beanArchiveInfo = beanArchiveInfo;
>>         this.urlClasses = urlClasses;
>>-        this.allClasses = allClasses;
>>         BeanDiscoveryMode discoveryMode =
>>beanArchiveInfo.getBeanDiscoveryMode();
>>
>>-        scanAll = BeanDiscoveryMode.ALL.equals(discoveryMode);
>>         scanNone = BeanDiscoveryMode.NONE.equals(discoveryMode);
>>-        scanAnnotated = BeanDiscoveryMode.ANNOTATED.equals(discoveryMode);
>>     }
>>
>>     @Override
>>@@ -69,51 +56,8 @@ public class BeanArchiveFilter implement
>>             return false;
>>         }
>>
>>-        if (scanAll)
>>-        {
>>-            urlClasses.add(name);
>>-            allClasses.add(name);
>>-            return true;
>>-        }
>>-
>>-        if (scanAnnotated)
>>-        {
>>-            try
>>-            {
>>-                Class clazz = Class.forName(name, false, loader);
>>-                if (!hasScopeAnnotation(clazz.getAnnotations()))
>>-                {
>>-                    return false;
>>-                }
>>-            }
>>-            catch (ClassNotFoundException cnfe)
>>-            {
>>-                // not a problem, just ignore this class
>>-                return false;
>>-            }
>>-            catch (NoClassDefFoundError ncdf)
>>-            {
>>-                // not a problem, just ignore this class
>>-                return false;
>>-            }
>>-
>>             urlClasses.add(name);
>>-            allClasses.add(name);
>>             return true;
>>-        }
>>-
>>-        return false;
>>     }
>>
>>-    private boolean hasScopeAnnotation(Annotation[] annotations)
>>-    {
>>-        for (Annotation annotation : annotations)
>>-        {
>>-            if (beanManager.isScope(annotation.annotationType()))
>>-            {
>>-                return true;
>>-            }
>>-        }
>>-        return false;
>>-    }
>>}
>>
>>Modified:
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/CdiArchive.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/CdiArchive.java?rev=1566452&r1=1566451&r2=1566452&view=diff
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/CdiArchive.java
>>(original)
>>+++
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/CdiArchive.java
>>Sun Feb  9 22:23:28 2014
>>@@ -18,14 +18,12 @@
>>  */
>>package org.apache.webbeans.corespi.scanner.xbean;
>>
>>-import org.apache.webbeans.container.BeanManagerImpl;
>>import org.apache.webbeans.spi.BeanArchiveService;
>>+import org.apache.webbeans.spi.BeanArchiveService.BeanArchiveInformation;
>>import org.apache.xbean.finder.archive.Archive;
>>-import org.apache.xbean.finder.archive.ClassesArchive;
>>import org.apache.xbean.finder.archive.ClasspathArchive;
>>import org.apache.xbean.finder.archive.CompositeArchive;
>>import org.apache.xbean.finder.archive.FilteredArchive;
>>-import org.apache.xbean.finder.filter.Filter;
>>
>>import java.io.IOException;
>>import java.io.InputStream;
>>@@ -33,11 +31,9 @@ import java.net.URL;
>>import java.util.ArrayList;
>>import java.util.Collection;
>>import java.util.HashMap;
>>-import java.util.HashSet;
>>import java.util.Iterator;
>>import java.util.List;
>>import java.util.Map;
>>-import java.util.Set;
>>
>>/**
>>  * this delegate pattern is interesting
>>@@ -53,45 +49,26 @@ public class CdiArchive implements Archi
>>      */
>>     private final Map<String, FoundClasses> classesByUrl = new
>>HashMap<String, FoundClasses>();
>>
>>-    private final Set<String> allClasses = new HashSet<String>();
>>     private final Archive delegate;
>>
>>-    public CdiArchive(BeanManagerImpl beanManager, BeanArchiveService
>>beanArchiveService, final ClassLoader loader, final Map<String, URL> urls)
>>+    public CdiArchive(BeanArchiveService beanArchiveService, final
>>ClassLoader loader, final Map<String, URL> urls)
>>     {
>>         final Collection<Archive> archives = new ArrayList<Archive>();
>>         for (final URL url : urls.values())
>>         {
>>             final List<String> urlClasses = new ArrayList<String>();
>>
>>-            BeanArchiveService.BeanArchiveInformation beanArchiveInfo =
>>beanArchiveService.getBeanArchiveInformation(url);
>>+            BeanArchiveInformation beanArchiveInfo =
>>beanArchiveService.getBeanArchiveInformation(url);
>>             final Archive archive = new
>>FilteredArchive(ClasspathArchive.archive(loader, url),
>>-                    new BeanArchiveFilter(loader, beanManager,
>>beanArchiveInfo, urlClasses, allClasses));
>>+                    new BeanArchiveFilter(beanArchiveInfo, urlClasses));
>>
>>-            classesByUrl.put(url.toExternalForm(), new FoundClasses(url,
>>urlClasses));
>>+            classesByUrl.put(url.toExternalForm(), new FoundClasses(url,
>>urlClasses, beanArchiveInfo));
>>             archives.add(archive);
>>         }
>>
>>         delegate = new CompositeArchive(archives);
>>     }
>>
>>-    public CdiArchive(final Collection<Class<?>> classList)
>>-    {
>>-        delegate = new FilteredArchive(new ClassesArchive(classList), new
>>Filter()
>>-        {
>>-            @Override
>>-            public boolean accept(final String name)
>>-            {
>>-                allClasses.add(name);
>>-                return true;
>>-            }
>>-        });
>>-    }
>>-
>>-    public Set<String> getClasses()
>>-    {
>>-        return allClasses;
>>-    }
>>-
>>     public Map<String, FoundClasses> classesByUrl()
>>     {
>>         return classesByUrl;
>>@@ -119,11 +96,13 @@ public class CdiArchive implements Archi
>>     {
>>         private URL url;
>>         private Collection<String> classNames;
>>+        private BeanArchiveInformation beanArchiveInfo;
>>
>>-        public FoundClasses(URL url, Collection<String> classNames)
>>+        public FoundClasses(URL url, Collection<String> classNames,
>>BeanArchiveInformation beanArchiveInfo)
>>         {
>>             this.url = url;
>>             this.classNames = classNames;
>>+            this.beanArchiveInfo = beanArchiveInfo;
>>         }
>>
>>         public URL getUrl()
>>@@ -131,6 +110,11 @@ public class CdiArchive implements Archi
>>             return url;
>>         }
>>
>>+        public BeanArchiveInformation getBeanArchiveInfo()
>>+        {
>>+            return beanArchiveInfo;
>>+        }
>>+
>>         public Collection<String> getClassNames()
>>         {
>>             return classNames;
>>
>>Added:
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/OwbAnnotationFinder.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/OwbAnnotationFinder.java?rev=1566452&view=auto
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/OwbAnnotationFinder.java
>>(added)
>>+++
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/xbean/OwbAnnotationFinder.java
>>Sun Feb  9 22:23:28 2014
>>@@ -0,0 +1,45 @@
>>+/*
>>+ * 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.webbeans.corespi.scanner.xbean;
>>+
>>+import org.apache.xbean.finder.AnnotationFinder;
>>+import org.apache.xbean.finder.archive.Archive;
>>+
>>+/**
>>+ * We just extend the default AnnotationFinder to get Access to the
>>original ClassInfo
>>+ * for not having to call loadClass so often...
>>+ */
>>+public class OwbAnnotationFinder extends AnnotationFinder
>>+{
>>+    public OwbAnnotationFinder(Archive archive, boolean
>>checkRuntimeAnnotation)
>>+    {
>>+        super(archive, checkRuntimeAnnotation);
>>+    }
>>+
>>+    public OwbAnnotationFinder(Archive archive)
>>+    {
>>+        super(archive);
>>+    }
>>+
>>+    public ClassInfo getClassInfo(String className)
>>+    {
>>+        return classInfos.get(className);
>>+    }
>>+
>>+}
>>
>>Modified:
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/OpenWebBeansTestMetaDataDiscoveryService.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/OpenWebBeansTestMetaDataDiscoveryService.java?rev=1566452&r1=1566451&r2=1566452&view=diff
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/OpenWebBeansTestMetaDataDiscoveryService.java
>>(original)
>>+++
>>openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/test/OpenWebBeansTestMetaDataDiscoveryService.java
>>Sun Feb  9 22:23:28 2014
>>@@ -19,14 +19,14 @@
>>package org.apache.webbeans.lifecycle.test;
>>
>>import org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery;
>>-import org.apache.webbeans.corespi.scanner.xbean.CdiArchive;
>>import org.apache.webbeans.exception.WebBeansDeploymentException;
>>import org.apache.webbeans.util.Asserts;
>>-import org.apache.xbean.finder.AnnotationFinder;
>>
>>import java.net.MalformedURLException;
>>import java.net.URL;
>>import java.util.Collection;
>>+import java.util.HashSet;
>>+import java.util.Set;
>>
>>/**
>>  * Used by each test.
>>@@ -35,15 +35,18 @@ import java.util.Collection;
>>  */
>>public class OpenWebBeansTestMetaDataDiscoveryService extends
>>AbstractMetaDataDiscovery
>>{
>>+
>>+    private Collection<Class<?>> classes;
>>+
>>     public OpenWebBeansTestMetaDataDiscoveryService()
>>     {
>>-
>>+        super();
>>     }
>>
>>     @Override
>>     protected void configure()
>>     {
>>-        //Nothing we scan
>>+        // Nothing to scan, we add all our stuff manually...
>>     }
>>
>>     /**
>>@@ -52,13 +55,15 @@ public class OpenWebBeansTestMetaDataDis
>>      */
>>     public void deployClasses(Collection<Class<?>> classes)
>>     {
>>-        if(classes != null)
>>-        {
>>-            archive = new CdiArchive(classes);
>>-            finder = new AnnotationFinder(archive);
>>-        }
>>+        this.classes = classes;
>>     }
>>-
>>+
>>+    @Override
>>+    public Set<Class<?>> getBeanClasses()
>>+    {
>>+        return new HashSet<Class<?>>(classes);
>>+    }
>>+
>>     /**
>>      * Those xmls will be scanned by container.
>>      * @param xmls beans xmls
>>@@ -91,6 +96,5 @@ public class OpenWebBeansTestMetaDataDis
>>
>>         addWebBeansXmlLocation(url);
>>     }
>>-
>>
>>}
>>
>>Modified:
>>openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/scanner/WebScannerService.java
>>URL:
>>http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/scanner/WebScannerService.java?rev=1566452&r1=1566451&r2=1566452&view=diff
>>==============================================================================
>>---
>>openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/scanner/WebScannerService.java
>>(original)
>>+++
>>openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/scanner/WebScannerService.java
>>Sun Feb  9 22:23:28 2014
>>@@ -18,14 +18,11 @@
>>  */
>>package org.apache.webbeans.web.scanner;
>>
>>-import org.apache.webbeans.config.WebBeansContext;
>>import org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery;
>>-import org.apache.webbeans.corespi.scanner.xbean.CdiArchive;
>>import org.apache.webbeans.logger.WebBeansLoggerFacade;
>>import org.apache.webbeans.spi.BeanArchiveService;
>>import org.apache.webbeans.util.ExceptionUtil;
>>import org.apache.webbeans.util.WebBeansUtil;
>>-import org.apache.xbean.finder.AnnotationFinder;
>>
>>import javax.servlet.ServletContext;
>>import java.net.MalformedURLException;
>>@@ -50,17 +47,6 @@ public class WebScannerService extends A
>>     }
>>
>>     @Override
>>-    protected AnnotationFinder initFinder()
>>-    {
>>-        WebBeansContext webbeansContext = WebBeansContext.getInstance();
>>-        beanArchiveService = webbeansContext.getBeanArchiveService();
>>-        archive = new CdiArchive(webbeansContext.getBeanManagerImpl(),
>>beanArchiveService, WebBeansUtil.getCurrentClassLoader(),
>>getBeanDeploymentUrls());
>>-        finder = new AnnotationFinder(archive);
>>-
>>-        return finder;
>>-    }
>>-
>>-    @Override
>>     public void init(Object context)
>>     {
>>         super.init(context);
>>
>>

Reply via email to