Package org.elasticsearch.bootstrap
Class JarHell
java.lang.Object
org.elasticsearch.bootstrap.JarHell
public class JarHell
extends java.lang.Object
Simple 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-JDK
value in the jar manifest is compatible with current JRE - Checks any
X-Compile-Elasticsearch-Version
value in the jar manifest is compatible with the current ES
-
Method Summary
Modifier and Type Method Description static void
checkJarHell(java.util.function.Consumer<java.lang.String> output)
Checks the current classpath for duplicate classesstatic void
checkJarHell(java.util.Set<java.net.URL> urls, java.util.function.Consumer<java.lang.String> output)
Checks the set of URLs for duplicate classesstatic void
checkJavaVersion(java.lang.String resource, java.lang.String targetVersion)
Checks that the java specification versiontargetVersion
required byresource
is compatible with the current installation.static void
checkVersionFormat(java.lang.String targetVersion)
static void
main(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 Details
-
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
- AString
Consumer
to which debug output will be sent- Throws:
java.lang.IllegalStateException
- if jar hell was foundjava.io.IOException
java.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
- AString
Consumer
to which debug output will be sent- Throws:
java.lang.IllegalStateException
- if jar hell was foundjava.net.URISyntaxException
java.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 versiontargetVersion
required byresource
is compatible with the current installation.
-