Skip to content

Commit

Permalink
load keytool utility main class dynamically, trying both the old and …
Browse files Browse the repository at this point in the history
…new (java 8) class names
  • Loading branch information
nlevitt committed Sep 23, 2015
1 parent 490a257 commit 12dde2b
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 14 deletions.
32 changes: 32 additions & 0 deletions commons/src/main/java/org/archive/util/KeyTool.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.archive.util;

import java.lang.reflect.Method;

/**
* Wrapper for "keytool" utility main class. Loads class dynamically, trying
* both the old java and new class names.
* @see http://kris-sigur.blogspot.com/2014/10/heritrix-java-8-and-sunsecuritytoolskey.html
*/
public class KeyTool {
public static void main(String[] args) {
try {
Class<?> cl;
try {
// java 6 and 7
cl = ClassLoader.getSystemClassLoader().loadClass("sun.security.tools.Keytool");
} catch (ClassNotFoundException e) {
// java 8
cl = ClassLoader.getSystemClassLoader().loadClass("sun.security.tools.keytool.Main");
}
Method main = cl.getMethod("main", new String[0].getClass());
main.invoke(null, (Object) args);
} catch (Exception e) {
if (e instanceof RuntimeException) {
throw (RuntimeException) e;
} else {
throw new RuntimeException(e);
}
}
}

}
3 changes: 1 addition & 2 deletions engine/src/main/java/org/archive/crawler/Heritrix.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,13 @@
import org.archive.crawler.restlet.EngineApplication;
import org.archive.crawler.restlet.RateLimitGuard;
import org.archive.util.ArchiveUtils;
import org.archive.util.KeyTool;
import org.restlet.Component;
import org.restlet.Guard;
import org.restlet.Server;
import org.restlet.data.ChallengeScheme;
import org.restlet.data.Protocol;

import sun.security.tools.KeyTool;


/**
* Main class for Heritrix crawler.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;

import org.apache.commons.collections.Closure;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.io.FileUtils;
Expand All @@ -45,6 +41,7 @@
import org.archive.modules.net.ServerCache;
import org.archive.spring.ConfigFile;
import org.archive.spring.ConfigPath;
import org.archive.util.KeyTool;
import org.archive.util.TmpDirTestCase;
import org.mortbay.jetty.Request;
import org.mortbay.jetty.Server;
Expand All @@ -53,11 +50,12 @@
import org.mortbay.jetty.servlet.SessionHandler;
import org.mortbay.log.Log;

import sun.security.tools.KeyTool;

import com.google.common.io.Files;

@SuppressWarnings("restriction")
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;

public class CookieFetchHTTPIntegrationTest extends ProcessorTestBase {

protected static class TestHandler extends SessionHandler {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;

import org.archive.modules.ProcessorTestBase;
import org.archive.util.KeyTool;
import org.archive.util.TmpDirTestCase;
import org.mortbay.jetty.NCSARequestLog;
import org.mortbay.jetty.Request;
Expand All @@ -51,7 +48,9 @@
import org.mortbay.jetty.servlet.SessionHandler;
import org.mortbay.log.Log;

import sun.security.tools.KeyTool;
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;

public class FetchHTTPTest extends ProcessorTestBase {

Expand Down

0 comments on commit 12dde2b

Please sign in to comment.