Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
class AroundAdvice {
@CallSite.Around('java.lang.String java.lang.String.replaceAll(java.lang.String, java.lang.String)')
static String around(@CallSite.This final String self, @CallSite.Argument final String regexp, @CallSite.Argument final String replacement) {
return self.replaceAll(regexp, replacement);
return self.replaceAll(regexp, replacement)
}
}

Expand Down Expand Up @@ -228,7 +228,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
@CallSite.Argument final MethodType concatType,
@CallSite.Argument final String recipe,
@CallSite.Argument final Object... constants) {
return null;
return null
}
}

Expand Down Expand Up @@ -270,7 +270,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
static String after(@CallSite.AllArguments final Object[] arguments,
@CallSite.Return final String result,
@CallSite.InvokeDynamicConstants final Object[] constants) {
return result;
return result
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ class AdviceSpecificationTest extends BaseCsiPluginTest {
class AfterWithVoidWrongAdvice {
@CallSite.After("void java.lang.String.getChars(int, int, char[], int)")
static String after(@CallSite.AllArguments final Object[] args, @CallSite.Return final String result) {
return result;
return result
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import datadog.trace.plugin.csi.impl.CallSiteSpecification.AfterSpecification
import datadog.trace.plugin.csi.impl.CallSiteSpecification.AroundSpecification
import datadog.trace.plugin.csi.impl.CallSiteSpecification.BeforeSpecification
import datadog.trace.plugin.csi.util.Types
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings
import groovy.transform.CompileDynamic
import org.objectweb.asm.Type

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,9 @@ class AssertBuilder<C extends CallSiteAssert> {
return resolved.@method as Method
}

private static CompilationUnit parseJavaFile(final File file)
throws FileNotFoundException {
final JavaSymbolSolver solver = new JavaSymbolSolver(typeResolver());
final JavaParser parser = new JavaParser(new ParserConfiguration().setSymbolResolver(solver));
return parser.parse(file).getResult().get();
private static CompilationUnit parseJavaFile(final File file) throws FileNotFoundException {
final JavaSymbolSolver solver = new JavaSymbolSolver(typeResolver())
final JavaParser parser = new JavaParser(new ParserConfiguration().setSymbolResolver(solver))
return parser.parse(file).getResult().get()
}
}
3 changes: 1 addition & 2 deletions buildSrc/src/main/groovy/InstrumentPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ class InstrumentPlugin implements Plugin<Project> {

// insert intermediate 'raw' directory for unprocessed classes
Directory classesDir = compileTask.destinationDirectory.get()
Directory rawClassesDir = classesDir.dir(
"../raw${sourceSetSuffix ? "_$sourceSetSuffix" : ''}/")
Directory rawClassesDir = classesDir.dir("../raw${sourceSetSuffix ? "_$sourceSetSuffix" : ''}/")
compileTask.destinationDirectory.set(rawClassesDir.asFile)

// insert task between compile and jar, and before test*
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/groovy/InstrumentingPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class InstrumentingPlugin {
throwables.values().flatten().each {
ise.addSuppressed(it)
}
};
}
}
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import org.gradle.kotlin.dsl.extra
internal fun findAffectedTaskPath(baseTask: Task, affectedProjects: Map<Project, Set<String>>): String? {
val visited = mutableSetOf<Task>()
val queue = mutableListOf(baseTask)

while (queue.isNotEmpty()) {
val t = queue.removeAt(0)
if (visited.contains(t)) {
continue
}
visited.add(t)

val affectedTasks = affectedProjects[t.project]
if (affectedTasks != null) {
if (affectedTasks.contains("all")) {
Expand All @@ -27,7 +27,7 @@ internal fun findAffectedTaskPath(baseTask: Task, affectedProjects: Map<Project,
return "${t.project.path}:${t.name}"
}
}

t.taskDependencies.getDependencies(t).forEach { queue.add(it) }
}
return null
Expand Down Expand Up @@ -106,4 +106,3 @@ fun Project.testAggregate(
createRootTask("${baseTaskName}LatestDepTest", "allLatestDepTests", includePrefixes, excludePrefixes, forceCoverage)
createRootTask("${baseTaskName}Check", "check", includePrefixes, excludePrefixes, forceCoverage)
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ package datadog.gradle.plugin.config
import com.github.javaparser.ParserConfiguration
import com.github.javaparser.StaticJavaParser
import com.github.javaparser.ast.CompilationUnit
import com.github.javaparser.ast.expr.StringLiteralExpr
import com.github.javaparser.ast.nodeTypes.NodeWithModifiers
import com.github.javaparser.ast.Modifier
import com.github.javaparser.ast.body.FieldDeclaration
import com.github.javaparser.ast.body.VariableDeclarator
import com.github.javaparser.ast.expr.StringLiteralExpr
import com.github.javaparser.ast.nodeTypes.NodeWithModifiers
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.GradleException
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceSetContainer
import org.gradle.kotlin.dsl.getByType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
package datadog.gradle.plugin.config

import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
import org.gradle.api.DefaultTask
import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.TaskAction
import java.io.File
import java.io.FileInputStream
import java.io.PrintWriter
import javax.inject.Inject

@CacheableTask
abstract class ParseSupportedConfigurationsTask @Inject constructor(
abstract class ParseSupportedConfigurationsTask @Inject constructor(
private val objects: ObjectFactory
) : DefaultTask() {
@InputFile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ abstract class ParseV2SupportedConfigurationsTask @Inject constructor(
// Parse supportedConfigurations key to into a V2 format
val supported: Map<String, List<SupportedConfigurationItem>> = supportedRaw.mapValues { (_, configList) ->
configList.map { configMap ->
@Suppress("UNCHECKED_CAST")
SupportedConfigurationItem(
configMap["version"] as? String,
configMap["type"] as? String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import org.gradle.kotlin.dsl.property
import java.io.File
import javax.inject.Inject


/**
* This extension allows to configure the Call Site Instrumenter plugin execution.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,11 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project> {
outputs.dir(output)

// JavaExec configuration
javaLauncher.set(javaToolchains.launcherFor {
languageVersion.set(csiExtension.javaVersion)
})
javaLauncher.set(
javaToolchains.launcherFor {
languageVersion.set(csiExtension.javaVersion)
}
)

jvmArgumentProviders.add({ csiExtension.jvmArgs.get() })
classpath(pluginJarFile)
Expand Down Expand Up @@ -228,9 +230,13 @@ abstract class CallSiteInstrumentationPlugin : Plugin<Project> {
}

private fun String.capitalize(): String = replaceFirstChar {
if (it.isLowerCase()) it.titlecase(
Locale.getDefault()
) else it.toString()
if (it.isLowerCase()) {
it.titlecase(
Locale.getDefault()
)
} else {
it.toString()
}
}

private val Project.sourceSets: SourceSetContainer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,9 @@ open class MuzzleDirective : Serializable {
val nameSlug: String
get() = name?.trim()?.replace(Regex("[^a-zA-Z0-9]+"), "-") ?: ""

override fun toString(): String {
return if (isCoreJdk) {
"${if (assertPass) "Pass" else "Fail"}-core-jdk"
} else {
"${if (assertPass) "pass" else "fail"} $group:$module:$versions"
}
override fun toString(): String = if (isCoreJdk) {
"${if (assertPass) "Pass" else "Fail"}-core-jdk"
} else {
"${if (assertPass) "pass" else "fail"} $group:$module:$versions"
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package datadog.gradle.plugin.muzzle
import org.gradle.api.Action
import org.gradle.api.model.ObjectFactory
import org.gradle.kotlin.dsl.newInstance
import javax.inject.Inject
import java.util.Locale
import javax.inject.Inject

/**
* Muzzle extension containing all pass and fail directives.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import datadog.gradle.plugin.muzzle.MuzzleMavenRepoUtils.muzzleDirectiveToArtifa
import datadog.gradle.plugin.muzzle.MuzzleMavenRepoUtils.resolveVersionRange
import datadog.gradle.plugin.muzzle.tasks.MuzzleEndTask
import datadog.gradle.plugin.muzzle.tasks.MuzzleGenerateReportTask
import datadog.gradle.plugin.muzzle.tasks.MuzzleMergeReportsTask
import datadog.gradle.plugin.muzzle.tasks.MuzzleGetReferencesTask
import datadog.gradle.plugin.muzzle.tasks.MuzzleMergeReportsTask
import datadog.gradle.plugin.muzzle.tasks.MuzzleTask
import org.eclipse.aether.artifact.Artifact
import org.gradle.api.NamedDomainObjectProvider
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@ import org.gradle.api.provider.Property
import org.gradle.workers.WorkParameters

interface MuzzleWorkParameters : WorkParameters {
val buildStartedTime: Property<Long>
val bootstrapClassPath: ConfigurableFileCollection
val toolingClassPath: ConfigurableFileCollection
val instrumentationClassPath: ConfigurableFileCollection
val testApplicationClassPath: ConfigurableFileCollection
val assertPass: Property<Boolean>
val muzzleDirective: Property<String>
val resultFile: RegularFileProperty
val buildStartedTime: Property<Long>
val bootstrapClassPath: ConfigurableFileCollection
val toolingClassPath: ConfigurableFileCollection
val instrumentationClassPath: ConfigurableFileCollection
val testApplicationClassPath: ConfigurableFileCollection
val assertPass: Property<Boolean>
val muzzleDirective: Property<String>
val resultFile: RegularFileProperty
}

Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import org.eclipse.aether.version.Version

// Changed from internal to public for cross-file accessibility
internal data class TestedArtifact(
val instrumentation: String,
val group: String,
val module: String,
val lowVersion: Version,
val highVersion: Version
val instrumentation: String,
val group: String,
val module: String,
val lowVersion: Version,
val highVersion: Version
) {
fun key(): String = "$instrumentation:$group:$module"
fun key(): String = "$instrumentation:$group:$module"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import org.eclipse.aether.version.Version
import java.util.SortedSet

class VersionSet(versions: Collection<Version>) {
private val sortedVersions: SortedSet<ParsedVersion> = sortedSetOf()
private val sortedVersions: SortedSet<ParsedVersion> = sortedSetOf()

init {
versions.forEach { sortedVersions.add(ParsedVersion(it)) }
}
init {
versions.forEach { sortedVersions.add(ParsedVersion(it)) }
}

val lowAndHighForMajorMinor: List<Version>
get() {
Expand All @@ -30,52 +30,49 @@ class VersionSet(versions: Collection<Version>) {
return resultSet.map { it.version }
}

internal class ParsedVersion(val version: Version) : Comparable<ParsedVersion> {
companion object {
private val dotPattern = Regex("\\.")
private const val VERSION_SHIFT = 12
}
val versionNumber: Long
val ending: String
init {
var versionString = version.toString()
var ending = ""
val dash = versionString.indexOf('-')
if (dash > 0) {
ending = versionString.substring(dash + 1)
versionString = versionString.substring(0, dash)
}
val groups = versionString.split(dotPattern).toMutableList()
var versionNumber = 0L
var iteration = 0
while (iteration < 3) {
versionNumber = versionNumber shl VERSION_SHIFT
if (groups.isNotEmpty() && groups[0].toIntOrNull() != null) {
versionNumber += groups.removeAt(0).toLong()
}
iteration++
}
if (groups.isNotEmpty()) {
val rest = groups.joinToString(".")
ending = if (ending.isEmpty()) rest else "$rest-$ending"
}
this.versionNumber = versionNumber
this.ending = ending
}
val majorMinor: Int
get() = (versionNumber shr VERSION_SHIFT).toInt()
override fun compareTo(other: ParsedVersion): Int {
val diff = versionNumber - other.versionNumber
return if (diff != 0L) diff.toInt() else ending.compareTo(other.ending)
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is ParsedVersion) return false
return versionNumber == other.versionNumber && ending == other.ending
}
override fun hashCode(): Int {
return (versionNumber * 31 + ending.hashCode()).toInt()
internal class ParsedVersion(val version: Version) : Comparable<ParsedVersion> {
companion object {
private val dotPattern = Regex("\\.")
private const val VERSION_SHIFT = 12
}
val versionNumber: Long
val ending: String
init {
var versionString = version.toString()
var ending = ""
val dash = versionString.indexOf('-')
if (dash > 0) {
ending = versionString.substring(dash + 1)
versionString = versionString.substring(0, dash)
}
val groups = versionString.split(dotPattern).toMutableList()
var versionNumber = 0L
var iteration = 0
while (iteration < 3) {
versionNumber = versionNumber shl VERSION_SHIFT
if (groups.isNotEmpty() && groups[0].toIntOrNull() != null) {
versionNumber += groups.removeAt(0).toLong()
}
iteration++
}
if (groups.isNotEmpty()) {
val rest = groups.joinToString(".")
ending = if (ending.isEmpty()) rest else "$rest-$ending"
}
this.versionNumber = versionNumber
this.ending = ending
}
val majorMinor: Int
get() = (versionNumber shr VERSION_SHIFT).toInt()
override fun compareTo(other: ParsedVersion): Int {
val diff = versionNumber - other.versionNumber
return if (diff != 0L) diff.toInt() else ending.compareTo(other.ending)
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is ParsedVersion) return false
return versionNumber == other.versionNumber && ending == other.ending
}
override fun hashCode(): Int = (versionNumber * 31 + ending.hashCode()).toInt()
}
}

Loading