Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f2e7ec0

Browse files
committed
[#2483] Minor refactoring
1 parent 02f29c5 commit f2e7ec0

File tree

2 files changed

+37
-83
lines changed

2 files changed

+37
-83
lines changed

‎local-build-plugins/src/main/java/org/hibernate/reactive/env/VersionPropertiesSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ public String obtain() {
2525
final var props = new Properties();
2626
try (final var in = new FileInputStream( file )) {
2727
props.load( in );
28+
return props.getProperty( "projectVersion" );
2829
}
2930
catch (Exception e) {
3031
throw new RuntimeException( "Unable to load properties from file - " + file.getAbsolutePath(), e );
3132
}
32-
return props.getProperty( "projectVersion" );
3333
}
3434
}

‎local-build-plugins/src/main/java/org/hibernate/reactive/env/VersionsPlugin.java

Lines changed: 36 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -34,31 +34,12 @@ public class VersionsPlugin implements Plugin<Project> {
3434
public void apply(Project project) {
3535
final Logger log = project.getLogger();
3636

37-
// Expose the version file as an extension
37+
// Expose the version file as an extension (used during releases)
3838
final File versionFile = project.getRootProject().file( RELATIVE_FILE );
3939
project.getExtensions().add( VERSION_FILE, versionFile );
4040

41-
// 1) release/development via -P if they come
42-
final ProjectVersion releaseVersion = determineReleaseVersion( project );
43-
final ProjectVersion developmentVersion = determineDevelopmentVersion( project );
44-
45-
// 2) read projectVersion from version.properties using ValueSource (cacheable)
46-
final var projectVersionString = project.getProviders().of(
47-
VersionPropertiesSource.class, spec -> {
48-
final var rf = project.getLayout()
49-
.getProjectDirectory()
50-
.file( RELATIVE_FILE );
51-
spec.getParameters().getFile().set( rf );
52-
}
53-
);
54-
55-
final ProjectVersion projectVersion = determineProjectVersion(
56-
project, releaseVersion, projectVersionString
57-
);
58-
59-
log.lifecycle( "Project version: {} ({})", projectVersion.getFullName(), projectVersion.getFamily() );
60-
project.getExtensions().add( PROJECT_VERSION, projectVersion );
61-
41+
// 1) Read release/development via -P if they come
42+
final ProjectVersion releaseVersion = findProjectVersion( RELEASE_VERSION, project );
6243
if ( releaseVersion != null ) {
6344
log.lifecycle( "Release version: {} ({})", releaseVersion.getFullName(), releaseVersion.getFamily() );
6445
project.getExtensions().add( RELEASE_VERSION, releaseVersion );
@@ -67,46 +48,44 @@ public void apply(Project project) {
6748
log.lifecycle( "Release version: n/a" );
6849
}
6950

51+
final ProjectVersion developmentVersion = findProjectVersion( DEVELOPMENT_VERSION, project );
7052
if ( developmentVersion != null ) {
71-
log.lifecycle(
72-
"Development version: {} ({})",
73-
developmentVersion.getFullName(),
74-
developmentVersion.getFamily()
75-
);
53+
log.lifecycle( "Development version: {} ({})", developmentVersion.getFullName(), developmentVersion.getFamily() );
7654
project.getExtensions().add( DEVELOPMENT_VERSION, developmentVersion );
7755
}
7856
else {
7957
log.lifecycle( "Development version: n/a" );
8058
}
8159

82-
// 3) Version Catalog ("libs") See local-build-plugins/settings.gradle
60+
// 2) read projectVersion from version.properties using ValueSource (cacheable)
61+
final var projectVersionString = project.getProviders()
62+
.of( VersionPropertiesSource.class, spec -> {
63+
final var rf = project.getLayout().getProjectDirectory().file( RELATIVE_FILE );
64+
spec.getParameters().getFile().set( rf );
65+
}
66+
);
67+
68+
final ProjectVersion projectVersion = determineProjectVersion( project, releaseVersion, projectVersionString );
69+
log.lifecycle( "Project version: {} ({})", projectVersion.getFullName(), projectVersion.getFamily() );
70+
project.getExtensions().add( PROJECT_VERSION, projectVersion );
71+
72+
// 3) Version Catalog ("libs"): see gradle/libs.versions.toml
8373
final VersionCatalogsExtension catalogs = project.getExtensions().getByType( VersionCatalogsExtension.class );
8474
final VersionCatalog libs = catalogs.named( "libs" );
8575

86-
final String ormVersionString = determineOrmVersion( project, libs );
76+
final String ormVersionString = determineVersion( ORM_VERSION, project, libs );
8777
final Object ormVersion = resolveOrmVersion( ormVersionString, project );
8878
log.lifecycle( "ORM version: {}", ormVersion );
8979
project.getExtensions().add( ORM_VERSION, ormVersion );
9080

91-
final Object ormPluginVersion = determineOrmPluginVersion( ormVersion, project, libs );
81+
final String ormPluginVersion = determineVersion( ORM_PLUGIN_VERSION, project, libs );
9282
log.lifecycle( "ORM Gradle plugin version: {}", ormPluginVersion );
9383
project.getExtensions().add( ORM_PLUGIN_VERSION, ormPluginVersion );
9484
}
9585

96-
// --- Release / Development (with -P) --------------------------------------
97-
private ProjectVersion determineReleaseVersion(Project project) {
98-
if ( project.hasProperty( RELEASE_VERSION ) ) {
99-
final Object version = project.property( RELEASE_VERSION );
100-
if ( version != null ) {
101-
return new ProjectVersion( (String) version );
102-
}
103-
}
104-
return null;
105-
}
106-
107-
private ProjectVersion determineDevelopmentVersion(Project project) {
108-
if ( project.hasProperty( DEVELOPMENT_VERSION ) ) {
109-
final Object version = project.property( DEVELOPMENT_VERSION );
86+
private ProjectVersion findProjectVersion(String property, Project project) {
87+
if ( project.hasProperty( property ) ) {
88+
final Object version = project.property( property );
11089
if ( version != null ) {
11190
return new ProjectVersion( (String) version );
11291
}
@@ -115,67 +94,42 @@ private ProjectVersion determineDevelopmentVersion(Project project) {
11594
}
11695

11796
// --- Project version (ValueSource for configuration cache) ---------------
118-
119-
public static ProjectVersion determineProjectVersion(
120-
Project project,
121-
ProjectVersion releaseVersion,
122-
Provider<String> projectVersionString
123-
) {
97+
public static ProjectVersion determineProjectVersion(Project project, ProjectVersion releaseVersion, Provider<String> projectVersionString) {
12498
if ( releaseVersion != null ) {
12599
return releaseVersion;
126100
}
127-
// if don't have an explicit release, use value of file (with ValueSource)
101+
// if we don't have an explicit release, use value from 'version/gradle.properties' (with ValueSource)
128102
final String fullName = projectVersionString.get();
129103
if ( fullName.isEmpty() ) {
130104
final var file = project.getRootProject().file( RELATIVE_FILE );
131-
throw new RuntimeException( "Property 'projectVersion' is missing in " + file.getAbsolutePath() );
105+
throw new RuntimeException( "Property 'projectVersion' not found in " + file.getAbsolutePath() );
132106
}
133107
return new ProjectVersion( fullName );
134108
}
135109

136-
// --- ORM version from -P or catalogs ------------------------------------
137-
138-
private String determineOrmVersion(Project project, VersionCatalog libs) {
139-
// Check if it has been set in the project
140-
// -PhibernateOrmVersion have priority
141-
if ( project.hasProperty( ORM_VERSION ) ) {
142-
return (String) project.property( ORM_VERSION );
110+
private String determineVersion(String property, Project project, VersionCatalog libs) {
111+
// Check if the property is defined in the project
112+
if ( project.hasProperty( property ) ) {
113+
return (String) project.property( property );
143114
}
144-
// Find in Version Catalog
145-
final Optional<VersionConstraint> vc = libs.findVersion( ORM_VERSION );
115+
116+
// Otherwise, look for it in the catalog
117+
final Optional<VersionConstraint> vc = libs.findVersion( property );
146118
if ( vc.isPresent() ) {
147119
final String required = vc.get().getRequiredVersion();
148120
if ( !required.isEmpty() ) {
149121
return required;
150122
}
151123
}
152-
throw new IllegalStateException( "Hibernate ORM version not specified on project" );
124+
125+
throw new IllegalStateException( "Property '" + property + "' not found in version catalog" );
153126
}
154127

155128
private Object resolveOrmVersion(String stringForm, Project project) {
156129
if ( project.hasProperty( SKIP_ORM_VERSION_PARSING )
157-
&& Boolean.parseBoolean( (String) project.property( SKIP_ORM_VERSION_PARSING ) )
158-
) {
130+
&& Boolean.parseBoolean( (String) project.property( SKIP_ORM_VERSION_PARSING ) ) ) {
159131
return stringForm;
160132
}
161133
return new ProjectVersion( stringForm );
162134
}
163-
164-
private Object determineOrmPluginVersion(Object ormVersion, Project project, VersionCatalog libs) {
165-
// Check if it has been set in the project
166-
// -PhibernateOrmGradlePluginVersion have priority
167-
if ( project.hasProperty( ORM_PLUGIN_VERSION ) ) {
168-
return project.property( ORM_PLUGIN_VERSION );
169-
}
170-
// Find in Version Catalog
171-
final Optional<VersionConstraint> vc = libs.findVersion( ORM_PLUGIN_VERSION );
172-
if ( vc.isPresent() ) {
173-
final String required = vc.get().getRequiredVersion();
174-
if ( !required.isEmpty() ) {
175-
return required;
176-
}
177-
}
178-
179-
throw new IllegalStateException( "Hibernate ORM Gradle plugin version not specified on project" );
180-
}
181135
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /