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
8ccd4db5
Commit
8ccd4db5
authored
Jan 03, 2017
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.4.x' into 1.5.x
parents
b4b83706
73201198
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
111 additions
and
35 deletions
+111
-35
ManagementContextConfigurationsImportSelector.java
...figure/ManagementContextConfigurationsImportSelector.java
+23
-6
ManagementContextConfigurationsImportSelectorTests.java
...e/ManagementContextConfigurationsImportSelectorTests.java
+68
-0
TestRestTemplate.java
...pringframework/boot/test/web/client/TestRestTemplate.java
+15
-22
TestRestTemplateTests.java
...framework/boot/test/web/client/TestRestTemplateTests.java
+5
-7
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/ManagementContextConfigurationsImportSelector.java
View file @
8ccd4db5
/*
* Copyright 2012-201
5
the original author or authors.
* Copyright 2012-201
7
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.
...
...
@@ -19,6 +19,7 @@ package org.springframework.boot.actuate.autoconfigure;
import
java.util.ArrayList
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.springframework.beans.factory.BeanClassLoaderAware
;
import
org.springframework.context.annotation.DeferredImportSelector
;
...
...
@@ -27,6 +28,7 @@ import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import
org.springframework.core.annotation.Order
;
import
org.springframework.core.io.support.SpringFactoriesLoader
;
import
org.springframework.core.type.AnnotationMetadata
;
import
org.springframework.util.ClassUtils
;
/**
* Selects configuration classes for the management context configuration. Entries are
...
...
@@ -47,11 +49,26 @@ class ManagementContextConfigurationsImportSelector
@Override
public
String
[]
selectImports
(
AnnotationMetadata
metadata
)
{
// Find all possible auto configuration classes, filtering duplicates
List
<
String
>
factories
=
new
ArrayList
<
String
>(
new
LinkedHashSet
<
String
>(
SpringFactoriesLoader
.
loadFactoryNames
(
ManagementContextConfiguration
.
class
,
this
.
classLoader
)));
AnnotationAwareOrderComparator
.
sort
(
factories
);
return
factories
.
toArray
(
new
String
[
0
]);
List
<
String
>
names
=
loadFactoryNames
();
Set
<
Class
<?>>
classes
=
new
LinkedHashSet
<
Class
<?>>();
for
(
String
factoryName
:
names
)
{
classes
.
add
(
ClassUtils
.
resolveClassName
(
factoryName
,
this
.
classLoader
));
}
return
getSortedClassNames
(
new
ArrayList
<
Class
<?>>(
classes
));
}
protected
List
<
String
>
loadFactoryNames
()
{
return
SpringFactoriesLoader
.
loadFactoryNames
(
ManagementContextConfiguration
.
class
,
this
.
classLoader
);
}
private
String
[]
getSortedClassNames
(
List
<
Class
<?>>
classes
)
{
AnnotationAwareOrderComparator
.
sort
(
classes
);
List
<
String
>
names
=
new
ArrayList
<
String
>();
for
(
Class
<?>
sourceClass
:
classes
)
{
names
.
add
(
sourceClass
.
getName
());
}
return
names
.
toArray
(
new
String
[
names
.
size
()]);
}
@Override
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/ManagementContextConfigurationsImportSelectorTests.java
0 → 100644
View file @
8ccd4db5
/*
* Copyright 2012-2017 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
.
actuate
.
autoconfigure
;
import
java.util.Arrays
;
import
java.util.List
;
import
org.junit.Test
;
import
org.springframework.core.annotation.Order
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link ManagementContextConfigurationsImportSelector}.
*
* @author Phillip Webb
*/
public
class
ManagementContextConfigurationsImportSelectorTests
{
@Test
public
void
selectImportsShouldOrderResult
()
throws
Exception
{
String
[]
imports
=
new
TestManagementContextConfigurationsImportSelector
()
.
selectImports
(
null
);
assertThat
(
imports
).
containsExactly
(
A
.
class
.
getName
(),
B
.
class
.
getName
(),
C
.
class
.
getName
());
}
private
static
class
TestManagementContextConfigurationsImportSelector
extends
ManagementContextConfigurationsImportSelector
{
@Override
protected
List
<
String
>
loadFactoryNames
()
{
return
Arrays
.
asList
(
C
.
class
.
getName
(),
A
.
class
.
getName
(),
B
.
class
.
getName
());
}
}
@Order
(
1
)
private
static
class
A
{
}
@Order
(
2
)
private
static
class
B
{
}
@Order
(
3
)
private
static
class
C
{
}
}
spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java
View file @
8ccd4db5
/*
* Copyright 2012-201
6
the original author or authors.
* Copyright 2012-201
7
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.
...
...
@@ -48,7 +48,6 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.http.client.ClientHttpRequestInterceptor
;
import
org.springframework.http.client.ClientHttpResponse
;
import
org.springframework.http.client.HttpComponentsClientHttpRequestFactory
;
import
org.springframework.http.client.InterceptingClientHttpRequestFactory
;
import
org.springframework.http.client.support.BasicAuthorizationInterceptor
;
import
org.springframework.util.Assert
;
import
org.springframework.util.ClassUtils
;
...
...
@@ -144,11 +143,19 @@ public class TestRestTemplate {
if
(
username
==
null
)
{
return
;
}
List
<
ClientHttpRequestInterceptor
>
interceptors
=
Collections
.<
ClientHttpRequestInterceptor
>
singletonList
(
new
BasicAuthorizationInterceptor
(
username
,
password
));
restTemplate
.
setRequestFactory
(
new
InterceptingClientHttpRequestFactory
(
restTemplate
.
getRequestFactory
(),
interceptors
));
List
<
ClientHttpRequestInterceptor
>
interceptors
=
restTemplate
.
getInterceptors
();
if
(
interceptors
==
null
)
{
interceptors
=
Collections
.
emptyList
();
}
interceptors
=
new
ArrayList
<
ClientHttpRequestInterceptor
>(
interceptors
);
Iterator
<
ClientHttpRequestInterceptor
>
iterator
=
interceptors
.
iterator
();
while
(
iterator
.
hasNext
())
{
if
(
iterator
.
next
()
instanceof
BasicAuthorizationInterceptor
)
{
iterator
.
remove
();
}
}
interceptors
.
add
(
new
BasicAuthorizationInterceptor
(
username
,
password
));
restTemplate
.
setInterceptors
(
interceptors
);
}
/**
...
...
@@ -985,8 +992,7 @@ public class TestRestTemplate {
public
TestRestTemplate
withBasicAuth
(
String
username
,
String
password
)
{
RestTemplate
restTemplate
=
new
RestTemplate
();
restTemplate
.
setMessageConverters
(
getRestTemplate
().
getMessageConverters
());
restTemplate
.
setInterceptors
(
removeBasicAuthInterceptorIfPresent
(
getRestTemplate
().
getInterceptors
()));
restTemplate
.
setInterceptors
(
getRestTemplate
().
getInterceptors
());
restTemplate
.
setRequestFactory
(
getRestTemplate
().
getRequestFactory
());
restTemplate
.
setUriTemplateHandler
(
getRestTemplate
().
getUriTemplateHandler
());
TestRestTemplate
testRestTemplate
=
new
TestRestTemplate
(
restTemplate
,
username
,
...
...
@@ -996,19 +1002,6 @@ public class TestRestTemplate {
return
testRestTemplate
;
}
private
List
<
ClientHttpRequestInterceptor
>
removeBasicAuthInterceptorIfPresent
(
List
<
ClientHttpRequestInterceptor
>
interceptors
)
{
List
<
ClientHttpRequestInterceptor
>
updatedInterceptors
=
new
ArrayList
<
ClientHttpRequestInterceptor
>(
interceptors
);
Iterator
<
ClientHttpRequestInterceptor
>
iterator
=
updatedInterceptors
.
iterator
();
while
(
iterator
.
hasNext
())
{
if
(
iterator
.
next
()
instanceof
BasicAuthorizationInterceptor
)
{
iterator
.
remove
();
}
}
return
interceptors
;
}
/**
* Options used to customize the Apache Http Client if it is used.
*/
...
...
spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java
View file @
8ccd4db5
/*
* Copyright 2012-201
6
the original author or authors.
* Copyright 2012-201
7
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.
...
...
@@ -160,16 +160,15 @@ public class TestRestTemplateTests {
.
isInstanceOf
(
CustomHttpComponentsClientHttpRequestFactory
.
class
);
assertThat
(
basicAuthTemplate
.
getRestTemplate
().
getUriTemplateHandler
())
.
isSameAs
(
originalTemplate
.
getRestTemplate
().
getUriTemplateHandler
());
assertThat
(
basicAuthTemplate
.
getRestTemplate
().
getInterceptors
())
.
containsExactlyElementsOf
(
originalTemplate
.
getRestTemplate
().
getInterceptors
());
assertThat
(
basicAuthTemplate
.
getRestTemplate
().
getInterceptors
()).
hasSize
(
1
);
assertBasicAuthorizationInterceptorCredentials
(
basicAuthTemplate
,
"user"
,
"password"
);
}
@Test
public
void
withBasicAuthReplacesBasicAuthInterceptorWhenAlreadyPresent
()
{
TestRestTemplate
original
=
new
TestRestTemplate
(
"foo"
,
"bar"
);
TestRestTemplate
original
=
new
TestRestTemplate
(
"foo"
,
"bar"
)
.
withBasicAuth
(
"replace"
,
"repalce"
);
TestRestTemplate
basicAuth
=
original
.
withBasicAuth
(
"user"
,
"password"
);
assertThat
(
basicAuth
.
getRestTemplate
().
getMessageConverters
())
.
containsExactlyElementsOf
(
...
...
@@ -181,8 +180,7 @@ public class TestRestTemplateTests {
.
isInstanceOf
(
CustomHttpComponentsClientHttpRequestFactory
.
class
);
assertThat
(
basicAuth
.
getRestTemplate
().
getUriTemplateHandler
())
.
isSameAs
(
original
.
getRestTemplate
().
getUriTemplateHandler
());
assertThat
(
basicAuth
.
getRestTemplate
().
getInterceptors
())
.
containsExactlyElementsOf
(
original
.
getRestTemplate
().
getInterceptors
());
assertThat
(
basicAuth
.
getRestTemplate
().
getInterceptors
()).
hasSize
(
1
);
assertBasicAuthorizationInterceptorCredentials
(
basicAuth
,
"user"
,
"password"
);
}
...
...
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