Skip to content

Commit b34ccbc

Browse files
committed
Add quarkus logging smoke test
1 parent 677c675 commit b34ccbc

15 files changed

Lines changed: 331 additions & 15 deletions

File tree

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Ignore all project specific gradle directories/files
2+
.gradle
3+
gradle
4+
build
5+
gradlew
6+
gradlew.bat
7+
8+
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
plugins {
2+
id 'java'
3+
id 'io.quarkus'
4+
id 'com.diffplug.gradle.spotless' version '4.3.0'
5+
id 'pl.allegro.tech.build.axion-release' version '1.10.3'
6+
}
7+
8+
def sharedRootDir = "$rootDir/../../../"
9+
def sharedConfigDirectory = "$sharedRootDir/gradle"
10+
rootProject.ext.sharedConfigDirectory = sharedConfigDirectory
11+
12+
apply from: "$sharedConfigDirectory/repositories.gradle"
13+
apply from: "$sharedConfigDirectory/spotless.gradle"
14+
15+
if (hasProperty('appBuildDir')) {
16+
buildDir = property('appBuildDir')
17+
}
18+
19+
scmVersion {
20+
repository {
21+
directory = project.rootProject.file(sharedRootDir)
22+
}
23+
}
24+
apply from: "$sharedConfigDirectory/scm.gradle"
25+
26+
version = scmVersion.version
27+
28+
dependencies {
29+
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
30+
implementation 'io.quarkus:quarkus-resteasy'
31+
if (hasProperty('apiJar')) {
32+
implementation files(property('apiJar'))
33+
} else {
34+
implementation "com.datadoghq:dd-trace-api:0.68.0"
35+
}
36+
}
37+
38+
java {
39+
sourceCompatibility = JavaVersion.VERSION_1_8
40+
targetCompatibility = JavaVersion.VERSION_1_8
41+
}
42+
43+
quarkusBuild {
44+
uberJar = true
45+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
quarkusPluginVersion=1.9.2.Final
2+
quarkusPlatformArtifactId=quarkus-universe-bom
3+
quarkusPlatformGroupId=io.quarkus
4+
quarkusPlatformVersion=1.9.2.Final
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
pluginManagement {
2+
repositories {
3+
mavenLocal()
4+
mavenCentral()
5+
gradlePluginPortal()
6+
}
7+
plugins {
8+
id 'io.quarkus' version "${quarkusPluginVersion}"
9+
}
10+
}
11+
12+
def isCI = System.getenv("CI") != null
13+
14+
// Don't pollute the dependency cache with the build cache
15+
if (isCI) {
16+
def sharedRootDir = "$rootDir/../../../"
17+
buildCache {
18+
local {
19+
// This needs to line up with the code in the outer project settings.gradle
20+
directory = "$sharedRootDir/workspace/build-cache"
21+
}
22+
}
23+
}
24+
25+
rootProject.name='quarkus-smoketest'
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package datadog.smoketest;
2+
3+
import datadog.trace.api.GlobalTracer;
4+
import datadog.trace.api.Tracer;
5+
import javax.ws.rs.DefaultValue;
6+
import javax.ws.rs.GET;
7+
import javax.ws.rs.Path;
8+
import javax.ws.rs.Produces;
9+
import javax.ws.rs.QueryParam;
10+
import javax.ws.rs.core.MediaType;
11+
import org.jboss.logging.Logger;
12+
13+
@Path("/hello-jboss")
14+
public class JBossLoggingResource {
15+
Logger log = Logger.getLogger(JBossLoggingResource.class);
16+
17+
@GET
18+
@Produces(MediaType.TEXT_PLAIN)
19+
public String hello(@DefaultValue("0") @QueryParam("id") int id) {
20+
Tracer tracer = GlobalTracer.get();
21+
log.debug("TT|" + tracer.getTraceId() + "|TS|" + tracer.getSpanId());
22+
return "Hello " + id + "!";
23+
}
24+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package datadog.smoketest;
2+
3+
import datadog.trace.api.GlobalTracer;
4+
import datadog.trace.api.Tracer;
5+
import javax.ws.rs.DefaultValue;
6+
import javax.ws.rs.GET;
7+
import javax.ws.rs.Path;
8+
import javax.ws.rs.Produces;
9+
import javax.ws.rs.QueryParam;
10+
import javax.ws.rs.core.MediaType;
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
13+
14+
@Path("/hello-slf4j")
15+
public class Slf4JResource {
16+
Logger log = LoggerFactory.getLogger(Slf4JResource.class);
17+
18+
@GET
19+
@Produces(MediaType.TEXT_PLAIN)
20+
public String hello(@DefaultValue("0") @QueryParam("id") int id) {
21+
Tracer tracer = GlobalTracer.get();
22+
log.debug("TT|" + tracer.getTraceId() + "|TS|" + tracer.getSpanId());
23+
return "Hello " + id + "!";
24+
}
25+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Nothing to see here!</title>
6+
</head>
7+
<body>
8+
<h1>Nothing to see here!</h1>
9+
</body>
10+
</html>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
quarkus.log.level=INFO
2+
quarkus.log.category."datadog.smoketest".level=DEBUG
3+
quarkus.log.console.format=%d %-5p [%c] '%t' |MT|%X{dd.trace_id}|MS|%X{dd.span_id}|%m%e%n
4+
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
ext {
2+
minJavaVersionForTests = JavaVersion.VERSION_1_8
3+
}
4+
5+
apply from: "$rootDir/gradle/java.gradle"
6+
7+
dependencies {
8+
testCompile project(':dd-smoke-tests')
9+
}
10+
11+
def appDir = "$projectDir/application"
12+
def appBuildDir = "$buildDir/application"
13+
// define the task that builds the quarkus project
14+
task quarkusBuild(type:Exec) {
15+
workingDir "$appDir"
16+
environment += ["GRADLE_OPTS": "-Xmx512M"]
17+
commandLine "$rootDir/gradlew", "build", "--no-daemon", "--max-workers=4", "-PappBuildDir=$appBuildDir", "-PapiJar=${project(':dd-trace-api').tasks.jar.archiveFile}"
18+
outputs.dir(appBuildDir)
19+
inputs.dir(appDir)
20+
}
21+
22+
quarkusBuild {
23+
dependsOn project(':dd-trace-api').tasks.jar
24+
}
25+
26+
compileTestGroovy {
27+
dependsOn 'quarkusBuild'
28+
outputs.upToDateWhen {
29+
!quarkusBuild.didWork
30+
}
31+
}
32+
33+
tasks.withType(Test).configureEach {
34+
jvmArgs "-Ddatadog.smoketest.quarkus.uberJar.path=$appBuildDir/quarkus-smoketest-$version-runner.jar"
35+
}
36+
37+
spotless {
38+
java {
39+
target "**/*.java"
40+
}
41+
42+
groovyGradle {
43+
target '*.gradle', "**/*.gradle"
44+
}
45+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package datadog.smoketest
2+
3+
class QuarkusJBossLoggingSmokeTest extends QuarkusSmokeTest {
4+
@Override
5+
String helloEndpointName() {
6+
return "hello-jboss"
7+
}
8+
9+
@Override
10+
String resourceName() {
11+
return "[datadog.smoketest.JBossLoggingResource]"
12+
}
13+
}

0 commit comments

Comments
 (0)