Skip to content

Commit

Permalink
IGNITE-3172 Refactoring Ignite-Cassandra serializers. - Fixes #956.
Browse files Browse the repository at this point in the history
Signed-off-by: Alexey Kuznetsov <akuznetsov@apache.org>
  • Loading branch information
irudyak authored and akuznetsov-os committed Sep 14, 2016
1 parent d155af3 commit 231ead0
Show file tree
Hide file tree
Showing 132 changed files with 829 additions and 333 deletions.
8 changes: 2 additions & 6 deletions modules/cassandra/README.txt
@@ -1,16 +1,12 @@
Apache Ignite Cassandra Module
------------------------

Apache Ignite Cassandra module provides CacheStore implementation backed by Cassandra database.

To enable Cassandra module when starting a standalone node, move 'optional/ignite-cassandra' folder to
'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
be added to classpath in this case.
Apache Ignite Cassandra module, used just as a parent container for other Cassandra related modules.

Importing Cassandra Module In Maven Project
-------------------------------------

If you are using Maven to manage dependencies of your project, you can add Cassandra module
If you are using Maven to manage dependencies of your project, you can add Cassandra Store module
dependency like this (replace '${ignite.version}' with actual Ignite version you are
interested in):

Expand Down
319 changes: 15 additions & 304 deletions modules/cassandra/pom.xml
Expand Up @@ -31,311 +31,22 @@
</parent>

<artifactId>ignite-cassandra</artifactId>
<packaging>pom</packaging>
<version>1.8.0-SNAPSHOT</version>
<url>http://ignite.apache.org</url>

<properties>
<commons-beanutils.version>1.8.3</commons-beanutils.version>
<cassandra-driver.version>3.0.0</cassandra-driver.version>
<cassandra-all.version>3.3</cassandra-all.version>
<kryo.version>3.0.3</kryo.version>
<reflectasm.version>1.10.1</reflectasm.version>
<minlog.version>1.3.0</minlog.version>
<asm.version>5.0.3</asm.version>
<objenesis.version>2.1</objenesis.version>
<netty.version>4.0.33.Final</netty.version>
<guava.version>19.0</guava.version>
<metrics-core.version>3.0.2</metrics-core.version>
</properties>

<dependencies>
<!-- Apache commons -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils.version}</version>
</dependency>

<!-- Kryo and required dependencies -->
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>${kryo.version}</version>
</dependency>

<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>reflectasm</artifactId>
<version>${reflectasm.version}</version>
</dependency>

<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>minlog</artifactId>
<version>${minlog.version}</version>
</dependency>

<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>

<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>${objenesis.version}</version>
</dependency>

<!-- Ignite -->
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-log4j</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>

<!-- Cassandra and required dependencies -->
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>${cassandra-driver.version}</version>
</dependency>

<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</dependency>

<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>${netty.version}</version>
</dependency>

<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>${netty.version}</version>
</dependency>

<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>${netty.version}</version>
</dependency>

<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>${netty.version}</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>

<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${metrics-core.version}</version>
</dependency>

<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>${cassandra-all.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>log4j-over-slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>

<!-- Apache log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>test</scope>
</dependency>

</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerVersion>1.7</compilerVersion>
<encoding>UTF-8</encoding>
<fork>true</fork>
<debug>false</debug>
<debuglevel>lines,vars,source</debuglevel>
<meminitial>256</meminitial>
<maxmem>512</maxmem>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-all-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/tests-package/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeArtifactIds>
netty-all,cassandra-all,snappy-java,lz4,compress-lzf,commons-codec,commons-lang3,commons-math3,
concurrentlinkedhashmap-lru,antlr,ST4,antlr-runtime,jcl-over-slf4j,jackson-core-asl,
jackson-mapper-asl,json-simple,high-scale-lib,snakeyaml,jbcrypt,reporter-config3,
reporter-config-base,hibernate-validator,validation-api,jboss-logging,thrift-server,
disruptor,stream,fastutil,logback-core,logback-classic,libthrift,httpclient,httpcore,
cassandra-thrift,jna,jamm,joda-time,sigar,ecj,tools
</excludeArtifactIds>
</configuration>
</execution>
<!-- -->
<execution>
<id>copy-main-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libs</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>true</excludeTransitive>
<excludeGroupIds>
org.apache.ignite,org.springframework,org.gridgain
</excludeGroupIds>
<excludeArtifactIds>
commons-logging,slf4j-api,cache-api,slf4j-api,aopalliance
</excludeArtifactIds>
<includeScope>runtime</includeScope>
</configuration>
</execution>
<!-- -->
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<executions>
<execution>
<id>package-tests</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef resource="net/sf/antcontrib/antlib.xml" />
<if>
<available file="${project.build.directory}/test-classes" type="dir" />
<then>
<copy todir="${project.build.directory}/tests-package/lib">
<fileset dir="${project.build.directory}">
<include name="*.jar" />
</fileset>
</copy>

<jar destfile="${project.build.directory}/tests-package/lib/${project.artifactId}-${project.version}-tests.jar">
<fileset dir="${project.build.directory}/test-classes">
<include name="**/*.class" />
</fileset>
</jar>

<copy todir="${project.build.directory}/tests-package/settings">
<fileset dir="${project.build.directory}/test-classes">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>

<copy todir="${project.build.directory}/tests-package">
<fileset dir="${project.build.testSourceDirectory}/../scripts">
<include name="**/*" />
</fileset>
</copy>

<fixcrlf srcdir="${project.build.directory}/tests-package" eol="lf" eof="remove">
<include name="*.sh" />
</fixcrlf>

<copy todir="${project.build.directory}/tests-package">
<fileset dir="${project.build.testSourceDirectory}/..">
<include name="bootstrap/**" />
</fileset>
</copy>

<fixcrlf srcdir="${project.build.directory}/tests-package/bootstrap" eol="lf" eof="remove">
<include name="**" />
</fixcrlf>

<zip destfile="${project.build.directory}/ignite-cassandra-tests-${project.version}.zip" compress="true" whenempty="create" level="9" encoding="UTF-8" useLanguageEncodingFlag="true" createUnicodeExtraFields="not-encodeable">

<zipfileset dir="${project.build.directory}/tests-package" prefix="ignite-cassandra-tests">
<exclude name="**/*.sh" />
</zipfileset>

<zipfileset dir="${project.build.directory}/tests-package" prefix="ignite-cassandra-tests" filemode="555">
<include name="**/*.sh" />
</zipfileset>
</zip>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>ignite-cassandra-store</artifactId>
<groupId>org.apache.ignite</groupId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

<modules>
<module>store</module>
<module>serializers</module>
</modules>
</project>
33 changes: 33 additions & 0 deletions modules/cassandra/serializers/README.txt
@@ -0,0 +1,33 @@
Apache Ignite Cassandra Serializers Module
------------------------

Apache Ignite Cassandra Serializers module provides additional serializers to store objects as BLOBs in Cassandra. The
module could be used as an addition to Ignite Cassandra Store module.

To enable Cassandra Serializers module when starting a standalone node, move 'optional/ignite-cassandra-serializers' folder to
'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
be added to classpath in this case.

Importing Cassandra Serializers Module In Maven Project
-------------------------------------

If you are using Maven to manage dependencies of your project, you can add Cassandra Store module
dependency like this (replace '${ignite.version}' with actual Ignite version you are
interested in):

<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">
...
<dependencies>
...
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-cassandra-serializers</artifactId>
<version>${ignite.version}</version>
</dependency>
...
</dependencies>
...
</project>
File renamed without changes.

0 comments on commit 231ead0

Please sign in to comment.