updating poms for 5.34.0-SNAPSHOT development
[cdmlib.git] / cdmlib-remote-webapp / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3 <modelVersion>4.0.0</modelVersion>
4 <parent>
5 <artifactId>cdmlib-parent</artifactId>
6 <groupId>eu.etaxonomy</groupId>
7 <version>5.34.0-SNAPSHOT</version>
8 <relativePath>../pom.xml</relativePath>
9 </parent>
10 <artifactId>cdmlib-remote-webapp</artifactId>
11 <name>CDM Remote Webapp</name>
12 <packaging>war</packaging>
13
14 <properties>
15 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16 <!-- by default
17 no further args by now, see profiles for alternative run configurations -->
18 </properties>
19
20 <profiles>
21 <profile>
22 <id>local-repository</id>
23 <activation>
24 <property>
25 <name>localrepo</name>
26 </property>
27 </activation>
28 <repositories>
29 <repository>
30 <id>EditLocalRepository</id>
31 <url>file://${localrepo}/eu/etaxonomy/</url>
32 <releases>
33 <enabled>false</enabled>
34 <updatePolicy>always</updatePolicy>
35 </releases>
36 <snapshots>
37 <enabled>true</enabled>
38 <updatePolicy>always</updatePolicy>
39 </snapshots>
40 </repository>
41 </repositories>
42 </profile>
43 <!-- ========================= PROFILE : db-create ========================= -->
44 <!-- How to execute from parent project:
45 1.) mvn package -DskipTests
46 2.) mvn integration-test -pl cdmlib-remote-webapp -Pdb-create
47 -->
48 <profile>
49 <id>db-create</id>
50 <activation>
51 <property>
52 <name>db-create</name>
53 </property>
54 </activation>
55 <properties>
56 <integrationTest.jvmArgs.cdm.datasource>h2_cdm_blank</integrationTest.jvmArgs.cdm.datasource>
57 <integrationTest.jvmArgs.cdm.forceSchemaCreate>true</integrationTest.jvmArgs.cdm.forceSchemaCreate>
58 <integrationTest.jvmArgs.log4j.configuration>${project.build.directory}/target/test-classes/log4j.xml</integrationTest.jvmArgs.log4j.configuration>
59 </properties>
60 <build>
61 <plugins>
62 <plugin>
63 <artifactId>maven-failsafe-plugin</artifactId>
64 <version>2.22.2</version>
65 <configuration>
66 <forkCount>3</forkCount>
67 <reuseForks>true</reuseForks>
68 </configuration>
69 <executions>
70 <execution>
71 <goals>
72 <goal>integration-test</goal>
73 <goal>verify</goal>
74 </goals>
75 <configuration>
76 <includes>
77 <include>**/ForceSchemaCreateIT.java</include>
78 </includes>
79 </configuration>
80 </execution>
81 </executions>
82 </plugin>
83 </plugins>
84 </build>
85 </profile>
86 <!-- ========================= DEFAULT-PROFILE : db-use ========================= -->
87 <profile>
88 <id>db-use</id>
89 <activation>
90 <activeByDefault>true</activeByDefault>
91 <property>
92 <name>db-use</name>
93 </property>
94 </activation>
95 <properties>
96 <integrationTest.jvmArgs.cdm.datasource>h2_cdmTest</integrationTest.jvmArgs.cdm.datasource>
97 <integrationTest.jvmArgs.cdm.forceSchemaCreate>false</integrationTest.jvmArgs.cdm.forceSchemaCreate>
98 <integrationTest.log4j.configuration>${project.build.directory}/target/test-classes/log4j.properties</integrationTest.log4j.configuration>
99 </properties>
100 <build>
101 <plugins>
102 <plugin>
103 <artifactId>maven-failsafe-plugin</artifactId>
104 <version>2.22.2</version>
105 <configuration>
106 <forkCount>3</forkCount>
107 <reuseForks>true</reuseForks>
108 </configuration>
109 <executions>
110 <execution>
111 <goals>
112 <goal>integration-test</goal>
113 <goal>verify</goal>
114 </goals>
115 <configuration>
116 <systemPropertyVariables>
117 <cdm.datasource>h2_cdmTest</cdm.datasource>
118 </systemPropertyVariables>
119 <excludes>
120 <exclude>**/ForceSchemaCreateIT.java</exclude>
121 </excludes>
122 </configuration>
123 </execution>
124 </executions>
125 </plugin>
126 </plugins>
127 </build>
128 </profile>
129 </profiles>
130 <dependencies>
131 <dependency>
132 <groupId>eu.etaxonomy</groupId>
133 <artifactId>cdmlib-remote</artifactId>
134 <exclusions>
135 <!-- exclude all jdbc drivers from the war. Jdbc drivers must only
136 be added to {APPLICATION_CONTAINER}/lib see https://dev.e-taxonomy.eu/redmine/issues/4955
137 and https://stackoverflow.com/questions/6981564/why-must-the-jdbc-driver-be-put-in-tomcat-home-lib-folder -->
138 <exclusion>
139 <groupId>eu.etaxonomy</groupId>
140 <artifactId>cdmlib-db</artifactId>
141 </exclusion>
142 </exclusions>
143 </dependency>
144 <dependency>
145 <groupId>eu.etaxonomy</groupId>
146 <artifactId>cdmlib-test</artifactId>
147 <scope>test</scope>
148 </dependency>
149 <dependency>
150 <!-- TODO this is also offered by cdmlib-remote, can it be removed?
151 What does provided mean? -->
152 <groupId>javax.servlet</groupId>
153 <artifactId>javax.servlet-api</artifactId>
154 <scope>provided</scope>
155 </dependency>
156
157 <dependency>
158 <groupId>xmlunit</groupId>
159 <artifactId>xmlunit</artifactId>
160 </dependency>
161 <!-- JsonView -->
162 <!-- -->
163 <dependency>
164 <groupId>org.springframework</groupId>
165 <artifactId>spring-oxm</artifactId>
166 </dependency>
167
168 <!-- XmlView -->
169 <dependency>
170 <!-- this is also offered by cdmlib-remote. Can it be removed? -->
171 <groupId>com.thoughtworks.xstream</groupId>
172 <artifactId>xstream</artifactId>
173 <exclusions>
174 <!-- https://stackoverflow.com/questions/17077922/maven-xpp3-versus-xpp3-min -->
175 <!-- But maybe we can exclude xpp3 instead, not sure if it is directly needed or only for xstream -->
176 <exclusion>
177 <groupId>xpp3</groupId>
178 <artifactId>xpp3_min</artifactId>
179 </exclusion>
180 </exclusions>
181 </dependency>
182
183 <!-- swagger -->
184 <dependency>
185 <groupId>io.springfox</groupId>
186 <artifactId>springfox-swagger2</artifactId>
187 <scope>test</scope>
188 </dependency>
189 <!-- dependencies for springfox-swagger2, added explicitly to pin the
190 version these dependencies are also required by the cdmlib! -->
191 <dependency>
192 <groupId>com.fasterxml.jackson.core</groupId>
193 <artifactId>jackson-databind</artifactId>
194 </dependency>
195 <dependency>
196 <groupId>com.fasterxml.jackson.core</groupId>
197 <artifactId>jackson-core</artifactId>
198 </dependency>
199 <!-- needed here? It is already mentioned in cdmlib-model -->
200 <dependency>
201 <groupId>com.fasterxml.jackson.core</groupId>
202 <artifactId>jackson-annotations</artifactId>
203 </dependency>
204 <!-- END of dependencies for swagger-springmvc, added explicitely -->
205
206 <!-- testing -->
207 <dependency>
208 <groupId>junit</groupId>
209 <artifactId>junit</artifactId>
210 <scope>test</scope>
211 </dependency>
212
213 <!-- Connection Pooling and jdbc -->
214 <dependency>
215 <groupId>org.hibernate</groupId>
216 <artifactId>hibernate-c3p0</artifactId>
217 <scope>test</scope>
218 </dependency>
219 <!-- <dependency> -->
220 <!-- <groupId>com.mchange</groupId> -->
221 <!-- <artifactId>c3p0</artifactId> -->
222 <!-- <scope>test</scope> -->
223 <!-- </dependency> -->
224 <!-- Profiling -->
225 <dependency>
226 <groupId>com.yourkit</groupId>
227 <artifactId>yjp-controller-api-redist</artifactId>
228 <scope>test</scope>
229 </dependency>
230 </dependencies>
231
232 <build>
233 <resources>
234 <resource>
235 <!-- replace the place holders like ${...} in datasources.xml -->
236 <filtering>true</filtering>
237 <directory>src/test/resources</directory>
238 <targetPath>../test-classes</targetPath>
239 <includes>
240 <include>datasources.xml</include>
241 </includes>
242 </resource>
243 <resource>
244 <!-- all other test resources without filtering -->
245 <directory>src/test/resources</directory>
246 <targetPath>../test-classes</targetPath>
247 <excludes>
248 <exclude>datasources.xml</exclude>
249 </excludes>
250 </resource>
251 <resource>
252 <!-- all main resources without filtering -->
253 <directory>src/main/resources</directory>
254 </resource>
255 </resources>
256 <plugins>
257 <plugin>
258 <groupId>org.eclipse.jetty</groupId>
259 <artifactId>jetty-maven-plugin</artifactId>
260 <version>9.4.15.v20190215</version>
261 <configuration>
262 <stopKey>stop</stopKey>
263 <stopPort>9199</stopPort>
264 <scanIntervalSeconds>10</scanIntervalSeconds>
265 <useTestScope>true</useTestScope>
266 <!-- jvmArgs will only be used when running mvn jetty:run-forked -->
267 <jvmArgs>-Xmx2000M
268 -Dcdm.datasource=${integrationTest.jvmArgs.cdm.datasource}
269 -Duser.home=${basedir}/target/target/
270 -Dcdm.beanDefinitionFile=${project.build.directory}/test-classes/datasources.xml
271 -Dspring.profiles.active=remoting
272 -Dcdm.forceSchemaCreate=${integrationTest.jvmArgs.cdm.forceSchemaCreate}
273 -Dlog4j.configuration=${integrationTest.jvmArgs.log4j.configuration}
274 -Dorg.eclipse.jetty.annotations.AnnotationParser.LEVEL=OFF
275 </jvmArgs>
276 <jettyXml>${basedir}/src/test/resources/etc/jetty/jetty.xml,${basedir}/src/test/resources/etc/jetty/jetty-http.xml</jettyXml>
277 <!-- <jettyXml>./src/test/resources/etc/jetty/jetty.xml,./src/test/resources/etc/jetty/jetty-http.xml,./src/test/resources/etc/jetty/jetty-ssl.xml,./src/test/resources/etc/jetty/jetty-https.xml</jettyXml> -->
278 <systemProperties>
279 <force>true</force>
280 <systemProperty>
281 <name>cdm.datasource</name>
282 <value>${integrationTest.jvmArgs.cdm.datasource}</value>
283 </systemProperty>
284 <systemProperty>
285 <!-- The lucene index should be placed into the target folder,
286 so user.home needs to be set to this folder. user.home needs to be overridden
287 since it already exists, thus the force option is turned on above -->
288 <name>user.home</name>
289 <value>${basedir}/target/</value>
290 </systemProperty>
291 <systemProperty>
292 <!-- datasources.xml is prepared by <plugins><resources>..</resources> above -->
293 <name>cdm.beanDefinitionFile</name>
294 <value>${project.build.directory}/test-classes/datasources.xml</value>
295 </systemProperty>
296 <systemProperty>
297 <name>cdm.forceSchemaCreate</name>
298 <value>${integrationTest.jvmArgs.cdm.forceSchemaCreate}</value>
299 </systemProperty>
300 <systemProperty>
301 <!-- start with swagger profile so that the swagger doc can
302 be generated -->
303 <name>spring.profiles.active</name>
304 <value>swagger</value>
305 </systemProperty>
306 <systemProperty>
307 <name>log4j.configuration</name>
308 <value>${integrationTest.jvmArgs.log4j.configuration}</value>
309 </systemProperty>
310 </systemProperties>
311 </configuration>
312 <executions>
313 <execution>
314 <id>start-jetty</id>
315 <phase>pre-integration-test</phase>
316 <goals>
317 <goal>start</goal>
318 </goals>
319 <configuration>
320 <scanIntervalSeconds>0</scanIntervalSeconds>
321 <daemon>true</daemon>
322 </configuration>
323 </execution>
324 <execution>
325 <id>stop-jetty</id>
326 <phase>post-integration-test</phase>
327 <goals>
328 <goal>stop</goal>
329 </goals>
330 </execution>
331 </executions>
332 </plugin>
333 <plugin>
334 <groupId>org.apache.maven.plugins</groupId>
335 <artifactId>maven-war-plugin</artifactId>
336 <version>3.3.2</version>
337 <executions>
338 <execution>
339 <!-- The war must be created after running the integration-tests,
340 since the SwaggerGroupsIT test populates the classes/api-docs-static/ folder
341 with static swagger doc files. They are otherwise not packed into the war
342 file. -->
343 <phase>verify</phase>
344 <goals>
345 <goal>war</goal>
346 </goals>
347 </execution>
348 </executions>
349 </plugin>
350 <plugin>
351 <artifactId>maven-resources-plugin</artifactId>
352 <version>3.2.0</version>
353 <configuration>
354 <escapeWindowsPaths>false</escapeWindowsPaths>
355 </configuration>
356 </plugin>
357 </plugins>
358 </build>
359 </project>