[jboss-cvs] JBossAS SVN: r103414 - in projects/scanning/trunk: deployers/src/main/java/org/jboss/scanning/deployers/filter and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 1 07:31:15 EDT 2010
Author: alesj
Date: 2010-04-01 07:31:13 -0400 (Thu, 01 Apr 2010)
New Revision: 103414
Added:
projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/
projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java
projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/metadata/
projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/metadata/ScanningMetaDataDeployer.java
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractScanningMetaData.java
projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/
projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/FilterablePathEntry.java
projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java
projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java
projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/ScanningMetaData.java
Removed:
projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/ScanningMDFilter.java
Modified:
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java
projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java
projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningWithMetaDataTestCase.xml
Log:
Copy scanning metadata.
Copied: projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java (from rev 103411, projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java)
===================================================================
--- projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java (rev 0)
+++ projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/filter/ScanningDeploymentUnitFilter.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,88 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.scanning.deployers.filter;
+
+import org.jboss.classloading.spi.visitor.ResourceFilter;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.helpers.VFS2BaseBridgeDeploymentUnitFilter;
+import org.jboss.logging.Logger;
+import org.jboss.scanning.plugins.filter.ScanningMetaDataRecurseFilter;
+import org.jboss.scanning.plugins.filter.ScanningMetaDataResourceFilter;
+import org.jboss.scanning.spi.metadata.ScanningMetaData;
+
+/**
+ * ScanningMetaDataResourceFilter
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class ScanningDeploymentUnitFilter extends VFS2BaseBridgeDeploymentUnitFilter
+{
+ private Logger log = Logger.getLogger(getClass());
+
+ protected boolean doAccepts(DeploymentUnit unit)
+ {
+ ScanningMetaData smd = unit.getAttachment(ScanningMetaData.class);
+ if (smd != null)
+ {
+ // recurse
+ ResourceFilter recurse = createRecurseFilter(smd);
+ if (recurse != null)
+ {
+ ResourceFilter previousRecurse = unit.addAttachment(ResourceFilter.class.getName() + ".recurse", recurse, ResourceFilter.class);
+ if (previousRecurse != null)
+ log.debugf("Overridding previous recurse filter: %1s", previousRecurse);
+ }
+
+ // resource
+ ResourceFilter filter = createResourceFilter(smd);
+ if (filter != null)
+ {
+ ResourceFilter previousFilter = unit.addAttachment(ResourceFilter.class.getName() + ".resource", filter, ResourceFilter.class);
+ if (previousFilter != null)
+ log.debugf("Overridding previous resource filter: %1s", previousFilter);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Create recurse filter.
+ *
+ * @param smd the scanning metadata
+ * @return recurse filter
+ */
+ protected ResourceFilter createRecurseFilter(ScanningMetaData smd)
+ {
+ return new ScanningMetaDataRecurseFilter(smd);
+ }
+
+ /**
+ * Create resource filter.
+ *
+ * @param smd the scanning metadata
+ * @return resource filter
+ */
+ protected ResourceFilter createResourceFilter(ScanningMetaData smd)
+ {
+ return new ScanningMetaDataResourceFilter(smd);
+ }
+}
Added: projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/metadata/ScanningMetaDataDeployer.java
===================================================================
--- projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/metadata/ScanningMetaDataDeployer.java (rev 0)
+++ projects/scanning/trunk/deployers/src/main/java/org/jboss/scanning/deployers/metadata/ScanningMetaDataDeployer.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.deployers.metadata;
+
+import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
+import org.jboss.scanning.plugins.metadata.AbstractScanningMetaData;
+import org.jboss.scanning.spi.metadata.ScanningMetaData;
+
+/**
+ * ScanningMetaDataDeployer
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class ScanningMetaDataDeployer extends SchemaResolverDeployer<AbstractScanningMetaData>
+{
+ public ScanningMetaDataDeployer()
+ {
+ super(AbstractScanningMetaData.class);
+ setName("jboss-scanning.xml");
+ setRegisterWithJBossXB(true);
+ addOutput(ScanningMetaData.class);
+ setAttachmentKey(ScanningMetaData.class.getName());
+ }
+}
Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java 2010-04-01 11:29:15 UTC (rev 103413)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/DeploymentUnitScanner.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -28,11 +28,8 @@
import org.jboss.classloading.plugins.visitor.FederatedResourceVisitor;
import org.jboss.classloading.spi.dependency.Module;
import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.deployers.spi.annotations.ScanningMetaData;
import org.jboss.deployers.spi.deployer.helpers.AttachmentLocator;
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.scanning.plugins.filter.ScanningMetaDataRecurseFilter;
-import org.jboss.scanning.plugins.filter.ScanningMetaDataResourceFilter;
import org.jboss.scanning.plugins.helpers.DelegateResourceFilter;
import org.jboss.scanning.spi.ScanningHandle;
import org.jboss.scanning.spi.ScanningPlugin;
@@ -56,6 +53,27 @@
this.unit = unit;
}
+ /**
+ * Wrap federated filters with existing.
+ * e.g. scanning metadata restrictions
+ *
+ * @param name the attachment name
+ * @param filter the existing federated filter
+ * @return filter
+ */
+ protected ResourceFilter wrap(String name, ResourceFilter filter)
+ {
+ ResourceFilter ext = unit.getAttachment(name, ResourceFilter.class);
+ if (ext != null)
+ {
+ if (filter != null)
+ return new DelegateResourceFilter(ext, filter);
+ else
+ return ext;
+ }
+ return filter;
+ }
+
protected void scan(Set<ScanningPlugin> plugins) throws Exception
{
Module module = AttachmentLocator.searchAncestors(unit, Module.class);
@@ -67,17 +85,8 @@
ResourceFilter filter = visitor.getFilter();
ResourceFilter recurseFilter = visitor.getRecurseFilter();
- // wrap existing filters with SMD filtering, if it exists
- ScanningMetaData smd = unit.getAttachment(ScanningMetaData.class);
- if (smd != null)
- {
- filter = new DelegateResourceFilter(new ScanningMetaDataResourceFilter(smd), filter);
- ScanningMetaDataRecurseFilter smdrf = new ScanningMetaDataRecurseFilter(smd);
- if (recurseFilter != null)
- recurseFilter = new DelegateResourceFilter(smdrf, recurseFilter);
- else
- recurseFilter = smdrf;
- }
+ filter = wrap(ResourceFilter.class.getName() + ".resource", filter);
+ recurseFilter = wrap(ResourceFilter.class.getName() + ".recurse", recurseFilter);
// something in javassist uses TCL
ClassLoader tccl = SecurityActions.setContextClassLoader(unit.getClassLoader());
Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java 2010-04-01 11:29:15 UTC (rev 103413)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataRecurseFilter.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -26,8 +26,8 @@
import org.jboss.classloading.spi.visitor.ResourceContext;
import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.deployers.spi.annotations.PathMetaData;
-import org.jboss.deployers.spi.annotations.ScanningMetaData;
+import org.jboss.scanning.spi.metadata.PathMetaData;
+import org.jboss.scanning.spi.metadata.ScanningMetaData;
/**
* Simple recurse filter.
Modified: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java 2010-04-01 11:29:15 UTC (rev 103413)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/filter/ScanningMetaDataResourceFilter.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -29,9 +29,10 @@
import org.jboss.classloader.spi.filter.PackageClassFilter;
import org.jboss.classloading.spi.visitor.ResourceContext;
import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.deployers.spi.annotations.PathEntryMetaData;
-import org.jboss.deployers.spi.annotations.PathMetaData;
-import org.jboss.deployers.spi.annotations.ScanningMetaData;
+import org.jboss.scanning.spi.metadata.FilterablePathEntry;
+import org.jboss.scanning.spi.metadata.PathEntryMetaData;
+import org.jboss.scanning.spi.metadata.PathMetaData;
+import org.jboss.scanning.spi.metadata.ScanningMetaData;
/**
* ScanningMetaDataResourceFilter
@@ -106,7 +107,9 @@
*/
protected ClassFilter getClassFilter(PathEntryMetaData pemd)
{
- // TODO -- check for FilterablePathEntry
- return PackageClassFilter.createPackageClassFilter(pemd.getName());
+ if (pemd instanceof FilterablePathEntry)
+ return ((FilterablePathEntry)pemd).getFilter();
+ else
+ return PackageClassFilter.createPackageClassFilter(pemd.getName());
}
}
\ No newline at end of file
Added: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathEntryMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.plugins.metadata;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+import java.io.Serializable;
+
+import org.jboss.classloader.spi.filter.ClassFilter;
+import org.jboss.classloader.spi.filter.PackageClassFilter;
+import org.jboss.scanning.spi.metadata.FilterablePathEntry;
+import org.jboss.scanning.spi.metadata.PathEntryMetaData;
+
+/**
+ * AbstractPathEntryMetaData
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+ at XmlType(name="pathEntryType")
+public class AbstractPathEntryMetaData implements PathEntryMetaData, FilterablePathEntry, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+ private transient ClassFilter filter;
+
+ @XmlTransient
+ public ClassFilter getFilter()
+ {
+ if (filter == null)
+ filter = PackageClassFilter.createPackageClassFilter(getNameInternal());
+
+ return filter;
+ }
+
+ @XmlTransient
+ private String getNameInternal()
+ {
+ if (name == null)
+ throw new IllegalArgumentException("Null name");
+
+ return name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ @XmlAttribute(name = "name", required = true)
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return getNameInternal().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof PathEntryMetaData == false)
+ return false;
+
+ PathEntryMetaData pemd = (PathEntryMetaData)obj;
+ return getNameInternal().equals(pemd.getName());
+ }
+}
Added: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractPathMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.plugins.metadata;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import java.io.Serializable;
+import java.util.Set;
+
+import org.jboss.scanning.spi.metadata.PathEntryMetaData;
+import org.jboss.scanning.spi.metadata.PathMetaData;
+
+
+/**
+ * AbstractPathMetaData
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+ at XmlRootElement(name="path")
+ at XmlType(name="pathType", propOrder={"includes", "excludes"})
+public class AbstractPathMetaData implements PathMetaData, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private String pathName;
+ private Set<PathEntryMetaData> includes;
+ private Set<PathEntryMetaData> excludes;
+
+ public String getPathName()
+ {
+ return pathName;
+ }
+
+ @XmlAttribute(name = "name", required = true)
+ public void setPathName(String pathName)
+ {
+ this.pathName = pathName;
+ }
+
+ public Set<PathEntryMetaData> getIncludes()
+ {
+ return includes;
+ }
+
+ @XmlElement(name = "include", type = AbstractPathEntryMetaData.class)
+ public void setIncludes(Set<PathEntryMetaData> includes)
+ {
+ this.includes = includes;
+ }
+
+ public Set<PathEntryMetaData> getExcludes()
+ {
+ return excludes;
+ }
+
+ @XmlElement(name = "exclude", type = AbstractPathEntryMetaData.class)
+ public void setExcludes(Set<PathEntryMetaData> excludes)
+ {
+ this.excludes = excludes;
+ }
+}
Added: projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractScanningMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractScanningMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-impl/src/main/java/org/jboss/scanning/plugins/metadata/AbstractScanningMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.plugins.metadata;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.jboss.scanning.spi.metadata.PathMetaData;
+import org.jboss.scanning.spi.metadata.ScanningMetaData;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * AbstractScanningMetaData
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+ at JBossXmlSchema(namespace="urn:jboss:scanning:1.0", elementFormDefault= XmlNsForm.QUALIFIED)
+ at XmlRootElement(name="scanning")
+ at XmlType(name="scanningType", propOrder={"paths"})
+public class AbstractScanningMetaData implements ScanningMetaData, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private List<PathMetaData> paths;
+
+ public List<PathMetaData> getPaths()
+ {
+ return paths;
+ }
+
+ @XmlElement(name="path", type = AbstractPathMetaData.class)
+ public void setPaths(List<PathMetaData> paths)
+ {
+ this.paths = paths;
+ }
+}
Added: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/FilterablePathEntry.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/FilterablePathEntry.java (rev 0)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/FilterablePathEntry.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.spi.metadata;
+
+import org.jboss.classloader.spi.filter.ClassFilter;
+
+/**
+ * FilterablePathEntry
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface FilterablePathEntry
+{
+ /**
+ * Get class filter.
+ *
+ * @return the filter
+ */
+ ClassFilter getFilter();
+}
Added: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathEntryMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.spi.metadata;
+
+/**
+ * Path entry meta data.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface PathEntryMetaData
+{
+ /**
+ * Get name.
+ *
+ * @return the name
+ */
+ String getName();
+}
Added: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/PathMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.spi.metadata;
+
+import java.util.Set;
+
+/**
+ * Path meta data.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface PathMetaData
+{
+ /**
+ * Get path name.
+ *
+ * @return the path name
+ */
+ String getPathName();
+
+ /**
+ * Get includes.
+ *
+ * @return the includes
+ */
+ Set<PathEntryMetaData> getIncludes();
+
+ /**
+ * Get excludes.
+ *
+ * @return the excludes
+ */
+ Set<PathEntryMetaData> getExcludes();
+}
Added: projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/ScanningMetaData.java
===================================================================
--- projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/ScanningMetaData.java (rev 0)
+++ projects/scanning/trunk/scanning-spi/src/main/java/org/jboss/scanning/spi/metadata/ScanningMetaData.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.scanning.spi.metadata;
+
+import java.util.List;
+
+/**
+ * Scanning meta data.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public interface ScanningMetaData
+{
+ /**
+ * Get the paths.
+ *
+ * @return the paths
+ */
+ List<PathMetaData> getPaths();
+}
Deleted: projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/ScanningMDFilter.java
===================================================================
--- projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/ScanningMDFilter.java 2010-04-01 11:29:15 UTC (rev 103413)
+++ projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/support/ScanningMDFilter.java 2010-04-01 11:31:13 UTC (rev 103414)
@@ -1,126 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.test.scanning.annotations.support;
-
-import java.net.URL;
-import java.util.List;
-
-import org.jboss.classloading.spi.visitor.ResourceContext;
-import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.deployers.spi.annotations.PathMetaData;
-import org.jboss.deployers.spi.annotations.ScanningMetaData;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.plugins.annotations.ScanningMetaDataResourceFilter;
-import org.jboss.deployers.vfs.spi.structure.helpers.VFS2BaseBridgeDeploymentUnitFilter;
-import org.jboss.logging.Logger;
-
-/**
- * ScanningDeploymentUnitFilter
- *
- * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
- */
-public class ScanningMDFilter extends VFS2BaseBridgeDeploymentUnitFilter
-{
- private Logger log = Logger.getLogger(getClass());
-
- protected boolean doAccepts(DeploymentUnit unit)
- {
- ScanningMetaData smd = unit.getAttachment(ScanningMetaData.class);
- if (smd != null)
- {
- // recurse
- ResourceFilter recurse = createRecurseFilter(smd);
- if (recurse != null)
- {
- ResourceFilter previousRecurse = unit.addAttachment(ResourceFilter.class.getName() + ".recurse", recurse, ResourceFilter.class);
- if (previousRecurse != null)
- log.debugf("Overridding previous recurse filter: %1s", previousRecurse);
- }
-
- // resource
- ResourceFilter filter = createResourceFilter(smd);
- if (filter != null)
- {
- ResourceFilter previousFilter = unit.addAttachment(ResourceFilter.class.getName() + ".resource", filter, ResourceFilter.class);
- if (previousFilter != null)
- log.debugf("Overridding previous resource filter: %1s", previousFilter);
- }
- }
- return true;
- }
-
- /**
- * Create recurse filter.
- *
- * @param smd the scanning metadata
- * @return recurse filter
- */
- protected ResourceFilter createRecurseFilter(ScanningMetaData smd)
- {
- return new ScanningMetaDataRecurseFilter(smd);
- }
-
- /**
- * Create resource filter.
- *
- * @param smd the scanning metadata
- * @return resource filter
- */
- protected ResourceFilter createResourceFilter(ScanningMetaData smd)
- {
- return new ScanningMetaDataResourceFilter(smd);
- }
-
- /**
- * Simple recurse filter.
- * It searches for path substring in url string.
- */
- private class ScanningMetaDataRecurseFilter implements ResourceFilter
- {
- private ScanningMetaData smd;
-
- private ScanningMetaDataRecurseFilter(ScanningMetaData smd)
- {
- this.smd = smd;
- }
-
- public boolean accepts(ResourceContext resource)
- {
- URL url = resource.getUrl();
- String urlString = url.toExternalForm();
- List<PathMetaData> paths = smd.getPaths();
- if (paths != null && paths.isEmpty() == false)
- {
- for (PathMetaData pmd : paths)
- {
- String name = pmd.getPathName();
- // url contains path
- if (urlString.contains(name))
- {
- return true;
- }
- }
- }
- return false;
- }
- }
-}
Modified: projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningWithMetaDataTestCase.xml
===================================================================
--- projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningWithMetaDataTestCase.xml 2010-04-01 11:29:15 UTC (rev 103413)
+++ projects/scanning/trunk/testsuite/src/test/resources/org/jboss/test/scanning/annotations/test/AnnotationsScanningWithMetaDataTestCase.xml 2010-04-01 11:31:13 UTC (rev 103414)
@@ -3,11 +3,11 @@
<bean name="EarStructure" class="org.jboss.test.deployers.vfs.structure.ear.support.MockEarStructureDeployer"/>
<bean name="WarStructure" class="org.jboss.deployers.vfs.plugins.structure.war.WARStructure"/>
- <bean name="ScanningMDDeployer" class="org.jboss.deployers.vfs.plugins.annotations.ScanningMetaDataDeployer"/>
+ <bean name="ScanningMDDeployer" class="org.jboss.scanning.deployers.metadata.ScanningMetaDataDeployer"/>
<bean name="AnnEnvDeployer" class="org.jboss.scanning.deployers.ScanningDeployer">
<property name="filter">
- <bean class="org.jboss.test.scanning.annotations.support.ScanningMDFilter"/>
+ <bean class="org.jboss.scanning.deployers.filter.ScanningDeploymentUnitFilter"/>
</property>
<incallback method="addFactory" />
<uncallback method="removeFactory" />
More information about the jboss-cvs-commits
mailing list