Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
1591da6c
Commit
1591da6c
authored
Sep 24, 2020
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Bomr to treat CalVer versions as newer than release train versions
Closes gh-23451
parent
ab373459
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
247 additions
and
6 deletions
+247
-6
ArtifactVersionDependencyVersion.java
...ld/bom/bomr/version/ArtifactVersionDependencyVersion.java
+1
-1
CalendarVersionDependencyVersion.java
...ld/bom/bomr/version/CalendarVersionDependencyVersion.java
+63
-0
DependencyVersion.java
...mework/boot/build/bom/bomr/version/DependencyVersion.java
+4
-4
ReleaseTrainDependencyVersion.java
...build/bom/bomr/version/ReleaseTrainDependencyVersion.java
+6
-0
CalendarVersionDependencyVersionTests.java
...m/bomr/version/CalendarVersionDependencyVersionTests.java
+138
-0
DependencyVersionTests.java
...k/boot/build/bom/bomr/version/DependencyVersionTests.java
+16
-1
ReleaseTrainDependencyVersionTests.java
.../bom/bomr/version/ReleaseTrainDependencyVersionTests.java
+19
-0
No files found.
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ArtifactVersionDependencyVersion.java
View file @
1591da6c
...
...
@@ -80,7 +80,7 @@ class ArtifactVersionDependencyVersion extends AbstractDependencyVersion {
return
this
.
artifactVersion
.
toString
();
}
pr
ivate
Optional
<
ArtifactVersionDependencyVersion
>
extractArtifactVersionDependencyVersion
(
pr
otected
Optional
<
ArtifactVersionDependencyVersion
>
extractArtifactVersionDependencyVersion
(
DependencyVersion
other
)
{
ArtifactVersionDependencyVersion
artifactVersion
=
null
;
if
(
other
instanceof
ArtifactVersionDependencyVersion
)
{
...
...
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/CalendarVersionDependencyVersion.java
0 → 100644
View file @
1591da6c
/*
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
build
.
bom
.
bomr
.
version
;
import
java.util.regex.Pattern
;
import
org.apache.maven.artifact.versioning.ArtifactVersion
;
import
org.apache.maven.artifact.versioning.ComparableVersion
;
import
org.apache.maven.artifact.versioning.DefaultArtifactVersion
;
/**
* A specialization of {@link ArtifactVersionDependencyVersion} for calendar versions.
* Calendar versions are always considered to be newer than
* {@link ReleaseTrainDependencyVersion release train versions}.
*
* @author Andy Wilkinson
*/
class
CalendarVersionDependencyVersion
extends
ArtifactVersionDependencyVersion
{
private
static
final
Pattern
CALENDAR_VERSION_PATTERN
=
Pattern
.
compile
(
"\\d{4}\\.\\d+\\.\\d+(-.+)?"
);
protected
CalendarVersionDependencyVersion
(
ArtifactVersion
artifactVersion
)
{
super
(
artifactVersion
);
}
protected
CalendarVersionDependencyVersion
(
ArtifactVersion
artifactVersion
,
ComparableVersion
comparableVersion
)
{
super
(
artifactVersion
,
comparableVersion
);
}
@Override
public
boolean
isNewerThan
(
DependencyVersion
other
)
{
if
(
other
instanceof
ReleaseTrainDependencyVersion
)
{
return
true
;
}
return
super
.
isNewerThan
(
other
);
}
static
CalendarVersionDependencyVersion
parse
(
String
version
)
{
if
(!
CALENDAR_VERSION_PATTERN
.
matcher
(
version
).
matches
())
{
return
null
;
}
ArtifactVersion
artifactVersion
=
new
DefaultArtifactVersion
(
version
);
if
(
artifactVersion
.
getQualifier
()
!=
null
&&
artifactVersion
.
getQualifier
().
equals
(
version
))
{
return
null
;
}
return
new
CalendarVersionDependencyVersion
(
artifactVersion
);
}
}
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/DependencyVersion.java
View file @
1591da6c
...
...
@@ -53,10 +53,10 @@ public interface DependencyVersion extends Comparable<DependencyVersion> {
boolean
isSameMinorAndNewerThan
(
DependencyVersion
other
);
static
DependencyVersion
parse
(
String
version
)
{
List
<
Function
<
String
,
DependencyVersion
>>
parsers
=
Arrays
.
asList
(
Artifact
VersionDependencyVersion:
:
parse
,
ReleaseTrainDependencyVersion:
:
parse
,
NumericQualifier
DependencyVersion:
:
parse
,
CombinedPatchAndQualifierDependencyVersion:
:
parse
,
LeadingZeroes
DependencyVersion:
:
parse
,
UnstructuredDependencyVersion:
:
parse
);
List
<
Function
<
String
,
DependencyVersion
>>
parsers
=
Arrays
.
asList
(
Calendar
VersionDependencyVersion:
:
parse
,
ArtifactVersionDependencyVersion:
:
parse
,
ReleaseTrain
DependencyVersion:
:
parse
,
NumericQualifierDependencyVersion:
:
parse
,
CombinedPatchAndQualifier
DependencyVersion:
:
parse
,
LeadingZeroesDependencyVersion:
:
parse
,
UnstructuredDependencyVersion:
:
parse
);
for
(
Function
<
String
,
DependencyVersion
>
parser
:
parsers
)
{
DependencyVersion
result
=
parser
.
apply
(
version
);
if
(
result
!=
null
)
{
...
...
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersion.java
View file @
1591da6c
...
...
@@ -64,6 +64,9 @@ final class ReleaseTrainDependencyVersion implements DependencyVersion {
@Override
public
boolean
isNewerThan
(
DependencyVersion
other
)
{
if
(
other
instanceof
CalendarVersionDependencyVersion
)
{
return
false
;
}
if
(!(
other
instanceof
ReleaseTrainDependencyVersion
))
{
return
true
;
}
...
...
@@ -78,6 +81,9 @@ final class ReleaseTrainDependencyVersion implements DependencyVersion {
@Override
public
boolean
isSameMinorAndNewerThan
(
DependencyVersion
other
)
{
if
(
other
instanceof
CalendarVersionDependencyVersion
)
{
return
false
;
}
if
(!(
other
instanceof
ReleaseTrainDependencyVersion
))
{
return
true
;
}
...
...
buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/CalendarVersionDependencyVersionTests.java
0 → 100644
View file @
1591da6c
/*
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
build
.
bom
.
bomr
.
version
;
import
org.junit.jupiter.api.Test
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link CalendarVersionDependencyVersion}.
*
* @author Andy Wilkinson
*/
public
class
CalendarVersionDependencyVersionTests
{
@Test
void
parseWhenVersionIsNotACalendarVersionShouldReturnNull
()
{
assertThat
(
version
(
"1.2.3"
)).
isNull
();
}
@Test
void
parseWhenVersionIsACalendarVersionShouldReturnAVersion
()
{
assertThat
(
version
(
"2020.0.0"
)).
isNotNull
();
}
@Test
void
isNewerThanWhenInputIsEarlierYearShouldReturnTrue
()
{
assertThat
(
version
(
"2020.1.2"
).
isNewerThan
(
version
(
"2019.9.0"
))).
isTrue
();
}
@Test
void
isNewerThanWhenInputIsOlderMinorShouldReturnTrue
()
{
assertThat
(
version
(
"2020.1.2"
).
isNewerThan
(
version
(
"2020.0.2"
))).
isTrue
();
}
@Test
void
isNewerThanWhenInputIsOlderMicroShouldReturnTrue
()
{
assertThat
(
version
(
"2020.1.2"
).
isNewerThan
(
version
(
"2020.1.1"
))).
isTrue
();
}
@Test
void
isNewerThanWhenInputIsLaterYearShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isNewerThan
(
version
(
"2021.2.1"
))).
isFalse
();
}
@Test
void
isSameMajorAndNewerThanWhenMinorIsOlderShouldReturnTrue
()
{
assertThat
(
version
(
"2020.10.2"
).
isSameMajorAndNewerThan
(
version
(
"2020.9.0"
))).
isTrue
();
}
@Test
void
isSameMajorAndNewerThanWhenMajorIsOlderShouldReturnFalse
()
{
assertThat
(
version
(
"2020.0.2"
).
isSameMajorAndNewerThan
(
version
(
"2019.9.0"
))).
isFalse
();
}
@Test
void
isSameMajorAndNewerThanWhenMicroIsNewerShouldReturnTrue
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMajorAndNewerThan
(
version
(
"2020.1.1"
))).
isTrue
();
}
@Test
void
isSameMajorAndNewerThanWhenMinorIsNewerShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMajorAndNewerThan
(
version
(
"2020.2.1"
))).
isFalse
();
}
@Test
void
isSameMajorAndNewerThanWhenMajorIsNewerShouldReturnFalse
()
{
assertThat
(
version
(
"2019.1.2"
).
isSameMajorAndNewerThan
(
version
(
"2020.0.1"
))).
isFalse
();
}
@Test
void
isSameMinorAndNewerThanWhenMicroIsOlderShouldReturnTrue
()
{
assertThat
(
version
(
"2020.10.2"
).
isSameMinorAndNewerThan
(
version
(
"2020.10.1"
))).
isTrue
();
}
@Test
void
isSameMinorAndNewerThanWhenMinorIsOlderShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMinorAndNewerThan
(
version
(
"2020.0.1"
))).
isFalse
();
}
@Test
void
isSameMinorAndNewerThanWhenVersionsAreTheSameShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMinorAndNewerThan
(
version
(
"2020.1.2"
))).
isFalse
();
}
@Test
void
isSameMinorAndNewerThanWhenMicroIsNewerShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMinorAndNewerThan
(
version
(
"2020.1.3"
))).
isFalse
();
}
@Test
void
isSameMinorAndNewerThanWhenMinorIsNewerShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMinorAndNewerThan
(
version
(
"2020.0.1"
))).
isFalse
();
}
@Test
void
isSameMinorAndNewerThanWhenMajorIsNewerShouldReturnFalse
()
{
assertThat
(
version
(
"2020.1.2"
).
isSameMinorAndNewerThan
(
version
(
"2019.0.1"
))).
isFalse
();
}
@Test
void
calendarVersionIsNewerThanReleaseTrainVersion
()
{
assertThat
(
version
(
"2020.0.0"
).
isNewerThan
(
releaseTrainVersion
(
"Aluminium-RELEASE"
))).
isTrue
();
}
@Test
void
calendarVersionIsNotSameMajorAsReleaseTrainVersion
()
{
assertThat
(
version
(
"2020.0.0"
).
isSameMajorAndNewerThan
(
releaseTrainVersion
(
"Aluminium-RELEASE"
))).
isFalse
();
}
@Test
void
calendarVersionIsNotSameMinorAsReleaseTrainVersion
()
{
assertThat
(
version
(
"2020.0.0"
).
isSameMinorAndNewerThan
(
releaseTrainVersion
(
"Aluminium-RELEASE"
))).
isFalse
();
}
private
ReleaseTrainDependencyVersion
releaseTrainVersion
(
String
version
)
{
return
ReleaseTrainDependencyVersion
.
parse
(
version
);
}
private
CalendarVersionDependencyVersion
version
(
String
version
)
{
return
CalendarVersionDependencyVersion
.
parse
(
version
);
}
}
buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/DependencyVersionTests.java
View file @
1591da6c
...
...
@@ -29,7 +29,7 @@ public class DependencyVersionTests {
@Test
void
parseWhenValidMavenVersionShouldReturnArtifactVersionDependencyVersion
()
{
assertThat
(
DependencyVersion
.
parse
(
"1.2.3.Final"
)).
isInstanceOf
(
ArtifactVersionDependencyVersion
.
class
);
assertThat
(
DependencyVersion
.
parse
(
"1.2.3.Final"
)).
is
Exactly
InstanceOf
(
ArtifactVersionDependencyVersion
.
class
);
}
@Test
...
...
@@ -52,4 +52,19 @@ public class DependencyVersionTests {
assertThat
(
DependencyVersion
.
parse
(
"4.0.0M4"
)).
isInstanceOf
(
CombinedPatchAndQualifierDependencyVersion
.
class
);
}
@Test
void
parseWhenCalendarVersionShouldReturnArticatVersionDependencyVersion
()
{
assertThat
(
DependencyVersion
.
parse
(
"2020.0.0"
)).
isInstanceOf
(
CalendarVersionDependencyVersion
.
class
);
}
@Test
void
parseWhenCalendarVersionWithModifierShouldReturnArticatVersionDependencyVersion
()
{
assertThat
(
DependencyVersion
.
parse
(
"2020.0.0-M1"
)).
isInstanceOf
(
CalendarVersionDependencyVersion
.
class
);
}
@Test
void
calendarVersionShouldBeNewerThanAReleaseCalendarVersion
()
{
}
}
buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersionTests.java
View file @
1591da6c
...
...
@@ -92,8 +92,27 @@ public class ReleaseTrainDependencyVersionTests {
assertThat
(
version
(
"Kay-SR6"
).
isSameMinorAndNewerThan
(
version
(
"Kay-SR7"
))).
isFalse
();
}
@Test
void
releaseTrainVersionIsNotNewerThanCalendarVersion
()
{
assertThat
(
version
(
"Kay-SR6"
).
isNewerThan
(
calendarVersion
(
"2020.0.0"
))).
isFalse
();
}
@Test
void
releaseTrainVersionIsNotSameMajorAsCalendarTrainVersion
()
{
assertThat
(
version
(
"Kay-SR6"
).
isSameMajorAndNewerThan
(
calendarVersion
(
"2020.0.0"
))).
isFalse
();
}
@Test
void
releaseTrainVersionIsNotSameMinorAsCalendarVersion
()
{
assertThat
(
version
(
"Kay-SR6"
).
isSameMinorAndNewerThan
(
calendarVersion
(
"2020.0.0"
))).
isFalse
();
}
private
static
ReleaseTrainDependencyVersion
version
(
String
input
)
{
return
ReleaseTrainDependencyVersion
.
parse
(
input
);
}
private
CalendarVersionDependencyVersion
calendarVersion
(
String
version
)
{
return
CalendarVersionDependencyVersion
.
parse
(
version
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment