Skip to content

Commit 41f289d

Browse files
author
freds
committed
Version system
1 parent 1007fc6 commit 41f289d

File tree

5 files changed

+70
-61
lines changed

5 files changed

+70
-61
lines changed

build-info-extractor-gradle/gradle.properties

-3
This file was deleted.

build-info-extractor-ivy/gradle.properties

-3
This file was deleted.

build-info-extractor-maven3/gradle.properties

-3
This file was deleted.

build.gradle

+8-6
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,23 @@ import org.apache.tools.ant.filters.ReplaceTokens
1919

2020
// Root project version should not be used
2121
version='2'
22+
baseProjectNames = ['api','client','extractor']
2223

2324
allprojects {
2425
apply plugin: 'idea'
2526
group = 'org.jfrog.buildinfo'
2627
}
2728

2829
def baseProjects() {
29-
subprojects.findAll { !it.name.startsWith('extractor-') }
30-
}
31-
32-
def extractorProjects() {
33-
subprojects.findAll { it.name.startsWith('extractor-') }
30+
subprojects.findAll { p -> baseProjectNames.contains(p.name) }
3431
}
3532

3633
subprojects {
3734
apply plugin: 'maven'
3835
apply plugin: 'java'
3936
sourceCompatibility = 1.5
4037
targetCompatibility = 1.5
41-
buildInfoVersion = new Version(rootProject)
38+
buildInfoVersion = new Version(rootProject, '1.4.9', false, baseProjectNames)
4239
artifactId = "build-info-$name"
4340

4441
dependencies {
@@ -61,9 +58,11 @@ configure(baseProjects()) {
6158
test.useTestNG()
6259
}
6360

61+
/*
6462
configure(extractorProjects()) { p ->
6563
version = new Version(p)
6664
}
65+
*/
6766

6867
project('api') {
6968
description = 'JFrog Build-Info API'
@@ -87,6 +86,7 @@ project('extractor') {
8786
}
8887

8988
project('extractor-ivy') {
89+
version = new Version(project, '1.0.5', false)
9090
description = 'JFrog Build-Info Ivy Extractor'
9191
dependencies {
9292
compile project(':extractor')
@@ -107,6 +107,7 @@ project('extractor-ivy') {
107107
project('extractor-gradle') {
108108
apply plugin: 'groovy'
109109

110+
version = new Version(project, '1.0.6', false)
110111
description = 'JFrog Build-Info Gradle Extractor'
111112

112113
dependencies {
@@ -132,6 +133,7 @@ project('extractor-gradle') {
132133
}
133134

134135
project('extractor-maven3') {
136+
version = new Version(project, '1.0.4', false)
135137
description = 'JFrog Build-Info Maven 3 Extractor'
136138

137139
dependencies {
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,77 @@
11
package org.jfrog.build
22

3-
import java.text.SimpleDateFormat
43
import org.gradle.api.GradleException
54
import org.gradle.api.Project
5+
import java.text.SimpleDateFormat
66

77
class Version {
8-
String versionNumber
9-
Date buildTime
10-
Boolean release = null
8+
String versionNumber
9+
Date buildTime
10+
Boolean release = null
1111

12-
def Version(Project project) {
13-
this.versionNumber = project.nextVersion
14-
this.release = Boolean.parseBoolean(project.isRelease)
15-
File timestampFile = new File(project.buildDir, 'timestamp.txt')
16-
if (timestampFile.isFile()) {
17-
boolean uptodate = true
18-
def modified = timestampFile.lastModified()
19-
project.fileTree('src/main').visit {fte ->
20-
if (fte.file.isFile() && fte.lastModified > modified) {
21-
uptodate = false
22-
fte.stopVisiting()
23-
}
24-
}
25-
if (!uptodate) {
26-
timestampFile.setLastModified(new Date().time)
27-
}
28-
} else {
29-
timestampFile.parentFile.mkdirs()
30-
timestampFile.createNewFile()
12+
def Version(Project project, String versionNumber, boolean isRelease) {
13+
this(project, versionNumber, isRelease, null)
3114
}
32-
buildTime = new Date(timestampFile.lastModified())
33-
if (!release)
34-
this.versionNumber += "-" + getTimestamp()
35-
/*
36-
project.gradle.taskGraph.whenReady {graph ->
37-
if (graph.hasTask(':releaseVersion')) {
38-
release = true
39-
} else {
40-
this.versionNumber += "-" + getTimestamp()
41-
release = false
15+
16+
def Version(Project project, String versionNumber, boolean isRelease, List<String> subProjects) {
17+
this.versionNumber = versionNumber
18+
this.release = isRelease
19+
File timestampFile = new File(project.buildDir, 'timestamp.txt')
20+
if (timestampFile.isFile()) {
21+
boolean uptodate = true
22+
def modified = timestampFile.lastModified()
23+
if (subProjects != null) {
24+
// Check timestamp by list of subprojects
25+
subProjects.each { spName ->
26+
project.project(spName).fileTree('src/main').visit {fte ->
27+
if (fte.file.isFile() && fte.lastModified > modified) {
28+
uptodate = false
29+
fte.stopVisiting()
30+
}
31+
}
32+
}
33+
} else {
34+
project.fileTree('src/main').visit {fte ->
35+
if (fte.file.isFile() && fte.lastModified > modified) {
36+
uptodate = false
37+
fte.stopVisiting()
38+
}
4239
}
4340
}
44-
*/
45-
}
41+
if (!uptodate) {
42+
timestampFile.setLastModified(new Date().time)
43+
}
44+
} else {
45+
timestampFile.parentFile.mkdirs()
46+
timestampFile.createNewFile()
47+
}
48+
buildTime = new Date(timestampFile.lastModified())
49+
if (!release)
50+
this.versionNumber += "-" + getTimestamp()
51+
/*
52+
project.gradle.taskGraph.whenReady {graph ->
53+
if (graph.hasTask(':releaseVersion')) {
54+
release = true
55+
} else {
56+
this.versionNumber += "-" + getTimestamp()
57+
release = false
58+
}
59+
}
60+
*/
61+
}
4662

47-
String toString() {
48-
versionNumber
49-
}
63+
String toString() {
64+
versionNumber
65+
}
5066

51-
String getTimestamp() {
52-
new SimpleDateFormat('yyyyMMddHHmmssZ').format(buildTime)
53-
}
67+
String getTimestamp() {
68+
new SimpleDateFormat('yyyyMMddHHmmssZ').format(buildTime)
69+
}
5470

55-
boolean isRelease() {
56-
if (release == null) {
57-
throw new GradleException("Can't determine whether this is a release build before the task graph is populated")
71+
boolean isRelease() {
72+
if (release == null) {
73+
throw new GradleException("Can't determine whether this is a release build before the task graph is populated")
74+
}
75+
return release
5876
}
59-
return release
60-
}
6177
}

0 commit comments

Comments
 (0)