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.