From 7b3b503709ede06ff16883a04d7bb70edb110c25 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 2 Apr 2013 21:57:03 +0200 Subject: [PATCH] javafx packaging: fix dependencies in manifest/jnlp files --- .../javaFX/packaging/JavaFxAntGenerator.java | 43 ++++++++----- .../javaFX/packaging/JavaFxAntTaskTest.java | 64 ++++++++++++++----- 2 files changed, 74 insertions(+), 33 deletions(-) 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 38029c0473e9..1e814429accf 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 @@ -39,6 +39,8 @@ public class JavaFxAntGenerator { final String preloaderJar = packager.getPreloaderJar(); final String preloaderClass = packager.getPreloaderClass(); String preloaderFiles = null; + String allButPreloader = null; + if (!StringUtil.isEmptyOrSpaces(preloaderJar) && !StringUtil.isEmptyOrSpaces(preloaderClass)) { preloaderFiles = artifactName + "_preloader_files"; topLevelTagsCollector.add(new SimpleTag("fx:fileset", @@ -46,8 +48,24 @@ public class JavaFxAntGenerator { new Pair("requiredFor", "preloader"), new Pair("dir", tempDirPath), new Pair("includes", preloaderJar))); + + allButPreloader = "all_but_preloader_" + artifactName; + topLevelTagsCollector.add(new SimpleTag("fx:fileset", new Pair("id", allButPreloader), + new Pair("dir", tempDirPath), + new Pair("excludes", preloaderJar), + new Pair("includes", "*.jar"))); } + final String allButSelf = "all_but_" + artifactName; + final SimpleTag allButSelfAndPreloader = new SimpleTag("fx:fileset", new Pair("id", allButSelf), + new Pair("dir", tempDirPath), + new Pair("includes", "*.jar")); + allButSelfAndPreloader.add(new SimpleTag("exclude", new Pair("name", artifactFileName))); + if (preloaderJar != null) { + allButSelfAndPreloader.add(new SimpleTag("exclude", new Pair("name", preloaderJar))); + } + topLevelTagsCollector.add(allButSelfAndPreloader); + //register application final String appId = artifactName + "_id"; Pair[] applicationParams = { @@ -83,7 +101,7 @@ public class JavaFxAntGenerator { fileset2Jar.add(new Pair("excludes", "*.jar")); createJarTag.add(new SimpleTag("fileset", fileset2Jar.toArray(new Pair[fileset2Jar.size()]))); - createJarTag.add(createResourcesTag(tempDirPath, preloaderFiles, artifactFileName, preloaderJar, false)); + createJarTag.add(createResourcesTag(preloaderFiles, false, allButPreloader, allButSelf)); topLevelTagsCollector.add(createJarTag); @@ -103,29 +121,22 @@ public class JavaFxAntGenerator { if (!infoPairs.isEmpty()) { deployTag.add(new SimpleTag("fx:info", infoPairs.toArray(new Pair[infoPairs.size()]))); } - deployTag.add(createResourcesTag(tempDirPath, preloaderFiles, artifactFileName, preloaderJar, true)); + deployTag.add(createResourcesTag(preloaderFiles, true, allButPreloader, allButSelf)); topLevelTagsCollector.add(deployTag); return topLevelTagsCollector; } - private static SimpleTag createResourcesTag(String tempDirPath, String preloaderFiles, - String artifactFileName, - String preloaderJar, - boolean includeSelf) { + private static SimpleTag createResourcesTag(String preloaderFiles, + boolean includeSelf, + String allButPreloader, + String allButSelf) { 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))); - } - - } + resourcesTag.add(new SimpleTag("fx:fileset", new Pair("refid", includeSelf ? allButPreloader : allButSelf))); + } else if (!includeSelf) { + resourcesTag.add(new SimpleTag("fx:fileset", new Pair("refid", allButSelf))); } return resourcesTag; } 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 05968d7b68ea..f5e9cb659645 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 @@ -34,26 +34,36 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ private static final String PRELOADER_JAR = "preloaderJar"; public void testJarDeployNoInfo() throws Exception { - doTest("\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n" + - "\n", Collections.emptyMap()); + doTest("\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n", Collections.emptyMap()); } public void testJarDeployTitle() throws Exception { - doTest("\n" + + doTest("\n" + + "\n" + + "\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -61,6 +71,8 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\n" + "\n" + "\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -78,6 +90,14 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ options.put(PRELOADER_CLASS, "MyPreloader"); options.put(PRELOADER_JAR, "preloader.jar"); doTest("\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -89,6 +109,8 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\n" + "\n" + "\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -97,6 +119,8 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ "\n" + "\n" + "\n" + + "\n" + + "\n" + "\n" + "\n", options); } @@ -143,6 +167,7 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ private String myParams; private String myPreloaderClass; private String myPreloaderJar; + private boolean myConvertCss2Bin; private MockJavaFxPackager(String outputPath) { myOutputPath = outputPath; @@ -279,5 +304,10 @@ public class JavaFxAntTaskTest extends UsefulTestCase{ public String getPreloaderJar() { return myPreloaderJar; } + + @Override + public boolean convertCss2Bin() { + return myConvertCss2Bin; + } } }