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
a2803f41
Commit
a2803f41
authored
Nov 28, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.5.x'
parents
4f7fffb1
5d876125
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
142 additions
and
0 deletions
+142
-0
ValidationAutoConfiguration.java
...autoconfigure/validation/ValidationAutoConfiguration.java
+29
-0
ValidationAutoConfigurationWithHibernateValidatorMissingElImplTests.java
...onfigurationWithHibernateValidatorMissingElImplTests.java
+57
-0
ValidationAutoConfigurationWithoutValidatorTests.java
...ion/ValidationAutoConfigurationWithoutValidatorTests.java
+56
-0
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.java
View file @
a2803f41
...
@@ -16,13 +16,22 @@
...
@@ -16,13 +16,22 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
validation
;
package
org
.
springframework
.
boot
.
autoconfigure
.
validation
;
import
javax.validation.Validation
;
import
javax.validation.Validator
;
import
javax.validation.Validator
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionMessage
;
import
org.springframework.boot.autoconfigure.condition.ConditionOutcome
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnResource
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnResource
;
import
org.springframework.boot.autoconfigure.condition.SpringBootCondition
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ConditionContext
;
import
org.springframework.context.annotation.Conditional
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.core.type.AnnotatedTypeMetadata
;
import
org.springframework.validation.beanvalidation.MethodValidationPostProcessor
;
import
org.springframework.validation.beanvalidation.MethodValidationPostProcessor
;
/**
/**
...
@@ -37,9 +46,29 @@ public class ValidationAutoConfiguration {
...
@@ -37,9 +46,29 @@ public class ValidationAutoConfiguration {
@Bean
@Bean
@ConditionalOnResource
(
resources
=
"META-INF/services/javax.validation.spi.ValidationProvider"
)
@ConditionalOnResource
(
resources
=
"META-INF/services/javax.validation.spi.ValidationProvider"
)
@Conditional
(
OnValidatorAvailableCondition
.
class
)
@ConditionalOnMissingBean
@ConditionalOnMissingBean
public
MethodValidationPostProcessor
methodValidationPostProcessor
()
{
public
MethodValidationPostProcessor
methodValidationPostProcessor
()
{
return
new
MethodValidationPostProcessor
();
return
new
MethodValidationPostProcessor
();
}
}
@Order
(
Ordered
.
LOWEST_PRECEDENCE
)
static
class
OnValidatorAvailableCondition
extends
SpringBootCondition
{
@Override
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
AnnotatedTypeMetadata
metadata
)
{
ConditionMessage
.
Builder
message
=
ConditionMessage
.
forCondition
(
getClass
().
getName
());
try
{
Validation
.
buildDefaultValidatorFactory
().
getValidator
();
return
ConditionOutcome
.
match
(
message
.
available
(
"JSR-303 provider"
));
}
catch
(
Exception
ex
)
{
return
ConditionOutcome
.
noMatch
(
message
.
notAvailable
(
"JSR-303 provider"
));
}
}
}
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/validation/ValidationAutoConfigurationWithHibernateValidatorMissingElImplTests.java
0 → 100644
View file @
a2803f41
/*
* Copyright 2012-2016 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
*
* http://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
.
autoconfigure
.
validation
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.junit.runner.classpath.ClassPathExclusions
;
import
org.springframework.boot.junit.runner.classpath.ModifiedClassPathRunner
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.validation.beanvalidation.MethodValidationPostProcessor
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Test for {{@link ValidationAutoConfiguration} when Hibernate validator is present
* but no EL implementation is available.
*
* @author Stephane Nicoll
*/
@RunWith
(
ModifiedClassPathRunner
.
class
)
@ClassPathExclusions
(
"tomcat-embed-el-*.jar"
)
public
class
ValidationAutoConfigurationWithHibernateValidatorMissingElImplTests
{
private
AnnotationConfigApplicationContext
context
;
@After
public
void
close
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
}
@Test
public
void
validationIsDisabled
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
(
ValidationAutoConfiguration
.
class
);
assertThat
(
this
.
context
.
getBeansOfType
(
MethodValidationPostProcessor
.
class
))
.
isEmpty
();
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/validation/ValidationAutoConfigurationWithoutValidatorTests.java
0 → 100644
View file @
a2803f41
/*
* Copyright 2012-2016 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
*
* http://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
.
autoconfigure
.
validation
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.junit.runner.classpath.ClassPathExclusions
;
import
org.springframework.boot.junit.runner.classpath.ModifiedClassPathRunner
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.validation.beanvalidation.MethodValidationPostProcessor
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Test for {{@link ValidationAutoConfiguration} when no JSR-303 provider is available.
*
* @author Stephane Nicoll
*/
@RunWith
(
ModifiedClassPathRunner
.
class
)
@ClassPathExclusions
(
"hibernate-validator-*.jar"
)
public
class
ValidationAutoConfigurationWithoutValidatorTests
{
private
AnnotationConfigApplicationContext
context
;
@After
public
void
close
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
}
@Test
public
void
validationIsDisabled
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
(
ValidationAutoConfiguration
.
class
);
assertThat
(
this
.
context
.
getBeansOfType
(
MethodValidationPostProcessor
.
class
))
.
isEmpty
();
}
}
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