Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Project Voldemort maven support #71

Open
wants to merge 8 commits into from
@iladriano
  • Exact version on all dependencies (based on lib/jars)

Allows installation of voldemort jar in local repo, setup eclipse, etc.

@ctasada

Good start point, but I'm missing the junit execution.

@iladriano

I see. If we want to include running tests, this might require more than one project, given that test/unit depends on test/common (and voldemort source itself). A few questions:
Is the project tested using just the tests from test/unit?, what's the prev setup to run these tests?
What about test/integration tests?, when are those tests executed?
Thanks!

@vinothchandar
Collaborator

Looks good. Can we have the ability to invoke junit and junit-all ant targets from maven? We can then pull this in.

@iladriano

Added test/unit tests (which also depend on test/common).

To support this I had to move to a more complex maven reactor build, the reactor defines modules: voldemort-test module was created in order to include test/common source before running test/unit tests. This is how it looks:

voldemort-reactor (maven reactor)
+- voldemort (main project)
+- voldemort-test (test project)

To install the artifact, change to ./reactor/ and run $ mvn install

To setup eclipse, change to ./reactor/ and run $ mvn eclipse:eclipse # Then import voldemort and voldemort-test projects.

To run tests, change to ./reactor/ and run: $ mvn test

Running the tests stops at "voldemort.server.gossip.GossiperTest"...

@voldemort
Owner

Thanks for contributing back. The team is trying to finish a few projects at this time. Once people are freed up, we will work on this pull request.

@astubbs

+1, IMO do this, not the IVY integration

@astubbs

Needs javadoc and source publication as well

@astubbs

Also needs /src added to resources list

@abh1nay abh1nay was assigned
@aaronjwhiteside

Is this going anywhere?

@aaronjwhiteside

Sounds great, when can we expect that to land?

I'm not really fussed about maven vs gradle - I'm concerned with getting Voldemort artifacts upload somewhere public, so I can use them as maven dependencies, instead of building and manually redeploying/packaging every release to our company 3rdparty repo.

Does this build system change include splitting out the client, server and common packages into separate modules?

@vinothchandar
Collaborator

@abh1nay can probably answer this with more context..

@hamsterready

Would be really nice to have so that adding single dependency in maven would let one start with client/server-based dev ;(

@zsxwing

+1. Is this still in your plan? It would be really convenient to let someone get involved in Voldemort and contribute.

@vinothchandar
Collaborator

@hamsterready @zsxwing please refer to this thread https://groups.google.com/forum/?fromgroups=#!topic/project-voldemort/pXc2hj2Sbrg . Right now, the problem is we need to freeze master for a couple weeks to get this done (changing to maven itself might take only a day or two, then need to make sure this plays well with release process within linkedin). We are not in a position to freeze master now since we are scrambling to make a deadline. (you can look at the rate of commits on master)

@vinothchandar
Collaborator

I totally hear your pain.. We should mavenize this..

@zsxwing

Thanks for your reply. Got it. I'm looking forward to seeing Voldemort in a maven repository. BTW, I prefer to gradle:)

@esiqveland

Any news on this?

@arunthirupathi
Collaborator
@wenerme

Any maven coordinate ?

@arunthirupathi
Collaborator
@FelixGV
Collaborator

Yeah, I think it's going to be a requirement that all of Voldemort's dependencies can be gotten via Maven coordinates before Voldemort itself can be published to Maven Central.

I am going to publish Tehuti to Maven Central pretty soon... I've also fixed the Azkaban dependency in the last release so it's pulled from Maven Central instead of from private-libs.

We need to figure out a way to pull the other dependencies from publicly available Maven repos as well, or to eliminate those other dependencies. Like @arunthirupathi said, this is not high-priority for anyone here, so if the community wishes to help in cleaning up the remaining dependencies, that would be great.

-F

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 345 additions and 0 deletions.
  1. +232 −0 pom.xml
  2. +24 −0 reactor/pom.xml
  3. +89 −0 reactor/test/pom.xml
View
232 pom.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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>voldemort</groupId>
+ <artifactId>voldemort-reactor</artifactId>
+ <version>0.90.1</version>
+ <relativePath>./reactor/pom.xml</relativePath>
+ </parent>
+ <groupId>voldemort</groupId>
+ <artifactId>voldemort</artifactId>
+ <version>0.90.1</version>
+ <packaging>jar</packaging>
+
+ <name>${project.artifactId}</name>
+ <description>${project.artifactId}</description>
+ <url>http://project-voldemort.com/</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <sourceDirectory>${basedir}/src/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.8</version>
+ <configuration>
+ <ajdtVersion>none</ajdtVersion>
+ <useProjectReferences>false</useProjectReferences>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cassandra.deps</groupId>
+ <artifactId>avro</artifactId>
+ <version>1.4.0-cassandra-1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.jopt-simple</groupId>
+ <artifactId>jopt-simple</artifactId>
+ <version>3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>3.2.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.iq80.snappy</groupId>
+ <artifactId>snappy</artifactId>
+ <version>0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.thoughtworks.paranamer</groupId>
+ <artifactId>paranamer</artifactId>
+ <version>2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>jline</groupId>
+ <artifactId>jline</artifactId>
+ <version>0.9.94</version>
+ </dependency>
+ <dependency>
+ <groupId>colt</groupId>
+ <artifactId>colt</artifactId>
+ <version>1.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sleepycat</groupId>
+ <artifactId>je</artifactId>
+ <version>4.0.92</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.18</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-pool</groupId>
+ <artifactId>commons-pool</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.ning</groupId>
+ <artifactId>compress-lzf</artifactId>
+ <version>0.9.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.collections</groupId>
+ <artifactId>google-collections</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>1.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.15</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jdmk</groupId>
+ <artifactId>jmxtools</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jmx</groupId>
+ <artifactId>jmxri</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.9.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <version>1.6.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.6</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>2.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cassandra.deps</groupId>
+ <artifactId>libthrift</artifactId>
+ <version>0.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.8.5</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <developers>
+ <developer>
+ <id>voldemort</id>
+ <name>voldemort</name>
+ </developer>
+ </developers>
+
+</project>
View
24 reactor/pom.xml
@@ -0,0 +1,24 @@
+<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>
+
+ <groupId>voldemort</groupId>
+ <artifactId>voldemort-reactor</artifactId>
+ <version>0.90.1</version>
+ <packaging>pom</packaging>
+
+ <name>${project.artifactId}</name>
+ <description>${project.artifactId}</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <modules>
+ <module>../</module>
+ <module>test</module>
+ </modules>
+
+</project>
+
View
89 reactor/test/pom.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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>voldemort</groupId>
+ <artifactId>voldemort-reactor</artifactId>
+ <version>0.90.1</version>
+ </parent>
+ <groupId>voldemort</groupId>
+ <artifactId>voldemort-test</artifactId>
+ <version>0.90.1</version>
+ <packaging>jar</packaging>
+
+ <name>${project.artifactId}</name>
+ <description>${project.artifactId}</description>
+ <url>http://project-voldemort.com/</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <testSourceDirectory>${basedir}/../../test/unit</testSourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.8</version>
+ <configuration>
+ <ajdtVersion>none</ajdtVersion>
+ <useProjectReferences>false</useProjectReferences>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.5</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${basedir}/../../test/common</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>voldemort</groupId>
+ <artifactId>voldemort</artifactId>
+ <version>0.90.1</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.8.5</version>
+ </dependency>
+ </dependencies>
+ <developers>
+ <developer>
+ <id>voldemort</id>
+ <name>voldemort</name>
+ </developer>
+ </developers>
+
+</project>
Something went wrong with that request. Please try again.