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 0ad58de1ddb5..a36363116174 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 @@ -119,11 +119,15 @@ public abstract class AbstractJavaFxPackager { } private void copyLibraries(String zipPath, File tempUnzippedArtifactOutput) throws IOException { - final String preloaderJar = getPreloaderJar(); - if (preloaderJar != null) { - final File preloaderJarFile = new File(getArtifactOutputPath(), preloaderJar); - if (preloaderJarFile.isFile()) { - FileUtil.copy(preloaderJarFile, new File(tempUnzippedArtifactOutput, preloaderJarFile.getName())); + final File[] outFiles = new File(getArtifactOutputPath()).listFiles(); + if (outFiles != null) { + for (File file : outFiles) { + if (file.isFile()) { + final String fileName = file.getName(); + if (fileName.endsWith(".jar") && !zipPath.equals(fileName)) { + FileUtil.copy(file, new File(tempUnzippedArtifactOutput, fileName)); + } + } } } } @@ -140,10 +144,13 @@ public abstract class AbstractJavaFxPackager { final boolean selfSigning = isSelfSigning(); final int genResult = selfSigning ? genKey(binPath) : 0; if (genResult == 0) { - sign(binPath, selfSigning, tempDirectory.getPath() + File.separator + getArtifactRootName()); - final String preloaderJar = getPreloaderJar(); - if (preloaderJar != null) { - sign(binPath, selfSigning, tempDirectory.getPath() + File.separator + preloaderJar); + final File[] files = tempDirectory.listFiles(); + if (files != null) { + for (File file : files) { + if (file.isFile() && file.getName().endsWith(".jar")) { + sign(binPath, selfSigning, file.getPath()); + } + } } } else { registerJavaFxPackagerError("JavaFX generate certificate task has failed."); @@ -161,7 +168,7 @@ public abstract class AbstractJavaFxPackager { final int signedResult = startProcess(signCommandLine); if (signedResult != 0) { - registerJavaFxPackagerError("JavaFX sign task has failed."); + registerJavaFxPackagerError("JavaFX sign task has failed for: " + jar2Sign + "."); } } 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 323b5fe7c4c8..883dd8dba8ec 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 @@ -71,17 +71,14 @@ public class JavaFxAntGenerator { final SimpleTag createJarTag = new SimpleTag("fx:jar", new Pair("destfile", tempDirPath + File.separator + artifactFileName)); createJarTag.add(new SimpleTag("fx:application", new Pair("refid", appId))); + final List fileset2Jar = new ArrayList(); fileset2Jar.add(new Pair("dir", tempDirPath)); - if (preloaderJar != null) { - fileset2Jar.add(new Pair("excludes", preloaderJar)); - } + fileset2Jar.add(new Pair("excludes", "*.jar")); createJarTag.add(new SimpleTag("fileset", fileset2Jar.toArray(new Pair[fileset2Jar.size()]))); - if (preloaderFiles != null) { - final SimpleTag createJarResourcesTag = new SimpleTag("fx:resources"); - createJarResourcesTag.add(new SimpleTag("fx:fileset", new Pair("refid", preloaderFiles))); - createJarTag.add(createJarResourcesTag); - } + + createJarTag.add(createResourcesTag(tempDirPath, preloaderFiles, artifactFileName, preloaderJar, false)); + topLevelTagsCollector.add(createJarTag); //deploy task @@ -100,20 +97,33 @@ public class JavaFxAntGenerator { if (!infoPairs.isEmpty()) { deployTag.add(new SimpleTag("fx:info", infoPairs.toArray(new Pair[infoPairs.size()]))); } - - final SimpleTag deployResourcesTag = new SimpleTag("fx:resources"); - deployResourcesTag.add(new SimpleTag("fx:fileset", new Pair("dir", tempDirPath), - new Pair("includes", artifactFileName))); - if (preloaderFiles != null) { - deployResourcesTag.add(new SimpleTag("fx:fileset", new Pair("refid", preloaderFiles))); - } - - deployTag.add(deployResourcesTag); + deployTag.add(createResourcesTag(tempDirPath, preloaderFiles, artifactFileName, preloaderJar, true)); topLevelTagsCollector.add(deployTag); return topLevelTagsCollector; } + private static SimpleTag createResourcesTag(String tempDirPath, String preloaderFiles, + String artifactFileName, + String preloaderJar, + boolean includeSelf) { + final SimpleTag resourcesTag = new SimpleTag("fx:resources"); + if (preloaderFiles != null) { + resourcesTag.add(new SimpleTag("fx:fileset", new Pair("refid", preloaderFiles))); + } + final File[] files = new File(tempDirPath).listFiles(); + if (files != null) { + for (File file : files) { + final String fileName = file.getName(); + if (!fileName.equals(preloaderJar) && (includeSelf || !fileName.equals(artifactFileName))) { + resourcesTag.add(new SimpleTag("fx:fileset", new Pair("dir", tempDirPath), new Pair("includes", fileName))); + } + + } + } + return resourcesTag; + } + private static void appendIfNotEmpty(final List pairs, final String propertyName, final String propValue) { if (!StringUtil.isEmptyOrSpaces(propValue)) { pairs.add(Pair.create(propertyName, propValue)); 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 0de3faed1550..c70899c98bdd 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 @@ -36,18 +36,18 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ public void testJarDeployNoInfo() throws Exception { doTest("\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + + "\n" + + "\n" + "\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + - "\n" + - "\n" + "\n" + "\n", Collections.emptyMap()); } @@ -58,8 +58,10 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -67,8 +69,6 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\n" + "\n" + "\n" + - "\n" + - "\n" + "\n" + "\n", Collections.singletonMap(TITLE, "My App")); } @@ -81,22 +81,20 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\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" +