Author: gnodet
Date: Mon Jul 13 15:18:06 2015
New Revision: 1690714

URL: http://svn.apache.org/r1690714
Log:
[FELIX-4942] Improve mergeCandidatePackage

Modified:
    
felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java

Modified: 
felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java?rev=1690714&r1=1690713&r2=1690714&view=diff
==============================================================================
--- 
felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java 
(original)
+++ 
felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java 
Mon Jul 13 15:18:06 2015
@@ -873,7 +873,8 @@ public class ResolverImpl implements Res
         if (candCap.getNamespace().equals(PackageNamespace.PACKAGE_NAMESPACE))
         {
             mergeCandidatePackage(
-                current, false, currentReq, candCap, resourcePkgMap);
+                resourcePkgMap.get(current).m_importedPkgs,
+                currentReq, candCap);
         }
         else if 
(candCap.getNamespace().equals(BundleNamespace.BUNDLE_NAMESPACE))
         {
@@ -898,11 +899,9 @@ public class ResolverImpl implements Res
                 for (Entry<String, Blame> entry : 
candPkgs.m_exportedPkgs.fast())
                 {
                     mergeCandidatePackage(
-                        current,
-                        true,
+                        resourcePkgMap.get(current).m_requiredPkgs,
                         currentReq,
-                        entry.getValue().m_cap,
-                        resourcePkgMap);
+                        entry.getValue().m_cap);
                 }
             }
 
@@ -959,10 +958,9 @@ public class ResolverImpl implements Res
         cycles.remove(current);
     }
 
-    private void mergeCandidatePackage(
-        Resource current, boolean requires,
-        Requirement currentReq, Capability candCap,
-        Map<Resource, Packages> resourcePkgMap)
+    private static void mergeCandidatePackage(
+        OpenHashMap<String, List<Blame>> packages,
+        Requirement currentReq, Capability candCap)
     {
         if (candCap.getNamespace().equals(PackageNamespace.PACKAGE_NAMESPACE))
         {
@@ -971,14 +969,8 @@ public class ResolverImpl implements Res
 
             String pkgName = (String) 
candCap.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE);
 
-            List<Requirement> blameReqs = new ArrayList<Requirement>();
-            blameReqs.add(currentReq);
+            List<Requirement> blameReqs = 
Collections.singletonList(currentReq);
 
-            Packages currentPkgs = resourcePkgMap.get(current);
-
-            OpenHashMap<String, List<Blame>> packages = (requires)
-                ? currentPkgs.m_requiredPkgs
-                : currentPkgs.m_importedPkgs;
             List<Blame> blames = packages.getOrCompute(pkgName);
             blames.add(new Blame(candCap, blameReqs));
 


Reply via email to