mirror of
https://github.com/internetarchive/heritrix3.git
synced 2026-11-09 15:36:40 +00:00
Fixes from trial guide testing
* Heritrix.java
fail-fast with helpful error message if launched with Java < 1.6
* EditRepresentation.java
"save changes" rather than "update content"
* EngineApplication.java
customize restlet error to include back-button and full stack (instead of link to HTTP spec!)
This commit is contained in:
1 parent
27783e87ab
commit
ecd93ae458
3 files changed
+49
-1
No files matched your search
@@ -188,6 +188,17 @@ public class Heritrix {
|
||||
|
||||
public void instanceMain(String[] args)
|
||||
throws Exception {
|
||||
|
||||
// ensure using java 1.6+ before hitting a later cryptic error
|
||||
String version = System.getProperty("java.version");
|
||||
float floatVersion = Float.valueOf(version.substring(0,version.indexOf('.',2)));
|
||||
if(floatVersion<1.6) {
|
||||
System.err.println("Heritrix (as of version 3) requires Java 1.6 or higher.");
|
||||
System.err.println("You attempted to launch with: "+version);
|
||||
System.err.println("Please try again with a later Java.");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
// Set some system properties early.
|
||||
// Can't use class names here without loading them.
|
||||
String ignoredSchemes = "org.archive.net.UURIFactory.ignored-schemes";
|
||||
|
||||
@@ -63,7 +63,8 @@ public class EditRepresentation extends CharacterRepresentation {
|
||||
PrintWriter pw = new PrintWriter(writer);
|
||||
Flash.renderFlashesHTML(pw, dirResource.getRequest());
|
||||
pw.println("<form method='POST'>");
|
||||
pw.println("<input type='submit' value='update contents'/>");
|
||||
// TODO: enable button on after changes made
|
||||
pw.println("<input type='submit' value='save changes'/>");
|
||||
pw.println(fileRepresentation.getFile());
|
||||
Reference viewRef = dirResource.getRequest().getOriginalRef().clone();
|
||||
viewRef.setQuery(null);
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
package org.archive.crawler.restlet;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import org.archive.crawler.framework.Engine;
|
||||
import org.archive.util.TextUtils;
|
||||
@@ -31,6 +33,11 @@ import org.restlet.Router;
|
||||
import org.restlet.data.MediaType;
|
||||
import org.restlet.data.Reference;
|
||||
import org.restlet.data.Request;
|
||||
import org.restlet.data.Response;
|
||||
import org.restlet.data.Status;
|
||||
import org.restlet.resource.Representation;
|
||||
import org.restlet.resource.StringRepresentation;
|
||||
import org.restlet.service.StatusService;
|
||||
import org.restlet.util.Template;
|
||||
|
||||
/**
|
||||
@@ -46,6 +53,7 @@ public class EngineApplication extends Application {
|
||||
this.engine = engine;
|
||||
getMetadataService().addExtension("log", MediaType.TEXT_PLAIN );
|
||||
getMetadataService().addExtension("cxml", MediaType.APPLICATION_XML );
|
||||
setStatusService(new EngineStatusService());
|
||||
}
|
||||
|
||||
public synchronized Restlet createRoot() {
|
||||
@@ -95,4 +103,32 @@ public class EngineApplication extends Application {
|
||||
public Engine getEngine() {
|
||||
return engine;
|
||||
}
|
||||
|
||||
/**
|
||||
* Customize Restlet error to include back button and full stack.
|
||||
*/
|
||||
protected class EngineStatusService extends StatusService {
|
||||
|
||||
@Override
|
||||
public Representation getRepresentation(Status status, Request request, Response response) {
|
||||
StringWriter st = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(st);
|
||||
pw.append("<h1>An error occured</h1>\n");
|
||||
pw.append(
|
||||
"You may be able to recover and try something " +
|
||||
"else by going <a href='javascript:history.back();void(0);'>" +
|
||||
"back</a>.\n");
|
||||
if(status.getThrowable()!=null) {
|
||||
pw.append("<h2>Cause: "+
|
||||
status.getThrowable().toString()+"</h2>\n");
|
||||
pw.append("<pre>");
|
||||
status.getThrowable().printStackTrace(pw);
|
||||
pw.append("</pre>");
|
||||
}
|
||||
pw.flush();
|
||||
return new StringRepresentation(st.toString(),MediaType.TEXT_HTML);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user