You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2016/10/21 09:19:39 UTC

svn commit: r1765968 - 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-web/src/main/java/org/apache/webbeans/web/lifecycle/ webbean...

Author: rmannibucau
Date: Fri Oct 21 09:19:38 2016
New Revision: 1765968

URL: http://svn.apache.org/viewvc?rev=1765968&view=rev
Log:
allows to use a custom xbean filter to filter classes + exposing the finder from the web lifecycle

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-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.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=1765968&r1=1765967&r2=1765968&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 Fri Oct 21 09:19:38 2016
@@ -35,6 +35,7 @@ import org.apache.webbeans.util.UrlSet;
 import org.apache.webbeans.util.WebBeansUtil;
 import org.apache.xbean.finder.AnnotationFinder;
 import org.apache.xbean.finder.ClassLoaders;
+import org.apache.xbean.finder.filter.Filter;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
@@ -111,7 +112,8 @@ public abstract class AbstractMetaDataDi
             beanArchiveService = webBeansContext.getBeanArchiveService();
         }
 
-        archive = new CdiArchive(beanArchiveService, WebBeansUtil.getCurrentClassLoader(), getBeanDeploymentUrls());
+        final Filter userFilter = webBeansContext.getService(Filter.class);
+        archive = new CdiArchive(beanArchiveService, WebBeansUtil.getCurrentClassLoader(), getBeanDeploymentUrls(), userFilter);
         finder = new OwbAnnotationFinder(archive);
 
         return finder;

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=1765968&r1=1765967&r2=1765968&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 Fri Oct 21 09:19:38 2016
@@ -31,13 +31,15 @@ public class BeanArchiveFilter implement
 {
     private final BeanArchiveInformation beanArchiveInfo;
     private final boolean scanNone;
+    private final Filter userFilter;
 
     private List<String> urlClasses;
 
-    public BeanArchiveFilter(BeanArchiveInformation beanArchiveInfo, List<String> urlClasses)
+    public BeanArchiveFilter(BeanArchiveInformation beanArchiveInfo, List<String> urlClasses, Filter userFilter)
     {
         this.beanArchiveInfo = beanArchiveInfo;
         this.urlClasses = urlClasses;
+        this.userFilter = userFilter;
         BeanDiscoveryMode discoveryMode = beanArchiveInfo.getBeanDiscoveryMode();
 
         scanNone = BeanDiscoveryMode.NONE.equals(discoveryMode);
@@ -51,13 +53,13 @@ public class BeanArchiveFilter implement
             return false;
         }
 
-        if (beanArchiveInfo.isClassExcluded(name))
+        if ((userFilter != null && !userFilter.accept(name)) || beanArchiveInfo.isClassExcluded(name))
         {
             return false;
         }
 
-            urlClasses.add(name);
-            return true;
+        urlClasses.add(name);
+        return true;
     }
 
 }

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=1765968&r1=1765967&r2=1765968&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 Fri Oct 21 09:19:38 2016
@@ -24,6 +24,7 @@ import org.apache.xbean.finder.archive.A
 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;
@@ -51,7 +52,8 @@ public class CdiArchive implements Archi
 
     private final Archive delegate;
 
-    public CdiArchive(BeanArchiveService beanArchiveService, final ClassLoader loader, final Map<String, URL> urls)
+    public CdiArchive(BeanArchiveService beanArchiveService, final ClassLoader loader, final Map<String, URL> urls,
+                      final Filter userFilter)
     {
         final Collection<Archive> archives = new ArrayList<Archive>();
         for (final URL url : urls.values())
@@ -60,7 +62,7 @@ public class CdiArchive implements Archi
 
             BeanArchiveInformation beanArchiveInfo = beanArchiveService.getBeanArchiveInformation(url);
             final Archive archive = new FilteredArchive(ClasspathArchive.archive(loader, url),
-                    new BeanArchiveFilter(beanArchiveInfo, urlClasses));
+                    new BeanArchiveFilter(beanArchiveInfo, urlClasses, userFilter));
 
             classesByUrl.put(url.toExternalForm(), new FoundClasses(url, urlClasses, beanArchiveInfo));
             archives.add(archive);

Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java?rev=1765968&r1=1765967&r2=1765968&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java (original)
+++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/lifecycle/WebContainerLifecycle.java Fri Oct 21 09:19:38 2016
@@ -75,7 +75,6 @@ public final class WebContainerLifecycle
         this.logger = WebBeansLoggerFacade.getLogger(WebContainerLifecycle.class);
     }
 
-
     /**
      * {@inheritDoc}
      */

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=1765968&r1=1765967&r2=1765968&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 Fri Oct 21 09:19:38 2016
@@ -19,8 +19,8 @@
 package org.apache.webbeans.web.scanner;
 
 import org.apache.webbeans.corespi.scanner.AbstractMetaDataDiscovery;
+import org.apache.webbeans.corespi.scanner.xbean.OwbAnnotationFinder;
 import org.apache.webbeans.logger.WebBeansLoggerFacade;
-import org.apache.webbeans.spi.BeanArchiveService;
 import org.apache.webbeans.util.ExceptionUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
@@ -39,7 +39,6 @@ public class WebScannerService extends A
     private static final Logger logger = WebBeansLoggerFacade.getLogger(WebScannerService.class);
 
     protected ServletContext servletContext = null;
-    private BeanArchiveService beanArchiveService;
 
     public WebScannerService()
     {
@@ -62,6 +61,11 @@ public class WebScannerService extends A
         registerBeanArchives(loader);
     }
 
+    public OwbAnnotationFinder getFinder()
+    {
+        return finder;
+    }
+
     /**
      * Returns the web application class path if it contains
      * a beans.xml marker file.