@@ -23,6 +23,8 @@ public class VersionsPlugin implements Plugin<Project> {
2323 public static final String RELEASE_VERSION = "releaseVersion" ;
2424 public static final String DEVELOPMENT_VERSION = "developmentVersion" ;
2525
26+ public static final String ORM_VERSION = "hibernateOrmVersion" ;
27+ public static final String ORM_PLUGIN_VERSION = "hibernateOrmGradlePluginVersion" ;
2628 public static final String SKIP_ORM_VERSION_PARSING = "skipOrmVersionParsing" ;
2729
2830 public static final String RELATIVE_FILE = "gradle/version.properties" ;
@@ -55,6 +57,14 @@ public void apply(Project project) {
5557 project .getLogger ().lifecycle ( "Development version: n/a" );
5658 }
5759
60+ final String ormVersionString = determineOrmVersion ( project );
61+ final Object ormVersion = resolveOrmVersion ( ormVersionString , project );
62+ project .getLogger ().lifecycle ( "ORM version: {}" , ormVersion );
63+ project .getExtensions ().add ( ORM_VERSION , ormVersion );
64+
65+ final Object ormPluginVersion = determineOrmPluginVersion ( ormVersion , project );
66+ project .getLogger ().lifecycle ( "ORM Gradle plugin version: {}" , ormPluginVersion );
67+ project .getExtensions ().add ( ORM_PLUGIN_VERSION , ormPluginVersion );
5868 }
5969
6070 private ProjectVersion determineReleaseVersion (Project project ) {
@@ -112,4 +122,26 @@ private static void withInputStream(File file, Consumer<InputStream> action) {
112122 throw new RuntimeException ( "Error reading file stream = " + file .getAbsolutePath (), e );
113123 }
114124 }
125+
126+ private String determineOrmVersion (Project project ) {
127+ if ( project .hasProperty ( ORM_VERSION ) ) {
128+ return (String ) project .property ( ORM_VERSION );
129+ }
130+ throw new IllegalStateException ( "Hibernate ORM version not specified on project" );
131+ }
132+
133+ private Object resolveOrmVersion (String stringForm , Project project ) {
134+ if ( project .hasProperty ( SKIP_ORM_VERSION_PARSING )
135+ && Boolean .parseBoolean ( (String ) project .property ( SKIP_ORM_VERSION_PARSING ) ) ) {
136+ return stringForm ;
137+ }
138+ return new ProjectVersion ( stringForm );
139+ }
140+
141+ private Object determineOrmPluginVersion (Object ormVersion , Project project ) {
142+ if ( project .hasProperty ( ORM_PLUGIN_VERSION ) ) {
143+ return project .property ( ORM_PLUGIN_VERSION );
144+ }
145+ return ormVersion ;
146+ }
115147}
0 commit comments