1 <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">
2 <modelVersion>4.0.0</modelVersion>
4 <groupId>org.openecomp.sdc.sdc-titan-cassandra</groupId>
5 <artifactId>sdc-titan-cassandra</artifactId>
6 <version>1.0.0-SNAPSHOT</version>
9 <name>SDC Titan-Cassandra: Distributed Graph Database</name>
10 <url>http://thinkaurelius.github.com/titan/</url>
12 <astyanax.version>3.8.0</astyanax.version>
13 <jamm.group>com.github.jbellis</jamm.group>
14 <jamm.version>0.3.0</jamm.version>
15 <test.extra.jvm.opts>-javaagent:${basedir}/target/jamm-${jamm.version}.jar</test.extra.jvm.opts>
16 <default.test.jvm.opts>-Xms1024m -Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError ${test.extra.jvm.opts}</default.test.jvm.opts>
17 <jna.version>4.0.0</jna.version>
18 <test.excluded.groups>com.thinkaurelius.titan.testcategory.MemoryTests,com.thinkaurelius.titan.testcategory.PerformanceTests,com.thinkaurelius.titan.testcategory.BrittleTests</test.excluded.groups>
19 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20 <compiler.source>1.8</compiler.source>
21 <compiler.target>1.8</compiler.target>
23 <sitePath>/content/sites/site/org/openecomp/sdc/sdc-titan-cassandra/${project.version}</sitePath>
24 <nexusServer>https://nexus.onap.org</nexusServer>
25 <nexus.release.repository>releases</nexus.release.repository>
26 <nexus.snapshot.repository>snapshots</nexus.snapshot.repository>
27 <nexus.id.release>ecomp-releases</nexus.id.release>
28 <nexus.id.snapshot>ecomp-snapshots</nexus.id.snapshot>
29 <staging.profile.id>176c31dfe190a</staging.profile.id>
32 <test.skip.ordered>true</test.skip.ordered>
33 <test.skip.unordered>true</test.skip.unordered>
34 <test.skip.ssl>true</test.skip.ssl>
35 <test.skip.serial>true</test.skip.serial>
42 <groupId>com.thinkaurelius.titan</groupId>
43 <artifactId>titan-core</artifactId>
44 <version>1.0.0</version>
47 <groupId>com.thinkaurelius.titan</groupId>
48 <artifactId>titan-test</artifactId>
49 <version>1.0.0</version>
53 <groupId>com.codahale.metrics</groupId>
54 <artifactId>metrics-core</artifactId>
55 <version>3.0.1</version>
58 <groupId>com.carrotsearch</groupId>
59 <artifactId>junit-benchmarks</artifactId>
60 <version>0.7.0</version>
62 <!-- Logging backends.
63 Cassandra 2.1+ moved to Logback. Titan is logging-backend-agnostic,
64 but still uses Log4j in testing. The slf4j binding for logback is,
65 inconveniently, packed into the logback-classic artifact. This means
66 the binding can't easily be removed from the classpath without losing
67 logback-classic or inserting some hack to mess with the jar contents.
68 We can't lose logback-classic because StorageProxy contains hardcoded
69 references to some of its classes (it contains some methods to change
70 logback loglevels at runtime). Hence, to stick with Log4j, the
71 least-worst approach is to enforce a classpath ordering constraint: as
72 long as the slf4j-log4j12 binding appears on the classpath before
73 logback-classic, log4j will be used instead of logback. I don't have
74 any special love for log4j, but Titan should use a single logging
75 backend throughout all its tests. I don't want to maintain a mixture
76 of logback.xml and log4j.properties files scattered randomly through
77 the titan-* submodules. Maven populates the classpath elements for
78 tests in pom appearance order. That's why these dependencies are
79 explicitly declared below: to make slf4j-log4j12 preced logback-classic
80 on the test classpath. -->
82 <groupId>org.slf4j</groupId>
83 <artifactId>slf4j-log4j12</artifactId>
84 <version>1.7.5</version>
87 <groupId>ch.qos.logback</groupId>
88 <artifactId>logback-classic</artifactId>
89 <version>1.1.2</version>
91 <!-- End logging backends. -->
93 <groupId>com.carrotsearch.randomizedtesting</groupId>
94 <artifactId>randomizedtesting-runner</artifactId>
95 <version>2.0.8</version>
98 JNA is not required to run Cassandra, but it improves
99 efficiency of certain of Cassandra's filesystem and memory
100 operations. DataStax describes JNA as "required for
101 production installations":
103 http://www.datastax.com/docs/1.2/install/install_jre
106 <groupId>net.java.dev.jna</groupId>
107 <artifactId>jna</artifactId>
108 <version>${jna.version}</version>
109 <optional>true</optional>
112 <groupId>org.apache.cassandra</groupId>
113 <artifactId>cassandra-all</artifactId>
114 <version>2.1.9</version>
115 <!-- The version is controlled in <dependencyManagement> in the parent pom -->
118 <groupId>commons-pool</groupId>
119 <artifactId>commons-pool</artifactId>
120 <version>1.6</version>
123 <groupId>com.netflix.astyanax</groupId>
124 <artifactId>astyanax-core</artifactId>
125 <version>${astyanax.version}</version>
128 <groupId>com.netflix.astyanax</groupId>
129 <artifactId>astyanax-thrift</artifactId>
130 <version>${astyanax.version}</version>
133 <groupId>com.netflix.astyanax</groupId>
134 <artifactId>astyanax-cassandra</artifactId>
135 <version>${astyanax.version}</version>
138 <groupId>com.netflix.astyanax</groupId>
139 <artifactId>astyanax-recipes</artifactId>
140 <version>${astyanax.version}</version>
143 <groupId>org.xerial.snappy</groupId>
144 <artifactId>snappy-java</artifactId>
145 <version>1.0.5-M3</version>
153 <directory>${basedir}/src/main/resources</directory>
154 <filtering>true</filtering>
159 <directory>${basedir}/src/test/resources</directory>
165 <artifactId>maven-resources-plugin</artifactId>
166 <version>2.6</version>
169 <id>filter-cassandra-bop-config</id>
170 <phase>process-test-resources</phase>
172 <goal>copy-resources</goal>
175 <outputDirectory>${project.build.directory}/cassandra/conf/localhost-bop</outputDirectory>
177 <filter>${basedir}/config/cassandra-filters/localhost-bop.properties</filter>
181 <directory>${basedir}/config/cassandra</directory>
182 <filtering>true</filtering>
188 <id>filter-cassandra-murmur-config</id>
189 <phase>process-test-resources</phase>
191 <goal>copy-resources</goal>
194 <outputDirectory>${project.build.directory}/cassandra/conf/localhost-murmur</outputDirectory>
196 <filter>${basedir}/config/cassandra-filters/localhost-murmur.properties</filter>
200 <directory>${basedir}/config/cassandra</directory>
201 <filtering>true</filtering>
207 <id>filter-cassandra-murmur-ssl-config</id>
208 <phase>process-test-resources</phase>
210 <goal>copy-resources</goal>
213 <outputDirectory>${project.build.directory}/cassandra/conf/localhost-murmur-ssl</outputDirectory>
215 <filter>${basedir}/config/cassandra-filters/localhost-murmur-ssl.properties</filter>
219 <directory>${basedir}/config/cassandra</directory>
220 <filtering>true</filtering>
226 <!-- Need this to avoid corrupting the test keystore with nonsensical macro replacements -->
227 <id>filter-cassandra-murmur-ssl-config-static</id>
228 <phase>process-test-resources</phase>
230 <goal>copy-resources</goal>
233 <outputDirectory>${project.build.directory}/cassandra/conf/localhost-murmur-ssl</outputDirectory>
236 <directory>${basedir}/config/static</directory>
237 <filtering>false</filtering>
245 <artifactId>maven-surefire-plugin</artifactId>
246 <version>2.15</version>
249 <!-- Run by "mvn test" -->
250 <id>default-test</id>
254 <!-- Run by "mvn org.apache.maven.plugins:maven-surefire-plugin:test"
256 Sonar does this when running JaCoCo and
257 provides no configuration option to
258 change its behavior. Define a safe
259 configuration for JaCoCo to use when run
260 by Sonar. This doesn't have to be fast,
261 since it's only used for dynamic
262 analysis, but it does have to cover all
269 <include>Nope.java</include>
272 <exclude>**/*</exclude>
275 <reuseForks>false</reuseForks>
276 <threadCount>1</threadCount>
277 <perCoreThreadCount>false</perCoreThreadCount>
278 <runOrder>random</runOrder>
288 <argLine>${default.test.jvm.opts} -Dtest.cassandra.confdir=${project.build.directory}/cassandra/conf/localhost-bop -Dtest.cassandra.datadir=${project.build.directory}/cassandra/data/localhost-bop</argLine>
289 <excludedGroups>${test.excluded.groups},com.thinkaurelius.titan.testcategory.UnorderedKeyStoreTests,com.thinkaurelius.titan.testcategory.SerialTests,com.thinkaurelius.titan.testcategory.CassandraSSLTests</excludedGroups>
291 <forkCount>1</forkCount>
292 <reuseForks>false</reuseForks>
293 <parallel>classes</parallel>
294 <perCoreThreadCount>true</perCoreThreadCount>
295 <threadCount>2</threadCount>
296 <runOrder>random</runOrder>
297 <reportNameSuffix>bop</reportNameSuffix>
298 <skip>${test.skip.ordered}</skip>
308 <argLine>${default.test.jvm.opts} -Dtest.cassandra.confdir=${project.build.directory}/cassandra/conf/localhost-murmur -Dtest.cassandra.datadir=${project.build.directory}/cassandra/data/localhost-murmur</argLine>
309 <excludedGroups>${test.excluded.groups},com.thinkaurelius.titan.testcategory.OrderedKeyStoreTests,com.thinkaurelius.titan.testcategory.SerialTests,com.thinkaurelius.titan.testcategory.CassandraSSLTests</excludedGroups>
311 <forkCount>1</forkCount>
312 <reuseForks>false</reuseForks>
313 <parallel>classes</parallel>
314 <perCoreThreadCount>true</perCoreThreadCount>
315 <threadCount>2</threadCount>
316 <runOrder>random</runOrder>
317 <reportNameSuffix>murmur</reportNameSuffix>
318 <skip>${test.skip.unordered}</skip>
328 <argLine>${default.test.jvm.opts} -Dtest.cassandra.confdir=${project.build.directory}/cassandra/conf/localhost-murmur-ssl -Dtest.cassandra.datadir=${project.build.directory}/cassandra/data/localhost-murmur-ssl</argLine>
330 <groups>com.thinkaurelius.titan.testcategory.CassandraSSLTests</groups>
331 <!-- The TP3 JUnit Suite/Runner ignores groups/@Category and I'm not sure why. Redundant excludes to keep TP3 tests from using non-SSL configs on SSL -->
333 <exclude>**/*ComputerTest.java</exclude>
334 <exclude>**/*StructureTest.java</exclude>
335 <exclude>**/*ProcessTest.java</exclude>
337 <forkCount>1</forkCount>
338 <reuseForks>false</reuseForks>
339 <parallel>classes</parallel>
340 <perCoreThreadCount>true</perCoreThreadCount>
341 <threadCount>1</threadCount>
342 <runOrder>random</runOrder>
343 <reportNameSuffix>ssl</reportNameSuffix>
344 <skip>${test.skip.ssl}</skip>
354 <argLine>${default.test.jvm.opts} -Dtest.cassandra.confdir=${project.build.directory}/cassandra/conf/localhost-murmur -Dtest.cassandra.datadir=${project.build.directory}/cassandra/data/localhost-murmur</argLine>
356 <groups>com.thinkaurelius.titan.testcategory.SerialTests</groups>
357 <forkCount>1</forkCount>
358 <reuseForks>false</reuseForks>
359 <parallel>none</parallel>
360 <perCoreThreadCount>false</perCoreThreadCount>
361 <threadCount>1</threadCount>
362 <runOrder>alphabetical</runOrder>
363 <reportNameSuffix>serial</reportNameSuffix>
364 <skip>${test.skip.serial}</skip>
370 <artifactId>maven-dependency-plugin</artifactId>
372 <!-- Provide Java Memory Meter for Cassandra. Cassandra logs warnings if JAMM
373 is not available. Also, production Cassandra deployments will probably use JAMM,
374 so we might as well include it in our test configuration. -->
377 <phase>process-resources</phase>
384 <groupId>${jamm.group}</groupId>
385 <artifactId>jamm</artifactId>
386 <version>${jamm.version}</version>
387 <outputDirectory>${project.build.directory}</outputDirectory>
395 <artifactId>maven-jar-plugin</artifactId>
396 <version>2.4</version>
399 <id>pack-test-jar</id>
400 <!-- prepare-package instead of package forces it to get signed -->
401 <phase>prepare-package</phase>
403 <goal>test-jar</goal>
409 <groupId>org.sonatype.plugins</groupId>
410 <artifactId>nexus-staging-maven-plugin</artifactId>
411 <version>1.6.7</version>
412 <extensions>true</extensions>
414 <nexusUrl>${nexusServer}</nexusUrl>
415 <stagingProfileId>${staging.profile.id}</stagingProfileId>
416 <serverId>ecomp-staging</serverId>
419 <!-- ================================================== -->
420 <!-- Set the JDK compiler version. -->
421 <!-- ================================================== -->
423 <groupId>org.apache.maven.plugins</groupId>
424 <artifactId>maven-compiler-plugin</artifactId>
425 <version>2.5.1</version>
426 <inherited>true</inherited>
439 <activeByDefault>false</activeByDefault>
443 <test.extra.jvm.opts>${jacoco.opts} -javaagent:${basedir}/target/jamm-${jamm.version}.jar</test.extra.jvm.opts>
447 <distributionManagement>
449 <id>${nexus.id.snapshot}</id>
450 <name>repository-snapshots</name>
451 <url>${nexusServer}/content/repositories/${nexus.snapshot.repository}/</url>
452 </snapshotRepository>
454 <id>${nexus.id.release}</id>
455 <name>repository-releases</name>
456 <url>${nexusServer}/content/repositories/${nexus.release.repository}/</url>
460 <url>dav:${nexusServer}${sitePath}</url>
462 </distributionManagement>