project configuration: use standard output for 'instrumentation-util-8' module to avoid problems with build scripts which change project output folder

This commit is contained in:
nik
2016-05-18 19:26:18 +03:00
parent d6b00d683b
commit 1f2d2cea0f
3 changed files with 17 additions and 5 deletions
+1
View File
@@ -238,6 +238,7 @@ def layoutFull(String home, String targetDirectory, String patchedDescriptorDir
module("forms-compiler")
module("forms_rt")
module("instrumentation-util")
module("instrumentation-util-8")
}
jar("jps-model.jar") {
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/../../../../out/classes/production/instrumentation-util" />
<output-test url="file://$MODULE_DIR$/../../../../out/classes/test/instrumentation-util" />
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
@@ -141,7 +141,7 @@ public class ClasspathBootstrap {
cp.add(getResourcePath(AlienFormFileException.class)); // forms-compiler
cp.add(getResourcePath(GridConstraints.class)); // forms-rt
cp.add(getResourcePath(CellConstraints.class)); // jGoodies-forms
cp.add(getResourcePath(NotNullVerifyingInstrumenter.class)); // not-null
cp.addAll(getInstrumentationUtilRoots());
cp.add(getResourcePath(IXMLBuilder.class)); // nano-xml
cp.add(getJpsPluginSystemClassesPath().getAbsolutePath().replace('\\', '/'));
@@ -286,7 +286,20 @@ public class ClasspathBootstrap {
public static File getResourceFile(Class aClass) {
return new File(getResourcePath(aClass));
}
private static List<String> getInstrumentationUtilRoots() {
String instrumentationUtilPath = getResourcePath(NotNullVerifyingInstrumenter.class);
File instrumentationUtil = new File(instrumentationUtilPath);
if (instrumentationUtil.isDirectory()) {
//running from sources: load classes from .../out/production/instrumentation-util-8
return Arrays.asList(instrumentationUtilPath, new File(instrumentationUtil.getParentFile(), "instrumentation-util-8").getAbsolutePath());
}
else {
//running from jars: instrumentation-util-8 is located in the same jar
return Collections.singletonList(instrumentationUtilPath);
}
}
private static File getJpsPluginSystemClassesPath() {
File classesRoot = new File(getResourcePath(ClasspathBootstrap.class));
if (classesRoot.isDirectory()) {