openwebbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject 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...
Date Sun, 09 Feb 2014 22:23:28 GMT
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);



Mime
View raw message