diff --git a/engine/src/main/java/org/archive/crawler/reporting/StatisticsTracker.java b/engine/src/main/java/org/archive/crawler/reporting/StatisticsTracker.java index 968436b5..6d3515ad 100644 --- a/engine/src/main/java/org/archive/crawler/reporting/StatisticsTracker.java +++ b/engine/src/main/java/org/archive/crawler/reporting/StatisticsTracker.java @@ -989,7 +989,7 @@ public class StatisticsTracker for (Iterator i = getSeedsIterator();i.hasNext();) { SeedRecord sr = processedSeedsRecords.get(i.next()); seedsTotal++; - if((sr.getStatusCode() > 0)) { + if(sr!=null &&(sr.getStatusCode() > 0)) { seedsCrawled++; } } diff --git a/engine/src/main/java/org/archive/crawler/restlet/BeanBrowseResource.java b/engine/src/main/java/org/archive/crawler/restlet/BeanBrowseResource.java index 5b439c8a..35db2713 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/BeanBrowseResource.java +++ b/engine/src/main/java/org/archive/crawler/restlet/BeanBrowseResource.java @@ -30,6 +30,7 @@ import java.util.Set; import org.apache.commons.lang.StringUtils; import org.archive.spring.PathSharingContext; +import org.archive.util.TextUtils; import org.restlet.Context; import org.restlet.data.CharacterSet; import org.restlet.data.Form; @@ -128,9 +129,10 @@ public class BeanBrowseResource extends JobRelatedResource { protected void writeHtml(Writer writer) { PrintWriter pw = new PrintWriter(writer); - - - pw.println("

Crawl beans in built job "+cj.getShortName()+"

"); + pw.println("Crawl beans in "+cj.getShortName()+""); + pw.println("

Crawl beans in built job "+cj.getShortName()+"

"); pw.println("Enter a bean path of the form beanName, beanName.property, beanName.property[indexOrKey], etc."); pw.println("
"); pw.println("
"); diff --git a/engine/src/main/java/org/archive/crawler/restlet/EngineResource.java b/engine/src/main/java/org/archive/crawler/restlet/EngineResource.java index 67979cee..9b590b84 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/EngineResource.java +++ b/engine/src/main/java/org/archive/crawler/restlet/EngineResource.java @@ -19,6 +19,7 @@ package org.archive.crawler.restlet; +import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.Writer; @@ -79,6 +80,12 @@ public class EngineResource extends Resource { protected void writeHtml(Writer writer) { Engine engine = getEngine(); String engineTitle = "Heritrix Engine "+engine.getHeritrixVersion(); + File jobsDir = engine.getJobsDir(); + try { + jobsDir = jobsDir.getCanonicalFile(); + } catch (IOException ioe) { + // live with the noncanonical file + } String baseRef = getRequest().getResourceRef().getBaseRef().toString(); if(!baseRef.endsWith("/")) { baseRef += "/"; @@ -91,21 +98,28 @@ public class EngineResource extends Resource { pw.println("Memory: "); pw.println(engine.heapReport()); - - pw.println("

Browse Jobs Directory

"); + pw.println("

"); + pw.println("Jobs Directory: "+jobsDir.getAbsolutePath()+""); ArrayList jobs = new ArrayList(); jobs.addAll(engine.getJobConfigs().values()); - pw.println("

Job Configs ("+jobs.size()+")"); + pw.println("

Job Directories ("+jobs.size()+")"); pw.println(""); pw.println("

"); Collections.sort(jobs); + pw.println("
    "); for(CrawlJob cj: jobs) { pw.println("
  • "); cj.writeHtmlTo(pw,"job/"); pw.println("
  • "); } + pw.println("
"); + pw.println( + "To create a new job, use the 'copy' functionality on " + + "an existing job's detail page, or create a new job " + + "directory outside this interface and use the 'rescan' " + + "button."); pw.println(""); pw.flush(); } diff --git a/engine/src/main/java/org/archive/crawler/restlet/PagedRepresentation.java b/engine/src/main/java/org/archive/crawler/restlet/PagedRepresentation.java index e73ed696..7c1ebf86 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/PagedRepresentation.java +++ b/engine/src/main/java/org/archive/crawler/restlet/PagedRepresentation.java @@ -130,7 +130,7 @@ public class PagedRepresentation extends CharacterRepresentation { loadLines(); PrintWriter pw = new PrintWriter(writer); - pw.println(file); + pw.println("Paged view: "+file); emitControls(pw); pw.println("
");
@@ -198,7 +198,7 @@ public class PagedRepresentation extends CharacterRepresentation {
             pw.println("");
             
             pw.println("");
-            pw.println("normal");
+            pw.println("forward");
             pw.println("| reversed"); 
         } else {
             pw.print("");
@@ -224,7 +224,7 @@ public class PagedRepresentation extends CharacterRepresentation {
             pw.println("'>end »");
             pw.println("");
             
-            pw.println("normal"); 
+            pw.println("forward"); 
             pw.println("| reversed"); 
         }
                 
diff --git a/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java b/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java
index 4e97df6d..32b01a91 100644
--- a/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java
+++ b/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java
@@ -32,6 +32,7 @@ import javax.script.ScriptException;
 
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
+import org.archive.util.TextUtils;
 import org.restlet.Context;
 import org.restlet.data.CharacterSet;
 import org.restlet.data.Form;
@@ -122,7 +123,11 @@ public class ScriptResource extends JobRelatedResource {
 
     protected void writeHtml(Writer writer) {
         PrintWriter pw = new PrintWriter(writer); 
-        pw.println("

Execute script for job "+cj.getShortName()+"

"); + pw.println("Script in "+cj.getShortName()+""); + pw.println("

Execute script for job "+cj.getShortName()+"

"); + // output of previous script, if any if(ex!=null) {