Author: mickw
Date: 2006-04-30 00:39:18 +0200 (Sun, 30 Apr 2006)
New Revision: 2830

Added:
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/AbstractSearchCommandExecutor.java
Modified:
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/ParallelSearchCommandExecutor.java
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchCommandExecutor.java
   trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTask.java
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTaskExecutorService.java
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/SequentialSearchCommandExecutor.java
   
trunk/src/java/no/schibstedsok/front/searchportal/executor/ThreadPoolInspector.java
Log:
cleaning up executor package. checkstyle violations.
use of AbstracrSearchCommandExecutor and Executors.newSingleThreadExecutor() 
for SequentialSearchCommandExecutor.


Added: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/AbstractSearchCommandExecutor.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/AbstractSearchCommandExecutor.java
                               (rev 0)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/AbstractSearchCommandExecutor.java
       2006-04-29 22:39:18 UTC (rev 2830)
@@ -0,0 +1,83 @@
+/*
+ * AbstractSearchCommandExecutor.java
+ *
+ * Created on 29 April 2006, 22:26
+ *
+ */
+
+package no.schibstedsok.front.searchportal.executor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import no.schibstedsok.front.searchportal.result.SearchResult;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Michael Semb Wever</a>
+ * @version $Id$
+ */
+abstract class AbstractSearchCommandExecutor implements SearchCommandExecutor {
+
+
+    protected transient static final Logger LOG = 
Logger.getLogger(AbstractSearchCommandExecutor.class);
+
+
+    // Constants -----------------------------------------------------
+
+    // Attributes ----------------------------------------------------
+
+    // Static --------------------------------------------------------
+
+    // Constructors --------------------------------------------------
+
+    /**
+     * Creates a new instance of AbstractSearchCommandExecutor
+     */
+    public AbstractSearchCommandExecutor() {
+    }
+
+    // Public --------------------------------------------------------
+
+
+    public List<Future<SearchResult>> invokeAll(final 
Collection<Callable<SearchResult>> callables, final int timeoutInMillis)  {
+
+        final List<Future<SearchResult>> results = new 
ArrayList<Future<SearchResult>>();
+        try {
+            results.addAll(getExecutorService().invokeAll(callables, 
timeoutInMillis, TimeUnit.MILLISECONDS));
+
+//            for( Callable<SearchResult> c : callables ){
+//                results.add( EXECUTOR.submit(c) );
+//            }
+        }  catch (InterruptedException e) {
+            LOG.error(e);
+        }
+        return results;
+    }
+
+    public void stop() {
+        LOG.warn("Shutting down thread pool");
+        getExecutorService().shutdownNow();
+    }
+
+    protected abstract ExecutorService getExecutorService();
+
+
+
+    // Z implementation ----------------------------------------------
+
+    // Y overrides ---------------------------------------------------
+
+    // Package protected ---------------------------------------------
+
+    // Protected -----------------------------------------------------
+
+    // Private -------------------------------------------------------
+
+    // Inner classes -------------------------------------------------
+}

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ParallelSearchCommandExecutor.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ParallelSearchCommandExecutor.java
       2006-04-29 18:02:01 UTC (rev 2829)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ParallelSearchCommandExecutor.java
       2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,60 +1,35 @@
+// Copyright (2006) Schibsted Søk AS
 package no.schibstedsok.front.searchportal.executor;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import no.schibstedsok.front.searchportal.result.SearchResult;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
-import java.util.Collection;
-import java.util.List;
-
 /**
  * A [EMAIL PROTECTED] 
no.schibstedsok.front.searchportal.executor.SearchCommandExecutor} executing a 
list of callables in parallel.
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
  * @version <tt>$Revision$</tt>
  */
