diff --git a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java
index 212e46af6ffe..3f3fff1fceb9 100644
--- a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java
+++ b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/AbstractJavaFxPackager.java
@@ -59,6 +59,8 @@ public abstract class AbstractJavaFxPackager {
protected abstract String getDescription();
+ protected abstract String getVersion();
+
protected abstract String getWidth();
protected abstract String getHeight();
diff --git a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java
index 214634b1e110..fd5194d57d57 100644
--- a/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java
+++ b/plugins/javaFX/common-javaFX-plugin/src/org/jetbrains/plugins/javaFX/packaging/JavaFxAntGenerator.java
@@ -81,6 +81,10 @@ public class JavaFxAntGenerator {
if (preloaderFiles != null) {
applicationTag.addAttribute(Couple.of("preloaderClass", preloaderClass));
}
+ final String version = packager.getVersion();
+ if (!StringUtil.isEmptyOrSpaces(version)) {
+ applicationTag.addAttribute(Couple.of("version", version.trim().replaceAll("\\s", "-")));
+ }
appendValuesFromPropertiesFile(applicationTag, packager.getHtmlParamFile(), "fx:htmlParam", false);
//also loads fx:argument values
diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java
index 5c22ce3d38b4..556a11faf674 100644
--- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java
+++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/packaging/JavaFxAntTaskTest.java
@@ -32,6 +32,7 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
private static final String PRELOADER_CLASS = "preloaderClass";
private static final String TITLE = "title";
+ private static final String VERSION = "version";
private static final String ICONS = "icons";
private static final String RELATIVE_PATH = "relativePath";
private static final String PRELOADER_JAR = "preloaderJar";
@@ -205,6 +206,35 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
.build());
}
+ public void testJarDeployVersion() throws Exception {
+ doTest("\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "\n", Collections.singletonMap(VERSION, "4.2"));
+ }
+
public void testJarDeploySigned() throws Exception {
doTest("\n" +
"\n" +
@@ -288,6 +318,11 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
packager.setTitle(title);
}
+ final String version = options.get(VERSION);
+ if (version != null) {
+ packager.setVersion(version);
+ }
+
boolean isRelativeIconPath = Boolean.valueOf(options.get(RELATIVE_PATH));
final String icon = options.get(ICONS);
if (icon != null) {
@@ -333,6 +368,7 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
private String myTitle;
private String myVendor;
private String myDescription;
+ private String myVersion;
private String myHtmlParams;
private String myParams;
private String myPreloaderClass;
@@ -360,6 +396,10 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
myDescription = description;
}
+ private void setVersion(String version) {
+ myVersion = version;
+ }
+
private void setHtmlParams(String htmlParams) {
myHtmlParams = htmlParams;
}
@@ -423,6 +463,11 @@ public class JavaFxAntTaskTest extends UsefulTestCase{
return myDescription;
}
+ @Override
+ public String getVersion() {
+ return myVersion;
+ }
+
@Override
protected String getWidth() {
return "800";
diff --git a/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactBuildTaskProvider.java b/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactBuildTaskProvider.java
index c2ae7b741fd2..d7a31195c5a4 100644
--- a/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactBuildTaskProvider.java
+++ b/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactBuildTaskProvider.java
@@ -150,6 +150,11 @@ public class JpsJavaFxArtifactBuildTaskProvider extends ArtifactBuildTaskProvide
return myProperties.myState.getDescription();
}
+ @Override
+ protected String getVersion() {
+ return myProperties.myState.getVersion();
+ }
+
@Override
protected JavaFxApplicationIcons getIcons() {
return myProperties.myState.getIcons();
diff --git a/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactProperties.java b/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactProperties.java
index 4f36a2eb1516..3231a3c5e19e 100644
--- a/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactProperties.java
+++ b/plugins/javaFX/javaFX-jps-plugin/src/org/jetbrains/plugins/javaFX/JpsJavaFxArtifactProperties.java
@@ -28,6 +28,7 @@ public class JpsJavaFxArtifactProperties extends JpsElementBase
-
+
@@ -91,7 +91,7 @@
-
+
@@ -100,7 +100,7 @@
-
+
@@ -108,7 +108,7 @@
-
+
@@ -117,7 +117,7 @@
-
+
@@ -125,7 +125,7 @@
-
+
@@ -134,13 +134,13 @@
-
+
-
+
@@ -149,13 +149,13 @@
-
+
-
+
@@ -163,7 +163,7 @@
-
+
@@ -172,7 +172,7 @@
-
+
@@ -194,7 +194,7 @@
-
+
@@ -202,7 +202,7 @@
-
+
@@ -211,13 +211,13 @@
-
+
-
+
@@ -226,7 +226,7 @@
-
+
@@ -249,7 +249,7 @@
-
+
@@ -271,12 +271,31 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/JavaFxArtifactPropertiesEditor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/JavaFxArtifactPropertiesEditor.java
index 3e8611bef29f..bb2663de7136 100644
--- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/JavaFxArtifactPropertiesEditor.java
+++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/packaging/JavaFxArtifactPropertiesEditor.java
@@ -52,6 +52,7 @@ public class JavaFxArtifactPropertiesEditor extends ArtifactPropertiesEditor {
private JTextField myVendorTF;
private JEditorPane myDescriptionEditorPane;
private TextFieldWithBrowseButton myAppClass;
+ private JTextField myVersionTF;
private JTextField myWidthTF;
private JTextField myHeightTF;
private TextFieldWithBrowseButton myHtmlParams;
@@ -128,6 +129,7 @@ public class JavaFxArtifactPropertiesEditor extends ArtifactPropertiesEditor {
if (isModified(myProperties.getWidth(), myWidthTF)) return true;
if (isModified(myProperties.getHeight(), myHeightTF)) return true;
if (isModified(myProperties.getAppClass(), myAppClass)) return true;
+ if (isModified(myProperties.getVersion(), myVersionTF)) return true;
if (isModified(myProperties.getHtmlParamFile(), myHtmlParams)) return true;
if (isModified(myProperties.getParamFile(), myParams)) return true;
if (!Comparing.equal(myNativeBundleCB.getSelectedItem(), myProperties.getNativeBundle())) return true;
@@ -164,6 +166,7 @@ public class JavaFxArtifactPropertiesEditor extends ArtifactPropertiesEditor {
myProperties.setVendor(myVendorTF.getText());
myProperties.setDescription(myDescriptionEditorPane.getText());
myProperties.setAppClass(myAppClass.getText());
+ myProperties.setVersion(myVersionTF.getText());
myProperties.setWidth(myWidthTF.getText());
myProperties.setHeight(myHeightTF.getText());
myProperties.setHtmlParamFile(myHtmlParams.getText());
@@ -201,6 +204,7 @@ public class JavaFxArtifactPropertiesEditor extends ArtifactPropertiesEditor {
setText(myWidthTF, myProperties.getWidth());
setText(myHeightTF, myProperties.getHeight());
setText(myAppClass, myProperties.getAppClass());
+ setText(myVersionTF, myProperties.getVersion());
setText(myHtmlParams, myProperties.getHtmlParamFile());
setText(myParams, myProperties.getParamFile());
myNativeBundleCB.setSelectedItem(myProperties.getNativeBundle());