@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()); }
File src = jarInput.getFile(); File dst = invocation.getOutputProvider().getContentLocation( jarInput.getName(), jarInput.getContentTypes(), jarInput.getScopes(),
@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); }
FileUtils.copyFile(inputJar.getFile(), outputJar);
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()); } }
private void gatherListFromJar( @NonNull JarInput jarInput, @NonNull ListMultimap<String, QualifiedContent> content) throws IOException { try (ZipFile zipFile = new ZipFile(jarInput.getFile())) { Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); String path = entry.getName(); if (skipEntry(entry, path)) { continue; } content.put(path, jarInput); } } }
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); }
@Override public void proceed() { Stream.concat( streamOf(inputs, TransformInput::getDirectoryInputs).map(input -> { Path src = input.getFile().toPath(); Path dst = getTargetPath.apply(input); return new DirProcessor(transform, src, dst); }), streamOf(inputs, TransformInput::getJarInputs).map(input -> { Path src = input.getFile().toPath(); Path dst = getTargetPath.apply(input); return new JarProcessor(transform, src, dst); }) ).forEach(Processor::proceed); }
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(); } }
private void fullCopy(Collection<TransformInput> inputs) throws IOException { FileUtils.deleteQuietly(outFolder); FileUtils.forceMkdir(outFolder); for (TransformInput input : inputs) { for (DirectoryInput dirInput : input.getDirectoryInputs()) { File dataBindingDir = dirInput.getFile(); if (!dataBindingDir.exists()) { continue; } File artifactFolder = new File(dataBindingDir, DataBindingBuilder.INCREMENTAL_BIN_AAR_DIR); if (!artifactFolder.exists()) { continue; } //noinspection ConstantConditions for (String artifactName : artifactFolder.list()) { if (isResource(artifactName)) { FileUtils.copyFile(new File(artifactFolder, artifactName), new File(outFolder, artifactName)); } } } for(JarInput jarInput : input.getJarInputs()) { File jarFile = jarInput.getFile(); extractBinFilesFromJar(jarFile); } } }
@NonNull public Map<File, Format> getPipelineOutput( @NonNull StreamFilter streamFilter) { ImmutableList<TransformStream> streams = getStreams(streamFilter); if (streams.isEmpty()) { return ImmutableMap.of(); } ImmutableMap.Builder<File, Format> builder = ImmutableMap.builder(); for (TransformStream stream : streams) { // get the input for it TransformInput input = stream.asNonIncrementalInput(); for (JarInput jarInput : input.getJarInputs()) { builder.put(jarInput.getFile(), Format.JAR); } for (DirectoryInput directoryInput : input.getDirectoryInputs()) { builder.put(directoryInput.getFile(), Format.DIRECTORY); } } return builder.build(); } }
if (backupJar.isDirectory()) { LOGGER.warning("Unexpected backup folder at %s while processing %s", backupJar.getAbsolutePath(), jarInput.getFile()); try { FileUtils.deleteDirectoryContents(backupJar); } else { try (JarFile backupJarFile = new JarFile(backupJar)) { try (JarFile jarFile = new JarFile(jarInput.getFile())) { resultSoFar = processChangedJar(backupJarFile, jarFile); if (!jarInput.getFile().exists() || jarInput.getFile().isDirectory()) { LOGGER.warning(String.format( "Please file a bug : VerifierTransform expected a file" + " at:\n %s \nbut the file does not exist or is a directory", jarInput.getFile())); resultSoFar = InstantRunVerifierStatus.INSTANT_RUN_FAILURE; copyFile(jarInput.getFile(), backupJar); break; case NOTCHANGED:
ZipOutputStream zos = null; List<Future<ClassEntry>> futures = null; ZipFile file = new ZipFile(jar.getFile());
for (JarInput jarInput : transformInput.getJarInputs()) { logger.error("InstantRunDependenciesApkBuilder received a jar file " + jarInput.getFile().getAbsolutePath());
@Override public void transform(@NonNull TransformInvocation invocation) throws IOException, TransformException, InterruptedException { FileUtils.cleanOutputDir(jniLibsFolder); for (TransformInput input : invocation.getReferencedInputs()) { for (JarInput jarInput : input.getJarInputs()) { copyFromJar(jarInput.getFile()); } for (DirectoryInput directoryInput : input.getDirectoryInputs()) { copyFromFolder(directoryInput.getFile()); } } }
String.format( "Input jar %s has been %s.", jarInput.getFile(), jarInput.getStatus().name().toLowerCase())); case NOTCHANGED:
final File jarFile = jarInput.getFile();
jarMerger.addJar(jarInput.getFile());