-public final class ParallelSearchCommandExecutor implements 
SearchCommandExecutor {
+public final class ParallelSearchCommandExecutor extends 
AbstractSearchCommandExecutor {
 
     private static final int INSPECTOR_PERIOD = 300000;
 
-    private transient static final SearchTaskExecutorService executor = new 
SearchTaskExecutorService();
-    private transient static final Log LOG = 
LogFactory.getLog(ParallelSearchCommandExecutor.class);
-    private transient static final ThreadPoolInspector inspector = new 
ThreadPoolInspector( executor, INSPECTOR_PERIOD);
+    private transient static final SearchTaskExecutorService EXECUTOR = new 
SearchTaskExecutorService();
+    private transient static final ThreadPoolInspector INSPECTOR = new 
ThreadPoolInspector(EXECUTOR, INSPECTOR_PERIOD);
 
     /**
-     * Creates a new parallel executor.
+     * Creates a new parallel EXECUTOR.
      */
     public ParallelSearchCommandExecutor() {
     }
 
-    public List<Future<SearchResult>> 
invokeAll(Collection<Callable<SearchResult>> callables, int timeoutInMillis)  {
-
-        final List<Future<SearchResult>> results = new 
ArrayList<Future<SearchResult>>();
-        try {
-            results.addAll( executor.invokeAll(callables, timeoutInMillis, 
TimeUnit.MILLISECONDS) );
-
-//            for( Callable<SearchResult> c : callables ){
-//                results.add( executor.submit(c) );
-//            }
-        } catch (InterruptedException e) {
-            LOG.error(e);  //To change body of catch statement use File | 
Settings | File Templates.
-        }
-        return results;
-    }
-
     public void stop() {
         LOG.info("Shutting down thread pool inspector");
-        inspector.cancel();
-        ThreadPoolExecutor threadPool = (ThreadPoolExecutor) executor;
-        LOG.info("Shutting down thread pool");
-        LOG.info(threadPool.getTaskCount() + " processed");
-        threadPool.shutdownNow();
+        INSPECTOR.cancel();
+        LOG.warn(EXECUTOR.getTaskCount() + " processed");
+        super.stop();
     }
+
+    protected ExecutorService getExecutorService(){
+        return EXECUTOR;
+    }
 }

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchCommandExecutor.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchCommandExecutor.java
       2006-04-29 18:02:01 UTC (rev 2829)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchCommandExecutor.java
       2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,3 +1,4 @@
+// Copyright (2006) Schibsted Søk AS
 package no.schibstedsok.front.searchportal.executor;
 
 import java.util.Collection;

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTask.java
===================================================================
--- trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTask.java  
2006-04-29 18:02:01 UTC (rev 2829)
+++ trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTask.java  
2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,3 +1,4 @@
+// Copyright (2006) Schibsted Søk AS
 package no.schibstedsok.front.searchportal.executor;
 
 import java.util.concurrent.ExecutionException;
@@ -18,7 +19,7 @@
 
     private SearchCommand command;
 
-    public SearchTask(SearchCommand command) {
+    public SearchTask(final SearchCommand command) {
         super(command);
 
         this.command = command;
@@ -28,7 +29,7 @@
         return command;
     }
 
-    public boolean cancel(boolean mayInterruptIfRunning) {
+    public boolean cancel(final boolean mayInterruptIfRunning) {
         LOG.debug("Cancel called " + command);
 
         return super.cancel(mayInterruptIfRunning);    //To change body of 
overridden methods use File | Settings | File Templates.

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTaskExecutorService.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTaskExecutorService.java
   2006-04-29 18:02:01 UTC (rev 2829)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SearchTaskExecutorService.java
   2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,3 +1,4 @@
+// Copyright (2006) Schibsted Søk AS
 package no.schibstedsok.front.searchportal.executor;
 
 
@@ -18,18 +19,18 @@
     private static final Logger LOG = 
Logger.getLogger(SearchTaskExecutorService.class);
 
     public SearchTaskExecutorService() {
-        super(20, 100, 5L, TimeUnit.SECONDS, new SynchronousQueue());
+        super(20, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new 
SynchronousQueue());
     }
 
-    protected SearchTask newTaskFor(Callable<SearchResult> callable) {
+    protected SearchTask newTaskFor(final Callable<SearchResult> callable) {
 
         final SearchCommand command = (SearchCommand) callable;
 
-        if (LOG.isDebugEnabled()) {    
+        if (LOG.isDebugEnabled()) {
             LOG.debug("Creating new search task " + 
command.getSearchConfiguration().getName());
         }
 
-        return new SearchTask( command );
+        return new SearchTask(command);
     }
 
 }

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SequentialSearchCommandExecutor.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SequentialSearchCommandExecutor.java
     2006-04-29 18:02:01 UTC (rev 2829)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/SequentialSearchCommandExecutor.java
     2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,63 +1,23 @@
 /*
- * Copyright (2005) Schibsted Søk AS
+ * Copyright (2005-2006) Schibsted Søk AS
  *
  */
 package no.schibstedsok.front.searchportal.executor;
 
-import java.util.concurrent.Callable;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import no.schibstedsok.front.searchportal.command.SearchCommand;
-import no.schibstedsok.front.searchportal.result.SearchResult;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * A simple SearchCommandExecutor that executes the tasks sequentially
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
  * @version <tt>$Revision$</tt>
  */
-public final class SequentialSearchCommandExecutor implements 
SearchCommandExecutor {
+public final class SequentialSearchCommandExecutor extends 
AbstractSearchCommandExecutor {
 
-    private static Log log = 
LogFactory.getLog(SequentialSearchCommandExecutor.class);
+    private static final ExecutorService EXECUTOR = 
Executors.newSingleThreadExecutor();
 
-    public List<Future<SearchResult>> 
invokeAll(Collection<Callable<SearchResult>> callables, int timeoutInMillis) {
-
-        final List<Future<SearchResult>> results = new 
ArrayList<Future<SearchResult>>();
-
-        for (Callable<SearchResult> callable : callables) {
-
-            final SearchCommand command = (SearchCommand) callable;
-            try {
-                final SearchResult result = command.call();
-
-                final SearchTask task = new SearchTask(command){
-                    public SearchResult get(final long timeout, final TimeUnit 
unit) {
-                        return get();
-                    }
-                    public boolean isDone() {
-                        return true;
-                    }
-                    public SearchResult get() {
-                        return result;
-                    }
-                };
-                results.add(task);
-            
-            } catch (Exception e) {
-                log.error("Execution of search command failed", e);
-            }
-        }
-
-        return results;
+    protected ExecutorService getExecutorService() {
+        return EXECUTOR;
     }
-
-    public void stop() {
-    }
 }

Modified: 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ThreadPoolInspector.java
===================================================================
--- 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ThreadPoolInspector.java
 2006-04-29 18:02:01 UTC (rev 2829)
+++ 
trunk/src/java/no/schibstedsok/front/searchportal/executor/ThreadPoolInspector.java
 2006-04-29 22:39:18 UTC (rev 2830)
@@ -1,3 +1,4 @@
+// Copyright (2006) Schibsted Søk AS
 package no.schibstedsok.front.searchportal.executor;
 
 import java.util.concurrent.ThreadPoolExecutor;
@@ -11,13 +12,13 @@
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
  * @version <tt>$Revision$</tt>
  */
-public class ThreadPoolInspector extends TimerTask {
+public final class ThreadPoolInspector extends TimerTask {
 
     private ThreadPoolExecutor threadPool;
 
-    public ThreadPoolInspector(ThreadPoolExecutor threadPool, int msPeriod) {
+    public ThreadPoolInspector(final ThreadPoolExecutor threadPool, final int 
msPeriod) {
         this.threadPool = threadPool;
-        Timer t = new Timer();
+        final Timer t = new Timer();
         LOG.info("Scheduling to run every " + msPeriod + "ms");
         t.schedule(this, 0, msPeriod);
     }

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to