summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2015-03-04 09:20:41 +0100
committermikaelpeltier <mikaelpeltier@google.com>2015-03-09 17:38:17 +0100
commit6346674768a5f96da38e676e810fca14ea043c18 (patch)
tree002e66ddbdc3aace30fcb98bcf173f06d3b147e6
parent89ee5fe59b1323a9a13eb978e08de6cd82126d48 (diff)
downloadtoolchain_jack-6346674768a5f96da38e676e810fca14ea043c18.tar.gz
toolchain_jack-6346674768a5f96da38e676e810fca14ea043c18.tar.bz2
toolchain_jack-6346674768a5f96da38e676e810fca14ea043c18.zip
Implement Api01Config
Change-Id: I455d060994c59fecf5dbad2a1b4ff0905cb7df61
-rw-r--r--jack-api/src/com/android/jack/api/v01/Api01Config.java24
-rw-r--r--jack-api/src/com/android/jack/api/v01/DebugInfoLevel.java24
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java51
-rw-r--r--jack-tests/tests/com/android/jack/multidex/MultiDexOverflowTests.java5
-rw-r--r--jack-tests/tests/com/android/jack/tools/merger/test011/MergerTest011.java10
-rw-r--r--jack/src/com/android/jack/Options.java13
-rw-r--r--jack/src/com/android/jack/api/v01/impl/Api01ConfigImpl.java320
7 files changed, 272 insertions, 175 deletions
diff --git a/jack-api/src/com/android/jack/api/v01/Api01Config.java b/jack-api/src/com/android/jack/api/v01/Api01Config.java
index 82b1dd36..7dd7e44b 100644
--- a/jack-api/src/com/android/jack/api/v01/Api01Config.java
+++ b/jack-api/src/com/android/jack/api/v01/Api01Config.java
@@ -30,78 +30,56 @@ import javax.annotation.Nonnull;
*/
public interface Api01Config extends JackConfig {
- @Nonnull
void setReporter(@Nonnull ReporterKind reporterKind, @Nonnull OutputStream reporterStream)
throws ConfigurationException;
- @Nonnull
void setTypeImportCollisionPolicy(@Nonnull TypeCollisionPolicy typeImportCollisionPolicy)
throws ConfigurationException;
- @Nonnull
void setResourceImportCollisionPolicy(
@Nonnull ResourceCollisionPolicy resourceImportCollisionPolicy) throws ConfigurationException;
- @Nonnull
void setJavaSourceVersion(@Nonnull JavaSourceVersion javaSourceVersion)
throws ConfigurationException;
- @Nonnull
void setObfuscationMappingOutputFile(@Nonnull File obfuscationMappingOuputFile)
throws ConfigurationException;
- @Nonnull
void setClasspath(@Nonnull List<File> classpath) throws ConfigurationException;
- @Nonnull
void setImportedJackLibraryFiles(@Nonnull List<File> importedJackLibraryFiles)
throws ConfigurationException;
- @Nonnull
void setMetaDirs(@Nonnull List<File> metaDirs) throws ConfigurationException;
- @Nonnull
void setResourceDirs(@Nonnull List<File> resourceDirs) throws ConfigurationException;
- @Nonnull
void setIncrementalDir(@Nonnull File incrementalDir) throws ConfigurationException;
- @Nonnull
void setOutputDexDir(@Nonnull File outputDexDir) throws ConfigurationException;
- @Nonnull
void setOutputJackFile(@Nonnull File outputJackFile) throws ConfigurationException;
- @Nonnull
void setJarJarConfigFile(@Nonnull File jarjarConfigFile) throws ConfigurationException;
- @Nonnull
void setProguardConfigFiles(@Nonnull List<File> proguardConfigFiles)
throws ConfigurationException;
- @Nonnull
- void setEmitDebug(boolean emitDebug) throws ConfigurationException;
+ void setDebugInfoLevel(@Nonnull DebugInfoLevel debugInfoLevel) throws ConfigurationException;
- @Nonnull
void setMultiDexKind(@Nonnull MultiDexKind multiDexKind) throws ConfigurationException;
- @Nonnull
void setVerbosityLevel(@Nonnull VerbosityLevel verbosityLevel) throws ConfigurationException;
- @Nonnull
void setProcessorNames(@Nonnull List<String> processorNames) throws ConfigurationException;
- @Nonnull
void setProcessorPath(@Nonnull List<File> processorPath) throws ConfigurationException;
- @Nonnull
void setProcessorOptions(@Nonnull Map<String, String> processorOptions)
throws ConfigurationException;
- @Nonnull
void setSourceEntries(@Nonnull List<File> sourceEntries) throws ConfigurationException;
- @Nonnull
void setProperty(@Nonnull String key, @Nonnull String value) throws ConfigurationException;
@Nonnull
diff --git a/jack-api/src/com/android/jack/api/v01/DebugInfoLevel.java b/jack-api/src/com/android/jack/api/v01/DebugInfoLevel.java
new file mode 100644
index 00000000..589743b0
--- /dev/null
+++ b/jack-api/src/com/android/jack/api/v01/DebugInfoLevel.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.api.v01;
+
+/**
+ * STOPSHIP
+ */
+public enum DebugInfoLevel {
+ NONE, LINES, FULL
+} \ No newline at end of file
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
index 83efb1e9..2d7f6f2b 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
@@ -19,14 +19,18 @@ package com.android.jack.test.toolchain;
import com.google.common.collect.Lists;
import com.android.jack.Options;
+import com.android.jack.api.v01.AbortException;
import com.android.jack.api.v01.Api01Config;
import com.android.jack.api.v01.ConfigurationException;
+import com.android.jack.api.v01.DebugInfoLevel;
+import com.android.jack.api.v01.ReporterKind;
import com.android.jack.api.v01.VerbosityLevel;
import com.android.jack.shrob.spec.Flags;
import com.android.jack.test.TestConfigurationException;
import com.android.sched.vfs.Container;
import java.io.File;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -51,7 +55,7 @@ public class JackApiV01Toolchain extends JackApiToolchainBase {
throws Exception {
srcToCommon(sources);
setOutputDex(out);
- apiV01Config.getTask().run();
+ run();
}
@Override
@@ -59,21 +63,21 @@ public class JackApiV01Toolchain extends JackApiToolchainBase {
throws Exception {
srcToCommon(sources);
setOutputJack(out);
- apiV01Config.getTask().run();
+ run();
}
@Override
public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
libToCommon(in);
setOutputDex(out);
- apiV01Config.getTask().run();
+ run();
}
@Override
public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
libToCommon(in);
setOutputJack(out);
- apiV01Config.getTask().run();
+ run();
}
@Override
@@ -119,7 +123,7 @@ public class JackApiV01Toolchain extends JackApiToolchainBase {
@Nonnull
public JackApiV01Toolchain setWithDebugInfos(boolean withDebugInfos) {
try {
- apiV01Config.setEmitDebug(withDebugInfos);
+ apiV01Config.setDebugInfoLevel(DebugInfoLevel.FULL);
return this;
} catch (ConfigurationException e) {
throw new TestConfigurationException(e);
@@ -144,6 +148,43 @@ public class JackApiV01Toolchain extends JackApiToolchainBase {
}
}
+ @Override
+ @Nonnull
+ public final Toolchain setErrorStream(@Nonnull OutputStream errorStream) {
+ super.setErrorStream(errorStream);
+ try {
+ apiV01Config.setReporter(ReporterKind.DEFAULT, errorStream);
+ } catch (ConfigurationException e) {
+ throw new TestConfigurationException(e);
+ }
+ return this;
+ }
+
+ private void run() throws Exception {
+ try {
+ System.setOut(outRedirectStream);
+ System.setErr(errRedirectStream);
+ apiV01Config.getTask().run();
+ } catch (ConfigurationException e) {
+ Throwable t1 = e.getCause();
+ if (t1 instanceof Exception) {
+ throw (Exception) t1;
+ } else {
+ throw new AssertionError();
+ }
+ } catch (AbortException e1) {
+ Throwable t1 = e1.getCause();
+ if (t1 instanceof Exception) {
+ throw (Exception) t1;
+ } else {
+ throw new AssertionError();
+ }
+ } finally {
+ System.setOut(stdOut);
+ System.setOut(stdErr);
+ }
+ }
+
private void srcToCommon(@Nonnull File... sources) throws Exception {
apiV01Config.setClasspath(classpath);
apiV01Config.setImportedJackLibraryFiles(staticLibs);
diff --git a/jack-tests/tests/com/android/jack/multidex/MultiDexOverflowTests.java b/jack-tests/tests/com/android/jack/multidex/MultiDexOverflowTests.java
index 58fa82c5..6f67a945 100644
--- a/jack-tests/tests/com/android/jack/multidex/MultiDexOverflowTests.java
+++ b/jack-tests/tests/com/android/jack/multidex/MultiDexOverflowTests.java
@@ -119,9 +119,8 @@ public class MultiDexOverflowTests {
.addToClasspath(annotations)
.srcToExe(outFolder, /* zipFile = */ false, srcFolder);
Assert.fail();
- } catch (ProcessException e) {
- Assert.assertTrue(e.getCause() instanceof JackAbortException);
- Throwable contextException = e.getCause().getCause();
+ } catch (JackAbortException e) {
+ Throwable contextException = e.getCause();
Assert.assertTrue(contextException instanceof DexWritingException);
Assert.assertTrue(contextException.getCause() instanceof MainDexOverflowException);
Assert.assertTrue(contextException.getCause().getCause() instanceof FieldIdOverflowException);
diff --git a/jack-tests/tests/com/android/jack/tools/merger/test011/MergerTest011.java b/jack-tests/tests/com/android/jack/tools/merger/test011/MergerTest011.java
index 23932846..351b5906 100644
--- a/jack-tests/tests/com/android/jack/tools/merger/test011/MergerTest011.java
+++ b/jack-tests/tests/com/android/jack/tools/merger/test011/MergerTest011.java
@@ -75,9 +75,8 @@ public class MergerTest011 extends MergerTestTools {
try {
buildOneDexPerType(srcFolder, /* withDebug = */false, /* out = */ null, err);
Assert.fail();
- } catch (ProcessException e) {
- Assert.assertTrue(e.getCause() instanceof JackAbortException);
- Throwable contextException = e.getCause().getCause();
+ } catch (JackAbortException e) {
+ Throwable contextException = e.getCause();
Assert.assertTrue(contextException instanceof DexWritingException);
Assert.assertTrue(contextException.getCause() instanceof SingleDexOverflowException);
Assert.assertTrue(contextException.getCause().getCause() instanceof MethodIdOverflowException);
@@ -99,9 +98,8 @@ public class MergerTest011 extends MergerTestTools {
try {
buildOneDexPerType(srcFolder, /* withDebug = */false, /* out = */ null, err);
Assert.fail();
- } catch (ProcessException e) {
- Assert.assertTrue(e.getCause() instanceof JackAbortException);
- Throwable contextException = e.getCause().getCause();
+ } catch (JackAbortException e) {
+ Throwable contextException = e.getCause();
Assert.assertTrue(contextException instanceof DexWritingException);
Assert.assertTrue(contextException.getCause() instanceof SingleDexOverflowException);
Assert.assertTrue(contextException.getCause().getCause() instanceof FieldIdOverflowException);
diff --git a/jack/src/com/android/jack/Options.java b/jack/src/com/android/jack/Options.java
index f4fe2847..982b4801 100644
--- a/jack/src/com/android/jack/Options.java
+++ b/jack/src/com/android/jack/Options.java
@@ -276,12 +276,12 @@ public class Options {
@Option(name = "--import-resource",
usage = "import the given directory into the output as resource files (repeatable)",
metaVar = "<DIRECTORY>")
- private final List<File> resImport = new ArrayList<File>();
+ private List<File> resImport = new ArrayList<File>();
@Option(name = "--import-meta",
usage = "import the given directory into the output as meta-files (repeatable)",
metaVar = "<DIRECTORY>")
- private final List<File> metaImport = new ArrayList<File>();
+ private List<File> metaImport = new ArrayList<File>();
@Option(name = "--config-proguard",
usage = "use a proguard flags file (default: none) (repeatable)",
@@ -749,6 +749,7 @@ public class Options {
public void checkValidity(@Nonnull RunnableHooks hooks)
throws IllegalOptionsException, ConfigurationException {
+ ecjExtraArguments.clear();
config = getConfigBuilder(hooks).build();
// FINDBUGS
@@ -887,6 +888,14 @@ public class Options {
resImport.add(resource);
}
+ public void setResourceDirs(@Nonnull List<File> resourceDirs) {
+ resImport = resourceDirs;
+ }
+
+ public void setMetaDirs(@Nonnull List<File> metaDirs) {
+ metaImport = metaDirs;
+ }
+
public void setReporterStream(@Nonnull OutputStream reporterStream) {
this.reporterStream = reporterStream;
}
diff --git a/jack/src/com/android/jack/api/v01/impl/Api01ConfigImpl.java b/jack/src/com/android/jack/api/v01/impl/Api01ConfigImpl.java
index e96b3f68..cd4cc723 100644
--- a/jack/src/com/android/jack/api/v01/impl/Api01ConfigImpl.java
+++ b/jack/src/com/android/jack/api/v01/impl/Api01ConfigImpl.java
@@ -16,6 +16,8 @@
package com.android.jack.api.v01.impl;
+import com.google.common.base.Joiner;
+
import com.android.jack.IllegalOptionsException;
import com.android.jack.Jack;
import com.android.jack.JackAbortException;
@@ -25,6 +27,7 @@ import com.android.jack.api.v01.AbortException;
import com.android.jack.api.v01.Api01CompilationTask;
import com.android.jack.api.v01.Api01Config;
import com.android.jack.api.v01.ConfigurationException;
+import com.android.jack.api.v01.DebugInfoLevel;
import com.android.jack.api.v01.JavaSourceVersion;
import com.android.jack.api.v01.MultiDexKind;
import com.android.jack.api.v01.ReporterKind;
@@ -32,6 +35,10 @@ import com.android.jack.api.v01.ResourceCollisionPolicy;
import com.android.jack.api.v01.TypeCollisionPolicy;
import com.android.jack.api.v01.UnrecoverableException;
import com.android.jack.api.v01.VerbosityLevel;
+import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion;
+import com.android.jack.reporting.Reporter;
+import com.android.jack.resource.ResourceImporter;
+import com.android.jack.shrob.obfuscation.MappingPrinter;
import com.android.sched.scheduler.ProcessException;
import com.android.sched.util.RunnableHooks;
@@ -118,209 +125,250 @@ public class Api01ConfigImpl implements Api01Config {
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setClasspath(java.util.List)
- */
@Override
- @Nonnull
- public void setClasspath(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setClasspath(@Nonnull List<File> classpath) {
+ options.setClasspath(Joiner.on(File.pathSeparator).join(classpath));
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setEmitDebug(boolean)
- */
@Override
- @Nonnull
- public void setEmitDebug(boolean arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setDebugInfoLevel(@Nonnull DebugInfoLevel debugLevel) throws ConfigurationException {
+ switch (debugLevel) {
+ case FULL: {
+ options.setEmitLocalDebugInfo(true);
+ break;
+ }
+ case LINES: {
+ options.setEmitLocalDebugInfo(false);
+ break;
+ }
+ case NONE: {
+ options.setEmitLocalDebugInfo(false);
+ options.addProperty(Options.EMIT_LINE_NUMBER_DEBUG_INFO.getName(), "false");
+ options.addProperty(Options.EMIT_SOURCE_FILE_DEBUG_INFO.getName(), "false");
+ break;
+ }
+ default: {
+ throw new ConfigurationException("Debug info level '" + debugLevel + "' is unsupported");
+ }
+ }
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setImportedJackLibraryFiles(java.util.List)
- */
@Override
- @Nonnull
- public void setImportedJackLibraryFiles(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setImportedJackLibraryFiles(@Nonnull List<File> importedJackLibraryFiles) {
+ options.setImportedLibraries(importedJackLibraryFiles);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setIncrementalDir(java.io.File)
- */
@Override
- @Nonnull
- public void setIncrementalDir(@Nonnull File arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setIncrementalDir(@Nonnull File incrementalDir) {
+ options.setIncrementalFolder(incrementalDir);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setJarJarConfigFile(java.io.File)
- */
@Override
- @Nonnull
- public void setJarJarConfigFile(@Nonnull File arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setJarJarConfigFile(@Nonnull File jarJarConfigFile) {
+ options.setJarjarRulesFile(jarJarConfigFile);
}
@Override
- @Nonnull
- public void setJavaSourceVersion(@Nonnull JavaSourceVersion arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
+ public void setJavaSourceVersion(@Nonnull JavaSourceVersion javaSourceVersion)
+ throws ConfigurationException {
+ JavaVersion javaSourceVersionWrapped = null;
+ switch (javaSourceVersion) {
+ case JAVA_3: {
+ javaSourceVersionWrapped = JavaVersion.JAVA_3;
+ break;
+ }
+ case JAVA_4: {
+ javaSourceVersionWrapped = JavaVersion.JAVA_4;
+ break;
+ }
+ case JAVA_5: {
+ javaSourceVersionWrapped = JavaVersion.JAVA_5;
+ break;
+ }
+ case JAVA_6: {
+ javaSourceVersionWrapped = JavaVersion.JAVA_6;
+ break;
+ }
+ case JAVA_7: {
+ javaSourceVersionWrapped = JavaVersion.JAVA_7;
+ break;
+ }
+ default: {
+ throw new ConfigurationException(
+ "Java source version '" + javaSourceVersion + "' is unsupported");
+ }
+ }
+ options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), javaSourceVersionWrapped.toString());
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setMetaDirs(java.util.List)
- */
@Override
- @Nonnull
- public void setMetaDirs(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setMetaDirs(@Nonnull List<File> metaDirs) {
+ options.setMetaDirs(metaDirs);
}
@Override
- @Nonnull
- public void setMultiDexKind(@Nonnull MultiDexKind arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setMultiDexKind(@Nonnull MultiDexKind multiDexKind) throws ConfigurationException {
+ switch (multiDexKind) {
+ case LEGACY: {
+ options.setMultiDexKind(com.android.jack.Options.MultiDexKind.LEGACY);
+ break;
+ }
+ case NATIVE: {
+ options.setMultiDexKind(com.android.jack.Options.MultiDexKind.NATIVE);
+ break;
+ }
+ case NONE: {
+ options.setMultiDexKind(com.android.jack.Options.MultiDexKind.NONE);
+ break;
+ }
+ default: {
+ throw new ConfigurationException("Multi dex kind '" + multiDexKind + "' is unsupported");
+ }
+ }
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setObfuscationMappingOutputFile(java.io.File)
- */
@Override
- @Nonnull
- public void setObfuscationMappingOutputFile(@Nonnull File arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setObfuscationMappingOutputFile(@Nonnull File obfuscationMappingOutputFile) {
+ options.addProperty(MappingPrinter.MAPPING_OUTPUT_ENABLED.getName(), "true");
+ options.addProperty(MappingPrinter.MAPPING_OUTPUT_FILE.getName(),
+ obfuscationMappingOutputFile.getPath());
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setOutputDexDir(java.io.File)
- */
@Override
- @Nonnull
- public void setOutputDexDir(@Nonnull File arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setOutputDexDir(@Nonnull File outputDexDir) {
+ options.setOutputDir(outputDexDir);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setOutputJackFile(java.io.File)
- */
@Override
- @Nonnull
- public void setOutputJackFile(@Nonnull File arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setOutputJackFile(@Nonnull File outputJackFile) {
+ options.setJayceOutputZip(outputJackFile);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setProcessorNames(java.util.List)
- */
@Override
- @Nonnull
- public void setProcessorNames(@Nonnull List<String> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setProcessorNames(@Nonnull List<String> processorNames) {
+ throw new AssertionError();
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setProcessorOptions(java.util.Map)
- */
@Override
- @Nonnull
- public void setProcessorOptions(@Nonnull Map<String, String> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setProcessorOptions(@Nonnull Map<String, String> processorOptions) {
+ throw new AssertionError();
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setProcessorPath(java.util.List)
- */
@Override
- @Nonnull
- public void setProcessorPath(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setProcessorPath(@Nonnull List<File> processorPath) {
+ throw new AssertionError();
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setProguardConfigFiles(java.util.List)
- */
@Override
- @Nonnull
- public void setProguardConfigFiles(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setProguardConfigFiles(@Nonnull List<File> proguardConfigFiles) {
+ options.setProguardFlagsFile(proguardConfigFiles);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setProperty(java.lang.String, java.lang.String)
- */
@Override
- @Nonnull
- public void setProperty(@Nonnull String arg0, @Nonnull String arg1)
- throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setProperty(@Nonnull String key, @Nonnull String value) {
+ options.addProperty(key, value);
}
@Override
- @Nonnull
- public void setReporter(@Nonnull ReporterKind arg0, @Nonnull OutputStream arg1)
+ public void setReporter(@Nonnull ReporterKind reporterKind, @Nonnull OutputStream reporterStream)
throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ String reporterKindAsString = null;
+ switch (reporterKind) {
+ case DEFAULT: {
+ reporterKindAsString = "default";
+ break;
+ }
+ case SDK: {
+ reporterKindAsString = "sdk";
+ break;
+ }
+ default: {
+ throw new ConfigurationException("Reporter kind '" + reporterKind + "' is unsupported");
+ }
+ }
+ options.addProperty(Reporter.REPORTER.getName(), reporterKindAsString);
+ options.setReporterStream(reporterStream);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setResourceDirs(java.util.List)
- */
@Override
- @Nonnull
- public void setResourceDirs(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setResourceDirs(@Nonnull List<File> resourceDirs) {
+ options.setResourceDirs(resourceDirs);
}
@Override
- @Nonnull
- public void setResourceImportCollisionPolicy(@Nonnull ResourceCollisionPolicy arg0)
+ public void setResourceImportCollisionPolicy(
+ @Nonnull ResourceCollisionPolicy resourceImportCollisionPolicy)
throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ String collissionPolicy = null;
+ switch (resourceImportCollisionPolicy) {
+ case FAIL: {
+ collissionPolicy = "fail";
+ break;
+ }
+ case KEEP_FIRST: {
+ collissionPolicy = "keep-first";
+ break;
+ }
+ default: {
+ throw new ConfigurationException(
+ "Resource collision policy '" + resourceImportCollisionPolicy + "' is unsupported");
+ }
+ }
+ options.addProperty(ResourceImporter.RESOURCE_COLLISION_POLICY.getName(), collissionPolicy);
}
- /* (non-Javadoc)
- * @see com.android.jack.api.v01.Api01Config#setSourceEntries(java.util.List)
- */
@Override
- @Nonnull
- public void setSourceEntries(@Nonnull List<File> arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setSourceEntries(@Nonnull List<File> sourceEntries) {
+ options.setInputSources(sourceEntries);
}
@Override
- @Nonnull
- public void setTypeImportCollisionPolicy(@Nonnull TypeCollisionPolicy arg0)
+ public void setTypeImportCollisionPolicy(@Nonnull TypeCollisionPolicy typeImportCollisionPolicy)
throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ String collissionPolicy = null;
+ switch (typeImportCollisionPolicy) {
+ case FAIL: {
+ collissionPolicy = "fail";
+ break;
+ }
+ case KEEP_FIRST: {
+ collissionPolicy = "keep-first";
+ break;
+ }
+ default: {
+ throw new ConfigurationException(
+ "Type collision policy '" + typeImportCollisionPolicy + "' is unsupported");
+ }
+ }
+ options.addProperty(ResourceImporter.RESOURCE_COLLISION_POLICY.getName(), collissionPolicy);
}
@Override
- @Nonnull
- public void setVerbosityLevel(@Nonnull VerbosityLevel arg0) throws ConfigurationException {
- // TODO(benoitlamarche): Auto-generated method stub
-
+ public void setVerbosityLevel(@Nonnull VerbosityLevel verbosityLevel)
+ throws ConfigurationException {
+ com.android.jack.Options.VerbosityLevel jackVerbosityLevel;
+ switch (verbosityLevel) {
+ case DEBUG: {
+ jackVerbosityLevel = com.android.jack.Options.VerbosityLevel.DEBUG;
+ break;
+ }
+ case ERROR: {
+ jackVerbosityLevel = com.android.jack.Options.VerbosityLevel.ERROR;
+ break;
+ }
+ case INFO: {
+ jackVerbosityLevel = com.android.jack.Options.VerbosityLevel.INFO;
+ break;
+ }
+ case WARNING: {
+ jackVerbosityLevel = com.android.jack.Options.VerbosityLevel.WARNING;
+ break;
+ }
+ default: {
+ throw new ConfigurationException("Verbosity level '" + verbosityLevel + "' is unsupported");
+ }
+ }
+ options.setVerbosityLevel(jackVerbosityLevel);
}
}