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
0807c27c
Commit
0807c27c
authored
Jan 24, 2017
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Complete removing support for Tomcat 7
Closes gh-6416
parent
df3e1f08
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
6 additions
and
639 deletions
+6
-639
getting-started.adoc
spring-boot-docs/src/main/asciidoc/getting-started.adoc
+1
-5
howto.adoc
spring-boot-docs/src/main/asciidoc/howto.adoc
+0
-51
README.adoc
spring-boot-samples/README.adoc
+0
-6
pom.xml
spring-boot-samples/pom.xml
+0
-2
pom.xml
spring-boot-samples/spring-boot-sample-tomcat7-jsp/pom.xml
+0
-73
SampleTomcat7JspApplication.java
.../java/sample/tomcat7/jsp/SampleTomcat7JspApplication.java
+0
-36
WelcomeController.java
...p/src/main/java/sample/tomcat7/jsp/WelcomeController.java
+0
-39
application.properties
...ple-tomcat7-jsp/src/main/resources/application.properties
+0
-3
welcome.jsp
...ample-tomcat7-jsp/src/main/webapp/WEB-INF/jsp/welcome.jsp
+0
-18
SampleWebJspApplicationTests.java
...java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java
+0
-53
pom.xml
spring-boot-samples/spring-boot-sample-tomcat7-ssl/pom.xml
+0
-60
SampleTomcatSslApplication.java
...in/java/sample/tomcat/ssl/SampleTomcatSslApplication.java
+0
-29
SampleController.java
...src/main/java/sample/tomcat/ssl/web/SampleController.java
+0
-32
application.properties
...ple-tomcat7-ssl/src/main/resources/application.properties
+0
-4
sample.jks
...ing-boot-sample-tomcat7-ssl/src/main/resources/sample.jks
+0
-0
SampleTomcatSslApplicationTests.java
...va/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java
+0
-48
SkipPatternJarScanner.java
...k/boot/context/embedded/tomcat/SkipPatternJarScanner.java
+3
-32
TomcatEmbeddedServletContainer.java
...ntext/embedded/tomcat/TomcatEmbeddedServletContainer.java
+2
-13
TomcatResources.java
...amework/boot/context/embedded/tomcat/TomcatResources.java
+0
-135
No files found.
spring-boot-docs/src/main/asciidoc/getting-started.adoc
View file @
0807c27c
...
...
@@ -50,14 +50,10 @@ The following embedded servlet containers are supported out of the box:
|===
|Name |Servlet Version |Java Version
|Tomcat 8
|Tomcat 8
.5
|3.1
|Java 7+
|Tomcat 7
|3.0
|Java 6+
|Jetty 9.3
|3.1
|Java 8+
...
...
spring-boot-docs/src/main/asciidoc/howto.adoc
View file @
0807c27c
...
...
@@ -930,57 +930,6 @@ add a listener to the `Builder`:
[[howto-use-tomcat-7]]
=== Use Tomcat 7.x or 8.0
Tomcat 7 & 8.0 work with Spring Boot, but the default is to use Tomcat 8.5. If you cannot
use Tomcat 8.5 (for example, because you are using Java 1.6) you will need to change your
classpath to reference a different version.
[[howto-use-tomcat-7-maven]]
==== Use Tomcat 7.x or 8.0 with Maven
If you are using the starters and parent you can change the Tomcat version property
and additionally import `tomcat-juli`. E.g. for a simple webapp or service:
[source,xml,indent=0,subs="verbatim,quotes,attributes"]
----
<properties>
<tomcat.version>7.0.59</tomcat.version>
</properties>
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
...
</dependencies>
----
==== Use Tomcat 7.x or 8.0 with Gradle
[[howto-use-tomcat-7-gradle]]
With Gradle, you can change the Tomcat version by setting the `tomcat.version` property
and then additionally include `tomcat-juli`:
[source,groovy,indent=0,subs="verbatim,quotes,attributes"]
----
ext['tomcat.version'] = '7.0.59'
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
compile group:'org.apache.tomcat', name:'tomcat-juli', version:property('tomcat.version')
}
----
[[howto-use-jetty-9.2]]
=== Use Jetty 9.2
Jetty 9.2 works with Spring Boot, but the default is to use Jetty 9.3. If you cannot use
...
...
spring-boot-samples/README.adoc
View file @
0807c27c
...
...
@@ -207,12 +207,6 @@ The following sample applications are provided:
| link:spring-boot-sample-tomcat-ssl[spring-boot-sample-tomcat-ssl]
| Web application that uses Tomcat configured with SSL
| link:spring-boot-sample-tomcat7-jsp[spring-boot-sample-tomcat7-jsp]
| Web application that uses JSP templates with Tomcat 7
| link:spring-boot-sample-tomcat7-ssl[spring-boot-sample-tomcat7-ssl]
| Web application that uses Tomcat 7 configured with SSL
| link:spring-boot-sample-tomcat80-ssl[spring-boot-sample-tomcat80-ssl]
| Web application that uses Tomcat 8.0 configured with SSL
...
...
spring-boot-samples/pom.xml
View file @
0807c27c
...
...
@@ -89,8 +89,6 @@
<module>
spring-boot-sample-tomcat-jsp
</module>
<module>
spring-boot-sample-tomcat-ssl
</module>
<module>
spring-boot-sample-tomcat-multi-connectors
</module>
<module>
spring-boot-sample-tomcat7-jsp
</module>
<module>
spring-boot-sample-tomcat7-ssl
</module>
<module>
spring-boot-sample-tomcat80-ssl
</module>
<module>
spring-boot-sample-traditional
</module>
<module>
spring-boot-sample-undertow
</module>
...
...
spring-boot-samples/spring-boot-sample-tomcat7-jsp/pom.xml
deleted
100644 → 0
View file @
df3e1f08
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<!-- Your own application should inherit from spring-boot-starter-parent -->
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-samples
</artifactId>
<version>
2.0.0.BUILD-SNAPSHOT
</version>
</parent>
<artifactId>
spring-boot-sample-tomcat7-jsp
</artifactId>
<packaging>
war
</packaging>
<name>
Spring Boot Tomcat 7 JSP Sample
</name>
<description>
Spring Boot Tomcat 7 JSP Sample
</description>
<url>
http://projects.spring.io/spring-boot/
</url>
<organization>
<name>
Pivotal Software, Inc.
</name>
<url>
http://www.spring.io
</url>
</organization>
<properties>
<main.basedir>
${basedir}/../..
</main.basedir>
<m2eclipse.wtp.contextRoot>
/
</m2eclipse.wtp.contextRoot>
<tomcat.version>
7.0.59
</tomcat.version>
</properties>
<dependencies>
<!-- Compile -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
</dependency>
<!-- Provided -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-tomcat
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.apache.tomcat
</groupId>
<artifactId>
tomcat-juli
</artifactId>
<version>
${tomcat.version}
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.apache.tomcat.embed
</groupId>
<artifactId>
tomcat-embed-jasper
</artifactId>
<scope>
provided
</scope>
</dependency>
<!-- Test -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<configuration>
<useSystemClassLoader>
false
</useSystemClassLoader>
</configuration>
</plugin>
</plugins>
</build>
</project>
spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/main/java/sample/tomcat7/jsp/SampleTomcat7JspApplication.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat7
.
jsp
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.web.support.SpringBootServletInitializer
;
@SpringBootApplication
public
class
SampleTomcat7JspApplication
extends
SpringBootServletInitializer
{
@Override
protected
SpringApplicationBuilder
configure
(
SpringApplicationBuilder
application
)
{
return
application
.
sources
(
SampleTomcat7JspApplication
.
class
);
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SpringApplication
.
run
(
SampleTomcat7JspApplication
.
class
,
args
);
}
}
spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/main/java/sample/tomcat7/jsp/WelcomeController.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat7
.
jsp
;
import
java.util.Date
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
@Controller
public
class
WelcomeController
{
@Value
(
"${application.message:Hello World}"
)
private
String
message
=
"Hello World"
;
@GetMapping
(
"/"
)
public
String
welcome
(
Map
<
String
,
Object
>
model
)
{
model
.
put
(
"time"
,
new
Date
());
model
.
put
(
"message"
,
this
.
message
);
return
"welcome"
;
}
}
spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/main/resources/application.properties
deleted
100644 → 0
View file @
df3e1f08
spring.mvc.view.prefix
:
/WEB-INF/jsp/
spring.mvc.view.suffix
:
.jsp
application.message
:
Hello Phil
\ No newline at end of file
spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/main/webapp/WEB-INF/jsp/welcome.jsp
deleted
100644 → 0
View file @
df3e1f08
<!DOCTYPE html>
<%@ taglib
prefix=
"spring"
uri=
"http://www.springframework.org/tags"
%>
<%@ taglib
prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%>
<html
lang=
"en"
>
<body>
<c:url
value=
"/resources/text.txt"
var=
"url"
/>
<spring:url
value=
"/resources/text.txt"
htmlEscape=
"true"
var=
"springUrl"
/>
Spring URL: ${springUrl} at ${time}
<br>
JSTL URL: ${url}
<br>
Message: ${message}
</body>
</html>
spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/test/java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat7
.
jsp
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest.WebEnvironment
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Basic integration tests for JSP application.
*
* @author Phillip Webb
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
webEnvironment
=
WebEnvironment
.
RANDOM_PORT
)
@DirtiesContext
public
class
SampleWebJspApplicationTests
{
@Autowired
private
TestRestTemplate
restTemplate
;
@Test
public
void
testJspWithEl
()
throws
Exception
{
ResponseEntity
<
String
>
entity
=
this
.
restTemplate
.
getForEntity
(
"/"
,
String
.
class
);
assertThat
(
entity
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
assertThat
(
entity
.
getBody
()).
contains
(
"/resources/text.txt"
);
}
}
spring-boot-samples/spring-boot-sample-tomcat7-ssl/pom.xml
deleted
100644 → 0
View file @
df3e1f08
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<!-- Your own application should inherit from spring-boot-starter-parent -->
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-samples
</artifactId>
<version>
2.0.0.BUILD-SNAPSHOT
</version>
</parent>
<artifactId>
spring-boot-sample-tomcat7-ssl
</artifactId>
<name>
Spring Boot Tomcat 7 SSL Sample
</name>
<description>
Spring Boot Tomcat 7 SSL Sample
</description>
<url>
http://projects.spring.io/spring-boot/
</url>
<organization>
<name>
Pivotal Software, Inc.
</name>
<url>
http://www.spring.io
</url>
</organization>
<properties>
<main.basedir>
${basedir}/../..
</main.basedir>
<tomcat.version>
7.0.69
</tomcat.version>
</properties>
<dependencies>
<!-- Compile -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-tomcat
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.tomcat
</groupId>
<artifactId>
tomcat-juli
</artifactId>
<version>
${tomcat.version}
</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
spring-boot-samples/spring-boot-sample-tomcat7-ssl/src/main/java/sample/tomcat/ssl/SampleTomcatSslApplication.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat
.
ssl
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
SampleTomcatSslApplication
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SpringApplication
.
run
(
SampleTomcatSslApplication
.
class
,
args
);
}
}
spring-boot-samples/spring-boot-sample-tomcat7-ssl/src/main/java/sample/tomcat/ssl/web/SampleController.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat
.
ssl
.
web
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
@Controller
public
class
SampleController
{
@GetMapping
(
"/"
)
@ResponseBody
public
String
helloWorld
()
{
return
"Hello, world"
;
}
}
spring-boot-samples/spring-boot-sample-tomcat7-ssl/src/main/resources/application.properties
deleted
100644 → 0
View file @
df3e1f08
server.port
=
8443
server.ssl.key-store
=
classpath:sample.jks
server.ssl.key-store-password
=
secret
server.ssl.key-password
=
password
spring-boot-samples/spring-boot-sample-tomcat7-ssl/src/main/resources/sample.jks
deleted
100644 → 0
View file @
df3e1f08
File deleted
spring-boot-samples/spring-boot-sample-tomcat7-ssl/src/test/java/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
sample
.
tomcat
.
ssl
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest.WebEnvironment
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
webEnvironment
=
WebEnvironment
.
RANDOM_PORT
)
@DirtiesContext
public
class
SampleTomcatSslApplicationTests
{
@Autowired
private
TestRestTemplate
restTemplate
;
@Test
public
void
testHome
()
throws
Exception
{
ResponseEntity
<
String
>
entity
=
this
.
restTemplate
.
getForEntity
(
"/"
,
String
.
class
);
assertThat
(
entity
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
assertThat
(
entity
.
getBody
()).
isEqualTo
(
"Hello, world"
);
}
}
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/SkipPatternJarScanner.java
View file @
0807c27c
...
...
@@ -23,7 +23,6 @@ import org.apache.tomcat.util.scan.StandardJarScanFilter;
import
org.apache.tomcat.util.scan.StandardJarScanner
;
import
org.springframework.util.Assert
;
import
org.springframework.util.ClassUtils
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -37,24 +36,15 @@ import org.springframework.util.StringUtils;
*/
class
SkipPatternJarScanner
extends
StandardJarScanner
{
private
static
final
String
JAR_SCAN_FILTER_CLASS
=
"org.apache.tomcat.JarScanFilter"
;
private
final
JarScanner
jarScanner
;
private
final
Set
<
String
>
patterns
;
SkipPatternJarScanner
(
JarScanner
jarScanner
,
Set
<
String
>
patterns
)
{
Assert
.
notNull
(
jarScanner
,
"JarScanner must not be null"
);
Assert
.
notNull
(
jarScanner
,
"Patterns must not be null"
);
this
.
jarScanner
=
jarScanner
;
this
.
patterns
=
patterns
;
setPatternToTomcat8SkipFilter
();
}
private
void
setPatternToTomcat8SkipFilter
()
{
if
(
ClassUtils
.
isPresent
(
JAR_SCAN_FILTER_CLASS
,
null
))
{
new
Tomcat8TldSkipSetter
(
this
).
setSkipPattern
(
this
.
patterns
);
}
StandardJarScanFilter
filter
=
new
StandardJarScanFilter
();
filter
.
setTldSkip
(
StringUtils
.
collectionToCommaDelimitedString
(
patterns
));
this
.
jarScanner
.
setJarScanFilter
(
filter
);
}
/**
...
...
@@ -68,23 +58,4 @@ class SkipPatternJarScanner extends StandardJarScanner {
context
.
setJarScanner
(
scanner
);
}
/**
* Tomcat 8 specific logic to setup the scanner.
*/
private
static
class
Tomcat8TldSkipSetter
{
private
final
StandardJarScanner
jarScanner
;
Tomcat8TldSkipSetter
(
StandardJarScanner
jarScanner
)
{
this
.
jarScanner
=
jarScanner
;
}
public
void
setSkipPattern
(
Set
<
String
>
patterns
)
{
StandardJarScanFilter
filter
=
new
StandardJarScanFilter
();
filter
.
setTldSkip
(
StringUtils
.
collectionToCommaDelimitedString
(
patterns
));
this
.
jarScanner
.
setJarScanFilter
(
filter
);
}
}
}
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainer.java
View file @
0807c27c
...
...
@@ -100,7 +100,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
Context
context
=
findContext
();
try
{
ContextBindings
.
bindClassLoader
(
context
,
getNamingToken
(
context
),
ContextBindings
.
bindClassLoader
(
context
,
context
.
getNamingToken
(
),
getClass
().
getClassLoader
());
}
catch
(
NamingException
ex
)
{
...
...
@@ -194,7 +194,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
}
finally
{
Context
context
=
findContext
();
ContextBindings
.
unbindClassLoader
(
context
,
getNamingToken
(
context
),
ContextBindings
.
unbindClassLoader
(
context
,
context
.
getNamingToken
(
),
getClass
().
getClassLoader
());
}
}
...
...
@@ -317,15 +317,4 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
return
this
.
tomcat
;
}
private
Object
getNamingToken
(
Context
context
)
{
try
{
return
context
.
getNamingToken
();
}
catch
(
NoSuchMethodError
ex
)
{
// Use the context itself on Tomcat 7
return
context
;
}
}
}
spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatResources.java
deleted
100644 → 0
View file @
df3e1f08
/*
* 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
.
context
.
embedded
.
tomcat
;
import
java.io.File
;
import
java.net.URL
;
import
java.net.URLClassLoader
;
import
org.apache.catalina.Context
;
import
org.apache.catalina.WebResourceRoot.ResourceSetType
;
/**
* Abstraction to add resources that works with Tomcat 8.
*
* @author Dave Syer
* @author Phillip Webb
*/
abstract
class
TomcatResources
{
private
final
Context
context
;
TomcatResources
(
Context
context
)
{
this
.
context
=
context
;
}
/**
* Add resources from the classpath.
*/
public
void
addClasspathResources
()
{
ClassLoader
loader
=
getClass
().
getClassLoader
();
if
(
loader
instanceof
URLClassLoader
)
{
for
(
URL
url
:
((
URLClassLoader
)
loader
).
getURLs
())
{
String
file
=
url
.
getFile
();
if
(
file
.
endsWith
(
".jar"
)
||
file
.
endsWith
(
".jar!/"
))
{
String
jar
=
url
.
toString
();
if
(!
jar
.
startsWith
(
"jar:"
))
{
// A jar file in the file system. Convert to Jar URL.
jar
=
"jar:"
+
jar
+
"!/"
;
}
addJar
(
jar
);
}
else
if
(
url
.
toString
().
startsWith
(
"file:"
))
{
String
dir
=
url
.
toString
().
substring
(
"file:"
.
length
());
if
(
new
File
(
dir
).
isDirectory
())
{
addDir
(
dir
,
url
);
}
}
}
}
}
protected
final
Context
getContext
()
{
return
this
.
context
;
}
/**
* Called to add a JAR to the resources.
* @param jar the URL spec for the jar
*/
protected
abstract
void
addJar
(
String
jar
);
/**
* Called to add a dir to the resource.
* @param dir the dir
* @param url the URL
*/
protected
abstract
void
addDir
(
String
dir
,
URL
url
);
/**
* Return a {@link TomcatResources} instance for the currently running Tomcat version.
* @param context the tomcat context
* @return a {@link TomcatResources} instance.
*/
public
static
TomcatResources
get
(
Context
context
)
{
return
new
Tomcat8Resources
(
context
);
}
/**
* {@link TomcatResources} for Tomcat 8.
*/
static
class
Tomcat8Resources
extends
TomcatResources
{
Tomcat8Resources
(
Context
context
)
{
super
(
context
);
}
@Override
protected
void
addJar
(
String
jar
)
{
addResourceSet
(
jar
);
}
@Override
protected
void
addDir
(
String
dir
,
URL
url
)
{
addResourceSet
(
url
.
toString
());
}
private
void
addResourceSet
(
String
resource
)
{
try
{
if
(
isInsideNestedJar
(
resource
))
{
// It's a nested jar but we now don't want the suffix because Tomcat
// is going to try and locate it as a root URL (not the resource
// inside it)
resource
=
resource
.
substring
(
0
,
resource
.
length
()
-
2
);
}
URL
url
=
new
URL
(
resource
);
String
path
=
"/META-INF/resources"
;
getContext
().
getResources
().
createWebResourceSet
(
ResourceSetType
.
RESOURCE_JAR
,
"/"
,
url
,
path
);
}
catch
(
Exception
ex
)
{
// Ignore (probably not a directory)
}
}
private
boolean
isInsideNestedJar
(
String
dir
)
{
return
dir
.
indexOf
(
"!/"
)
<
dir
.
lastIndexOf
(
"!/"
);
}
}
}
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