in transform-cli/src/main/java/com/uber/okbuck/transform/CliTransform.java [27:91]
public static void main(String[] args) {
if (args.length != 0) {
StringBuilder sb =
new StringBuilder()
.append(
"No argument is expected. All parameters should be passed through java system properties.\n")
.append(PROPERTY_IN_JARS_DIR + " : jars input directory\n")
.append(PROPERTY_OUT_JARS_DIR + " : jars output directory\n")
.append(PROPERTY_CONFIG_FILE + " : configuration file\n")
.append(PROPERTY_ANDROID_BOOTCLASSPATH + " : android classpath\n")
.append(
PROPERTY_TRANSFORM_DEPENDENCIES_FILE + " : transform dependencies [optional]\n")
.append(PROPERTY_TRANSFORM_CLASS + " : full qualified name for transform class\n");
throw new IllegalArgumentException(sb.toString());
}
// Loading transform dependencies in this class loader to ensure this application to work
// properly
final String[] postProcessDependencies =
readDependenciesFileFromSystemPropertyVar(PROPERTY_TRANSFORM_DEPENDENCIES_FILE);
if (postProcessDependencies.length > 0) {
new SystemClassLoader().loadJarFiles(postProcessDependencies);
}
// Passing the dependencies to the transform runner.
main(
new TransformRunnerProvider() {
@Override
public TransformRunner provide() {
// Reading config file.
String configFilePath = System.getProperty(PROPERTY_CONFIG_FILE);
// Reading input jar dir
String inJarsDir = System.getProperty(PROPERTY_IN_JARS_DIR);
// Reading output jar dir
String outJarsDir = System.getProperty(PROPERTY_OUT_JARS_DIR);
// Reading android classpaths
String[] androidClasspaths =
readDependenciesFromSystemPropertyVar(PROPERTY_ANDROID_BOOTCLASSPATH);
// Creating TransformRunner class
try {
Class<Transform> transformClass;
String transformClassName = System.getProperty(PROPERTY_TRANSFORM_CLASS);
if (transformClassName != null) {
transformClass = (Class<Transform>) Class.forName(transformClassName);
} else {
throw new IllegalArgumentException("No transform class defined.");
}
TransformRunner runner =
new TransformRunner(
configFilePath, inJarsDir, outJarsDir, androidClasspaths, transformClass);
return runner;
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
});
}