diff --git a/build/scripts/layouts.gant b/build/scripts/layouts.gant index 2d2c56280509..3c064f0d9168 100644 --- a/build/scripts/layouts.gant +++ b/build/scripts/layouts.gant @@ -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") { diff --git a/java/compiler/instrumentation-util-8/instrumentation-util-8.iml b/java/compiler/instrumentation-util-8/instrumentation-util-8.iml index c00964488054..c94604452705 100644 --- a/java/compiler/instrumentation-util-8/instrumentation-util-8.iml +++ b/java/compiler/instrumentation-util-8/instrumentation-util-8.iml @@ -1,8 +1,6 @@ - - - + diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/ClasspathBootstrap.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/ClasspathBootstrap.java index f77eeb2bbfb4..a4e044eb0533 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/ClasspathBootstrap.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/ClasspathBootstrap.java @@ -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 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()) {