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());