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
985e5a43
Commit
985e5a43
authored
Mar 23, 2021
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.4.x'
Closes gh-25771
parents
5e3d5ebe
56674b90
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
151 additions
and
29 deletions
+151
-29
gradle.properties
gradle.properties
+2
-0
build.gradle
spring-boot-project/spring-boot-dependencies/build.gradle
+1
-1
build.gradle
spring-boot-project/spring-boot/build.gradle
+22
-0
TldPatterns.java
...springframework/boot/web/embedded/tomcat/TldPatterns.java
+61
-28
TldPatternsTests.java
...gframework/boot/web/embedded/tomcat/TldPatternsTests.java
+65
-0
No files found.
gradle.properties
View file @
985e5a43
...
@@ -5,4 +5,6 @@ org.gradle.parallel=true
...
@@ -5,4 +5,6 @@ org.gradle.parallel=true
org.gradle.jvmargs
=
-Xmx2g -Dfile.encoding=UTF-8
org.gradle.jvmargs
=
-Xmx2g -Dfile.encoding=UTF-8
kotlinVersion
=
1.4.31
kotlinVersion
=
1.4.31
tomcatVersion
=
9.0.44
kotlin.stdlib.default.dependency
=
false
kotlin.stdlib.default.dependency
=
false
spring-boot-project/spring-boot-dependencies/build.gradle
View file @
985e5a43
...
@@ -1765,7 +1765,7 @@ bom {
...
@@ -1765,7 +1765,7 @@ bom {
]
]
}
}
}
}
library
(
"Tomcat"
,
"
9.0.44
"
)
{
library
(
"Tomcat"
,
"
${tomcatVersion}
"
)
{
prohibit
(
"[10.0.0-M1,)"
)
{
prohibit
(
"[10.0.0-M1,)"
)
{
because
"it uses the jakarta.* namespace"
because
"it uses the jakarta.* namespace"
}
}
...
...
spring-boot-project/spring-boot/build.gradle
View file @
985e5a43
...
@@ -9,6 +9,12 @@ plugins {
...
@@ -9,6 +9,12 @@ plugins {
description
=
"Spring Boot"
description
=
"Spring Boot"
def
tomcatConfigProperties
=
"$buildDir/tomcat-config-properties"
configurations
{
tomcatDistribution
}
dependencies
{
dependencies
{
annotationProcessor
(
"org.apache.logging.log4j:log4j-core"
)
annotationProcessor
(
"org.apache.logging.log4j:log4j-core"
)
...
@@ -107,6 +113,22 @@ dependencies {
...
@@ -107,6 +113,22 @@ dependencies {
exclude
group:
"javax.annotation"
,
module:
"javax.annotation-api"
exclude
group:
"javax.annotation"
,
module:
"javax.annotation-api"
exclude
group:
"javax.xml.bind"
,
module:
"jaxb-api"
exclude
group:
"javax.xml.bind"
,
module:
"jaxb-api"
}
}
tomcatDistribution
(
"org.apache.tomcat:tomcat:${tomcatVersion}@zip"
)
}
task
extractTomcatConfigProperties
(
type:
Sync
)
{
dependsOn
configurations
.
tomcatDistribution
destinationDir
=
file
(
tomcatConfigProperties
)
from
(
zipTree
(
configurations
.
tomcatDistribution
.
incoming
.
files
.
singleFile
).
matching
{
include
'**/conf/catalina.properties'
}.
singleFile
)
}
sourceSets
{
test
{
output
.
dir
(
tomcatConfigProperties
,
builtBy:
"extractTomcatConfigProperties"
)
}
}
}
compileKotlin
{
compileKotlin
{
...
...
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TldPatterns.java
View file @
985e5a43
/*
/*
* Copyright 2012-202
0
the original author or authors.
* Copyright 2012-202
1
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -28,16 +28,30 @@ import java.util.Set;
...
@@ -28,16 +28,30 @@ import java.util.Set;
*/
*/
final
class
TldPatterns
{
final
class
TldPatterns
{
private
static
final
Set
<
String
>
TOMCAT_SKIP
;
static
final
Set
<
String
>
TOMCAT_SKIP
;
static
{
static
{
// Same as Tomcat
// Same as Tomcat
Set
<
String
>
skipPatterns
=
new
LinkedHashSet
<>();
Set
<
String
>
skipPatterns
=
new
LinkedHashSet
<>();
skipPatterns
.
add
(
"ant-*.jar"
);
skipPatterns
.
add
(
"annotations-api.jar"
);
skipPatterns
.
add
(
"ant-junit*.jar"
);
skipPatterns
.
add
(
"ant-launcher.jar"
);
skipPatterns
.
add
(
"ant.jar"
);
skipPatterns
.
add
(
"asm-*.jar"
);
skipPatterns
.
add
(
"aspectj*.jar"
);
skipPatterns
.
add
(
"aspectj*.jar"
);
skipPatterns
.
add
(
"bootstrap.jar"
);
skipPatterns
.
add
(
"catalina-ant.jar"
);
skipPatterns
.
add
(
"catalina-ha.jar"
);
skipPatterns
.
add
(
"catalina-ssi.jar"
);
skipPatterns
.
add
(
"catalina-storeconfig.jar"
);
skipPatterns
.
add
(
"catalina-tribes.jar"
);
skipPatterns
.
add
(
"catalina.jar"
);
skipPatterns
.
add
(
"cglib-*.jar"
);
skipPatterns
.
add
(
"cobertura-*.jar"
);
skipPatterns
.
add
(
"commons-beanutils*.jar"
);
skipPatterns
.
add
(
"commons-beanutils*.jar"
);
skipPatterns
.
add
(
"commons-codec*.jar"
);
skipPatterns
.
add
(
"commons-codec*.jar"
);
skipPatterns
.
add
(
"commons-collections*.jar"
);
skipPatterns
.
add
(
"commons-collections*.jar"
);
skipPatterns
.
add
(
"commons-daemon.jar"
);
skipPatterns
.
add
(
"commons-dbcp*.jar"
);
skipPatterns
.
add
(
"commons-dbcp*.jar"
);
skipPatterns
.
add
(
"commons-digester*.jar"
);
skipPatterns
.
add
(
"commons-digester*.jar"
);
skipPatterns
.
add
(
"commons-fileupload*.jar"
);
skipPatterns
.
add
(
"commons-fileupload*.jar"
);
...
@@ -47,29 +61,59 @@ final class TldPatterns {
...
@@ -47,29 +61,59 @@ final class TldPatterns {
skipPatterns
.
add
(
"commons-logging*.jar"
);
skipPatterns
.
add
(
"commons-logging*.jar"
);
skipPatterns
.
add
(
"commons-math*.jar"
);
skipPatterns
.
add
(
"commons-math*.jar"
);
skipPatterns
.
add
(
"commons-pool*.jar"
);
skipPatterns
.
add
(
"commons-pool*.jar"
);
skipPatterns
.
add
(
"dom4j-*.jar"
);
skipPatterns
.
add
(
"easymock-*.jar"
);
skipPatterns
.
add
(
"ecj-*.jar"
);
skipPatterns
.
add
(
"el-api.jar"
);
skipPatterns
.
add
(
"geronimo-spec-jaxrpc*.jar"
);
skipPatterns
.
add
(
"geronimo-spec-jaxrpc*.jar"
);
skipPatterns
.
add
(
"h2*.jar"
);
skipPatterns
.
add
(
"h2*.jar"
);
skipPatterns
.
add
(
"hamcrest*.jar"
);
skipPatterns
.
add
(
"hamcrest
-
*.jar"
);
skipPatterns
.
add
(
"hibernate*.jar"
);
skipPatterns
.
add
(
"hibernate*.jar"
);
skipPatterns
.
add
(
"jaxb-runtime-*.jar"
);
skipPatterns
.
add
(
"httpclient*.jar"
);
skipPatterns
.
add
(
"jmx*.jar"
);
skipPatterns
.
add
(
"icu4j-*.jar"
);
skipPatterns
.
add
(
"jmx-tools-*.jar"
);
skipPatterns
.
add
(
"jasper-el.jar"
);
skipPatterns
.
add
(
"jasper.jar"
);
skipPatterns
.
add
(
"jaspic-api.jar"
);
skipPatterns
.
add
(
"jaxb-*.jar"
);
skipPatterns
.
add
(
"jaxen-*.jar"
);
skipPatterns
.
add
(
"jdom-*.jar"
);
skipPatterns
.
add
(
"jetty-*.jar"
);
skipPatterns
.
add
(
"jmx-tools.jar"
);
skipPatterns
.
add
(
"jmx.jar"
);
skipPatterns
.
add
(
"jsp-api.jar"
);
skipPatterns
.
add
(
"jstl.jar"
);
skipPatterns
.
add
(
"jta*.jar"
);
skipPatterns
.
add
(
"jta*.jar"
);
skipPatterns
.
add
(
"junit-*.jar"
);
skipPatterns
.
add
(
"junit-*.jar"
);
skipPatterns
.
add
(
"
httpclient*
.jar"
);
skipPatterns
.
add
(
"
junit
.jar"
);
skipPatterns
.
add
(
"log4j
-
*.jar"
);
skipPatterns
.
add
(
"log4j*.jar"
);
skipPatterns
.
add
(
"mail*.jar"
);
skipPatterns
.
add
(
"mail*.jar"
);
skipPatterns
.
add
(
"org.hamcrest*.jar"
);
skipPatterns
.
add
(
"objenesis-*.jar"
);
skipPatterns
.
add
(
"oraclepki.jar"
);
skipPatterns
.
add
(
"oro-*.jar"
);
skipPatterns
.
add
(
"servlet-api-*.jar"
);
skipPatterns
.
add
(
"servlet-api.jar"
);
skipPatterns
.
add
(
"slf4j*.jar"
);
skipPatterns
.
add
(
"slf4j*.jar"
);
skipPatterns
.
add
(
"tomcat-embed-core-*.jar"
);
skipPatterns
.
add
(
"taglibs-standard-spec-*.jar"
);
skipPatterns
.
add
(
"tomcat-embed-logging-*.jar"
);
skipPatterns
.
add
(
"tagsoup-*.jar"
);
skipPatterns
.
add
(
"tomcat-jdbc-*.jar"
);
skipPatterns
.
add
(
"tomcat-api.jar"
);
skipPatterns
.
add
(
"tomcat-juli-*.jar"
);
skipPatterns
.
add
(
"tomcat-coyote.jar"
);
skipPatterns
.
add
(
"tomcat-dbcp.jar"
);
skipPatterns
.
add
(
"tomcat-i18n-*.jar"
);
skipPatterns
.
add
(
"tomcat-jdbc.jar"
);
skipPatterns
.
add
(
"tomcat-jni.jar"
);
skipPatterns
.
add
(
"tomcat-juli-adapters.jar"
);
skipPatterns
.
add
(
"tomcat-juli.jar"
);
skipPatterns
.
add
(
"tomcat-util-scan.jar"
);
skipPatterns
.
add
(
"tomcat-util.jar"
);
skipPatterns
.
add
(
"tomcat-websocket.jar"
);
skipPatterns
.
add
(
"tools.jar"
);
skipPatterns
.
add
(
"tools.jar"
);
skipPatterns
.
add
(
"websocket-api.jar"
);
skipPatterns
.
add
(
"wsdl4j*.jar"
);
skipPatterns
.
add
(
"wsdl4j*.jar"
);
skipPatterns
.
add
(
"xercesImpl-*.jar"
);
skipPatterns
.
add
(
"xercesImpl.jar"
);
skipPatterns
.
add
(
"xml-apis.jar"
);
skipPatterns
.
add
(
"xmlParserAPIs-*.jar"
);
skipPatterns
.
add
(
"xmlParserAPIs-*.jar"
);
skipPatterns
.
add
(
"xml-apis-*.jar"
);
skipPatterns
.
add
(
"xmlParserAPIs.jar"
);
skipPatterns
.
add
(
"xom-*.jar"
);
TOMCAT_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
TOMCAT_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
}
}
...
@@ -80,17 +124,9 @@ final class TldPatterns {
...
@@ -80,17 +124,9 @@ final class TldPatterns {
Set
<
String
>
skipPatterns
=
new
LinkedHashSet
<>();
Set
<
String
>
skipPatterns
=
new
LinkedHashSet
<>();
skipPatterns
.
add
(
"antlr-*.jar"
);
skipPatterns
.
add
(
"antlr-*.jar"
);
skipPatterns
.
add
(
"aopalliance-*.jar"
);
skipPatterns
.
add
(
"aopalliance-*.jar"
);
skipPatterns
.
add
(
"aspectjrt-*.jar"
);
skipPatterns
.
add
(
"aspectjweaver-*.jar"
);
skipPatterns
.
add
(
"aspectjweaver-*.jar"
);
skipPatterns
.
add
(
"classmate-*.jar"
);
skipPatterns
.
add
(
"classmate-*.jar"
);
skipPatterns
.
add
(
"dom4j-*.jar"
);
skipPatterns
.
add
(
"ecj-*.jar"
);
skipPatterns
.
add
(
"ehcache-core-*.jar"
);
skipPatterns
.
add
(
"ehcache-core-*.jar"
);
skipPatterns
.
add
(
"hibernate-core-*.jar"
);
skipPatterns
.
add
(
"hibernate-commons-annotations-*.jar"
);
skipPatterns
.
add
(
"hibernate-entitymanager-*.jar"
);
skipPatterns
.
add
(
"hibernate-jpa-2.1-api-*.jar"
);
skipPatterns
.
add
(
"hibernate-validator-*.jar"
);
skipPatterns
.
add
(
"hsqldb-*.jar"
);
skipPatterns
.
add
(
"hsqldb-*.jar"
);
skipPatterns
.
add
(
"jackson-annotations-*.jar"
);
skipPatterns
.
add
(
"jackson-annotations-*.jar"
);
skipPatterns
.
add
(
"jackson-core-*.jar"
);
skipPatterns
.
add
(
"jackson-core-*.jar"
);
...
@@ -102,11 +138,9 @@ final class TldPatterns {
...
@@ -102,11 +138,9 @@ final class TldPatterns {
skipPatterns
.
add
(
"jcl-over-slf4j-*.jar"
);
skipPatterns
.
add
(
"jcl-over-slf4j-*.jar"
);
skipPatterns
.
add
(
"jdom-*.jar"
);
skipPatterns
.
add
(
"jdom-*.jar"
);
skipPatterns
.
add
(
"jul-to-slf4j-*.jar"
);
skipPatterns
.
add
(
"jul-to-slf4j-*.jar"
);
skipPatterns
.
add
(
"log4j-over-slf4j-*.jar"
);
skipPatterns
.
add
(
"logback-classic-*.jar"
);
skipPatterns
.
add
(
"logback-classic-*.jar"
);
skipPatterns
.
add
(
"logback-core-*.jar"
);
skipPatterns
.
add
(
"logback-core-*.jar"
);
skipPatterns
.
add
(
"rome-*.jar"
);
skipPatterns
.
add
(
"rome-*.jar"
);
skipPatterns
.
add
(
"slf4j-api-*.jar"
);
skipPatterns
.
add
(
"spring-aop-*.jar"
);
skipPatterns
.
add
(
"spring-aop-*.jar"
);
skipPatterns
.
add
(
"spring-aspects-*.jar"
);
skipPatterns
.
add
(
"spring-aspects-*.jar"
);
skipPatterns
.
add
(
"spring-beans-*.jar"
);
skipPatterns
.
add
(
"spring-beans-*.jar"
);
...
@@ -122,7 +156,6 @@ final class TldPatterns {
...
@@ -122,7 +156,6 @@ final class TldPatterns {
skipPatterns
.
add
(
"snakeyaml-*.jar"
);
skipPatterns
.
add
(
"snakeyaml-*.jar"
);
skipPatterns
.
add
(
"tomcat-embed-el-*.jar"
);
skipPatterns
.
add
(
"tomcat-embed-el-*.jar"
);
skipPatterns
.
add
(
"validation-api-*.jar"
);
skipPatterns
.
add
(
"validation-api-*.jar"
);
skipPatterns
.
add
(
"xml-apis-*.jar"
);
ADDITIONAL_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
ADDITIONAL_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
}
}
...
@@ -135,7 +168,7 @@ final class TldPatterns {
...
@@ -135,7 +168,7 @@ final class TldPatterns {
DEFAULT_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
DEFAULT_SKIP
=
Collections
.
unmodifiableSet
(
skipPatterns
);
}
}
private
static
final
Set
<
String
>
TOMCAT_SCAN
;
static
final
Set
<
String
>
TOMCAT_SCAN
;
static
{
static
{
Set
<
String
>
scanPatterns
=
new
LinkedHashSet
<>();
Set
<
String
>
scanPatterns
=
new
LinkedHashSet
<>();
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TldPatternsTests.java
0 → 100644
View file @
985e5a43
/*
* Copyright 2012-2021 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
*
* https://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
.
web
.
embedded
.
tomcat
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Properties
;
import
java.util.Set
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.util.StringUtils
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link TldPatterns}.
*
* @author Phillip Webb
*/
class
TldPatternsTests
{
@Test
void
tomcatSkipAlignsWithTomcatDefaults
()
throws
IOException
{
assertThat
(
TldPatterns
.
TOMCAT_SKIP
).
containsExactlyInAnyOrderElementsOf
(
getTomcatDefaultJarsToSkip
());
}
@Test
void
tomcatScanAlignsWithTomcatDefaults
()
throws
IOException
{
assertThat
(
TldPatterns
.
TOMCAT_SCAN
).
containsExactlyInAnyOrderElementsOf
(
getTomcatDefaultJarsToScan
());
}
private
Set
<
String
>
getTomcatDefaultJarsToSkip
()
throws
IOException
{
return
getTomcatDefault
(
"tomcat.util.scan.StandardJarScanFilter.jarsToSkip"
);
}
private
Set
<
String
>
getTomcatDefaultJarsToScan
()
throws
IOException
{
return
getTomcatDefault
(
"tomcat.util.scan.StandardJarScanFilter.jarsToScan"
);
}
private
Set
<
String
>
getTomcatDefault
(
String
key
)
throws
IOException
{
ClassLoader
classLoader
=
getClass
().
getClassLoader
();
try
(
InputStream
inputStream
=
classLoader
.
getResource
(
"catalina.properties"
).
openStream
())
{
Properties
properties
=
new
Properties
();
properties
.
load
(
inputStream
);
String
jarsToSkip
=
properties
.
getProperty
(
key
);
return
StringUtils
.
commaDelimitedListToSet
(
jarsToSkip
);
}
}
}
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