diff options
Diffstat (limited to 'gradle/src/main')
19 files changed, 369 insertions, 166 deletions
diff --git a/gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy b/gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy index 5f60990..b7be7db 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy @@ -14,15 +14,17 @@ * limitations under the License. */ package com.android.build.gradle + import com.android.build.gradle.api.ApplicationVariant import com.android.builder.DefaultBuildType import com.android.builder.DefaultProductFlavor -import com.android.builder.signing.SigningConfig +import com.android.builder.model.SigningConfig import org.gradle.api.Action import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.internal.DefaultDomainObjectSet import org.gradle.api.internal.project.ProjectInternal import org.gradle.internal.reflect.Instantiator + /** * Extension for 'application' project. */ diff --git a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy index f3f465f..f8ee3d3 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy @@ -15,6 +15,7 @@ */ package com.android.build.gradle + import com.android.annotations.NonNull import com.android.annotations.Nullable import com.android.build.gradle.api.BaseVariant @@ -37,7 +38,7 @@ import com.android.build.gradle.internal.variant.BaseVariantData import com.android.build.gradle.internal.variant.TestVariantData import com.android.builder.DefaultBuildType import com.android.builder.VariantConfiguration -import com.android.builder.signing.SigningConfig +import com.android.builder.model.SigningConfig import com.google.common.collect.ArrayListMultimap import com.google.common.collect.ListMultimap import com.google.common.collect.Maps @@ -56,6 +57,7 @@ import static com.android.builder.BuilderConstants.INSTRUMENT_TEST import static com.android.builder.BuilderConstants.LINT import static com.android.builder.BuilderConstants.RELEASE import static com.android.builder.BuilderConstants.UI_TEST + /** * Gradle plugin class for 'application' projects. */ diff --git a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy index 720b955..584e510 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy @@ -68,8 +68,8 @@ import com.android.builder.VariantConfiguration import com.android.builder.dependency.JarDependency import com.android.builder.dependency.LibraryDependency import com.android.builder.model.ProductFlavor +import com.android.builder.model.SigningConfig import com.android.builder.model.SourceProvider -import com.android.builder.signing.SigningConfig import com.android.builder.testing.ConnectedDeviceProvider import com.android.builder.testing.api.DeviceProvider import com.android.builder.testing.api.TestServer @@ -329,7 +329,7 @@ public abstract class BasePlugin { processManifestTask.conventionMapping.manifestOverlays = { config.manifestOverlays } - processManifestTask.conventionMapping.packageName = { + processManifestTask.conventionMapping.packageNameOverride = { config.packageOverride } processManifestTask.conventionMapping.versionName = { diff --git a/gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy b/gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy index 3b847fe..ce7f73e 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy @@ -20,11 +20,12 @@ import com.android.build.gradle.internal.dsl.BuildTypeDsl import com.android.build.gradle.internal.dsl.SigningConfigDsl import com.android.builder.BuilderConstants import com.android.builder.DefaultBuildType -import com.android.builder.signing.SigningConfig +import com.android.builder.model.SigningConfig import org.gradle.api.Action import org.gradle.api.internal.DefaultDomainObjectSet import org.gradle.api.internal.project.ProjectInternal import org.gradle.internal.reflect.Instantiator + /** * Extension for 'library' project. */ diff --git a/gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java b/gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java index 0104656..d28b6dd 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java +++ b/gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java @@ -23,7 +23,7 @@ import com.android.build.gradle.tasks.PackageApplication; import com.android.build.gradle.tasks.ZipAlign; import com.android.builder.DefaultBuildType; import com.android.builder.DefaultProductFlavor; -import com.android.builder.signing.SigningConfig; +import com.android.builder.model.SigningConfig; import org.gradle.api.DefaultTask; import java.util.List; @@ -55,7 +55,7 @@ public interface ApkVariant extends BaseVariant { DefaultProductFlavor getMergedFlavor(); /** - * Returns the {@link com.android.builder.signing.SigningConfig} for this build variant, + * Returns the {@link SigningConfig} for this build variant, * if one has been specified. */ @Nullable diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java index 1f644ec..efbbad3 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java @@ -33,7 +33,7 @@ import com.android.build.gradle.tasks.RenderscriptCompile; import com.android.build.gradle.tasks.ZipAlign; import com.android.builder.DefaultBuildType; import com.android.builder.DefaultProductFlavor; -import com.android.builder.signing.SigningConfig; +import com.android.builder.model.SigningConfig; import org.gradle.api.DefaultTask; import org.gradle.api.Task; import org.gradle.api.tasks.Copy; diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java index 8dfc8f1..305c2e5 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java @@ -32,7 +32,7 @@ import com.android.build.gradle.tasks.RenderscriptCompile; import com.android.build.gradle.tasks.ZipAlign; import com.android.builder.DefaultBuildType; import com.android.builder.DefaultProductFlavor; -import com.android.builder.signing.SigningConfig; +import com.android.builder.model.SigningConfig; import org.gradle.api.DefaultTask; import org.gradle.api.Task; import org.gradle.api.tasks.Copy; diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy index 319cd96..449a43f 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy @@ -16,8 +16,7 @@ package com.android.build.gradle.internal.dsl; - -import com.android.builder.AaptOptions +import com.android.builder.model.AaptOptions import org.gradle.api.tasks.Input public class AaptOptionsImpl implements AaptOptions { diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy index b2c164e..8b9eed0 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy @@ -17,9 +17,9 @@ package com.android.build.gradle.internal.dsl import com.android.annotations.NonNull -import com.android.builder.DefaultBuildType import com.android.builder.BuilderConstants -import com.android.builder.signing.SigningConfig +import com.android.builder.DefaultBuildType +import com.android.builder.model.SigningConfig import com.google.common.collect.Lists /** diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java index 1455032..2960e18 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java @@ -18,9 +18,11 @@ package com.android.build.gradle.internal.dsl; import com.android.annotations.NonNull; import com.android.builder.BuilderConstants; -import com.android.builder.signing.SigningConfig; +import com.android.builder.model.SigningConfig; +import com.android.builder.signing.DefaultSigningConfig; import com.android.prefs.AndroidLocation; import com.google.common.base.Objects; +import org.gradle.api.Named; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.Optional; @@ -30,14 +32,11 @@ import java.io.File; import java.io.Serializable; /** - * DSL overlay for {@link SigningConfig}. + * DSL overlay for {@link DefaultSigningConfig}. */ -public class SigningConfigDsl extends SigningConfig implements Serializable { +public class SigningConfigDsl extends DefaultSigningConfig implements Serializable, Named { private static final long serialVersionUID = 1L; - @NonNull - private final String name; - /** * Creates a SigningConfig with a given name. * @@ -45,8 +44,8 @@ public class SigningConfigDsl extends SigningConfig implements Serializable { * */ public SigningConfigDsl(@NonNull String name) { - super(); - this.name = name; + super(name); + if (BuilderConstants.DEBUG.equals(name)) { try { initDebug(); @@ -56,11 +55,6 @@ public class SigningConfigDsl extends SigningConfig implements Serializable { } } - @NonNull - public String getName() { - return name; - } - public SigningConfigDsl initWith(SigningConfig that) { setStoreFile(that.getStoreFile()); setStorePassword(that.getStorePassword()); @@ -122,7 +116,7 @@ public class SigningConfigDsl extends SigningConfig implements Serializable { SigningConfigDsl that = (SigningConfigDsl) o; - if (!name.equals(that.name)) return false; + if (!mName.equals(that.mName)) return false; return true; } @@ -130,14 +124,14 @@ public class SigningConfigDsl extends SigningConfig implements Serializable { @Override public int hashCode() { int result = super.hashCode(); - result = 31 * result + name.hashCode(); + result = 31 * result + mName.hashCode(); return result; } @Override public String toString() { return Objects.toStringHelper(this) - .add("name", name) + .add("name", mName) .add("storeFile", getStoreFile() != null ? getStoreFile().getAbsolutePath() : "null") .add("storePassword", getStorePassword()) .add("keyAlias", getKeyAlias()) diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy index 57af98e..cdb3ebf 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy @@ -16,7 +16,7 @@ package com.android.build.gradle.internal.dsl -import com.android.builder.signing.SigningConfig +import com.android.builder.model.SigningConfig import org.gradle.api.NamedDomainObjectFactory import org.gradle.internal.reflect.Instantiator diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ArtifactInfoImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ArtifactInfoImpl.java new file mode 100644 index 0000000..9978fd0 --- /dev/null +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ArtifactInfoImpl.java @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2013 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.build.gradle.internal.model; + +import com.android.annotations.NonNull; +import com.android.annotations.Nullable; +import com.android.build.gradle.model.ArtifactInfo; +import com.android.build.gradle.model.Dependencies; + +import java.io.File; +import java.io.Serializable; +import java.util.List; + +/** + * Implementation of ArtifactInfo that is serializable + */ +public class ArtifactInfoImpl implements ArtifactInfo, Serializable { + + @NonNull + private final File outputFile; + private final boolean isSigned; + @Nullable + private final String signingConfigName; + @NonNull + private final String assembleTaskName; + @NonNull + private final String packageName; + @NonNull + private final List<File> generatedSourceFolders; + @NonNull + private final List<File> generatedResourceFolders; + @NonNull + private final File classesFolder; + @NonNull + private final Dependencies dependencies; + + + ArtifactInfoImpl(@NonNull String assembleTaskName, + @NonNull File outputFile, + boolean isSigned, + @Nullable String signingConfigName, + @NonNull String packageName, + @NonNull List<File> generatedSourceFolders, + @NonNull List<File> generatedResourceFolders, + @NonNull File classesFolder, + @NonNull Dependencies dependencies) { + this.assembleTaskName = assembleTaskName; + this.outputFile = outputFile; + this.isSigned = isSigned; + this.signingConfigName = signingConfigName; + this.packageName = packageName; + this.generatedSourceFolders = generatedSourceFolders; + this.generatedResourceFolders = generatedResourceFolders; + this.classesFolder = classesFolder; + this.dependencies = dependencies; + } + + @NonNull + @Override + public File getOutputFile() { + return outputFile; + } + + @Override + public boolean isSigned() { + return isSigned; + } + + @Nullable + @Override + public String getSigningConfigName() { + return signingConfigName; + } + + @NonNull + @Override + public String getPackageName() { + return packageName; + } + + @NonNull + @Override + public String getSourceGenTaskName() { + return "TODO"; + } + + @NonNull + @Override + public String getAssembleTaskName() { + return assembleTaskName; + } + + @NonNull + @Override + public List<File> getGeneratedSourceFolders() { + return generatedSourceFolders; + } + + @NonNull + @Override + public List<File> getGeneratedResourceFolders() { + return generatedResourceFolders; + } + + @NonNull + @Override + public File getClassesFolder() { + return classesFolder; + } + + @NonNull + @Override + public Dependencies getDependencies() { + return dependencies; + } +} diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java index fe5caec..84d0fd6 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java @@ -21,6 +21,8 @@ import com.android.build.gradle.model.AndroidProject; import com.android.build.gradle.model.BuildTypeContainer; import com.android.build.gradle.model.ProductFlavorContainer; import com.android.build.gradle.model.Variant; +import com.android.builder.model.AaptOptions; +import com.android.builder.model.SigningConfig; import com.google.common.collect.Maps; import java.io.Serializable; @@ -41,6 +43,8 @@ class DefaultAndroidProject implements AndroidProject, Serializable { private final String compileTarget; @NonNull private final List<String> bootClasspath; + @NonNull + private final List<SigningConfig> signingConfigs; private final boolean isLibrary; private final Map<String, BuildTypeContainer> buildTypes = Maps.newHashMap(); @@ -52,11 +56,13 @@ class DefaultAndroidProject implements AndroidProject, Serializable { DefaultAndroidProject(@NonNull String modelVersion, @NonNull String name, @NonNull String compileTarget, @NonNull List<String> bootClasspath, + @NonNull List<SigningConfig> signingConfigs, boolean isLibrary) { this.modelVersion = modelVersion; this.name = name; this.compileTarget = compileTarget; this.bootClasspath = bootClasspath; + this.signingConfigs = signingConfigs; this.isLibrary = isLibrary; } @@ -138,4 +144,16 @@ class DefaultAndroidProject implements AndroidProject, Serializable { public List<String> getBootClasspath() { return bootClasspath; } + + @NonNull + @Override + public List<SigningConfig> getSigningConfigs() { + return signingConfigs; + } + + @NonNull + @Override + public AaptOptions getAaptOptions() { + return null; + } } diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy index 95b6425..d63665f 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy @@ -27,10 +27,13 @@ import com.android.build.gradle.internal.variant.BaseVariantData import com.android.build.gradle.internal.variant.LibraryVariantData import com.android.build.gradle.internal.variant.TestVariantData import com.android.build.gradle.model.AndroidProject +import com.android.build.gradle.model.ArtifactInfo import com.android.build.gradle.model.BuildTypeContainer import com.android.build.gradle.model.ProductFlavorContainer import com.android.builder.DefaultProductFlavor import com.android.builder.SdkParser +import com.android.builder.VariantConfiguration +import com.android.builder.model.SigningConfig import com.android.builder.model.SourceProvider import com.google.common.collect.Lists import org.gradle.api.Project @@ -39,7 +42,6 @@ import org.gradle.tooling.provider.model.ToolingModelBuilder import java.util.jar.Attributes import java.util.jar.Manifest - /** * Builder for the custom Android model. */ @@ -56,8 +58,12 @@ public class ModelBuilder implements ToolingModelBuilder { LibraryPlugin libPlugin = null BasePlugin basePlugin = appPlugin + Collection<SigningConfig> signingConfigs + if (appPlugin == null) { basePlugin = libPlugin = getPlugin(project, LibraryPlugin.class) + } else { + signingConfigs = appPlugin.extension.signingConfigs } if (basePlugin == null) { @@ -65,13 +71,22 @@ public class ModelBuilder implements ToolingModelBuilder { return null } + if (libPlugin != null) { + signingConfigs = Collections.singletonList(libPlugin.extension.debugSigningConfig) + } SdkParser sdkParser = basePlugin.getLoadedSdkParser() - List<String> bootClasspath = basePlugin.runtimeJarList; + List<String> bootClasspath = basePlugin.runtimeJarList String compileTarget = sdkParser.target.hashString() - DefaultAndroidProject androidProject = new DefaultAndroidProject(getModelVersion(), - project.name, compileTarget, bootClasspath, libPlugin != null) + //noinspection GroovyVariableNotAssigned + DefaultAndroidProject androidProject = new DefaultAndroidProject( + getModelVersion(), + project.name, + compileTarget, + bootClasspath, + cloneSigningConfigs(signingConfigs), + libPlugin != null) .setDefaultConfig(createPFC(basePlugin.defaultConfigData)) if (appPlugin != null) { @@ -79,7 +94,7 @@ public class ModelBuilder implements ToolingModelBuilder { androidProject.addBuildType(createBTC(btData)) } for (ProductFlavorData pfData : appPlugin.productFlavors.values()) { - androidProject.addProductFlavors(createPFC(pfData)); + androidProject.addProductFlavors(createPFC(pfData)) } } else if (libPlugin != null) { @@ -96,7 +111,6 @@ public class ModelBuilder implements ToolingModelBuilder { return androidProject } - @NonNull private static String getModelVersion() { Class clazz = AndroidProject.class @@ -107,12 +121,12 @@ public class ModelBuilder implements ToolingModelBuilder { return "unknown" } String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) + - "/META-INF/MANIFEST.MF"; - Manifest manifest = new Manifest(new URL(manifestPath).openStream()); - Attributes attr = manifest.getMainAttributes(); - String version = attr.getValue("Model-Version"); + "/META-INF/MANIFEST.MF" + Manifest manifest = new Manifest(new URL(manifestPath).openStream()) + Attributes attr = manifest.getMainAttributes() + String version = attr.getValue("Model-Version") if (version != null) { - return version; + return version } return "unknown" @@ -126,27 +140,41 @@ public class ModelBuilder implements ToolingModelBuilder { testVariantData = variantData.testVariantData } + ArtifactInfo mainArtifact = createArtifactInfo(variantData) + ArtifactInfo testArtifact = testVariantData != null ? createArtifactInfo(testVariantData) : null + VariantImpl variant = new VariantImpl( variantData.name, variantData.baseName, - variantData.assembleTask.name, - testVariantData?.assembleTask?.name, variantData.variantConfiguration.buildType.name, getProductFlavorNames(variantData), ProductFlavorImpl.cloneFlavor(variantData.variantConfiguration.mergedFlavor), + mainArtifact, + testArtifact) + + return variant + } + + private static ArtifactInfo createArtifactInfo(@NonNull BaseVariantData variantData) { + VariantConfiguration vC = variantData.variantConfiguration + + SigningConfig signingConfig = vC.signingConfig + String signingConfigName = null + if (signingConfig != null) { + signingConfigName = signingConfig.name + } + + return new ArtifactInfoImpl( + variantData.assembleTask.name, variantData.outputFile, - testVariantData?.outputFile, - variantData.variantConfiguration.isSigningReady(), + vC.isSigningReady(), + signingConfigName, + vC.packageName, getGeneratedSourceFolders(variantData), - getGeneratedSourceFolders(testVariantData), getGeneratedResourceFolders(variantData), - getGeneratedResourceFolders(testVariantData), variantData.javaCompileTask.destinationDir, - DependenciesImpl.cloneDependencies(variantData.variantDependency), - DependenciesImpl.cloneDependencies(testVariantData?.variantDependency), + DependenciesImpl.cloneDependencies(variantData.variantDependency) ) - - return variant; } @NonNull @@ -157,7 +185,7 @@ public class ModelBuilder implements ToolingModelBuilder { flavorNames.add(flavor.name) } - return flavorNames; + return flavorNames } @NonNull @@ -210,6 +238,29 @@ public class ModelBuilder implements ToolingModelBuilder { SourceProviderImpl.cloneProvider((SourceProvider) buildTypeData.sourceSet)) } + @NonNull + private static List<SigningConfig> cloneSigningConfigs(Collection<SigningConfig> signingConfigs) { + List<SigningConfig> results = Lists.newArrayListWithCapacity(signingConfigs.size()) + + for (SigningConfig signingConfig : signingConfigs) { + results.add(createSigningConfig(signingConfig)) + } + + return results + } + + @NonNull + private static SigningConfig createSigningConfig(SigningConfig signingConfig) { + return new SigningConfigImpl( + signingConfig.getName(), + signingConfig.getStoreFile(), + signingConfig.getStorePassword(), + signingConfig.getKeyAlias(), + signingConfig.getKeyPassword(), + signingConfig.getStoreType(), + signingConfig.isSigningReady()) + } + /** * Safely queries a project for a given plugin class. * @param project the project to query diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/SigningConfigImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/SigningConfigImpl.java new file mode 100644 index 0000000..06e219c --- /dev/null +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/SigningConfigImpl.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2013 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.build.gradle.internal.model; + +import com.android.annotations.NonNull; +import com.android.annotations.Nullable; +import com.android.builder.model.SigningConfig; + +import java.io.File; +import java.io.Serializable; + +/** + * Implementation of SigningConfig that is serializable. Objects used in the DSL cannot be + * serialized. + */ +class SigningConfigImpl implements SigningConfig, Serializable { + private static final long serialVersionUID = 1L; + + @NonNull + private final String name; + @Nullable + private final File storeFile; + @Nullable + private final String storePassword; + @Nullable + private final String keyAlias; + @Nullable + private final String keyPassword; + @Nullable + private final String storeType; + private final boolean signingReady; + + SigningConfigImpl(@NonNull String name, + @Nullable File storeFile, + @Nullable String storePassword, + @Nullable String keyAlias, + @Nullable String keyPassword, + @Nullable String storeType, + boolean signingReady) { + + this.name = name; + this.storeFile = storeFile; + this.storePassword = storePassword; + this.keyAlias = keyAlias; + this.keyPassword = keyPassword; + this.storeType = storeType; + this.signingReady = signingReady; + } + + @NonNull + @Override + public String getName() { + return name; + } + + @Nullable + @Override + public File getStoreFile() { + return storeFile; + } + + @Nullable + @Override + public String getStorePassword() { + return storePassword; + } + + @Nullable + @Override + public String getKeyAlias() { + return keyAlias; + } + + @Nullable + @Override + public String getKeyPassword() { + return keyPassword; + } + + @Nullable + @Override + public String getStoreType() { + return storeType; + } + + @Override + public boolean isSigningReady() { + return signingReady; + } +} diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java index c2e41c7..cffc10f 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java @@ -18,11 +18,10 @@ package com.android.build.gradle.internal.model; import com.android.annotations.NonNull; import com.android.annotations.Nullable; -import com.android.build.gradle.model.Dependencies; +import com.android.build.gradle.model.ArtifactInfo; import com.android.build.gradle.model.Variant; import com.android.builder.model.ProductFlavor; -import java.io.File; import java.io.Serializable; import java.util.List; @@ -37,69 +36,30 @@ class VariantImpl implements Variant, Serializable { @NonNull private final String displayName; @NonNull - private final String assembleTaskName; - @Nullable - private final String assembleTestTaskName; - @NonNull private final String buildTypeName; @NonNull private final List<String> productFlavorNames; @NonNull private final ProductFlavor mergedFlavor; @NonNull - private final File outputFile; - @Nullable - private final File testOutputFile; - private final boolean isSigned; - @NonNull - private final List<File> generatedSourceFolders; - @Nullable - private final List<File> generatedTestSourceFolders; - @NonNull - private final List<File> generatedResourceFolders; + private final ArtifactInfo mainArtifactInfo; @Nullable - private final List<File> generatedTestResourceFolders; - @NonNull - private final File classesFolder; - @NonNull - private final Dependencies dependencies; - @NonNull - private final Dependencies testDependencies; + private final ArtifactInfo testArtifactInfo; VariantImpl(@NonNull String name, @NonNull String displayName, - @NonNull String assembleTaskName, - @Nullable String assembleTestTaskName, @NonNull String buildTypeName, @NonNull List<String> productFlavorNames, @NonNull ProductFlavorImpl mergedFlavor, - @NonNull File outputFile, - @Nullable File testOutputFile, - boolean isSigned, - @NonNull List<File> generatedSourceFolders, - @Nullable List<File> generatedTestSourceFolders, - @NonNull List<File> generatedResourceFolders, - @Nullable List<File> generatedTestResourceFolders, - @NonNull File classesFolder, - @NonNull Dependencies dependencies, - @NonNull Dependencies testDependencies) { + @NonNull ArtifactInfo mainArtifactInfo, + @Nullable ArtifactInfo testArtifactInfo) { this.name = name; this.displayName = displayName; - this.assembleTaskName = assembleTaskName; - this.assembleTestTaskName = assembleTestTaskName; this.buildTypeName = buildTypeName; this.productFlavorNames = productFlavorNames; this.mergedFlavor = mergedFlavor; - this.outputFile = outputFile; - this.testOutputFile = testOutputFile; - this.isSigned = isSigned; - this.generatedSourceFolders = generatedSourceFolders; - this.generatedTestSourceFolders = generatedTestSourceFolders; - this.generatedResourceFolders = generatedResourceFolders; - this.generatedTestResourceFolders = generatedTestResourceFolders; - this.classesFolder = classesFolder; - this.dependencies = dependencies; - this.testDependencies = testDependencies; + this.mainArtifactInfo = mainArtifactInfo; + this.testArtifactInfo = testArtifactInfo; } @Override @@ -114,35 +74,6 @@ class VariantImpl implements Variant, Serializable { return displayName; } - @NonNull - @Override - public String getAssembleTaskName() { - return assembleTaskName; - } - - @Nullable - @Override - public String getAssembleTestTaskName() { - return assembleTestTaskName; - } - - @Override - @NonNull - public File getOutputFile() { - return outputFile; - } - - @Nullable - @Override - public File getOutputTestFile() { - return testOutputFile; - } - - @Override - public boolean isSigned() { - return isSigned; - } - @Override @NonNull public String getBuildType() { @@ -163,43 +94,13 @@ class VariantImpl implements Variant, Serializable { @NonNull @Override - public List<File> getGeneratedSourceFolders() { - return generatedSourceFolders; - } - - @Nullable - @Override - public List<File> getGeneratedTestSourceFolders() { - return generatedTestSourceFolders; - } - - @NonNull - @Override - public List<File> getGeneratedResourceFolders() { - return generatedResourceFolders; + public ArtifactInfo getMainArtifactInfo() { + return mainArtifactInfo; } @Nullable @Override - public List<File> getGeneratedTestResourceFolders() { - return generatedTestResourceFolders; - } - - @NonNull - @Override - public File getClassesFolder() { - return classesFolder; - } - - @NonNull - @Override - public Dependencies getDependencies() { - return dependencies; - } - - @NonNull - @Override - public Dependencies getTestDependencies() { - return testDependencies; + public ArtifactInfo getTestArtifactInfo() { + return testArtifactInfo; } } diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy index d07117c..9d7c170 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy @@ -18,10 +18,10 @@ package com.android.build.gradle.internal.tasks import com.android.build.gradle.internal.dsl.SigningConfigDsl import com.android.build.gradle.internal.variant.BaseVariantData +import com.android.builder.model.SigningConfig import com.android.builder.signing.CertificateInfo import com.android.builder.signing.KeystoreHelper import com.android.builder.signing.KeytoolException -import com.android.builder.signing.SigningConfig import com.google.common.collect.Maps import org.gradle.api.tasks.TaskAction import org.gradle.logging.StyledTextOutput diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy index cfc7e27..d506f04 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy @@ -16,12 +16,13 @@ package com.android.build.gradle.internal.tasks +import com.android.builder.model.SigningConfig import com.android.builder.signing.KeystoreHelper -import com.android.builder.signing.SigningConfig import org.gradle.api.tasks.Input import org.gradle.api.tasks.Optional import org.gradle.api.tasks.TaskAction import org.gradle.tooling.BuildException + /** * A validate task that creates the debug keystore if it's missing. * It only creates it if it's in the default debug keystore location. diff --git a/gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy b/gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy index d0cf411..72ddcd8 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy @@ -37,7 +37,7 @@ public class ProcessAppManifest extends ProcessManifest { List<ManifestDependencyImpl> libraries @Input @Optional - String packageName + String packageNameOverride @Input int versionCode @@ -57,7 +57,7 @@ public class ProcessAppManifest extends ProcessManifest { getMainManifest(), getManifestOverlays(), getLibraries(), - getPackageName(), + getPackageNameOverride(), getVersionCode(), getVersionName(), getMinSdkVersion(), |