Skip to content

Commit

Permalink
Merge pull request #43 from naver/revert-34
Browse files Browse the repository at this point in the history
Revert #34 because the agent and collector have different signatures

Reviewed-by: @kojandy
  • Loading branch information
taeyeon-Kim authored Mar 6, 2023
2 parents fd020ce + 7dab946 commit c2b9e25
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,20 @@
import lombok.Getter;

import com.navercorp.scavenger.util.HashGenerator;
import com.navercorp.scavenger.util.Signatures;

public class MethodRegistry {
public static final String SYNTHETIC_SIGNATURE_HASH = "";

@Getter
private final Map<String, String> byteBuddySignatureToHash = new ConcurrentHashMap<>();

private static final Pattern SYNTHETIC_SIGNATURE_PATTERN = Pattern.compile(".*\\$\\$(Enhancer|FastClass)BySpringCGLIB\\$\\$.*");

public String getHash(String byteBuddySignature, boolean legacyCompatibilityMode) {
String hash = this.byteBuddySignatureToHash.get(byteBuddySignature);

if (hash == null) {
if (Signatures.containsSyntheticPattern(byteBuddySignature)) {
if (SYNTHETIC_SIGNATURE_PATTERN.matcher(byteBuddySignature).matches()) {
hash = SYNTHETIC_SIGNATURE_HASH;
} else {
String signature = extractSignature(byteBuddySignature);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import com.navercorp.scavenger.dto.CommonImportResultDto
import com.navercorp.scavenger.dto.InvocationImportDto
import com.navercorp.scavenger.exception.UnknownPublicationException
import com.navercorp.scavenger.util.HashGenerator
import com.navercorp.scavenger.util.Signatures
import io.codekvast.javaagent.model.v4.CodeBasePublication4
import io.codekvast.javaagent.model.v4.CommonPublicationData4
import io.codekvast.javaagent.model.v4.InvocationDataPublication4
import java.io.InputStream
import java.io.ObjectInputStream
import java.util.regex.Pattern

sealed interface Publication {
fun getCommonImportDto(customerId: Long): CommonImportDto
Expand Down Expand Up @@ -107,7 +107,7 @@ sealed class LegacyPublication private constructor(val commonData: CommonPublica
override fun getCodeBaseImportDto(commonImportResultDto: CommonImportResultDto): CodeBaseImportDto =
with(commonImportResultDto) {
val entries = pub.entries
.filterNot { Signatures.containsSyntheticPattern(it.signature) }
.filterNot { syntheticSignaturePattern.matcher(it.signature).matches() }
.map {
CodeBaseImportDto.CodeBaseEntry(
declaringType = it.methodSignature.declaringType,
Expand Down Expand Up @@ -140,13 +140,17 @@ sealed class LegacyPublication private constructor(val commonData: CommonPublica
applicationId = applicationId,
environmentId = environmentId,
invocations = pub.invocations
.filterNot { Signatures.containsSyntheticPattern(it) }
.filterNot { syntheticSignaturePattern.matcher(it).matches() }
.map { HashGenerator.Md5.from(it) }
.sorted(),
invokedAtMillis = pub.recordingIntervalStartedAtMillis,
)
}
}

companion object {
val syntheticSignaturePattern: Pattern = Pattern.compile(".*\\.\\.(Enhancer|FastClass)BySpringCGLIB\\.\\..*")
}
}

fun InputStream.toLegacyPublication(): LegacyPublication {
Expand Down
4 changes: 0 additions & 4 deletions scavenger-model/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ dependencies {
implementation("io.grpc:grpc-kotlin-stub:${property("grpcKotlinVersion")}")
implementation("io.grpc:grpc-protobuf:${property("grpcVersion")}")
implementation("javax.annotation:javax.annotation-api:1.3.2")

testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.2")
testImplementation("org.assertj:assertj-core:3.22.0")
}

tasks.withType<JavaCompile> {
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit c2b9e25

Please sign in to comment.