diff --git a/engine/src/main/java/org/archive/crawler/framework/ToeThread.java b/engine/src/main/java/org/archive/crawler/framework/ToeThread.java index 374a3fa2..fc66a191 100644 --- a/engine/src/main/java/org/archive/crawler/framework/ToeThread.java +++ b/engine/src/main/java/org/archive/crawler/framework/ToeThread.java @@ -34,6 +34,8 @@ import java.util.logging.Logger; import org.archive.io.SinkHandlerLogThread; import org.archive.modules.CrawlURI; +import org.archive.modules.Processor; +import org.archive.modules.ProcessorChain.ChainStatusReceiver; import org.archive.modules.fetcher.HostResolver; import org.archive.spring.KeyedProperties; import org.archive.util.ArchiveUtils; @@ -53,7 +55,7 @@ import com.sleepycat.util.RuntimeExceptionWrapper; */ public class ToeThread extends Thread implements RecorderMarker, MultiReporter, ProgressStatisticsReporter, - HostResolver, SinkHandlerLogThread { + HostResolver, SinkHandlerLogThread, ChainStatusReceiver { public enum Step { NASCENT, ABOUT_TO_GET_URI, FINISHED, @@ -221,6 +223,10 @@ implements RecorderMarker, MultiReporter, ProgressStatisticsReporter, atStepSince = System.currentTimeMillis(); currentProcessorName = procName != null ? procName : ""; } + + public void atProcessor(Processor proc) { + setStep(Step.ABOUT_TO_BEGIN_PROCESSOR, proc.getName()); + } private void seriousError(Error err) { // try to prevent timeslicing until we have a chance to deal with OOM diff --git a/modules/src/main/java/org/archive/modules/ProcessorChain.java b/modules/src/main/java/org/archive/modules/ProcessorChain.java index dc4a891d..b56f2048 100644 --- a/modules/src/main/java/org/archive/modules/ProcessorChain.java +++ b/modules/src/main/java/org/archive/modules/ProcessorChain.java @@ -4,8 +4,6 @@ import java.io.PrintWriter; import java.util.Iterator; import java.util.List; -import org.archive.crawler.framework.ToeThread; -import org.archive.crawler.framework.ToeThread.Step; import org.archive.spring.HasKeyedProperties; import org.archive.spring.KeyedProperties; import org.archive.util.ArchiveUtils; @@ -107,7 +105,7 @@ implements Iterable, } } - public void process(CrawlURI curi, ToeThread thread) throws InterruptedException { + public void process(CrawlURI curi, ChainStatusReceiver thread) throws InterruptedException { assert KeyedProperties.overridesActiveFrom(curi); String skipToProc = null; @@ -118,7 +116,7 @@ implements Iterable, skipToProc = null; } if(thread!=null) { - thread.setStep(Step.ABOUT_TO_BEGIN_PROCESSOR, curProc.getName()); + thread.atProcessor(curProc); } ArchiveUtils.continueCheck(); ProcessResult pr = curProc.process(curi); @@ -133,4 +131,8 @@ implements Iterable, } } } + + public interface ChainStatusReceiver { + public void atProcessor(Processor proc); + } }