mirror of
https://github.com/internetarchive/heritrix3.git
synced 2026-09-22 21:55:54 +00:00
Merge pull request #129 from nlevitt/java8keytool
load keytool utility main class dynamically, trying both the old and …
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* 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.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -55,14 +55,13 @@ import org.archive.crawler.framework.Engine;
|
||||
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.
|
||||
|
||||
+5
-7
@@ -29,10 +29,6 @@ import javax.servlet.http.Cookie;
|
||||
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;
|
||||
@@ -45,6 +41,7 @@ import org.archive.modules.net.CrawlServer;
|
||||
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;
|
||||
@@ -53,11 +50,12 @@ import org.mortbay.jetty.security.SslSocketConnector;
|
||||
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 {
|
||||
|
||||
@@ -27,11 +27,8 @@ import javax.servlet.ServletException;
|
||||
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;
|
||||
@@ -51,7 +48,9 @@ import org.mortbay.jetty.security.SslSocketConnector;
|
||||
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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user