You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2015/08/19 09:52:55 UTC

svn commit: r1696530 - /felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java

Author: gnodet
Date: Wed Aug 19 07:52:55 2015
New Revision: 1696530

URL: http://svn.apache.org/r1696530
Log:
[FELIX-4988] ResolverImpl uses an internal ExecutorService

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=1696530&r1=1696529&r2=1696530&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 Wed Aug 19 07:52:55 2015
@@ -60,6 +60,8 @@ public class ResolverImpl implements Res
 
     private final int m_parallelism;
 
+    private final Executor m_executor;
+
     // Note this class is not thread safe.
     // Only use in the context of a single thread.
     class ResolveSession
@@ -114,16 +116,28 @@ public class ResolverImpl implements Res
     {
         this.m_logger = logger;
         this.m_parallelism = parallelism;
+        this.m_executor = null;
+    }
+
+    public ResolverImpl(Logger logger, Executor executor)
+    {
+        this.m_logger = logger;
+        this.m_parallelism = -1;
+        this.m_executor = executor;
     }
 
     public Map<Resource, List<Wire>> resolve(ResolveContext rc) throws ResolutionException
     {
-        if (m_parallelism > 1)
+        if (m_executor != null)
+        {
+            return resolve(rc, m_executor);
+        }
+        else if (m_parallelism > 1)
         {
             ExecutorService executor = Executors.newFixedThreadPool(m_parallelism);
             try
             {
-                return doResolve(rc, executor);
+                return resolve(rc, executor);
             }
             finally
             {
@@ -132,11 +146,11 @@ public class ResolverImpl implements Res
         }
         else
         {
-            return doResolve(rc, new DumbExecutor());
+            return resolve(rc, new DumbExecutor());
         }
     }
 
-    private Map<Resource, List<Wire>> doResolve(ResolveContext rc, Executor executor) throws ResolutionException
+    public Map<Resource, List<Wire>> resolve(ResolveContext rc, Executor executor) throws ResolutionException
     {
         ResolveSession session = new ResolveSession(rc);
         Map<Resource, List<Wire>> wireMap =