Project

General

Profile

Download (13.1 KB) Statistics
| Branch: | Tag: | Revision:
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.32.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
    <dependency>
183
      <groupId>xpp3</groupId>
184
      <artifactId>xpp3</artifactId>
185
    </dependency>
186

    
187
    <!-- swagger -->
188
    <dependency>
189
      <groupId>io.springfox</groupId>
190
      <artifactId>springfox-swagger2</artifactId>
191
      <scope>test</scope>
192
    </dependency>
193
    <!-- dependencies for springfox-swagger2, added explicitly to pin the 
194
      version these dependencies are also required by the cdmlib! -->
195
    <dependency>
196
      <groupId>com.fasterxml.jackson.core</groupId>
197
      <artifactId>jackson-databind</artifactId>
198
    </dependency>
199
    <dependency>
200
      <groupId>com.fasterxml.jackson.core</groupId>
201
      <artifactId>jackson-core</artifactId>
202
    </dependency>
203
    <!-- needed here? It is already mentioned in cdmlib-model -->
204
    <dependency>
205
      <groupId>com.fasterxml.jackson.core</groupId>
206
      <artifactId>jackson-annotations</artifactId>
207
    </dependency>
208
    <!-- END of dependencies for swagger-springmvc, added explicitely -->
209

    
210
    <!-- testing -->
211
    <dependency>
212
      <groupId>junit</groupId>
213
      <artifactId>junit</artifactId>
214
      <scope>test</scope>
215
    </dependency>
216

    
217
    <!-- Connection Pooling and jdbc -->
218
    <dependency>
219
      <groupId>org.hibernate</groupId>
220
      <artifactId>hibernate-c3p0</artifactId>
221
      <scope>test</scope>
222
    </dependency>
223
    <!-- <dependency> -->
224
    <!-- <groupId>com.mchange</groupId> -->
225
    <!-- <artifactId>c3p0</artifactId> -->
226
    <!-- <scope>test</scope> -->
227
    <!-- </dependency> -->
228
    <!-- Profiling -->
229
    <dependency>
230
      <groupId>com.yourkit</groupId>
231
      <artifactId>yjp-controller-api-redist</artifactId>
232
      <scope>test</scope>
233
    </dependency>
234
  </dependencies>
235

    
236
  <build>
237
    <resources>
238
      <resource>
239
        <!-- replace the place holders like ${...} in datasources.xml -->
240
        <filtering>true</filtering>
241
        <directory>src/test/resources</directory>
242
        <targetPath>../test-classes</targetPath>
243
        <includes>
244
          <include>datasources.xml</include>
245
        </includes>
246
      </resource>
247
      <resource>
248
        <!-- all other test resources without filtering -->
249
        <directory>src/test/resources</directory>
250
        <targetPath>../test-classes</targetPath>
251
        <excludes>
252
          <exclude>datasources.xml</exclude>
253
        </excludes>
254
      </resource>
255
      <resource>
256
        <!-- all main resources without filtering -->
257
        <directory>src/main/resources</directory>
258
      </resource>
259
    </resources>
260
    <plugins>
261
      <plugin>
262
        <groupId>org.eclipse.jetty</groupId>
263
        <artifactId>jetty-maven-plugin</artifactId>
264
        <version>9.4.15.v20190215</version>
265
        <configuration>
266
          <stopKey>stop</stopKey>
267
          <stopPort>9199</stopPort>
268
          <scanIntervalSeconds>10</scanIntervalSeconds>
269
          <useTestScope>true</useTestScope>
270
          <!-- jvmArgs will only be used when running mvn jetty:run-forked -->
271
          <jvmArgs>-Xmx2000M 
272
            -Dcdm.datasource=${integrationTest.jvmArgs.cdm.datasource}
273
            -Duser.home=${basedir}/target/target/
274
            -Dcdm.beanDefinitionFile=${project.build.directory}/test-classes/datasources.xml
275
            -Dspring.profiles.active=remoting
276
            -Dcdm.forceSchemaCreate=${integrationTest.jvmArgs.cdm.forceSchemaCreate}
277
            -Dlog4j.configuration=${integrationTest.jvmArgs.log4j.configuration}
278
            -Dorg.eclipse.jetty.annotations.AnnotationParser.LEVEL=OFF
279
           </jvmArgs>
280
          <jettyXml>${basedir}/src/test/resources/etc/jetty/jetty.xml,${basedir}/src/test/resources/etc/jetty/jetty-http.xml</jettyXml>
281
          <!-- <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> -->
282
          <systemProperties>
283
            <force>true</force>
284
            <systemProperty>
285
              <name>cdm.datasource</name>
286
              <value>${integrationTest.jvmArgs.cdm.datasource}</value>
287
            </systemProperty>
288
            <systemProperty>
289
              <!-- The lucene index should be placed into the target folder, 
290
                so user.home needs to be set to this folder. user.home needs to be overridden 
291
                since it already exists, thus the force option is turned on above -->
292
              <name>user.home</name>
293
              <value>${basedir}/target/</value>
294
            </systemProperty>
295
            <systemProperty>
296
              <!-- datasources.xml is prepared by <plugins><resources>..</resources> above -->
297
              <name>cdm.beanDefinitionFile</name>
298
              <value>${project.build.directory}/test-classes/datasources.xml</value>
299
            </systemProperty>
300
            <systemProperty>
301
                <name>cdm.forceSchemaCreate</name>
302
                <value>${integrationTest.jvmArgs.cdm.forceSchemaCreate}</value>
303
            </systemProperty>
304
            <systemProperty>
305
              <!-- start with swagger profile so that the swagger doc can 
306
                be generated -->
307
              <name>spring.profiles.active</name>
308
              <value>swagger</value>
309
            </systemProperty>
310
            <systemProperty>
311
                <name>log4j.configuration</name>
312
                <value>${integrationTest.jvmArgs.log4j.configuration}</value>
313
            </systemProperty>
314
          </systemProperties>
315
        </configuration>
316
        <executions>
317
          <execution>
318
            <id>start-jetty</id>
319
            <phase>pre-integration-test</phase>
320
            <goals>
321
              <goal>start</goal>
322
            </goals>
323
            <configuration>
324
              <scanIntervalSeconds>0</scanIntervalSeconds>
325
              <daemon>true</daemon>
326
            </configuration>
327
          </execution>
328
          <execution>
329
            <id>stop-jetty</id>
330
            <phase>post-integration-test</phase>
331
            <goals>
332
              <goal>stop</goal>
333
            </goals>
334
          </execution>
335
        </executions>
336
      </plugin>
337
      <plugin>
338
        <groupId>org.apache.maven.plugins</groupId>
339
        <artifactId>maven-war-plugin</artifactId>
340
        <version>3.3.2</version>
341
        <executions>
342
          <execution>
343
            <!-- The war must be created after running the integration-tests, 
344
              since the SwaggerGroupsIT test populates the classes/api-docs-static/ folder 
345
              with static swagger doc files. They are otherwise not packed into the war 
346
              file. -->
347
            <phase>verify</phase>
348
            <goals>
349
              <goal>war</goal>
350
            </goals>
351
          </execution>
352
        </executions>
353
      </plugin>
354
      <plugin>
355
        <artifactId>maven-resources-plugin</artifactId>
356
        <version>3.2.0</version>
357
        <configuration>
358
          <escapeWindowsPaths>false</escapeWindowsPaths>
359
        </configuration>
360
      </plugin>
361
    </plugins>
362
  </build>
363
</project>
(3-3/3)