diff --git a/engine/src/main/java/org/archive/crawler/reporting/FrontierNonemptyReport.java b/engine/src/main/java/org/archive/crawler/reporting/FrontierNonemptyReport.java new file mode 100644 index 00000000..fab13127 --- /dev/null +++ b/engine/src/main/java/org/archive/crawler/reporting/FrontierNonemptyReport.java @@ -0,0 +1,51 @@ +/* + * This file is part of the Heritrix web crawler (crawler.archive.org). + * + * Licensed to the Internet Archive (IA) by one or more individual + * contributors. + * + * The IA 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.archive.crawler.reporting; + +import java.io.PrintWriter; + +import org.archive.crawler.frontier.WorkQueueFrontier; + +/** + * Report of all nonempty Frontier queues (as usually dumped at end of + * crawl for reference). + * + * @contributor gojomo + */ +public class FrontierNonemptyReport extends Report { + + @Override + public void write(PrintWriter writer) { + if(!stats.controller.getFrontier().isRunning()) { + writer.println("frontier unstarted"); + } else if (stats.controller.getFrontier().isEmpty()) { + writer.println("frontier empty"); + } else { + stats.controller.getFrontier().reportTo( + WorkQueueFrontier.ALL_NONEMPTY, writer); + } + } + + @Override + public String getFilename() { + return "frontier-nonempty-report.txt"; + } + +} diff --git a/engine/src/main/java/org/archive/crawler/reporting/FrontierReport.java b/engine/src/main/java/org/archive/crawler/reporting/FrontierReport.java deleted file mode 100644 index 309beca0..00000000 --- a/engine/src/main/java/org/archive/crawler/reporting/FrontierReport.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.archive.crawler.reporting; - -import java.io.PrintWriter; - -public class FrontierReport extends Report { - - @Override - public void write(PrintWriter writer) { - if(stats.controller.getFrontier().isEmpty()) { - writer.println("frontier empty"); - } else { - stats.controller.getFrontier().reportTo("nonempty", writer); - } - } - - @Override - public String getFilename() { - return "frontier-report.txt"; - } - -} diff --git a/engine/src/main/java/org/archive/crawler/reporting/FrontierSummaryReport.java b/engine/src/main/java/org/archive/crawler/reporting/FrontierSummaryReport.java new file mode 100644 index 00000000..c1ee5f7d --- /dev/null +++ b/engine/src/main/java/org/archive/crawler/reporting/FrontierSummaryReport.java @@ -0,0 +1,51 @@ +/* + * This file is part of the Heritrix web crawler (crawler.archive.org). + * + * Licensed to the Internet Archive (IA) by one or more individual + * contributors. + * + * The IA 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.archive.crawler.reporting; + +import java.io.PrintWriter; + +import org.archive.crawler.frontier.WorkQueueFrontier; + +/** + * Frontier summary report showing a limited number of queues of each + * type -- as typically consulted during a crawl in progress. + * + * @contributor gojomo + */ +public class FrontierSummaryReport extends Report { + + @Override + public void write(PrintWriter writer) { + if(!stats.controller.getFrontier().isRunning()) { + writer.println("frontier unstarted"); + } else if (stats.controller.getFrontier().isEmpty()) { + writer.println("frontier empty"); + } else { + stats.controller.getFrontier().reportTo( + WorkQueueFrontier.STANDARD_REPORT, writer); + } + } + + @Override + public String getFilename() { + return "frontier-summary-report.txt"; + } + +} diff --git a/engine/src/main/java/org/archive/crawler/reporting/ToeThreadsReport.java b/engine/src/main/java/org/archive/crawler/reporting/ToeThreadsReport.java new file mode 100644 index 00000000..243cabe8 --- /dev/null +++ b/engine/src/main/java/org/archive/crawler/reporting/ToeThreadsReport.java @@ -0,0 +1,41 @@ +/* + * This file is part of the Heritrix web crawler (crawler.archive.org). + * + * Licensed to the Internet Archive (IA) by one or more individual + * contributors. + * + * The IA 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.archive.crawler.reporting; + +import java.io.PrintWriter; + +/** + * Traditional report of all ToeThread call-stacks, as often consulted + * to diagnose live crawl issues. + * + * @contributor gojomo + */ +public class ToeThreadsReport extends Report { + + @Override + public void write(PrintWriter writer) { + writer.print(stats.controller.getToeThreadReport()); + } + + @Override + public String getFilename() { + return "threads-report.txt"; + } + +}