/
pom.xml
145 lines (123 loc) · 6.07 KB
/
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.glassfish.jersey.tests.memleaks.redeployment</groupId>
<artifactId>project</artifactId>
<version>2.30-SNAPSHOT</version>
</parent>
<artifactId>redeployment-no-jersey-app</artifactId>
<packaging>war</packaging>
<name>jersey-tests-memleak-redeployment-no-jersey-app</name>
<description>
Reproducer of HK2-247, HK2-264
On some platforms, redeployment of this application does not cause a memory leak. However, several HK2 instances are left
in the container (referenced from ThreadLocals), which is what is tested (on Tomcat only).
[Execution commands]
Should not fail: mvn -pl :redeployment-no-jersey-app clean install -P tomcat,memleak-redeployment
Should fail: mvn -pl :redeployment-no-jersey-app clean install -P tomcat,memleak-redeployment,memleak-reproducer
</description>
<properties>
<memleak.jvm.maxheap>192m</memleak.jvm.maxheap>
<external.container.contextRoot>no-jersey-service</external.container.contextRoot>
<memleak.redeploy.count>500</memleak.redeploy.count>
<memleak.redeploy.expectedStatus>200</memleak.redeploy.expectedStatus>
<memleak.redeploy.requestPathQuery>${external.container.contextRoot}</memleak.redeploy.requestPathQuery>
</properties>
<profiles>
<profile>
<id>tomcat</id>
<properties>
<memleak.jvm.maxheap>42m</memleak.jvm.maxheap>
<!-- on Tomcat, we can rely on the log record which is detected bellow by maven-enforcer-plugin -->
<memleak.redeploy.count>1</memleak.redeploy.count>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-threadlocals-left-cleaned</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>${phase.redeployment.post-integration-test}</phase>
<configuration>
<!-- assure that Tomcat ThreadLocal memory leak detection messages weren't included in the Tomcat output.
If so, ThreadLocals aren't kept clean and that's what users do not like (see JERSEY-2890). -->
<rules>
<rule implementation="org.glassfish.jersey.test.maven.rule.PatternNotMatchedInFileRule">
<file>${external.container.logFile}</file>
<pattern>
<![CDATA[.*SEVERE.*The web application.*created a ThreadLocal with key.*avoid a probable memory leak.*]]></pattern>
<maxMatchedLines>3</maxMatchedLines>
</rule>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>memleak-reproducer</id>
<properties>
<hk2.version>2.5.0-b30</hk2.version>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.glassfish.jersey.test-framework.maven</groupId>
<artifactId>container-runner-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>${servlet4.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-locator</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-utils</artifactId>
</dependency>
</dependencies>
</project>