5
5
import java .util .Map .Entry ;
6
6
import java .util .function .Function ;
7
7
8
+ import org .hibernate .search .develocity .scan .BuildScanMetadata ;
8
9
import org .hibernate .search .develocity .util .JavaVersions ;
9
- import org .hibernate .search .develocity .util .MavenConfigs ;
10
10
11
11
import com .gradle .maven .extension .api .GradleEnterpriseApi ;
12
12
import com .gradle .maven .extension .api .cache .MojoMetadataProvider ;
13
- import com .gradle .maven .extension .api .cache .NormalizationProvider ;
14
- import com .gradle .maven .extension .api .scan .BuildScanApi ;
15
13
import org .apache .maven .execution .MavenSession ;
16
14
import org .apache .maven .project .MavenProject ;
17
15
@@ -27,16 +25,17 @@ public void configureBuildCache(GradleEnterpriseApi gradleEnterpriseApi, MavenSe
27
25
return ;
28
26
}
29
27
30
- Map <String , GoalMetadataProvider > goalMetadataProviders = Collections .unmodifiableMap (getGoalMetadataProviders (gradleEnterpriseApi . getBuildScan () ));
28
+ Map <String , GoalMetadataProvider > goalMetadataProviders = Collections .unmodifiableMap (getGoalMetadataProviders ());
31
29
32
30
Log .debug (getPluginName (), "Build cache is enabled. Configuring metadata providers." );
33
31
Log .debug (getPluginName (), "Configuring metadata for goals: " + goalMetadataProviders .keySet ());
34
32
35
- for (Entry <String , GoalMetadataProvider > goalMetadataProviderEntry : goalMetadataProviders .entrySet ()) {
36
- if (goalMetadataProviderEntry .getKey ().equalsIgnoreCase (context .getMojoExecution ().getGoal ())) {
37
- goalMetadataProviderEntry .getValue ().configure (context );
38
- }
39
- }
33
+ for ( Entry <String , GoalMetadataProvider > goalMetadataProviderEntry : goalMetadataProviders .entrySet () ) {
34
+ if ( goalMetadataProviderEntry .getKey ().equalsIgnoreCase ( context .getMojoExecution ().getGoal () ) ) {
35
+ goalMetadataProviderEntry .getValue ()
36
+ .configure ( new GoalMetadataProvider .Context ( gradleEnterpriseApi .getBuildScan (), context ) );
37
+ }
38
+ }
40
39
});
41
40
});
42
41
}
@@ -47,10 +46,11 @@ protected boolean isBuildCacheEnabled(MavenProject project) {
47
46
return true ;
48
47
}
49
48
50
- protected abstract Map <String , GoalMetadataProvider > getGoalMetadataProviders (BuildScanApi buildScanApi );
49
+ protected abstract Map <String , GoalMetadataProvider > getGoalMetadataProviders ();
51
50
52
- protected static void dependsOnGav (MojoMetadataProvider .Context .Inputs inputs , MojoMetadataProvider .Context context ) {
53
- inputs .property ("_internal_gav" , context .getProject ().getGroupId () + ":" + context .getProject ().getArtifactId () + ":" + context .getProject ().getVersion ());
51
+ protected static void dependsOnGav (MojoMetadataProvider .Context .Inputs inputs , GoalMetadataProvider .Context context ) {
52
+ var project = context .metadata ().getProject ();
53
+ inputs .property ("_internal_gav" , project .getGroupId () + ":" + project .getArtifactId () + ":" + project .getVersion ());
54
54
}
55
55
56
56
@@ -65,31 +65,24 @@ protected static void dependsOnMavenJavaVersion(MojoMetadataProvider.Context.Inp
65
65
}
66
66
67
67
protected static void dependsOnConfigurableJavaExecutable (MojoMetadataProvider .Context .Inputs inputs ,
68
- MojoMetadataProvider .Context context , String configChildName ,
68
+ GoalMetadataProvider .Context context , String configChildName , Boolean skipped ,
69
69
Function <String , String > executableToVersion ) {
70
- var configChild = context .getMojoExecution ().getConfiguration ().getChild ( configChildName );
71
- String javaExecutable = configChild == null ? null : configChild .getValue ();
70
+ String javaExecutable = context .configuration ().getString ( configChildName );
72
71
String javaVersion = executableToVersion .apply ( javaExecutable );
72
+ boolean canCacheExactVersion = context .properties ().cacheExactJavaVersion ();
73
73
inputs .property ( "_internal_" + configChildName + "_java_version" ,
74
- MavenConfigs . cacheExactJavaVersion ( context . getSession () )
74
+ canCacheExactVersion
75
75
? javaVersion
76
76
: JavaVersions .toJdkMajor ( javaVersion , javaVersion ) );
77
- Log .info (
78
- context .getMojoExecution ().getPlugin ().getArtifactId (),
79
- "Using %s at path '%s'; resolved version: %s"
80
- .formatted ( configChildName , javaExecutable , javaVersion .replace ( '\n' , ' ' ).trim () )
81
- );
82
- }
83
-
84
- @ FunctionalInterface
85
- public interface PluginNormalizationProvider {
86
77
87
- void configure (NormalizationProvider .Context context );
78
+ if ( skipped == null || !skipped ) {
79
+ BuildScanMetadata .addJavaExecutableVersion ( context , javaExecutable , javaVersion , canCacheExactVersion );
80
+ Log .info (
81
+ context .metadata ().getMojoExecution ().getPlugin ().getArtifactId (),
82
+ "Using %s at path '%s'; resolved version: %s"
83
+ .formatted ( configChildName , javaExecutable , javaVersion .replace ( '\n' , ' ' ).trim () )
84
+ );
85
+ }
88
86
}
89
87
90
- @ FunctionalInterface
91
- public interface GoalMetadataProvider {
92
-
93
- void configure (MojoMetadataProvider .Context context );
94
- }
95
88
}
0 commit comments