Skip to content

Commit

Permalink
supporting gradle plugin 3.0.0-beta7
Browse files Browse the repository at this point in the history
  • Loading branch information
archinamon committed Oct 16, 2017
1 parent c9bc4db commit 49ced2b
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 28 deletions.
7 changes: 4 additions & 3 deletions android-gradle-aspectj/build.gradle
Expand Up @@ -23,13 +23,14 @@ dependencies {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.google.com' }
maven { url 'http://repository.jetbrains.com/utils' }
maven { url "https://dl.bintray.com/archinamon/maven" }
}

compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compileOnly "org.jetbrains.kotlin:gradle-api:2.3"
compileOnly 'com.android.tools.build:gradle:2.3.0'
compileOnly gradleApi()
compileOnly 'com.android.tools.build:gradle:3.0.0-beta7'
compile "org.aspectj:aspectjrt:$aspectjVersion"
compile "org.aspectj:aspectjtools:$aspectjVersion"

Expand All @@ -39,7 +40,7 @@ dependencies {
}

group = 'com.archinamon'
version = '3.1.1'
version = '3.1.1-gradleApiBeta'

task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
Expand Down
Expand Up @@ -20,11 +20,11 @@ internal open class AspectJCompileTask : AbstractCompile() {

internal class Builder(val project: Project) {

lateinit var plugin: Plugin<Project>
lateinit var config: AspectJExtension
lateinit var javaCompiler: JavaCompile
lateinit var variantName: String
lateinit var taskName: String
private lateinit var plugin: Plugin<Project>
private lateinit var config: AspectJExtension
private lateinit var javaCompiler: JavaCompile
private lateinit var variantName: String
private lateinit var taskName: String

fun plugin(plugin: Plugin<Project>): Builder {
this.plugin = plugin
Expand Down
@@ -1,10 +1,10 @@
package com.archinamon.api

import com.android.SdkConstants
import com.android.build.api.transform.Format
import com.android.build.api.transform.TransformException
import com.android.build.api.transform.TransformInvocation
import com.android.build.gradle.internal.transforms.JarMerger
import com.android.builder.packaging.JarMerger
import com.android.builder.packaging.ZipEntryFilter
import com.android.utils.FileUtils
import com.archinamon.api.transform.AspectJTransform
import java.io.File
Expand All @@ -25,10 +25,9 @@ internal class AspectJMergeJars {
FileUtils.mkdirs(jarFile.parentFile)
FileUtils.deleteIfExists(jarFile)

val jarMerger = JarMerger(jarFile)
val jarMerger = JarMerger(jarFile.toPath(), ZipEntryFilter.CLASSES_ONLY)
try {
jarMerger.setFilter { archivePath -> archivePath.endsWith(SdkConstants.DOT_CLASS) }
jarMerger.addFolder(resultDir)
jarMerger.addDirectory(resultDir.toPath())
} catch (e: Exception) {
throw TransformException(e)
} finally {
Expand Down
Expand Up @@ -7,11 +7,10 @@ import org.gradle.api.execution.TaskExecutionListener
import org.gradle.api.initialization.Settings
import org.gradle.api.invocation.Gradle
import org.gradle.api.tasks.TaskState
import org.gradle.util.Clock

class BuildTimeListener: TaskExecutionListener, BuildListener {

private lateinit var clock: Clock
private var startTime: Long = 0L
private var times = mutableListOf<Pair<Long, String>>()

override fun buildStarted(gradle: Gradle) {}
Expand All @@ -26,11 +25,11 @@ class BuildTimeListener: TaskExecutionListener, BuildListener {
}

override fun beforeExecute(task: Task) {
clock = Clock()
startTime = System.currentTimeMillis()
}

override fun afterExecute(task: Task, state: TaskState) {
val ms = clock.timeInMs
val ms = System.currentTimeMillis() - startTime
times.add(Pair(ms, task.path))
task.project.logger.warn("${task.path} spend ${ms}ms")
}
Expand Down
Expand Up @@ -5,7 +5,6 @@ import com.android.build.gradle.internal.pipeline.TransformInvocationBuilder
import com.android.build.gradle.internal.pipeline.TransformManager
import com.android.build.gradle.internal.pipeline.TransformTask
import com.android.build.gradle.internal.variant.BaseVariantData
import com.android.build.gradle.internal.variant.BaseVariantOutputData
import com.android.utils.FileUtils
import com.archinamon.AndroidConfig
import com.archinamon.api.AspectJMergeJars
Expand Down Expand Up @@ -53,7 +52,7 @@ internal abstract class AspectJTransform(val project: Project, private val polic
return this
}

private fun <T: BaseVariantData<out BaseVariantOutputData>> setupVariant(variantData: T) {
private fun <T: BaseVariantData> setupVariant(variantData: T) {
if (variantData.scope.instantRunBuildContext.isInInstantRunMode) {
if (modeComplex()) {
throw GradleException(SLICER_DETECTED_ERROR)
Expand Down
Expand Up @@ -74,8 +74,7 @@ internal fun logBuildParametersAdapted(args: MutableCollection<String?>, logfile

val params = args
.filterNotNull()
.map(::extractParamsToString)
.joinToString()
.joinToString(transform = ::extractParamsToString)

println("Ajc config: $params")
println("Detailed log in $logfile")
Expand Down
@@ -1,15 +1,15 @@
package com.archinamon.utils

import com.android.build.gradle.BasePlugin
import com.android.build.gradle.internal.scope.VariantScope
import com.android.build.gradle.internal.variant.BaseVariantData
import com.android.build.gradle.internal.variant.BaseVariantOutputData
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.internal.file.collections.SimpleFileCollection
import org.gradle.api.tasks.compile.JavaCompile
import java.io.File

fun getJavaTask(baseVariantData: BaseVariantData<out BaseVariantOutputData>): JavaCompile? {
fun getJavaTask(baseVariantData: BaseVariantData): JavaCompile? {
if (baseVariantData.javacTask != null) {
return baseVariantData.javacTask
} else if (baseVariantData.javaCompilerTask != null) {
Expand All @@ -18,10 +18,10 @@ fun getJavaTask(baseVariantData: BaseVariantData<out BaseVariantOutputData>): Ja
return null
}

fun getAjSourceAndExcludeFromJavac(project: Project, variantData: BaseVariantData<out BaseVariantOutputData>): FileCollection {
fun getAjSourceAndExcludeFromJavac(project: Project, variantData: BaseVariantData): FileCollection {
val javaTask = getJavaTask(variantData)

val flavors: List<String>? = variantData.variantConfiguration?.productFlavors?.map { flavor -> flavor.name }
val flavors: List<String>? = variantData.variantConfiguration.productFlavors.map { flavor -> flavor.name }
val srcSet = mutableListOf("main", variantData.variantConfiguration!!.buildType!!.name)
flavors?.let { srcSet.addAll(it) }

Expand Down Expand Up @@ -56,8 +56,8 @@ fun findAjSourcesForVariant(project: Project, variantName: String): MutableSet<F
return LinkedHashSet(possibleDirs)
}

fun getVariantDataList(plugin: BasePlugin): List<BaseVariantData<out BaseVariantOutputData>> {
return plugin.variantManager.variantDataList
fun getVariantDataList(plugin: BasePlugin): List<BaseVariantData> {
return plugin.variantManager.variantScopes.map(VariantScope::getVariantData)
}

internal infix fun <E> MutableCollection<in E>.shl(elem: E): MutableCollection<in E> {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-all.zip

0 comments on commit 49ced2b

Please sign in to comment.