GT-3120: Allow default bin/main class location to be overridden.

This commit is contained in:
Tom Nelson 2019-08-29 13:44:05 +00:00 committed by Ryan Kurtz
parent ef50280d10
commit ab5e715607

View file

@ -32,6 +32,7 @@ import utilities.util.FileUtilities;
*/ */
public class ModuleUtilities { public class ModuleUtilities {
private static final String BINARY_PATH = System.getProperty("binaryPath", "bin/main");
public static final String MANIFEST_FILE_NAME = "Module.manifest"; public static final String MANIFEST_FILE_NAME = "Module.manifest";
public static final String MANIFEST_FILE_NAME_UNINSTALLED = "Module.manifest.uninstalled"; public static final String MANIFEST_FILE_NAME_UNINSTALLED = "Module.manifest.uninstalled";
public static final String MODULE_LIST = "MODULE_LIST"; public static final String MODULE_LIST = "MODULE_LIST";
@ -186,15 +187,17 @@ public class ModuleUtilities {
} }
/** /**
* Gets the "bin" directories from the given modules. * Gets the directory locations of the .class files and resources from the given modules.
* *
* @param modules The modules to get the bin directories of. * @param modules The modules to get the compiled .class and resources directories of.
* @return A collection of bin directories from the given modules. * @return A collection of directories containing classes and resources from the given modules.
*/ */
public static Collection<ResourceFile> getModuleBinDirectories(Map<String, GModule> modules) { public static Collection<ResourceFile> getModuleBinDirectories(Map<String, GModule> modules) {
String[] binaryPathTokens = BINARY_PATH.split(":");
List<ResourceFile> binDirectories = new ArrayList<>(); List<ResourceFile> binDirectories = new ArrayList<>();
for (GModule module : modules.values()) { for (GModule module : modules.values()) {
module.collectExistingModuleDirs(binDirectories, "bin/main"); Arrays.stream(binaryPathTokens).forEach(
token -> module.collectExistingModuleDirs(binDirectories, token));
} }
return binDirectories; return binDirectories;
} }