Skip to content

Commit 1cd2aa5

Browse files
committed
Adjust failsafe/surefire additional metadata handling
1 parent 93d2cff commit 1cd2aa5

File tree

2 files changed

+72
-40
lines changed

2 files changed

+72
-40
lines changed

src/main/java/org/hibernate/infra/develocity/plugins/SurefireConfiguredPlugin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.hibernate.infra.develocity.GoalMetadataProvider;
77
import org.hibernate.infra.develocity.SimpleConfiguredPlugin;
8+
import org.hibernate.infra.develocity.scan.BuildScanMetadata;
89
import org.hibernate.infra.develocity.util.JavaVersions;
910

1011
import com.gradle.develocity.agent.maven.api.cache.MojoMetadataProvider;
@@ -35,6 +36,10 @@ protected void configureTest(GoalMetadataProvider.Context context) {
3536
} );
3637

3738
configureEnvironmentVariables(context);
39+
40+
if ( !isSkipped( context ) ) {
41+
BuildScanMetadata.addSurefireMetadata( context );
42+
}
3843
}
3944

4045
// Develocity handles environment variables as a big blob by default,

src/main/java/org/hibernate/infra/develocity/scan/BuildScanMetadata.java

Lines changed: 67 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.regex.Pattern;
1010

1111
import org.apache.maven.execution.MavenSession;
12+
import org.apache.maven.model.Profile;
1213
import org.hibernate.infra.develocity.GoalMetadataProvider;
1314
import org.hibernate.infra.develocity.Log;
1415
import org.hibernate.infra.develocity.util.JavaVersions;
@@ -69,54 +70,80 @@ public static void addFailsafeMetadata(GoalMetadataProvider.Context context) {
6970
var buildScanApi = context.buildScan();
7071

7172
var project = context.metadata().getProject();
72-
boolean dependsOnOrm = false;
73-
boolean dependsOnLucene = false;
74-
boolean dependsOnElasticsearch = false;
75-
var artifactFilter = context.configuration().getFailsafeClasspathFilter();
76-
for ( var dependency : project.getArtifacts() ) {
77-
if ( !artifactFilter.include( dependency ) ) {
78-
continue;
73+
if ("org.hibernate.search".equals(project.getGroupId())) {
74+
boolean dependsOnOrm = false;
75+
boolean dependsOnLucene = false;
76+
boolean dependsOnElasticsearch = false;
77+
var artifactFilter = context.configuration().getFailsafeClasspathFilter();
78+
for (var dependency : project.getArtifacts()) {
79+
if (!artifactFilter.include(dependency)) {
80+
continue;
81+
}
82+
var artifactId = dependency.getArtifactId();
83+
dependsOnOrm = dependsOnOrm || artifactId.contains("mapper-orm");
84+
dependsOnLucene = dependsOnLucene || artifactId.contains("backend-lucene");
85+
dependsOnElasticsearch = dependsOnElasticsearch || artifactId.contains("backend-elasticsearch");
7986
}
80-
var artifactId = dependency.getArtifactId();
81-
dependsOnOrm = dependsOnOrm || artifactId.contains( "mapper-orm" );
82-
dependsOnLucene = dependsOnLucene || artifactId.contains( "backend-lucene" );
83-
dependsOnElasticsearch = dependsOnElasticsearch || artifactId.contains( "backend-elasticsearch" );
84-
}
8587

86-
if ( dependsOnOrm ) {
87-
var dbKind = context.properties().getString( "test.database.run.kind" );
88-
if ( !Strings.isBlank( dbKind ) ) {
89-
if ( dbKind.equals( "h2" ) ) {
90-
// H2 doesn't use containers
91-
buildScanApi.tag( "h2" );
92-
}
93-
else {
94-
addDockerfileMetadata( context,
95-
"database/%s.Dockerfile".formatted( dbKind ), dbKind, null, false );
88+
if (dependsOnOrm) {
89+
var dbKind = context.properties().getString("test.database.run.kind");
90+
if (!Strings.isBlank(dbKind)) {
91+
if (dbKind.equals("h2")) {
92+
// H2 doesn't use containers
93+
buildScanApi.tag("h2");
94+
} else {
95+
addDockerfileMetadata(context,
96+
"database/%s.Dockerfile".formatted(dbKind), dbKind, null, false);
97+
}
9698
}
9799
}
98-
}
99100

100-
String explicitBackend = context.configuration()
101-
.getFailsafeSystemProperty( "org.hibernate.search.integrationtest.backend.type" );
102-
if ( Strings.isBlank( explicitBackend ) ) {
103-
explicitBackend = null;
104-
}
101+
String explicitBackend = context.configuration()
102+
.getFailsafeSystemProperty("org.hibernate.search.integrationtest.backend.type");
103+
if (Strings.isBlank(explicitBackend)) {
104+
explicitBackend = null;
105+
}
105106

106-
if ( dependsOnLucene
107-
&& ( explicitBackend == null || "lucene".equals( explicitBackend ) )
108-
&& !context.properties().getBoolean( "test.lucene.skip" ) ) {
109-
buildScanApi.tag( "lucene" );
107+
if (dependsOnLucene
108+
&& (explicitBackend == null || "lucene".equals(explicitBackend))
109+
&& !context.properties().getBoolean("test.lucene.skip")) {
110+
buildScanApi.tag("lucene");
111+
}
112+
113+
if (dependsOnElasticsearch
114+
&& (explicitBackend == null || "elasticsearch".equals(explicitBackend))
115+
&& !context.properties().getBoolean("test.elasticsearch.skip")) {
116+
var distribution = context.properties().getString("test.elasticsearch.distribution");
117+
addDockerfileMetadata(context,
118+
"search-backend/%s.Dockerfile".formatted(distribution),
119+
"elastic".equals(distribution) ? "elasticsearch" : distribution,
120+
context.properties().getString("test.elasticsearch.version"), true);
121+
}
122+
} else if (!"org.hibernate.validator".equals(project.getGroupId())) {
123+
Log.warn("Project %s:%s is unknown, no specific Failsafe metadata added.".formatted(project.getGroupId(), project.getArtifactId()));
110124
}
125+
}
111126

112-
if ( dependsOnElasticsearch
113-
&& ( explicitBackend == null || "elasticsearch".equals( explicitBackend ) )
114-
&& !context.properties().getBoolean( "test.elasticsearch.skip" ) ) {
115-
var distribution = context.properties().getString( "test.elasticsearch.distribution" );
116-
addDockerfileMetadata( context,
117-
"search-backend/%s.Dockerfile".formatted( distribution ),
118-
"elastic".equals( distribution ) ? "elasticsearch" : distribution,
119-
context.properties().getString( "test.elasticsearch.version" ), true );
127+
public static void addSurefireMetadata(GoalMetadataProvider.Context context) {
128+
var buildScanApi = context.buildScan();
129+
var project = context.metadata().getProject();
130+
if ("org.hibernate.validator".equals(project.getGroupId())) {
131+
if ("hibernate-validator-tck-runner".equals(project.getArtifactId())) {
132+
project.getActiveProfiles().stream().map(Profile::getId)
133+
.filter("local"::equals).findAny()
134+
.ifPresent(id -> buildScanApi.tag("Standalone-TCK"));
135+
136+
project.getActiveProfiles().stream().map(Profile::getId)
137+
.filter(id -> id.startsWith("incontainer")).findAny()
138+
.ifPresent(id -> buildScanApi.tag("In-Container-TCK"));
139+
140+
project.getArtifacts().stream()
141+
.filter(a -> "validation-tck-tests".equals(a.getArtifactId()))
142+
.findAny()
143+
.ifPresent(a -> buildScanApi.tag("Validation-TCK-%s".formatted(a.getVersion())));
144+
}
145+
} else if (!"org.hibernate.search".equals(project.getGroupId())) {
146+
Log.warn("Project %s:%s is unknown, no specific Surefire metadata added.".formatted(project.getGroupId(), project.getArtifactId()));
120147
}
121148
}
122149

0 commit comments

Comments
 (0)