reference = JpsElementFactory.getInstance().createSdkReference(sdkName, sdkType); table.setSdkReference(sdkType, reference); if (sdkType instanceof JpsJavaSdkTypeWrapper) { - JpsLibrary jpsLibrary = reference.resolve(); - if (jpsLibrary != null) { - String name = ((JpsJavaSdkTypeWrapper)sdkType).getJavaSdkName(((JpsSdk>)jpsLibrary.getProperties()).getSdkProperties()); - if (name != null) { - table.setSdkReference(JpsJavaSdkType.INSTANCE, JpsElementFactory.getInstance().createSdkReference(name, JpsJavaSdkType.INSTANCE)); - } - } + JpsSdkReference
wrapperRef = JpsElementFactory.getInstance().createSdkReference(sdkName, sdkType);
+ table.setSdkReference(JpsJavaSdkType.INSTANCE, JpsJavaExtensionService.getInstance().createWrappedJavaSdkReference((JpsJavaSdkTypeWrapper)sdkType,
+ wrapperRef));
}
}
}
diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java
index cba1b3a103da..a1fef5c3be7b 100644
--- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java
+++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java
@@ -10,6 +10,7 @@ import org.jetbrains.jps.model.JpsSimpleElement;
import org.jetbrains.jps.model.java.JavaSourceRootProperties;
import org.jetbrains.jps.model.java.JavaSourceRootType;
import org.jetbrains.jps.model.java.JpsJavaSdkType;
+import org.jetbrains.jps.model.java.JpsJavaSdkTypeWrapper;
import org.jetbrains.jps.model.library.JpsLibrary;
import org.jetbrains.jps.model.library.JpsLibraryReference;
import org.jetbrains.jps.model.library.sdk.JpsSdkType;
@@ -82,6 +83,9 @@ public class JpsModuleRootModelSerializer {
final JpsSdkType> sdkType = JpsSdkTableSerializer.getSdkType(sdkTypeId);
dependenciesList.addSdkDependency(sdkType);
JpsSdkTableSerializer.setSdkReference(module.getSdkReferencesTable(), sdkName, sdkType);
+ if (sdkType instanceof JpsJavaSdkTypeWrapper) {
+ dependenciesList.addSdkDependency(JpsJavaSdkType.INSTANCE);
+ }
}
else if (INHERITED_JDK_TYPE.equals(type)) {
dependenciesList.addSdkDependency(projectSdkType != null ? projectSdkType : JpsJavaSdkType.INSTANCE);
diff --git a/plugins/devkit/jps-plugin/testData/pluginProject/pluginProject.iml b/plugins/devkit/jps-plugin/testData/pluginProject/pluginProject.iml
index b1dfece3abbb..953b0b8577d1 100644
--- a/plugins/devkit/jps-plugin/testData/pluginProject/pluginProject.iml
+++ b/plugins/devkit/jps-plugin/testData/pluginProject/pluginProject.iml
@@ -6,7 +6,7 @@