> jdk = myModel.getGlobal().addSdk(name, homePath, versionString, JpsJavaSdkType.INSTANCE);
jdk.addRoot(JpsPathUtil.pathToUrl(path), JpsOrderRootType.COMPILED);
return jdk.getProperties();
}
diff --git a/jps/model-api/src/org/jetbrains/jps/model/JpsGlobal.java b/jps/model-api/src/org/jetbrains/jps/model/JpsGlobal.java
index bf197f154c02..bef3d0d8603f 100644
--- a/jps/model-api/src/org/jetbrains/jps/model/JpsGlobal.java
+++ b/jps/model-api/src/org/jetbrains/jps/model/JpsGlobal.java
@@ -14,6 +14,9 @@ public interface JpsGlobal extends JpsCompositeElement, JpsReferenceableElement<
& JpsElementTypeWithDefaultProperties
>
JpsLibrary addLibrary(@NotNull LibraryType libraryType, final @NotNull String name);
+
& JpsElementTypeWithDefaultProperties
>
+ JpsTypedLibrary> addSdk(@NotNull String name, @Nullable String homePath, @Nullable String versionString, @NotNull SdkType type);
+
JpsTypedLibrary> addSdk(@NotNull String name, @Nullable String homePath, @Nullable String versionString,
@NotNull JpsSdkType type, @NotNull P properties);
diff --git a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaSdkType.java b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaSdkType.java
index 6b4aba1f0112..d934f125c9e4 100644
--- a/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaSdkType.java
+++ b/jps/model-api/src/org/jetbrains/jps/model/java/JpsJavaSdkType.java
@@ -1,15 +1,24 @@
package org.jetbrains.jps.model.java;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.model.JpsDummyElement;
+import org.jetbrains.jps.model.JpsElementFactory;
+import org.jetbrains.jps.model.JpsElementTypeWithDefaultProperties;
import org.jetbrains.jps.model.library.sdk.JpsSdkType;
import org.jetbrains.jps.model.library.sdk.JpsSdk;
/**
* @author nik
*/
-public class JpsJavaSdkType extends JpsSdkType {
+public class JpsJavaSdkType extends JpsSdkType implements JpsElementTypeWithDefaultProperties {
public static final JpsJavaSdkType INSTANCE = new JpsJavaSdkType();
+ @NotNull
+ @Override
+ public JpsDummyElement createDefaultProperties() {
+ return JpsElementFactory.getInstance().createDummyElement();
+ }
+
public static String getJavaExecutable(JpsSdk> sdk) {
return sdk.getHomePath() + "/bin/java";
}
diff --git a/jps/model-impl/src/org/jetbrains/jps/model/impl/JpsGlobalImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/impl/JpsGlobalImpl.java
index 71fca3024c85..9cddc57c3b31 100644
--- a/jps/model-impl/src/org/jetbrains/jps/model/impl/JpsGlobalImpl.java
+++ b/jps/model-impl/src/org/jetbrains/jps/model/impl/JpsGlobalImpl.java
@@ -42,6 +42,12 @@ public class JpsGlobalImpl extends JpsRootElementBase implements
return sdk;
}
+ @Override
+ public & JpsElementTypeWithDefaultProperties
> JpsTypedLibrary>
+ addSdk(@NotNull String name, @Nullable String homePath, @Nullable String versionString, @NotNull SdkType type) {
+ return addSdk(name, homePath, versionString, type, type.createDefaultProperties());
+ }
+
@NotNull
@Override
public JpsLibraryCollection getLibraryCollection() {
diff --git a/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsModuleTest.java b/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsModuleTest.java
index a98400a89c39..c4a52de241da 100644
--- a/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsModuleTest.java
+++ b/jps/model-impl/testSrc/org/jetbrains/jps/model/JpsModuleTest.java
@@ -105,7 +105,7 @@ public class JpsModuleTest extends JpsModelTestCase {
}
public void testSdkDependency() {
- JpsSdk sdk = myModel.getGlobal().addSdk("sdk", null, null, JpsJavaSdkType.INSTANCE, JpsElementFactory.getInstance().createDummyElement()).getProperties();
+ JpsSdk sdk = myModel.getGlobal().addSdk("sdk", null, null, JpsJavaSdkType.INSTANCE).getProperties();
final JpsModule module = myModel.getProject().addModule("m", JpsJavaModuleType.INSTANCE);
module.getSdkReferencesTable().setSdkReference(JpsJavaSdkType.INSTANCE, sdk.createReference());
module.getDependenciesList().addSdkDependency(JpsJavaSdkType.INSTANCE);
diff --git a/jps/standalone-builder/jps-standalone-builder.iml b/jps/standalone-builder/jps-standalone-builder.iml
new file mode 100644
index 000000000000..0642d526888b
--- /dev/null
+++ b/jps/standalone-builder/jps-standalone-builder.iml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+