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
519f9c6c
Commit
519f9c6c
authored
Dec 28, 2016
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.5.x'
parents
ee9d86cb
8b69856f
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
268 additions
and
39 deletions
+268
-39
InMemoryMetricRepository.java
.../actuate/metrics/repository/InMemoryMetricRepository.java
+3
-3
InMemoryMultiMetricRepository.java
...ate/metrics/repository/InMemoryMultiMetricRepository.java
+15
-4
JolokiaAutoConfigurationTests.java
.../actuate/autoconfigure/JolokiaAutoConfigurationTests.java
+1
-1
PrefixMetricGroupExporterTests.java
...ctuate/metrics/export/PrefixMetricGroupExporterTests.java
+6
-8
InMemoryMetricRepositoryTests.java
...ate/metrics/repository/InMemoryMetricRepositoryTests.java
+2
-0
InMemoryMultiMetricRepositoryTests.java
...etrics/repository/InMemoryMultiMetricRepositoryTests.java
+3
-2
ClusterBuilderCustomizer.java
...oot/autoconfigure/cassandra/ClusterBuilderCustomizer.java
+4
-2
ClassLoaderFilesResourcePatternResolver.java
...ools/restart/ClassLoaderFilesResourcePatternResolver.java
+82
-4
Restarter.java
.../org/springframework/boot/devtools/restart/Restarter.java
+4
-2
LiveReloadServerTests.java
...ework/boot/devtools/livereload/LiveReloadServerTests.java
+0
-3
ClassLoaderFilesResourcePatternResolverTests.java
...restart/ClassLoaderFilesResourcePatternResolverTests.java
+120
-0
pom.xml
spring-boot-samples/spring-boot-sample-war/pom.xml
+7
-0
SpringBootContextLoader.java
...gframework/boot/test/context/SpringBootContextLoader.java
+11
-4
SpringBootTestCustomPortTests.java
...work/boot/test/context/SpringBootTestCustomPortTests.java
+2
-2
SpringBootTestWebEnvironmentRandomPortCustomPortTests.java
...pringBootTestWebEnvironmentRandomPortCustomPortTests.java
+3
-1
DeprecatedSpringBootPlugin.java
...mework/boot/gradle/plugin/DeprecatedSpringBootPlugin.java
+1
-1
TomcatEmbeddedServletContainerFactory.java
...mbedded/tomcat/TomcatEmbeddedServletContainerFactory.java
+1
-1
ApplicationStartedEvent.java
...framework/boot/context/event/ApplicationStartedEvent.java
+1
-1
LoggingApplicationListener.java
...ingframework/boot/logging/LoggingApplicationListener.java
+2
-0
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/repository/InMemoryMetricRepository.java
View file @
519f9c6c
...
...
@@ -44,16 +44,16 @@ public class InMemoryMetricRepository implements MetricRepository {
final
int
amount
=
delta
.
getValue
().
intValue
();
final
Date
timestamp
=
delta
.
getTimestamp
();
this
.
metrics
.
update
(
metricName
,
new
Callback
<
Metric
<?>>()
{
@Override
public
Metric
<?>
modify
(
Metric
<?>
current
)
{
if
(
current
!=
null
)
{
return
new
Metric
<
Long
>(
metricName
,
current
.
increment
(
amount
).
getValue
(),
timestamp
);
}
else
{
return
new
Metric
<
Long
>(
metricName
,
(
long
)
amount
,
timestamp
);
}
}
});
}
...
...
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/repository/InMemoryMultiMetricRepository.java
View file @
519f9c6c
...
...
@@ -22,6 +22,7 @@ import java.util.HashSet;
import
org.springframework.boot.actuate.metrics.Metric
;
import
org.springframework.boot.actuate.metrics.writer.Delta
;
import
org.springframework.util.Assert
;
/**
* {@link MultiMetricRepository} implementation backed by a
...
...
@@ -36,14 +37,24 @@ public class InMemoryMultiMetricRepository implements MultiMetricRepository {
private
final
Collection
<
String
>
groups
=
new
HashSet
<
String
>();
public
InMemoryMultiMetricRepository
(
InMemoryMetricRepository
repository
)
{
this
.
repository
=
repository
;
}
/**
* Create a new {@link InMemoryMetricRepository} backed by a new
* {@link InMemoryMetricRepository}.
*/
public
InMemoryMultiMetricRepository
()
{
this
(
new
InMemoryMetricRepository
());
}
/**
* Create a new {@link InMemoryMetricRepository} backed by the specified
* {@link InMemoryMetricRepository}.
* @param repository the backing repository
*/
public
InMemoryMultiMetricRepository
(
InMemoryMetricRepository
repository
)
{
Assert
.
notNull
(
repository
,
"Repository must not be null"
);
this
.
repository
=
repository
;
}
@Override
public
void
set
(
String
group
,
Collection
<
Metric
<?>>
values
)
{
String
prefix
=
group
;
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/JolokiaAutoConfigurationTests.java
View file @
519f9c6c
...
...
@@ -145,7 +145,7 @@ public class JolokiaAutoConfigurationTests {
Collection
<?
extends
MvcEndpoint
>
endpoints
)
{
EndpointHandlerMapping
mapping
=
new
EndpointHandlerMapping
(
endpoints
);
mapping
.
setSecurityInterceptor
(
new
MvcEndpointSecurityInterceptor
(
false
,
Collections
.
EMPTY_LIST
));
new
MvcEndpointSecurityInterceptor
(
false
,
Collections
.
emptyList
()
));
return
mapping
;
}
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/export/PrefixMetricGroupExporterTests.java
View file @
519f9c6c
...
...
@@ -54,8 +54,8 @@ public class PrefixMetricGroupExporterTests {
@Test
public
void
countersIncremented
()
{
this
.
writer
.
increment
(
"counter.foo"
,
new
Delta
<
Long
>(
"bar"
,
1L
));
this
.
reader
.
set
(
"counter"
,
Collections
.<
Metric
<?>>
singletonList
(
new
Metric
<
Number
>(
"counter.foo.bar"
,
1
)));
this
.
reader
.
set
(
"counter"
,
Collections
.<
Metric
<?>>
singletonList
(
new
Metric
<
Number
>(
"counter.foo.bar"
,
1
)));
this
.
exporter
.
setGroups
(
Collections
.
singleton
(
"counter.foo"
));
this
.
exporter
.
export
();
assertThat
(
this
.
writer
.
findAll
(
"counter.foo"
).
iterator
().
next
().
getValue
())
...
...
@@ -65,8 +65,7 @@ public class PrefixMetricGroupExporterTests {
@Test
public
void
unprefixedMetricsNotCopied
()
{
this
.
reader
.
set
(
"foo"
,
Arrays
.<
Metric
<?>>
asList
(
new
Metric
<
Number
>(
"foo.bar"
,
2.3
),
new
Metric
<
Number
>(
"foo.spam"
,
1.3
)));
new
Metric
<
Number
>(
"foo.bar"
,
2.3
),
new
Metric
<
Number
>(
"foo.spam"
,
1.3
)));
this
.
exporter
.
setGroups
(
Collections
.
singleton
(
"bar"
));
this
.
exporter
.
export
();
assertThat
(
Iterables
.
collection
(
this
.
writer
.
groups
())).
isEmpty
();
...
...
@@ -84,10 +83,9 @@ public class PrefixMetricGroupExporterTests {
@Test
public
void
onlyPrefixedMetricsCopied
()
{
this
.
reader
.
set
(
"foo"
,
Arrays
.<
Metric
<?>>
asList
(
new
Metric
<
Number
>(
"foo.bar"
,
2.3
),
new
Metric
<
Number
>(
"foo.spam"
,
1.3
)));
this
.
reader
.
set
(
"foobar"
,
Collections
.<
Metric
<?>>
singletonList
(
new
Metric
<
Number
>(
"foobar.spam"
,
1.3
)));
new
Metric
<
Number
>(
"foo.bar"
,
2.3
),
new
Metric
<
Number
>(
"foo.spam"
,
1.3
)));
this
.
reader
.
set
(
"foobar"
,
Collections
.<
Metric
<?>>
singletonList
(
new
Metric
<
Number
>(
"foobar.spam"
,
1.3
)));
this
.
exporter
.
setGroups
(
Collections
.
singleton
(
"foo"
));
this
.
exporter
.
export
();
assertThat
(
Iterables
.
collection
(
this
.
writer
.
groups
())).
hasSize
(
1
);
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/repository/InMemoryMetricRepositoryTests.java
View file @
519f9c6c
...
...
@@ -28,6 +28,8 @@ import static org.assertj.core.api.Assertions.offset;
/**
* Tests for {@link InMemoryMetricRepository}.
*
* @author Dave Syer
*/
public
class
InMemoryMetricRepositoryTests
{
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/repository/InMemoryMultiMetricRepositoryTests.java
View file @
519f9c6c
...
...
@@ -29,12 +29,13 @@ import org.springframework.boot.actuate.metrics.writer.Delta;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link InMemoryMultiMetricRepository}.
*
* @author Dave Syer
*/
public
class
InMemoryMultiMetricRepositoryTests
{
private
final
InMemoryMultiMetricRepository
repository
=
new
InMemoryMultiMetricRepository
();
private
final
InMemoryMultiMetricRepository
repository
=
new
InMemoryMultiMetricRepository
();
@Test
public
void
registeredPrefixCounted
()
{
...
...
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cassandra/ClusterBuilderCustomizer.java
View file @
519f9c6c
...
...
@@ -20,7 +20,9 @@ import com.datastax.driver.core.Cluster;
/**
* Callback interface that can be implemented by beans wishing to customize the
* {@link Cluster} via {@link Cluster.Builder} retaining its default auto-configuration.
* {@link com.datastax.driver.core.Cluster} via
* {@link com.datastax.driver.core.Cluster.Builder} retaining its default
* auto-configuration.
*
* @author Eddú Meléndez
* @since 1.5.0
...
...
@@ -28,7 +30,7 @@ import com.datastax.driver.core.Cluster;
public
interface
ClusterBuilderCustomizer
{
/**
* Customize the {@link Cluster.Builder}.
* Customize the {@link
com.datastax.driver.core.
Cluster.Builder}.
* @param clusterBuilder the builder to customize
*/
void
customize
(
Cluster
.
Builder
clusterBuilder
);
...
...
spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/ClassLoaderFilesResourcePatternResolver.java
View file @
519f9c6c
...
...
@@ -29,32 +29,54 @@ import org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.Kin
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFileURLStreamHandler
;
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles
;
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles.SourceFolder
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.core.io.AbstractResource
;
import
org.springframework.core.io.DefaultResourceLoader
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.core.io.UrlResource
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
import
org.springframework.core.io.support.ResourcePatternResolver
;
import
org.springframework.util.AntPathMatcher
;
import
org.springframework.util.ClassUtils
;
import
org.springframework.util.PathMatcher
;
import
org.springframework.web.context.WebApplicationContext
;
import
org.springframework.web.context.support.ServletContextResource
;
import
org.springframework.web.context.support.ServletContextResourcePatternResolver
;
/**
* A {@code ResourcePatternResolver} that considers {@link ClassLoaderFiles} when
* resolving resources.
*
* @author Andy Wilkinson
* @author Phillip Webb
*/
final
class
ClassLoaderFilesResourcePatternResolver
implements
ResourcePatternResolver
{
private
static
final
String
[]
LOCATION_PATTERN_PREFIXES
=
{
CLASSPATH_ALL_URL_PREFIX
,
CLASSPATH_URL_PREFIX
};
private
final
ResourcePatternResolver
delegate
=
new
PathMatchingResourcePatternResolver
();
private
static
final
String
WEB_CONTEXT_CLASS
=
"org.springframework.web.context."
+
"WebApplicationContext"
;
private
final
AntPathMatcher
antPathMatcher
=
new
AntPathMatcher
();
private
final
ResourcePatternResolver
delegate
;
private
final
PathMatcher
antPathMatcher
=
new
AntPathMatcher
();
private
final
ClassLoaderFiles
classLoaderFiles
;
ClassLoaderFilesResourcePatternResolver
(
ClassLoaderFiles
classLoaderFiles
)
{
ClassLoaderFilesResourcePatternResolver
(
ApplicationContext
applicationContext
,
ClassLoaderFiles
classLoaderFiles
)
{
this
.
classLoaderFiles
=
classLoaderFiles
;
this
.
delegate
=
getResourcePatternResolverFactory
()
.
getResourcePatternResolver
(
applicationContext
);
}
private
ResourcePatternResolverFactory
getResourcePatternResolverFactory
()
{
if
(
ClassUtils
.
isPresent
(
WEB_CONTEXT_CLASS
,
null
))
{
return
new
WebResourcePatternResolverFactory
();
}
return
new
ResourcePatternResolverFactory
();
}
@Override
...
...
@@ -137,7 +159,7 @@ final class ClassLoaderFilesResourcePatternResolver implements ResourcePatternRe
* A {@link Resource} that represents a {@link ClassLoaderFile} that has been
* {@link Kind#DELETED deleted}.
*/
private
final
class
DeletedClassLoaderFileResource
extends
AbstractResource
{
static
final
class
DeletedClassLoaderFileResource
extends
AbstractResource
{
private
final
String
name
;
...
...
@@ -162,4 +184,60 @@ final class ClassLoaderFilesResourcePatternResolver implements ResourcePatternRe
}
/**
* Factory used to create the {@link ResourcePatternResolver} delegate.
*/
private
static
class
ResourcePatternResolverFactory
{
public
ResourcePatternResolver
getResourcePatternResolver
(
ApplicationContext
applicationContext
)
{
return
new
PathMatchingResourcePatternResolver
();
}
}
/**
* {@link ResourcePatternResolverFactory} to be used when the classloader can access
* {@link WebApplicationContext}.
*/
private
static
class
WebResourcePatternResolverFactory
extends
ResourcePatternResolverFactory
{
@Override
public
ResourcePatternResolver
getResourcePatternResolver
(
ApplicationContext
applicationContext
)
{
if
(
applicationContext
instanceof
WebApplicationContext
)
{
return
new
ServletContextResourcePatternResolver
(
new
WebApplicationContextResourceLoader
(
(
WebApplicationContext
)
applicationContext
));
}
return
super
.
getResourcePatternResolver
(
applicationContext
);
}
}
/**
* {@link ResourceLoader} that optionally supports {@link ServletContextResource
* ServletContextResources}.
*/
private
static
class
WebApplicationContextResourceLoader
extends
DefaultResourceLoader
{
private
final
WebApplicationContext
applicationContext
;
WebApplicationContextResourceLoader
(
WebApplicationContext
applicationContext
)
{
this
.
applicationContext
=
applicationContext
;
}
@Override
protected
Resource
getResourceByPath
(
String
path
)
{
if
(
this
.
applicationContext
.
getServletContext
()
!=
null
)
{
return
new
ServletContextResource
(
this
.
applicationContext
.
getServletContext
(),
path
);
}
return
super
.
getResourceByPath
(
path
);
}
}
}
spring-boot-devtools/src/main/java/org/springframework/boot/devtools/restart/Restarter.java
View file @
519f9c6c
...
...
@@ -52,6 +52,7 @@ import org.springframework.context.ConfigurableApplicationContext;
import
org.springframework.context.support.GenericApplicationContext
;
import
org.springframework.core.ResolvableType
;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.util.Assert
;
import
org.springframework.util.ReflectionUtils
;
...
...
@@ -433,8 +434,9 @@ public class Restarter {
}
private
void
prepare
(
GenericApplicationContext
applicationContext
)
{
applicationContext
.
setResourceLoader
(
new
ClassLoaderFilesResourcePatternResolver
(
this
.
classLoaderFiles
));
ResourceLoader
resourceLoader
=
new
ClassLoaderFilesResourcePatternResolver
(
applicationContext
,
this
.
classLoaderFiles
);
applicationContext
.
setResourceLoader
(
resourceLoader
);
}
private
LeakSafeThread
getLeakSafeThread
()
{
...
...
spring-boot-devtools/src/test/java/org/springframework/boot/devtools/livereload/LiveReloadServerTests.java
View file @
519f9c6c
...
...
@@ -20,7 +20,6 @@ import java.io.IOException;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.net.URI
;
import
java.nio.ByteBuffer
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.CountDownLatch
;
...
...
@@ -57,8 +56,6 @@ public class LiveReloadServerTests {
private
static
final
String
HANDSHAKE
=
"{command: 'hello', "
+
"protocols: ['http://livereload.com/protocols/official-7']}"
;
private
static
final
ByteBuffer
NO_DATA
=
ByteBuffer
.
allocate
(
0
);
private
int
port
=
SocketUtils
.
findAvailableTcpPort
();
private
MonitoredLiveReloadServer
server
;
...
...
spring-boot-devtools/src/test/java/org/springframework/boot/devtools/restart/ClassLoaderFilesResourcePatternResolverTests.java
0 → 100644
View file @
519f9c6c
/*
* 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
.
devtools
.
restart
;
import
java.io.File
;
import
java.io.IOException
;
import
org.junit.Before
;
import
org.junit.Rule
;
import
org.junit.Test
;
import
org.junit.rules.TemporaryFolder
;
import
org.springframework.boot.devtools.restart.ClassLoaderFilesResourcePatternResolver.DeletedClassLoaderFileResource
;
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFile
;
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFile.Kind
;
import
org.springframework.boot.devtools.restart.classloader.ClassLoaderFiles
;
import
org.springframework.context.support.GenericApplicationContext
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.mock.web.MockServletContext
;
import
org.springframework.util.FileCopyUtils
;
import
org.springframework.web.context.support.GenericWebApplicationContext
;
import
org.springframework.web.context.support.ServletContextResource
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link ClassLoaderFilesResourcePatternResolver}.
*
* @author Phillip Webb
*/
public
class
ClassLoaderFilesResourcePatternResolverTests
{
@Rule
public
TemporaryFolder
temp
=
new
TemporaryFolder
();
private
ClassLoaderFiles
files
;
private
ClassLoaderFilesResourcePatternResolver
resolver
;
@Before
public
void
setup
()
{
this
.
files
=
new
ClassLoaderFiles
();
this
.
resolver
=
new
ClassLoaderFilesResourcePatternResolver
(
new
GenericApplicationContext
(),
this
.
files
);
}
@Test
public
void
getClassLoaderShouldReturnClassLoader
()
throws
Exception
{
assertThat
(
this
.
resolver
.
getClassLoader
()).
isNotNull
();
}
@Test
public
void
getResourceShouldReturnResource
()
throws
Exception
{
Resource
resource
=
this
.
resolver
.
getResource
(
"index.html"
);
assertThat
(
resource
).
isNotNull
().
isInstanceOf
(
ClassPathResource
.
class
);
}
@Test
public
void
getResourceWhenHasServeletContextShouldReturnServletResource
()
throws
Exception
{
GenericWebApplicationContext
context
=
new
GenericWebApplicationContext
(
new
MockServletContext
());
this
.
resolver
=
new
ClassLoaderFilesResourcePatternResolver
(
context
,
this
.
files
);
Resource
resource
=
this
.
resolver
.
getResource
(
"index.html"
);
assertThat
(
resource
).
isNotNull
().
isInstanceOf
(
ServletContextResource
.
class
);
}
@Test
public
void
getResourceWhenDeletedShouldReturnDeletedResource
()
throws
Exception
{
File
folder
=
this
.
temp
.
newFolder
();
File
file
=
createFile
(
folder
,
"name.class"
);
this
.
files
.
addFile
(
folder
.
getName
(),
"name.class"
,
new
ClassLoaderFile
(
Kind
.
DELETED
,
null
));
Resource
resource
=
this
.
resolver
.
getResource
(
"file:"
+
file
.
getAbsolutePath
());
assertThat
(
resource
).
isNotNull
()
.
isInstanceOf
(
DeletedClassLoaderFileResource
.
class
);
}
@Test
public
void
getResourcesShouldReturnResources
()
throws
Exception
{
File
folder
=
this
.
temp
.
newFolder
();
createFile
(
folder
,
"name.class"
);
Resource
[]
resources
=
this
.
resolver
.
getResources
(
"file:"
+
folder
.
getAbsolutePath
()
+
"/**"
);
assertThat
(
resources
).
isNotEmpty
();
}
@Test
public
void
getResourcesWhenDeletedShouldFilterDeleted
()
throws
Exception
{
File
folder
=
this
.
temp
.
newFolder
();
createFile
(
folder
,
"name.class"
);
this
.
files
.
addFile
(
folder
.
getName
(),
"name.class"
,
new
ClassLoaderFile
(
Kind
.
DELETED
,
null
));
Resource
[]
resources
=
this
.
resolver
.
getResources
(
"file:"
+
folder
.
getAbsolutePath
()
+
"/**"
);
assertThat
(
resources
).
isEmpty
();
}
private
File
createFile
(
File
folder
,
String
name
)
throws
IOException
{
File
file
=
new
File
(
folder
,
name
);
FileCopyUtils
.
copy
(
"test"
.
getBytes
(),
file
);
return
file
;
}
}
spring-boot-samples/spring-boot-sample-war/pom.xml
View file @
519f9c6c
...
...
@@ -42,6 +42,13 @@
</exclusion>
</exclusions>
</dependency>
<!-- Provided -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<scope>
provided
</scope>
</dependency>
<!-- Test -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
...
...
spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringBootContextLoader.java
View file @
519f9c6c
...
...
@@ -38,6 +38,7 @@ import org.springframework.core.annotation.AnnotatedElementUtils;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
org.springframework.core.env.MapPropertySource
;
import
org.springframework.core.env.MutablePropertySources
;
import
org.springframework.core.env.PropertySources
;
import
org.springframework.core.env.PropertySourcesPropertyResolver
;
import
org.springframework.core.env.StandardEnvironment
;
import
org.springframework.core.io.DefaultResourceLoader
;
...
...
@@ -160,15 +161,21 @@ public class SpringBootContextLoader extends AbstractContextLoader {
}
private
boolean
hasCustomServerPort
(
List
<
String
>
properties
)
{
Map
<
String
,
Object
>
props
=
TestPropertySourceUtils
.
convertInlinedPropertiesToMap
(
properties
.
toArray
(
new
String
[
properties
.
size
()]));
MutablePropertySources
sources
=
new
MutablePropertySources
();
sources
.
addFirst
(
new
MapPropertySource
(
"inline"
,
props
));
PropertySources
sources
=
convertToPropertySources
(
properties
);
RelaxedPropertyResolver
resolver
=
new
RelaxedPropertyResolver
(
new
PropertySourcesPropertyResolver
(
sources
),
"server."
);
return
resolver
.
containsProperty
(
"port"
);
}
private
PropertySources
convertToPropertySources
(
List
<
String
>
properties
)
{
Map
<
String
,
Object
>
source
=
TestPropertySourceUtils
.
convertInlinedPropertiesToMap
(
properties
.
toArray
(
new
String
[
properties
.
size
()]));
MutablePropertySources
sources
=
new
MutablePropertySources
();
sources
.
addFirst
(
new
MapPropertySource
(
"inline"
,
source
));
return
sources
;
}
private
List
<
ApplicationContextInitializer
<?>>
getInitializers
(
MergedContextConfiguration
config
,
SpringApplication
application
)
{
List
<
ApplicationContextInitializer
<?>>
initializers
=
new
ArrayList
<
ApplicationContextInitializer
<?>>();
...
...
spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringBootTestCustomPortTests.java
View file @
519f9c6c
...
...
@@ -27,8 +27,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Test for {@link SpringBootTest} with a custom inline server.port in a non-embedded
*
web
environment.
* Test for {@link SpringBootTest} with a custom inline server.port in a non-embedded
web
* environment.
*
* @author Stephane Nicoll
*/
...
...
spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringBootTestWebEnvironmentRandomPortCustomPortTests.java
View file @
519f9c6c
...
...
@@ -38,7 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
@RunWith
(
SpringRunner
.
class
)
@DirtiesContext
@SpringBootTest
(
webEnvironment
=
WebEnvironment
.
RANDOM_PORT
,
properties
=
{
"server.port=12345"
})
@SpringBootTest
(
webEnvironment
=
WebEnvironment
.
RANDOM_PORT
,
properties
=
{
"server.port=12345"
})
public
class
SpringBootTestWebEnvironmentRandomPortCustomPortTests
{
@Autowired
...
...
@@ -55,4 +56,5 @@ public class SpringBootTestWebEnvironmentRandomPortCustomPortTests {
protected
static
class
Config
extends
AbstractConfig
{
}
}
spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/DeprecatedSpringBootPlugin.java
View file @
519f9c6c
...
...
@@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory;
* to use the new Gradle Plugin Portal-compatible ID {@code org.springframework.boot}.
*
* @author Andy Wilkinson
* @deprecated
since
1.4.2 in favor of {@link SpringBootPlugin}
* @deprecated
as of
1.4.2 in favor of {@link SpringBootPlugin}
*/
@Deprecated
public
class
DeprecatedSpringBootPlugin
extends
SpringBootPlugin
{
...
...
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java
View file @
519f9c6c
...
...
@@ -554,7 +554,7 @@ public class TomcatEmbeddedServletContainerFactory
* A comma-separated list of jars to ignore for TLD scanning. See Tomcat's
* catalina.properties for typical values. Defaults to a list drawn from that source.
* @param tldSkip the jars to skip when scanning for TLDs etc
* @deprecated
since 1.5.0
in favor of {@link #setTldSkipPatterns(Collection)}
* @deprecated
as of 1.5
in favor of {@link #setTldSkipPatterns(Collection)}
*/
@Deprecated
public
void
setTldSkip
(
String
tldSkip
)
{
...
...
spring-boot/src/main/java/org/springframework/boot/context/event/ApplicationStartedEvent.java
View file @
519f9c6c
...
...
@@ -29,7 +29,7 @@ import org.springframework.core.env.Environment;
* state too much at this early stage since it might be modified later in the lifecycle.
*
* @author Dave Syer
* @deprecated
since 1.5.0
in favor of {@link ApplicationStartingEvent}
* @deprecated
as of 1.5
in favor of {@link ApplicationStartingEvent}
*/
@Deprecated
@SuppressWarnings
(
"serial"
)
...
...
spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java
View file @
519f9c6c
...
...
@@ -97,6 +97,7 @@ public class LoggingApplicationListener implements GenericApplicationListener {
/**
* The name of the Spring property that contains the directory where log files are
* written.
* @deprecated as of 1.5 in favor of {@link LogFile#PATH_PROPERTY}
*/
@Deprecated
public
static
final
String
PATH_PROPERTY
=
LogFile
.
PATH_PROPERTY
;
...
...
@@ -104,6 +105,7 @@ public class LoggingApplicationListener implements GenericApplicationListener {
/**
* The name of the Spring property that contains the name of the log file. Names can
* be an exact location or relative to the current directory.
* @deprecated as of 1.5 in favor of {@link LogFile#FILE_PROPERTY}
*/
@Deprecated
public
static
final
String
FILE_PROPERTY
=
LogFile
.
FILE_PROPERTY
;
...
...
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