test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JarBuilder.java
branchJDK-8200758-branch
changeset 58696 61c44899b4eb
parent 58648 3bf53ffa9ae7
equal deleted inserted replaced
58695:64adf683bc7b 58696:61c44899b4eb
    38 
    38 
    39     public JarBuilder() {
    39     public JarBuilder() {
    40         sourceFiles = new ArrayList<>();
    40         sourceFiles = new ArrayList<>();
    41     }
    41     }
    42 
    42 
    43     public JarBuilder setOutputJar(File v) {
    43     public JarBuilder setOutputJar(Path v) {
    44         outputJar = v;
    44         outputJar = v;
    45         return this;
    45         return this;
    46     }
    46     }
    47 
    47 
    48     public JarBuilder setMainClass(String v) {
    48     public JarBuilder setMainClass(String v) {
    67                         .setToolProvider(JavaTool.JAVAC)
    67                         .setToolProvider(JavaTool.JAVAC)
    68                         .addArguments("-d", workDir.toString())
    68                         .addArguments("-d", workDir.toString())
    69                         .addPathArguments(sourceFiles)
    69                         .addPathArguments(sourceFiles)
    70                         .execute().assertExitCodeIsZero();
    70                         .execute().assertExitCodeIsZero();
    71             }
    71             }
    72             Path tmpJar = workDir.resolve("foo.jar");
    72 
    73             Executor jarExe = new Executor();
    73             Files.createDirectories(outputJar.getParent());
    74             jarExe.setToolProvider(JavaTool.JAR).addArguments("-c", "-f", tmpJar.toString());
    74             if (Files.exists(outputJar)) {
       
    75                 TKit.trace(String.format("Delete [%s] existing jar file", outputJar));
       
    76                 Files.deleteIfExists(outputJar);
       
    77             }
       
    78 
       
    79             Executor jarExe = new Executor()
       
    80                     .setToolProvider(JavaTool.JAR)
       
    81                     .addArguments("-c", "-f", outputJar.toString());
    75             if (moduleVersion != null) {
    82             if (moduleVersion != null) {
    76                 jarExe.addArguments(String.format("--module-version=%s",
    83                 jarExe.addArguments(String.format("--module-version=%s",
    77                         moduleVersion));
    84                         moduleVersion));
    78             }
    85             }
    79             if (mainClass != null) {
    86             if (mainClass != null) {
    80                 jarExe.addArguments("-e", mainClass);
    87                 jarExe.addArguments("-e", mainClass);
    81             }
    88             }
    82             jarExe.addArguments("-C", workDir.toString(), ".");
    89             jarExe.addArguments("-C", workDir.toString(), ".");
    83             jarExe.execute().assertExitCodeIsZero();
    90             jarExe.execute().assertExitCodeIsZero();
    84             outputJar.getParentFile().mkdirs();
       
    85             Files.copy(tmpJar, outputJar.toPath(), REPLACE_EXISTING);
       
    86         });
    91         });
    87     }
    92     }
    88     private List<Path> sourceFiles;
    93     private List<Path> sourceFiles;
    89     private File outputJar;
    94     private Path outputJar;
    90     private String mainClass;
    95     private String mainClass;
    91     private String moduleVersion;
    96     private String moduleVersion;
    92 }
    97 }