input.getJarInputs().parallelStream().forEach(jarInput -> { File src = jarInput.getFile(); File dst = invocation.getOutputProvider().getContentLocation( input.getDirectoryInputs().parallelStream().forEach(directoryInput -> { File src = directoryInput.getFile(); File dst = invocation.getOutputProvider().getContentLocation(
@Test public void addDirectoryInput_builtShouldReturnCorrectFile() throws Exception { File file = getTmpFile("tmp"); TransformInput input = builder.addDirectoryInput(file).build(); assertThat(input.getDirectoryInputs()).hasSize(1); assertThat(input.getDirectoryInputs().toArray(new DirectoryInput[1])[0].getFile()) .isEqualTo(file); }
@Test public void addJarInput_whenAddPaths_builtShouldReturnCorrectPaths() throws Exception { File file1 = getTmpFile("tmp1"); File file2 = getTmpFile("tmp2"); TransformInput input = builder.addJarInput(file1.getAbsolutePath(), file2.getAbsolutePath()).build(); assertThat(input.getJarInputs()).hasSize(2); JarInput[] jarInputs = input.getJarInputs().toArray(new JarInput[2]); assertThat(jarInputs[0].getFile().getAbsolutePath()).isEqualTo(file1.getAbsolutePath()); assertThat(jarInputs[1].getFile().getAbsolutePath()).isEqualTo(file2.getAbsolutePath()); }
/** * Determines all directories where class files can be found in the given * {@link TransformInput}. */ @NonNull protected static Collection<File> getAllDirectories(@NonNull TransformInput input) { return input.getDirectoryInputs().stream() .map(DirectoryInput::getFile) .collect(Collectors.toList()); }
@Test public void addJarInput_whenAddFile_builtShouldReturnFile() throws Exception { File file = getTmpFile("tmp"); TransformInput input = builder.addJarInput(file).build(); assertThat(input.getJarInputs()).hasSize(1); assertThat(input.getJarInputs().toArray(new JarInput[1])[0].getFile()).isEqualTo(file); }
for (JarInput inputJar : input.getJarInputs()) { File outputJar = transformInvocation for (DirectoryInput directoryInput : input.getDirectoryInputs()) {
for (DirectoryInput directoryInput : input.getDirectoryInputs()) { for (Map.Entry<File, Status> changedFile : directoryInput.getChangedFiles() .entrySet()) {
/** * Determines all directories where class files can be found in the given * {@link TransformInput}. */ @NonNull protected static Collection<File> getAllJars(@NonNull TransformInput input) { return input.getJarInputs().stream() .map(JarInput::getFile) .collect(Collectors.toList()); }
private static void addAllClassLocations(TransformInput transformInput, List<URL> into) throws MalformedURLException { for (DirectoryInput directoryInput : transformInput.getDirectoryInputs()) { into.add(directoryInput.getFile().toURI().toURL()); } for (JarInput jarInput : transformInput.getJarInputs()) { into.add(jarInput.getFile().toURI().toURL()); } }
input.getDirectoryInputs().parallelStream().forEach(directoryInput -> { ClassLoader currentThreadClassLoader = Thread.currentThread().getContextClassLoader(); try {
File minifiedOutJar = Iterables.getOnlyElement(input.getJarInputs()).getFile();
private static boolean hasChangedInputs(Collection<TransformInput> inputs) { for (TransformInput input : inputs) { for (DirectoryInput directoryInput : input.getDirectoryInputs()) { if (!directoryInput.getChangedFiles().isEmpty()) { return true; } } for (JarInput jarInput : input.getJarInputs()) { if (jarInput.getStatus() != Status.NOTCHANGED) { return true; } } } return false; } }
@NonNull TransformInput transformInput) throws IOException { for (DirectoryInput directoryInput : transformInput.getDirectoryInputs()) {
for (JarInput jarInput : transformInput.getJarInputs()) { File backupJar = new File(outputDir, jarInput.getName()); switch(jarInput.getStatus()) {
private static File verifyInputs(@NonNull Collection<TransformInput> inputs) { // Collect the inputs. There should be only one. List<File> inputFiles = Lists.newArrayList(); for (TransformInput transformInput : inputs) { for (JarInput jarInput : transformInput.getJarInputs()) { inputFiles.add(jarInput.getFile()); } for (DirectoryInput directoryInput : transformInput.getDirectoryInputs()) { inputFiles.add(directoryInput.getFile()); } } return Iterables.getOnlyElement(inputFiles); }
for (DirectoryInput directoryInput : input.getDirectoryInputs()) { File inputDir = directoryInput.getFile(); for (File file : Files.fileTreeTraverser()
private static Collection<File> getAllFiles( Collection<TransformInput> transformInputs, boolean includeDirectoryInput, boolean includeJarInput) { ImmutableList.Builder<File> inputFiles = ImmutableList.builder(); for (TransformInput input : transformInputs) { if (includeDirectoryInput) { for (DirectoryInput directoryInput : input.getDirectoryInputs()) { inputFiles.add(directoryInput.getFile()); } } if (includeJarInput) { for (JarInput jarInput : input.getJarInputs()) { inputFiles.add(jarInput.getFile()); } } } return inputFiles.build(); } }
for (DirectoryInput directoryInput : input.getDirectoryInputs()) { if (!directoryInput.getContentTypes() .contains(ExtendedContentType.CLASSES_ENHANCED)) {
private static boolean isIncrementalRun( boolean isIncremental, @NonNull Collection<TransformInput> referencedInputs) { if (!isIncremental) { return false; } for (TransformInput referencedInput : referencedInputs) { for (JarInput jarInput : referencedInput.getJarInputs()) { if (jarInput.getStatus() != Status.NOTCHANGED) { return false; } } for (DirectoryInput directoryInput : referencedInput.getDirectoryInputs()) { if (!directoryInput.getChangedFiles().isEmpty()) { return false; } } } return true; }
private void addInputsToConfiguration( @NonNull Collection<TransformInput> inputs, boolean referencedOnly) { ClassPath classPath; List<String> baseFilter; if (referencedOnly) { classPath = configuration.libraryJars; baseFilter = JAR_FILTER; } else { classPath = configuration.programJars; baseFilter = null; } for (TransformInput transformInput : inputs) { for (JarInput jarInput : transformInput.getJarInputs()) { handleQualifiedContent(classPath, jarInput, baseFilter); } for (DirectoryInput directoryInput : transformInput.getDirectoryInputs()) { handleQualifiedContent(classPath, directoryInput, baseFilter); } } }