summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-05-29 12:56:28 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-05-29 12:56:29 +0000
commite69b762d0712168bad4ffda22991064470efcabd (patch)
treed3b49a78e9d7176ad1f3007eaf131af0ca7458b5 /jack
parentba3810e3267e8a899ac305b6c803e43ef513340f (diff)
parent6007144b3ab9a8c59648fa35a0af920d2a64356e (diff)
downloadtoolchain_jack-e69b762d0712168bad4ffda22991064470efcabd.zip
toolchain_jack-e69b762d0712168bad4ffda22991064470efcabd.tar.gz
toolchain_jack-e69b762d0712168bad4ffda22991064470efcabd.tar.bz2
Merge "Add support to append in VFS" into ub-jack-brest
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/incremental/IncrementalInputFilter.java4
-rw-r--r--jack/src/com/android/jack/incremental/IncrementalLogWriter.java23
-rw-r--r--jack/src/com/android/jack/library/OutputLibrary.java3
-rw-r--r--jack/src/com/android/jack/library/v0001/OutputJackLibraryImpl.java5
4 files changed, 15 insertions, 20 deletions
diff --git a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
index 887abcb..1330ada 100644
--- a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
+++ b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
@@ -199,9 +199,7 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter
if (config.get(INCREMENTAL_LOG).booleanValue()) {
IncrementalLogWriter incLog;
try {
- VFS incrementalFolder = config.get(Options.LIBRARY_OUTPUT_DIR);
- assert incrementalFolder != null;
- incLog = new IncrementalLogWriter(getOutputJackLibrary(), incrementalFolder);
+ incLog = new IncrementalLogWriter(getOutputJackLibrary());
incLog.writeString("type: " + (incrementalInputLibrary == null ? "full" : "incremental"));
incLog.writeLibraryDescriptions("classpath", classpathContent);
incLog.writeStrings("classpath digests (" + (libraryDependencies.hasSameLibraryOnClasspath(
diff --git a/jack/src/com/android/jack/incremental/IncrementalLogWriter.java b/jack/src/com/android/jack/incremental/IncrementalLogWriter.java
index ec7016a..d7e03f8 100644
--- a/jack/src/com/android/jack/incremental/IncrementalLogWriter.java
+++ b/jack/src/com/android/jack/incremental/IncrementalLogWriter.java
@@ -26,12 +26,10 @@ import com.android.jack.library.InputLibrary;
import com.android.jack.library.LibraryIOException;
import com.android.jack.library.OutputJackLibrary;
import com.android.sched.util.file.CannotCreateFileException;
-import com.android.sched.vfs.VFS;
+import com.android.sched.util.file.WrongPermissionException;
+import com.android.sched.vfs.OutputVFile;
import com.android.sched.vfs.VPath;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Collection;
@@ -55,27 +53,24 @@ class IncrementalLogWriter {
@Nonnull
private static Joiner commaJoiner = Joiner.on(",").useForNull("");
- IncrementalLogWriter(@Nonnull OutputJackLibrary library, @Nonnull VFS incrementalFolder)
- throws LibraryIOException {
+ IncrementalLogWriter(@Nonnull OutputJackLibrary library) throws LibraryIOException {
this.library = library;
+ OutputVFile vFile;
try {
- library.getFile(FileType.LOG, vpath);
+ vFile = library.getFile(FileType.LOG, vpath);
} catch (FileTypeDoesNotExistException e) {
try {
- library.createFile(FileType.LOG, vpath);
+ vFile = library.createFile(FileType.LOG, vpath);
} catch (CannotCreateFileException e1) {
throw new LibraryIOException(library.getLocation(), e1);
}
}
- File logFile = new File(incrementalFolder.getPath(),
- FileType.LOG.buildFileVPath(vpath).getPathAsString(File.separatorChar));
try {
- ps = new PrintStream(new FileOutputStream(logFile, true));
+ ps = new PrintStream(vFile.getPrintStream(/* append = */ true));
writeString("***");
- } catch (FileNotFoundException e) {
- // File already creates by using VFS
- throw new AssertionError();
+ } catch (WrongPermissionException e) {
+ throw new LibraryIOException(library.getLocation(), e);
}
}
diff --git a/jack/src/com/android/jack/library/OutputLibrary.java b/jack/src/com/android/jack/library/OutputLibrary.java
index 1e54346..f365d8a 100644
--- a/jack/src/com/android/jack/library/OutputLibrary.java
+++ b/jack/src/com/android/jack/library/OutputLibrary.java
@@ -18,6 +18,7 @@ package com.android.jack.library;
import com.android.sched.util.file.CannotCreateFileException;
import com.android.sched.util.file.CannotDeleteFileException;
+import com.android.sched.vfs.InputOutputVFile;
import com.android.sched.vfs.InputVFile;
import com.android.sched.vfs.OutputVFile;
import com.android.sched.vfs.VPath;
@@ -46,7 +47,7 @@ public interface OutputLibrary extends Library {
public Iterator<InputVFile> iterator(@Nonnull FileType fileType);
@Nonnull
- public InputVFile getFile(@Nonnull FileType fileType, @Nonnull VPath typePath)
+ public InputOutputVFile getFile(@Nonnull FileType fileType, @Nonnull VPath typePath)
throws FileTypeDoesNotExistException;
@Nonnull
diff --git a/jack/src/com/android/jack/library/v0001/OutputJackLibraryImpl.java b/jack/src/com/android/jack/library/v0001/OutputJackLibraryImpl.java
index 3a7f311..2c9eefd 100644
--- a/jack/src/com/android/jack/library/v0001/OutputJackLibraryImpl.java
+++ b/jack/src/com/android/jack/library/v0001/OutputJackLibraryImpl.java
@@ -39,6 +39,7 @@ import com.android.sched.vfs.GenericInputOutputVFS;
import com.android.sched.vfs.GenericInputVFS;
import com.android.sched.vfs.GenericOutputVFS;
import com.android.sched.vfs.InputOutputVFS;
+import com.android.sched.vfs.InputOutputVFile;
import com.android.sched.vfs.InputVFS;
import com.android.sched.vfs.InputVFile;
import com.android.sched.vfs.MessageDigestFS;
@@ -245,10 +246,10 @@ public class OutputJackLibraryImpl extends CommonJackLibrary implements OutputJa
@Override
@Nonnull
- public InputVFile getFile(@Nonnull FileType fileType, @Nonnull VPath typePath)
+ public InputOutputVFile getFile(@Nonnull FileType fileType, @Nonnull VPath typePath)
throws FileTypeDoesNotExistException {
try {
- return getSectionVFS(fileType).getRootInputVDir()
+ return getSectionVFS(fileType).getRootInputOutputVDir()
.getInputVFile(buildFileVPath(fileType, typePath));
} catch (NotFileOrDirectoryException e) {
throw new FileTypeDoesNotExistException(getLocation(), typePath, fileType);