[jboss-cvs] JBossAS SVN: r99679 - projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 20 15:59:01 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-20 15:59:01 -0500 (Wed, 20 Jan 2010)
New Revision: 99679

Added:
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java
Modified:
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java
Log:
Use the name based DependencyResolverMatcher(Factory) properly

Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java	2010-01-20 20:55:09 UTC (rev 99678)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolver.java	2010-01-20 20:59:01 UTC (rev 99679)
@@ -57,17 +57,22 @@
    
    private final Map<Class<? extends DependencyItem>, ResolverMatcher> matchers = new ConcurrentHashMap<Class<? extends DependencyItem>, ResolverMatcher>();
    
-   private final NameDependencyResolverMatcher nameMatcher = new NameDependencyResolverMatcher();
+   private NameDependencyResolverMatcher nameMatcher;
       
    public IndexingDependencyResolver(Controller controller)
    {
       super(controller);
-      matchers.put(AbstractDependencyItem.class, nameMatcher);
    }
 
    public void addMatcher(Class<? extends DependencyItem> clazz, ResolverMatcher matcher)
    {
       matchers.put(clazz, matcher);
+      if (nameMatcher == null && clazz.equals(AbstractDependencyItem.class))
+      {
+         if (matcher instanceof NameDependencyResolverMatcher == false)
+            throw new IllegalArgumentException("AbstractDependencyItem should be handled by a " + NameDependencyResolverMatcher.class.getName());
+         nameMatcher = (NameDependencyResolverMatcher)matcher;
+      }
    }
    
    public void removeMatcher(Class<? extends DependencyItem> clazz)

Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java	2010-01-20 20:55:09 UTC (rev 99678)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/IndexingDependencyResolverFactory.java	2010-01-20 20:59:01 UTC (rev 99679)
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.WeakHashMap;
 
+import org.jboss.dependency.plugins.AbstractDependencyItem;
 import org.jboss.dependency.plugins.AbstractDependencyResolver;
 import org.jboss.dependency.spi.Controller;
 import org.jboss.dependency.spi.DependencyItem;
@@ -41,6 +42,11 @@
    private final Map<Class<? extends DependencyItem>, ResolverMatcherFactory> matchers = new HashMap<Class<? extends DependencyItem>, ResolverMatcherFactory>();
    
    private Map<IndexingDependencyResolver, Boolean> weakResolvers = new WeakHashMap<IndexingDependencyResolver, Boolean>();
+   
+   public IndexingDependencyResolverFactory()
+   {
+      addMatcher(AbstractDependencyItem.class, new NameDependencyResolverMatcherFactory());
+   }
 
    public synchronized AbstractDependencyResolver createResolver(Controller controller)
    {

Added: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java	                        (rev 0)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcherFactory.java	2010-01-20 20:59:01 UTC (rev 99679)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, 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.dependency.plugins.resolver.indexing;
+
+import org.jboss.dependency.spi.resolver.indexing.ResolverMatcher;
+import org.jboss.dependency.spi.resolver.indexing.ResolverMatcherFactory;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class NameDependencyResolverMatcherFactory implements ResolverMatcherFactory
+{
+   public ResolverMatcher createMatcher()
+   {
+      return new NameDependencyResolverMatcher();
+   }
+}




More information about the jboss-cvs-commits mailing list