You are viewing a plain text version of this content. The canonical link for it is here.
Posted to droids-commits@incubator.apache.org by bc...@apache.org on 2011/04/13 08:03:12 UTC
svn commit: r1091681 - in /incubator/droids/trunk:
droids-core/src/main/java/org/apache/droids/api/
droids-core/src/main/java/org/apache/droids/impl/
droids-core/src/main/java/org/apache/droids/robot/walker/
droids-core/src/test/java/org/apache/droids/...
Author: bchapuis
Date: Wed Apr 13 08:03:11 2011
New Revision: 1091681
URL: http://svn.apache.org/viewvc?rev=1091681&view=rev
Log:
DROIDS-56: Restored the SequentialTaskMaster.
Added:
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/MultiThreadedTaskMaster.java
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SequentialTaskMaster.java
Removed:
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/TaskMasterImpl.java
Modified:
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/ (props changed)
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/TaskMaster.java
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/ (props changed)
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/robot/walker/SimpleWalkingDroid.java
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/DroidsFactory.java
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/FileRenameDroid.java
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/SimpleRuntime.java
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/ (props changed)
incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/TestSimpleDroid.java
incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/ (props changed)
incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/droids-core-context.xml
incubator/droids/trunk/droids-spring/src/test/resources/ (props changed)
incubator/droids/trunk/droids-spring/src/test/resources/droids-core-test-context.xml
incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/ (props changed)
incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/DroidPanel.java
incubator/droids/trunk/droids-wicket/src/main/resources/ (props changed)
incubator/droids/trunk/droids-wicket/src/main/resources/applicationContext.xml
Propchange: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+TaskMaster.java.original~
Modified: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/TaskMaster.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/TaskMaster.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/TaskMaster.java (original)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/api/TaskMaster.java Wed Apr 13 08:03:11 2011
@@ -28,22 +28,17 @@ public interface TaskMaster<T extends Ta
public enum ExecutionState
{
- RUNNING, STOPPED, COMPLETED
+ INITIALIZED, RUNNING, STOPPED, COMPLETED
};
/**
* Start the process of running tasks.
- * l
+ *
* @param droid
*/
void start(final Queue<T> queue, final Droid<T> droid);
/**
- * Stops the process of running tasks.
- */
- void stop();
-
- /**
* Blocks until all tasks have completed execution.
*
* @param timeout
Propchange: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -1 +1,2 @@
SequentialTaskMaster.java.original~
+TaskMasterImpl.java.original~
Added: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/MultiThreadedTaskMaster.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/MultiThreadedTaskMaster.java?rev=1091681&view=auto
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/MultiThreadedTaskMaster.java (added)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/MultiThreadedTaskMaster.java Wed Apr 13 08:03:11 2011
@@ -0,0 +1,384 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.droids.impl;
+
+import java.util.Date;
+import java.util.Queue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+import org.apache.droids.AbstractDroid;
+import org.apache.droids.api.DelayTimer;
+import org.apache.droids.api.Droid;
+import org.apache.droids.api.Task;
+import org.apache.droids.api.TaskExceptionHandler;
+import org.apache.droids.api.TaskExceptionResult;
+import org.apache.droids.api.TaskMaster;
+import org.apache.droids.api.TaskMaster.ExecutionState;
+import org.apache.droids.api.WorkMonitor;
+import org.apache.droids.api.Worker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Responsible for running all the tasks
+ */
+public class MultiThreadedTaskMaster<T extends Task> implements TaskMaster<T>
+{
+
+ protected final Logger log = LoggerFactory.getLogger(AbstractDroid.class);
+ private final long TICKLE_TIME = 250L;
+ /**
+ * The execution state
+ */
+ protected volatile ExecutionState state = ExecutionState.STOPPED;
+ /**
+ * The delay timer
+ */
+ protected DelayTimer delayTimer;
+ /**
+ * The start time
+ */
+ protected Date startTime;
+ /**
+ * The end time
+ */
+ protected Date endTime;
+ /**
+ * The last completed task
+ */
+ protected T lastCompletedTask;
+ /**
+ * The completed task counter
+ */
+ protected AtomicLong completedTasks = new AtomicLong();
+ /**
+ * The monitor that that records the processing of tasks
+ */
+ protected WorkMonitor<T> monitor;
+ /**
+ * The task exception handler
+ */
+ protected TaskExceptionHandler exceptionHandler;
+
+ /*
+ * The pool size
+ */
+ private int poolSize = 1;
+ /**
+ * The pool
+ */
+ private TaskExecutorPool pool;
+
+ @Override
+ public void start(Queue<T> queue, Droid<T> droid)
+ {
+ if (log.isInfoEnabled()) {
+ log.info("Start the executor service.");
+ }
+
+ state = ExecutionState.RUNNING;
+
+ if (pool == null) {
+ this.pool = new TaskExecutorPool();
+ }
+
+ for (int i = 0; i < poolSize; i++) {
+ pool.execute(new TaskExecutor(droid));
+ }
+ }
+
+ /**
+ * Stops the TaskMaster
+ */
+ public void stop()
+ {
+ // debug
+ if (log.isInfoEnabled()) {
+ log.info("Stop the executor service.");
+ }
+
+ state = ExecutionState.STOPPED;
+
+ // Disable new tasks from being submitted
+ pool.shutdown();
+
+ // Wait a while for existing tasks to terminate
+ try {
+ if (!pool.awaitTermination(1, TimeUnit.SECONDS)) {
+
+ // Cancel currently executing tasks
+ pool.shutdownNow();
+
+ // Wait a while for to respond to being canceled
+ if (!pool.awaitTermination(1, TimeUnit.SECONDS)) {
+ if (log.isInfoEnabled()) {
+ log.info("Scheduler did not stop.");
+ }
+ }
+ }
+ } catch (InterruptedException ex) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Force scheduler to stop.");
+ }
+
+ // (Re-)Cancel if current thread also interrupted
+ pool.shutdownNow();
+
+ // Preserve interrupt status
+ Thread.currentThread().interrupt();
+ }
+
+ // debug
+ if (log.isInfoEnabled()) {
+ log.info("Scheduler stopped.");
+ }
+
+ }
+
+ @Override
+ public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
+ {
+ return pool.awaitTermination(timeout, unit);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ @Override
+ public ExecutionState getExecutionState()
+ {
+ return state;
+ }
+
+ /**
+ * @return
+ * @inheritDoc
+ */
+ public WorkMonitor<T> getMonitor()
+ {
+ return monitor;
+ }
+
+ /**
+ * @param monitor
+ * @inheritDoc
+ */
+ public void setMonitor(WorkMonitor<T> monitor)
+ {
+ if (state == ExecutionState.RUNNING) {
+ throw new IllegalStateException("The TaskMaster must be stopped to set a Monitor.");
+ }
+ this.monitor = monitor;
+ }
+
+ @Override
+ public void setExceptionHandler(TaskExceptionHandler exceptionHandler)
+ {
+ this.exceptionHandler = exceptionHandler;
+ }
+
+ @Override
+ public void setDelayTimer(DelayTimer delayTimer)
+ {
+ this.delayTimer = delayTimer;
+ }
+
+ @Override
+ public Date getFinishedWorking()
+ {
+ return endTime;
+ }
+
+ @Override
+ public T getLastCompletedTask()
+ {
+ return lastCompletedTask;
+ }
+
+ @Override
+ public long getCompletedTasks()
+ {
+ return completedTasks.get();
+ }
+
+ @Override
+ public Date getStartTime()
+ {
+ return startTime;
+ }
+
+ /**
+ * Sets the pool size
+ *
+ * @return
+ */
+ public int getPoolSize()
+ {
+ return poolSize;
+ }
+
+ /**
+ * Returns the size of the pool
+ *
+ * @param poolSize
+ */
+ public void setPoolSize(int poolSize)
+ {
+ pool.setCorePoolSize(this.poolSize = poolSize);
+ }
+
+ private class TaskExecutorPool extends ThreadPoolExecutor
+ {
+
+ private static final long KEEP_ALIVE = 50000L;
+
+ public TaskExecutorPool()
+ {
+ super(poolSize, poolSize, KEEP_ALIVE, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
+ this.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
+ }
+
+ @Override
+ protected void afterExecute(Runnable r, Throwable thrwbl)
+ {
+ super.afterExecute(r, thrwbl);
+
+ // try to reexecute the task runner while
+ // the task queue is not empty and while the pool
+ // is still completing the execution of tasks.
+ TaskExecutor taskExecutor = (TaskExecutor) r;
+ while (taskExecutor.getQueue().size() > 0 || getQueue().size() > 0) {
+ if (taskExecutor.getQueue().size() > 0) {
+ execute(r);
+ return;
+ }
+ try {
+ Thread.sleep(TICKLE_TIME);
+ } catch (InterruptedException e) {
+ log.error("", e);
+ }
+ }
+
+ taskExecutor.getDroid().finished();
+ state = ExecutionState.COMPLETED;
+ shutdownNow();
+
+ }
+ }
+
+ private class TaskExecutor implements Runnable
+ {
+
+ private final Droid<T> droid;
+ private final Queue<T> queue;
+ private final Worker<T> worker;
+
+ public TaskExecutor(Droid<T> droid)
+ {
+ this.droid = droid;
+ this.queue = droid.getQueue();
+ this.worker = droid.getNewWorker();
+ }
+
+ public Droid<T> getDroid()
+ {
+ return droid;
+ }
+
+ public Queue<T> getQueue()
+ {
+ return queue;
+ }
+
+ public Worker getWorker()
+ {
+ return worker;
+ }
+
+ @Override
+ public void run()
+ {
+ // poll the last task
+ T task = queue.poll();
+
+ // execute the task
+ if (task != null) {
+ try {
+ // monitor the execution of the task
+ if (monitor != null) {
+ monitor.beforeExecute(task, worker);
+ }
+
+ // debug
+ if (log.isDebugEnabled()) {
+ log.debug("Worker [" + worker + "] execute task [" + task + "].");
+ }
+
+ // execute the task
+ worker.execute(task);
+
+ // debug
+ if (log.isDebugEnabled()) {
+ log.debug("Worker [" + worker + "] executed task [" + task + "] with success.");
+ }
+
+ // monitor the execution of the task
+ if (monitor != null) {
+ monitor.afterExecute(task, worker, null);
+ }
+
+ // set the monitored variables
+ completedTasks.incrementAndGet();
+ lastCompletedTask = task;
+
+ } catch (Exception ex) {
+ // debug
+ if (log.isDebugEnabled()) {
+ log.debug("Worker [" + worker + "] executed task [" + task + "] without success.");
+ }
+
+ // debug
+ if (log.isErrorEnabled()) {
+ log.error("", ex);
+ }
+
+ // monitor the exception
+ if (monitor != null) {
+ monitor.afterExecute(task, worker, ex);
+ }
+
+ // handler the exception
+ if (ex != null) {
+ TaskExceptionResult result = exceptionHandler.handleException(ex);
+
+ // stop the execution in case of a fatal exception
+ if (TaskExceptionResult.FATAL.equals(result)) {
+ state = ExecutionState.STOPPED;
+ }
+
+ droid.finished();
+ pool.shutdownNow();
+
+ }
+ }
+ }
+ }
+ }
+}
Added: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SequentialTaskMaster.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SequentialTaskMaster.java?rev=1091681&view=auto
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SequentialTaskMaster.java (added)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SequentialTaskMaster.java Wed Apr 13 08:03:11 2011
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.droids.impl;
+
+import java.util.Date;
+import java.util.Queue;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.droids.api.DelayTimer;
+import org.apache.droids.api.Droid;
+import org.apache.droids.api.Task;
+import org.apache.droids.api.TaskExceptionHandler;
+import org.apache.droids.api.TaskExceptionResult;
+import org.apache.droids.api.TaskMaster;
+import org.apache.droids.api.Worker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SequentialTaskMaster<T extends Task> implements TaskMaster<T>
+{
+
+ private final Logger log = LoggerFactory.getLogger(SequentialTaskMaster.class);
+ private final Object mutex;
+ private volatile boolean completed;
+ private volatile Date startedWorking = null;
+ private volatile Date finishedWorking = null;
+ private volatile int completedTask = 0;
+ private volatile T lastCompletedTask = null;
+ private volatile ExecutionState state = ExecutionState.INITIALIZED;
+ private DelayTimer delayTimer = null;
+ private TaskExceptionHandler exHandler = null;
+
+ public SequentialTaskMaster() {
+ super();
+ this.mutex = new Object();
+ }
+
+ /**
+ * The queue has been initialized
+ */
+ @Override
+ public synchronized void start(final Queue<T> queue, final Droid<T> droid) {
+ this.completed = false;
+ this.startedWorking = new Date();
+ this.finishedWorking = null;
+ this.completedTask = 0;
+ this.state = ExecutionState.RUNNING;
+
+ boolean terminated = false;
+ while (!terminated) {
+ T task = queue.poll();
+ if (task == null) {
+ break;
+ }
+ if (delayTimer != null) {
+ long delay = delayTimer.getDelayMillis();
+ if (delay > 0) {
+ try {
+ Thread.sleep(delay);
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+ Worker<T> worker = droid.getNewWorker();
+ try {
+ if (!task.isAborted()) {
+ worker.execute(task);
+ }
+ completedTask++;
+ lastCompletedTask = task;
+ } catch (Exception ex) {
+ TaskExceptionResult result = TaskExceptionResult.WARN;
+ if (exHandler != null) {
+ result = exHandler.handleException(ex);
+ }
+ switch (result) {
+ case WARN:
+ log.warn(ex.toString());
+ break;
+ case FATAL:
+ log.warn(ex.getMessage(), ex);
+ terminated = true;
+ break;
+ }
+ }
+ }
+ finishedWorking = new Date();
+ this.state = ExecutionState.STOPPED;
+ droid.finished();
+ synchronized (mutex) {
+ completed = true;
+ mutex.notifyAll();
+ }
+ }
+
+ @Override
+ public final void setExceptionHandler(TaskExceptionHandler exHandler) {
+ this.exHandler = exHandler;
+ }
+
+ @Override
+ public final void setDelayTimer(DelayTimer delayTimer) {
+ this.delayTimer = delayTimer;
+ }
+
+ public boolean isWorking() {
+ return startedWorking != null && finishedWorking == null;
+ }
+
+ @Override
+ public Date getStartTime() {
+ return startedWorking;
+ }
+
+ @Override
+ public Date getFinishedWorking() {
+ return finishedWorking;
+ }
+
+ @Override
+ public long getCompletedTasks() {
+ return completedTask;
+ }
+
+ @Override
+ public T getLastCompletedTask() {
+ return lastCompletedTask;
+ }
+
+ @Override
+ public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+ if (timeout < 0) {
+ timeout = 0;
+ }
+ synchronized (this.mutex) {
+ long deadline = System.currentTimeMillis() + unit.toMillis(timeout);
+ long remaining = timeout;
+ while (!completed) {
+ this.mutex.wait(remaining);
+ if (timeout >= 0) {
+ remaining = deadline - System.currentTimeMillis();
+ if (remaining <= 0) {
+ return false; // Reach if timeout is over and no finish.
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public ExecutionState getExecutionState() {
+ return state;
+ }
+}
Modified: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/robot/walker/SimpleWalkingDroid.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/robot/walker/SimpleWalkingDroid.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/robot/walker/SimpleWalkingDroid.java (original)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/robot/walker/SimpleWalkingDroid.java Wed Apr 13 08:03:11 2011
@@ -28,7 +28,7 @@ import java.util.Queue;
import org.apache.droids.AbstractDroid;
import org.apache.droids.exception.InvalidTaskException;
import org.apache.droids.api.*;
-import org.apache.droids.impl.TaskMasterImpl;
+import org.apache.droids.impl.MultiThreadedTaskMaster;
public class SimpleWalkingDroid extends AbstractDroid<FileTask> implements WalkingDroid
{
@@ -72,7 +72,7 @@ public class SimpleWalkingDroid extends
//------------------------------------------------------------------
public static void main(String[] args) throws Exception
{
- TaskMasterImpl<FileTask> taskMaster = new TaskMasterImpl<FileTask>();
+ MultiThreadedTaskMaster<FileTask> taskMaster = new MultiThreadedTaskMaster<FileTask>();
taskMaster.setPoolSize(3);
Queue<FileTask> queue = new LinkedList<FileTask>();
Modified: incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/DroidsFactory.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/DroidsFactory.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/DroidsFactory.java (original)
+++ incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/DroidsFactory.java Wed Apr 13 08:03:11 2011
@@ -35,10 +35,11 @@ import org.apache.droids.helper.factorie
import org.apache.droids.helper.factories.ProtocolFactory;
import org.apache.droids.helper.factories.URLFiltersFactory;
import org.apache.droids.impl.DefaultTaskExceptionHandler;
-import org.apache.droids.impl.TaskMasterImpl;
+import org.apache.droids.impl.MultiThreadedTaskMaster;
import org.apache.droids.impl.ExceptionCrawlingDroid;
import org.apache.droids.impl.ReportCrawlingDroid;
import org.apache.droids.impl.SaveCrawlingDroid;
+import org.apache.droids.impl.SequentialTaskMaster;
import org.apache.droids.impl.SimpleTaskQueueWithHistory;
import org.apache.droids.parse.html.HtmlParser;
import org.apache.droids.protocol.http.HttpProtocol;
@@ -102,7 +103,7 @@ public class DroidsFactory
SimpleTaskQueueWithHistory<Link> simpleQueue = new SimpleTaskQueueWithHistory<Link>();
- TaskMasterImpl<Link> taskMaster = new TaskMasterImpl<Link>();
+ SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
taskMaster.setDelayTimer( simpleDelayTimer );
taskMaster.setExceptionHandler(new DefaultTaskExceptionHandler());
@@ -126,8 +127,7 @@ public class DroidsFactory
SimpleDelayTimer simpleDelayTimer = new SimpleDelayTimer();
simpleDelayTimer.setDelayMillis(100);
-// SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
- TaskMasterImpl<Link> taskMaster = new TaskMasterImpl<Link>();
+ SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
// MultiThreadedTaskMaster<Link> taskMaster = new MultiThreadedTaskMaster<Link>();
taskMaster.setDelayTimer( simpleDelayTimer );
taskMaster.setExceptionHandler(new DefaultTaskExceptionHandler());
@@ -156,8 +156,7 @@ public class DroidsFactory
Queue<Link> queue = new LinkedList<Link>();
-// SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
- TaskMasterImpl<Link> taskMaster = new TaskMasterImpl<Link>();
+ SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
// MultiThreadedTaskMaster<Link> taskMaster = new MultiThreadedTaskMaster<Link>();
taskMaster.setDelayTimer( simpleDelayTimer );
taskMaster.setExceptionHandler(new DefaultTaskExceptionHandler());
Modified: incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/FileRenameDroid.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/FileRenameDroid.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/FileRenameDroid.java (original)
+++ incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/FileRenameDroid.java Wed Apr 13 08:03:11 2011
@@ -28,7 +28,7 @@ import java.util.Queue;
import org.apache.droids.AbstractDroid;
import org.apache.droids.api.*;
import org.apache.droids.robot.walker.FileTask;
-import org.apache.droids.impl.TaskMasterImpl;
+import org.apache.droids.impl.MultiThreadedTaskMaster;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -128,7 +128,7 @@ public class FileRenameDroid extends Abs
//------------------------------------------------------------------
public static void main(String[] args)
{
- TaskMasterImpl<FileTask> taskMaster = new TaskMasterImpl<FileTask>();
+ MultiThreadedTaskMaster<FileTask> taskMaster = new MultiThreadedTaskMaster<FileTask>();
taskMaster.setPoolSize(3);
Queue<FileTask> queue = new LinkedList<FileTask>();
Modified: incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/SimpleRuntime.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/SimpleRuntime.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/SimpleRuntime.java (original)
+++ incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/examples/SimpleRuntime.java Wed Apr 13 08:03:11 2011
@@ -33,7 +33,7 @@ import org.apache.droids.helper.factorie
import org.apache.droids.helper.factories.ProtocolFactory;
import org.apache.droids.helper.factories.URLFiltersFactory;
import org.apache.droids.impl.DefaultTaskExceptionHandler;
-import org.apache.droids.impl.TaskMasterImpl;
+import org.apache.droids.impl.SequentialTaskMaster;
import org.apache.droids.impl.SysoutCrawlingDroid;
import org.apache.droids.net.RegexURLFilter;
import org.apache.droids.parse.html.HtmlParser;
@@ -127,7 +127,7 @@ public class SimpleRuntime {
Queue<Link> simpleQueue = new LinkedList<Link>();
- TaskMasterImpl<Link> taskMaster = new TaskMasterImpl<Link>();
+ SequentialTaskMaster<Link> taskMaster = new SequentialTaskMaster<Link>();
taskMaster.setDelayTimer( simpleDelayTimer );
taskMaster.setExceptionHandler( new DefaultTaskExceptionHandler() );
Propchange: incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+TestSimpleDroid.java.original~
Modified: incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/TestSimpleDroid.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/TestSimpleDroid.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/TestSimpleDroid.java (original)
+++ incubator/droids/trunk/droids-core/src/test/java/org/apache/droids/impl/TestSimpleDroid.java Wed Apr 13 08:03:11 2011
@@ -26,6 +26,7 @@ import org.apache.droids.api.Droid;
import org.apache.droids.api.Link;
import org.apache.droids.api.TaskExceptionHandler;
import org.apache.droids.api.TaskExceptionResult;
+import org.apache.droids.api.TaskMaster;
import org.apache.droids.examples.handler.ReportHandler;
import org.apache.droids.localserver.LocalHttpServer;
import org.apache.droids.localserver.ResourceHandler;
@@ -88,7 +89,7 @@ public class TestSimpleDroid
Droid<Link> droid = DroidsFactory.createSimpleExceptionCrawlingDroid(
targetURI);
- TaskMasterImpl<Link> taskMaster = (TaskMasterImpl<Link>) droid.getTaskMaster();
+ TaskMaster<Link> taskMaster = (TaskMaster<Link>) droid.getTaskMaster();
taskMaster.setExceptionHandler(new TaskExceptionHandler() {
public TaskExceptionResult handleException(Exception ex) {
Propchange: incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+droids-core-context.xml.original~
Modified: incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/droids-core-context.xml
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/droids-core-context.xml?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/droids-core-context.xml (original)
+++ incubator/droids/trunk/droids-spring/src/main/resources/org/apache/droids/dynamic/droids-core-context.xml Wed Apr 13 08:03:11 2011
@@ -44,7 +44,7 @@
</bean>
<bean name="taskMaster"
- class="org.apache.droids.impl.TaskMasterImpl">
+ class="org.apache.droids.impl.MultiThreadedTaskMaster">
<property name="exceptionHandler" ref="taskExceptionHandler" />
<property name="delayTimer" ref="org.apache.droids.delay.SimpleDelayTimer"/>
<!--<property name="maxThreads" value="${droids.maxThreads}"/>-->
Propchange: incubator/droids/trunk/droids-spring/src/test/resources/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+droids-core-test-context.xml.original~
Modified: incubator/droids/trunk/droids-spring/src/test/resources/droids-core-test-context.xml
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-spring/src/test/resources/droids-core-test-context.xml?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-spring/src/test/resources/droids-core-test-context.xml (original)
+++ incubator/droids/trunk/droids-spring/src/test/resources/droids-core-test-context.xml Wed Apr 13 08:03:11 2011
@@ -44,7 +44,7 @@
</bean>
<bean name="taskMaster"
- class="org.apache.droids.impl.TaskMasterImpl">
+ class="org.apache.droids.impl.MultiThreadedTaskMaster">
<property name="exceptionHandler" ref="taskExceptionHandler" />
<property name="delayTimer" ref="org.apache.droids.delay.SimpleDelayTimer"/>
<!--<property name="maxThreads" value="${droids.maxThreads}"/>-->
Propchange: incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+DroidPanel.java.original~
Modified: incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/DroidPanel.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/DroidPanel.java?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/DroidPanel.java (original)
+++ incubator/droids/trunk/droids-wicket/src/main/java/org/apache/droids/wicket/component/DroidPanel.java Wed Apr 13 08:03:11 2011
@@ -24,7 +24,7 @@ import java.util.Queue;
import org.apache.droids.api.Droid;
import org.apache.droids.api.Task;
-import org.apache.droids.impl.TaskMasterImpl;
+import org.apache.droids.impl.MultiThreadedTaskMaster;
import org.apache.droids.monitor.SimpleWorkMonitor;
import org.apache.droids.monitor.WorkBean;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
@@ -54,7 +54,7 @@ public class DroidPanel extends Panel
Queue taskQueue;
@SpringBean( name="taskMaster" )
- TaskMasterImpl taskMaster;
+ MultiThreadedTaskMaster taskMaster;
@SpringBean( name="runningMonitor" )
SimpleWorkMonitor monitor;
Propchange: incubator/droids/trunk/droids-wicket/src/main/resources/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Apr 13 08:03:11 2011
@@ -0,0 +1 @@
+applicationContext.xml.original~
Modified: incubator/droids/trunk/droids-wicket/src/main/resources/applicationContext.xml
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-wicket/src/main/resources/applicationContext.xml?rev=1091681&r1=1091680&r2=1091681&view=diff
==============================================================================
--- incubator/droids/trunk/droids-wicket/src/main/resources/applicationContext.xml (original)
+++ incubator/droids/trunk/droids-wicket/src/main/resources/applicationContext.xml Wed Apr 13 08:03:11 2011
@@ -35,7 +35,7 @@
<!-- DROIDS -->
<bean name="taskMaster"
- class="org.apache.droids.impl.TaskMasterImpl">
+ class="org.apache.droids.impl.MultiThreadedTaskMaster">
<!--
<property name="delayTimer" ref="org.apache.droids.delay.SimpleDelayTimer"/>
-->