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
93f6168f
Commit
93f6168f
authored
Sep 28, 2017
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
52babaa2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
47 deletions
+62
-47
OnJavaCondition.java
...amework/boot/autoconfigure/condition/OnJavaCondition.java
+5
-5
ConditionalOnJavaTests.java
.../boot/autoconfigure/condition/ConditionalOnJavaTests.java
+1
-34
Assume.java
...t/src/main/java/org/springframework/boot/test/Assume.java
+4
-4
JavaVersion.java
...ain/java/org/springframework/boot/system/JavaVersion.java
+18
-0
JavaVersionTests.java
...ava/org/springframework/boot/system/JavaVersionTests.java
+34
-4
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/OnJavaCondition.java
View file @
93f6168f
...
@@ -68,13 +68,13 @@ class OnJavaCondition extends SpringBootCondition {
...
@@ -68,13 +68,13 @@ class OnJavaCondition extends SpringBootCondition {
* @param version the bounds of the range
* @param version the bounds of the range
* @return if this version is within the specified range
* @return if this version is within the specified range
*/
*/
private
boolean
isWithin
(
JavaVersion
runningVersion
,
Range
range
,
JavaVersion
version
)
{
private
boolean
isWithin
(
JavaVersion
runningVersion
,
Range
range
,
int
i
=
runningVersion
.
compareTo
(
version
);
JavaVersion
version
)
{
if
(
range
==
Range
.
EQUAL_OR_NEWER
)
{
if
(
range
==
Range
.
EQUAL_OR_NEWER
)
{
return
i
>=
0
;
return
runningVersion
.
isEqualOrNewerThan
(
version
)
;
}
}
else
if
(
range
==
Range
.
OLDER_THAN
)
{
if
(
range
==
Range
.
OLDER_THAN
)
{
return
i
<
0
;
return
runningVersion
.
isOlderThan
(
version
)
;
}
}
throw
new
IllegalStateException
(
"Unknown range "
+
range
);
throw
new
IllegalStateException
(
"Unknown range "
+
range
);
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/condition/ConditionalOnJavaTests.java
View file @
93f6168f
...
@@ -17,11 +17,7 @@
...
@@ -17,11 +17,7 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
condition
;
package
org
.
springframework
.
boot
.
autoconfigure
.
condition
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
java.net.URL
;
import
java.net.URLClassLoader
;
import
java.nio.file.Files
;
import
java.nio.file.Files
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.ServiceLoader
;
import
java.util.ServiceLoader
;
import
java.util.function.Function
;
import
java.util.function.Function
;
...
@@ -110,8 +106,7 @@ public class ConditionalOnJavaTests {
...
@@ -110,8 +106,7 @@ public class ConditionalOnJavaTests {
private
String
getJavaVersion
(
Class
<?>...
hiddenClasses
)
throws
Exception
{
private
String
getJavaVersion
(
Class
<?>...
hiddenClasses
)
throws
Exception
{
HideClassesClassLoader
classLoader
=
new
HideClassesClassLoader
(
hiddenClasses
);
HideClassesClassLoader
classLoader
=
new
HideClassesClassLoader
(
hiddenClasses
);
Class
<?>
javaVersionClass
=
classLoader
Class
<?>
javaVersionClass
=
classLoader
.
loadClass
(
JavaVersion
.
class
.
getName
());
.
loadClass
(
JavaVersion
.
class
.
getName
());
Method
getJavaVersionMethod
=
ReflectionUtils
.
findMethod
(
javaVersionClass
,
Method
getJavaVersionMethod
=
ReflectionUtils
.
findMethod
(
javaVersionClass
,
"getJavaVersion"
);
"getJavaVersion"
);
Object
javaVersion
=
ReflectionUtils
.
invokeMethod
(
getJavaVersionMethod
,
null
);
Object
javaVersion
=
ReflectionUtils
.
invokeMethod
(
getJavaVersionMethod
,
null
);
...
@@ -126,34 +121,6 @@ public class ConditionalOnJavaTests {
...
@@ -126,34 +121,6 @@ public class ConditionalOnJavaTests {
assertThat
(
outcome
.
isMatch
()).
as
(
outcome
.
getMessage
()).
isEqualTo
(
expected
);
assertThat
(
outcome
.
isMatch
()).
as
(
outcome
.
getMessage
()).
isEqualTo
(
expected
);
}
}
private
final
class
ClassHidingClassLoader
extends
URLClassLoader
{
private
final
List
<
Class
<?>>
hiddenClasses
;
private
ClassHidingClassLoader
(
URL
[]
urls
,
Class
<?>...
hiddenClasses
)
{
super
(
urls
,
null
);
this
.
hiddenClasses
=
Arrays
.
asList
(
hiddenClasses
);
}
@Override
public
Class
<?>
loadClass
(
String
name
)
throws
ClassNotFoundException
{
if
(
isHidden
(
name
))
{
throw
new
ClassNotFoundException
();
}
return
super
.
loadClass
(
name
);
}
private
boolean
isHidden
(
String
name
)
{
for
(
Class
<?>
hiddenClass
:
this
.
hiddenClasses
)
{
if
(
hiddenClass
.
getName
().
equals
(
name
))
{
return
true
;
}
}
return
false
;
}
}
@Configuration
@Configuration
@ConditionalOnJava
(
JavaVersion
.
NINE
)
@ConditionalOnJava
(
JavaVersion
.
NINE
)
static
class
Java9Required
{
static
class
Java9Required
{
...
...
spring-boot-test/src/main/java/org/springframework/boot/test/Assume.java
View file @
93f6168f
...
@@ -36,10 +36,10 @@ public abstract class Assume {
...
@@ -36,10 +36,10 @@ public abstract class Assume {
* @throws AssumptionViolatedException if the assumption fails
* @throws AssumptionViolatedException if the assumption fails
*/
*/
public
static
void
javaVersion
(
JavaVersion
version
)
{
public
static
void
javaVersion
(
JavaVersion
version
)
{
JavaVersion
current
Version
=
JavaVersion
.
getJavaVersion
();
JavaVersion
current
=
JavaVersion
.
getJavaVersion
();
boolean
outcome
=
currentVersion
.
compareTo
(
JavaVersion
.
NINE
)
<
0
;
org
.
junit
.
Assume
.
assumeTrue
(
org
.
junit
.
Assume
.
assumeTrue
(
String
.
format
(
String
.
format
(
"This test should run on %s (got %s)"
,
version
,
current
),
"This test should run on %s (got %s)"
,
version
,
currentVersion
),
outcome
);
current
.
isOlderThan
(
version
)
);
}
}
}
}
spring-boot/src/main/java/org/springframework/boot/system/JavaVersion.java
View file @
93f6168f
...
@@ -70,4 +70,22 @@ public enum JavaVersion {
...
@@ -70,4 +70,22 @@ public enum JavaVersion {
return
EIGHT
;
return
EIGHT
;
}
}
/**
* Return if this version is equal to or newer than a given version.
* @param version the version to compare
* @return {@code true} if this version is equal to or newer than {@code version}
*/
public
boolean
isEqualOrNewerThan
(
JavaVersion
version
)
{
return
compareTo
(
version
)
>=
0
;
}
/**
* Return if this version is older than a given version.
* @param version the version to compare
* @return {@code true} if this version is older than {@code version}
*/
public
boolean
isOlderThan
(
JavaVersion
version
)
{
return
compareTo
(
version
)
<
0
;
}
}
}
spring-boot/src/test/java/org/springframework/boot/system/JavaVersionTests.java
View file @
93f6168f
...
@@ -28,23 +28,53 @@ import static org.assertj.core.api.Assertions.assertThat;
...
@@ -28,23 +28,53 @@ import static org.assertj.core.api.Assertions.assertThat;
public
class
JavaVersionTests
{
public
class
JavaVersionTests
{
@Test
@Test
public
void
currentVersionIs
Available
()
{
public
void
getJavaVersionShouldBe
Available
()
{
assertThat
(
JavaVersion
.
getJavaVersion
()).
isNotNull
();
assertThat
(
JavaVersion
.
getJavaVersion
()).
isNotNull
();
}
}
@Test
@Test
public
void
java8IsOlderThanJava9
()
{
public
void
compareToWhenComparingSmallerToGreaterShouldBeLessThanZero
()
{
assertThat
(
JavaVersion
.
EIGHT
.
compareTo
(
JavaVersion
.
NINE
)).
isLessThan
(
0
);
assertThat
(
JavaVersion
.
EIGHT
.
compareTo
(
JavaVersion
.
NINE
)).
isLessThan
(
0
);
}
}
@Test
@Test
public
void
java9IsNewerThanJava8
()
{
public
void
compareToWhenComparingGreaterToSmallerShouldBeGreaterThanZero
()
{
assertThat
(
JavaVersion
.
NINE
.
compareTo
(
JavaVersion
.
EIGHT
)).
isGreaterThan
(
0
);
assertThat
(
JavaVersion
.
NINE
.
compareTo
(
JavaVersion
.
EIGHT
)).
isGreaterThan
(
0
);
}
}
@Test
@Test
public
void
compar
isonOfSameVersion
()
{
public
void
compar
eToWhenComparingSameShouldBeZero
()
{
assertThat
(
JavaVersion
.
EIGHT
.
compareTo
(
JavaVersion
.
EIGHT
)).
isEqualTo
(
0
);
assertThat
(
JavaVersion
.
EIGHT
.
compareTo
(
JavaVersion
.
EIGHT
)).
isEqualTo
(
0
);
}
}
@Test
public
void
isEqualOrNewerThanWhenComparingSameShouldBeTrue
()
throws
Exception
{
assertThat
(
JavaVersion
.
EIGHT
.
isEqualOrNewerThan
(
JavaVersion
.
EIGHT
)).
isTrue
();
}
@Test
public
void
isEqualOrNewerThanWhenSmallerToGreaterShouldBeFalse
()
throws
Exception
{
assertThat
(
JavaVersion
.
EIGHT
.
isEqualOrNewerThan
(
JavaVersion
.
NINE
)).
isFalse
();
}
@Test
public
void
isEqualOrNewerThanWhenGreaterToSmallerShouldBeTrue
()
throws
Exception
{
assertThat
(
JavaVersion
.
NINE
.
isEqualOrNewerThan
(
JavaVersion
.
EIGHT
)).
isTrue
();
}
@Test
public
void
isOlderThanThanWhenComparingSameShouldBeFalse
()
throws
Exception
{
assertThat
(
JavaVersion
.
EIGHT
.
isOlderThan
(
JavaVersion
.
EIGHT
)).
isFalse
();
}
@Test
public
void
isOlderThanWhenSmallerToGreaterShouldBeTrue
()
throws
Exception
{
assertThat
(
JavaVersion
.
EIGHT
.
isOlderThan
(
JavaVersion
.
NINE
)).
isTrue
();
}
@Test
public
void
isOlderThanWhenGreaterToSmallerShouldBeFalse
()
throws
Exception
{
assertThat
(
JavaVersion
.
NINE
.
isOlderThan
(
JavaVersion
.
EIGHT
)).
isFalse
();
}
}
}
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