Package org.elasticsearch.bootstrap
Class JarHell
- java.lang.Object
-
- org.elasticsearch.bootstrap.JarHell
-
public class JarHell extends java.lang.ObjectSimple check for duplicate class files across the classpath.This class checks for incompatibilities in the following ways:
- Checks that class files are not duplicated across jars.
- Checks any
X-Compile-Target-JDKvalue in the jar manifest is compatible with current JRE - Checks any
X-Compile-Elasticsearch-Versionvalue in the jar manifest is compatible with the current ES
-
-
Method Summary
Modifier and Type Method Description static voidcheckJarHell(java.util.function.Consumer<java.lang.String> output)Checks the current classpath for duplicate classesstatic voidcheckJarHell(java.util.Set<java.net.URL> urls, java.util.function.Consumer<java.lang.String> output)Checks the set of URLs for duplicate classesstatic voidcheckJavaVersion(java.lang.String resource, java.lang.String targetVersion)Checks that the java specification versiontargetVersionrequired byresourceis compatible with the current installation.static voidcheckVersionFormat(java.lang.String targetVersion)static voidmain(java.lang.String[] args)Simple driver class, can be used eg.static java.util.Set<java.net.URL>parseClassPath()Parses the classpath into an array of URLs
-
-
-
Method Detail
-
main
public static void main(java.lang.String[] args) throws java.lang.ExceptionSimple driver class, can be used eg. from builds. Returns non-zero on jar-hell- Throws:
java.lang.Exception
-
checkJarHell
public static void checkJarHell(java.util.function.Consumer<java.lang.String> output) throws java.io.IOException, java.net.URISyntaxExceptionChecks the current classpath for duplicate classes- Parameters:
output- AStringConsumerto which debug output will be sent- Throws:
java.lang.IllegalStateException- if jar hell was foundjava.io.IOExceptionjava.net.URISyntaxException
-
parseClassPath
public static java.util.Set<java.net.URL> parseClassPath()
Parses the classpath into an array of URLs- Returns:
- array of URLs
- Throws:
java.lang.IllegalStateException- if the classpath contains empty elements
-
checkJarHell
public static void checkJarHell(java.util.Set<java.net.URL> urls, java.util.function.Consumer<java.lang.String> output) throws java.net.URISyntaxException, java.io.IOExceptionChecks the set of URLs for duplicate classes- Parameters:
urls- A set of URLs from the classpath to be checked for conflicting jarsoutput- AStringConsumerto which debug output will be sent- Throws:
java.lang.IllegalStateException- if jar hell was foundjava.net.URISyntaxExceptionjava.io.IOException
-
checkVersionFormat
public static void checkVersionFormat(java.lang.String targetVersion)
-
checkJavaVersion
public static void checkJavaVersion(java.lang.String resource, java.lang.String targetVersion)Checks that the java specification versiontargetVersionrequired byresourceis compatible with the current installation.
-
-