rocksdb/java/rocksjni.pom

199 lines
8.2 KiB
Plaintext
Raw Normal View History

2014-10-02 20:47:07 +00:00
<?xml version="1.0" encoding="UTF-8"?>
2014-11-02 00:08:41 +00:00
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<name>RocksDB JNI</name>
<url>http://rocksdb.org/</url>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<!-- Version will be automatically replaced -->
<version>-</version>
2014-11-02 00:08:41 +00:00
<description>RocksDB fat jar that contains .so files for linux32 and linux64, and jnilib files
for Mac OSX.
</description>
<licenses>
<license>
<name>Apache License 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/dropwizard/metrics.git</connection>
<developerConnection>scm:git:git@github.com:dropwizard/metrics.git</developerConnection>
<url>http://github.com/dropwizard/metrics/</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<name>Facebook</name>
<email>help@facebook.com</email>
<timezone>America/New_York</timezone>
<roles>
<role>architect</role>
</roles>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<!-- Use custom maven folder layout -->
<!-- Set folder for src root -->
<sourceDirectory>${project.basedir}</sourceDirectory>
<!-- main resources, nothing shall be excluded -->
<resources>
<resource>
<directory>${project.basedir}</directory>
<excludes>
<exclude>**/*</exclude>
</excludes>
</resource>
</resources>
<!-- Set folder for test root -->
<testSourceDirectory>${project.basedir}</testSourceDirectory>
<!-- Bring libraries on classpath -->
<testResources>
<testResource>
<directory>${project.basedir}</directory>
<includes>
<include>*.so</include>
<include>*.jar</include>
<include>*.jnilib</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<!-- Exclude all tests from classes -->
<excludes>
<!-- Exclude Sample -->
<exclude>*.java</exclude>
<!-- Exclude Benchmark -->
<exclude>org/rocksdb/benchmark/*.java</exclude>
<!-- Exclude Tests -->
<exclude>org/rocksdb/test/*.java</exclude>
<exclude>org/rocksdb/WriteBatchTest.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<configuration>
<!-- Include only tests in test-classes -->
<testExcludes>
<!-- Exclude everything but WriteBatchTest -->
<exclude>%regex[org/rocksdb/[^WriteBatchTest].*java]</exclude>
<!-- Exclude WriteBatchTest -->
<exclude>*.java</exclude>
<!-- Exclude Benchmark -->
<exclude>org/rocksdb/benchmark/*.java</exclude>
<!-- Exclude Utilities -->
<exclude>org/rocksdb/util/*.java</exclude>
</testExcludes>
<testIncludes>
<!-- Include Tests -->
<include>org/rocksdb/test/*.java</include>
</testIncludes>
</configuration>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<argLine>${argLine} -Xcheck:jni</argLine>
2014-11-02 00:08:41 +00:00
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
[RocksJava] Test-framework integration Summary: As we had the discussion some weeks ago. Java needs a test framework and should support code coverage analysis. This pull request includes: Move Tests from main method functionality to Junit4 Move WriteBatchTest to test package Adjust the Makefile to run Junit4 Download dependencies from Make (once if not-present) Adjustment of the rocksjni.pom to run coverage analysis using jacoco Javadoc excludes now tests Two bugfixes regarding GC cleanup which came up within the test runs Make can be used as beforehand to build and run RocksJava. make test runs tests using the command-line version of Junit4. Maven can be used to retrieve code coverage reports using mvn -f rocksjni.pom package. Code coverage reports can then be found as usual in the site folder. Testing libraries available within Java Junit4 (incl. hamcrest-core dependency) AssertJ (providing fluent syntax for assertions, cglib dependency) Mockito to provide mocktests Libraries as said before are not statically within this commit or filesystem instead they are downloaded using curl. Make checks if files are present, if so it will perform tests without downloading the libraries again. Note: Libraries are only necessary to compile & run tests. Next steps after merge: Get the maven build into travis-ci and coveralls.io Filling up the missing test spots (based on coverage data) Test Plan: make rocksdbjava make jtest Reviewers: yhchiang, ankgup87, adamretter Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D28209
2014-11-02 23:11:01 +00:00
<version>0.7.2.201409121644</version>
2014-11-02 00:08:41 +00:00
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<defaults>
<name>Xenu</name>
</defaults>
<source>
String fileContents = new File("${project.basedir}/../include/rocksdb/version.h").getText('UTF-8')
matcher = (fileContents =~ /(?s).*ROCKSDB_MAJOR ([0-9]+).*?/)
String major_version = matcher.getAt(0).getAt(1)
matcher = (fileContents =~ /(?s).*ROCKSDB_MINOR ([0-9]+).*?/)
String minor_version = matcher.getAt(0).getAt(1)
matcher = (fileContents =~ /(?s).*ROCKSDB_PATCH ([0-9]+).*?/)
String patch_version = matcher.getAt(0).getAt(1)
String version = String.format('%s.%s.%s', major_version, minor_version, patch_version)
// Set version to be used in pom.properties
project.version = version
// Set version to be set as jar name
project.build.finalName = project.artifactId + "-" + version
</source>
</configuration>
</execution>
</executions>
</plugin>
2014-11-02 00:08:41 +00:00
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12-beta-2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
2014-11-02 00:08:41 +00:00
</dependency>
</dependencies>
2014-10-02 20:47:07 +00:00
</project>