diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 000000000..8b1409bdd
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,24 @@
+## Dependecies Version
+
+# Logging
+log4jVersion = 1.2.17
+slf4jVersion = 1.6.6
+
+# Common libraries
+springVersion = 3.1.4.RELEASE
+springDataVersion = 1.5.0.RELEASE
+jacksonVersion = 1.8.8
+
+# Testing
+junitVersion = 4.8.1
+mockitoVersion = 1.8.5
+
+# Drivers
+datastaxVersion = 2.0.0-beta2
+cassandraVersion = 1.2.0
+nettyVersion = 3.6.2.Final
+
+# --------------------
+# Project wide version
+# --------------------
+version=2.0.0.BUILD-SNAPSHOT
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..7b359d719
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..91b47e9b6
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 10 20:59:12 EEST 2012
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.2-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 000000000..3851082a8
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/"
+APP_HOME="`pwd -P`"
+cd "$SAVED"
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 000000000..8a0b282aa
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/maven.gradle b/maven.gradle
new file mode 100644
index 000000000..bf7e46d3a
--- /dev/null
+++ b/maven.gradle
@@ -0,0 +1,63 @@
+apply plugin: 'maven'
+
+ext.optionalDeps = []
+ext.providedDeps = []
+
+ext.optional = { optionalDeps << it }
+ext.provided = { providedDeps << it }
+
+install {
+ repositories.mavenInstaller {
+ customizePom(pom, project)
+ }
+}
+
+def customizePom(pom, gradleProject) {
+ pom.whenConfigured { generatedPom ->
+ // respect 'optional' and 'provided' dependencies
+ gradleProject.optionalDeps.each { dep ->
+ generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true
+ }
+ gradleProject.providedDeps.each { dep ->
+ generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided'
+ }
+
+ // eliminate test-scoped dependencies (no need in maven central poms)
+ generatedPom.dependencies.removeAll { dep ->
+ dep.scope == 'test'
+ }
+
+ // add all items necessary for maven central publication
+ generatedPom.project {
+ name = gradleProject.description
+ description = gradleProject.description
+ url = 'http://github.com/shvid/spring-data-cassandra'
+ organization {
+ name = 'Mirantis'
+ url = 'http://www.mirantis.com/spring-data/cassnadra'
+ }
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+ scm {
+ url = 'http://github.com/shvid/spring-data-cassandra'
+ connection = 'scm:git:git://github.com/shvid/spring-data-cassandra'
+ developerConnection = 'scm:git:git://github.com/shvid/spring-data-cassandra'
+ }
+ developers {
+ developer {
+ id = 'shvid'
+ name = 'Alex Shvid'
+ email = 'aschwid@mirantis.com'
+ properties {
+ twitter = 'alexshvid'
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/readme.md b/readme.md
index a68a30b15..e061e8db8 100644
--- a/readme.md
+++ b/readme.md
@@ -1,4 +1,10 @@
Spring Data Cassandra
=====================
+This is a Spring Data subproject for Cassandra that uses the binary CQL3 protocol via
+the official DataStax 2.0 Java driver (https://github.com/datastax/java-driver).
+Supports native CQL3 queries in Spring Repositories.
+
+For now, you can get and start a local Cassandra instance via the \*n\*x script `test-support/get-and-start-cassandra`.
+It stores the cassandra process id in the file `.cassandra/dist/dsc-cassandra-x.y.z/cassandra.pid`, where `x.y.z` is the latest version of Cassandra. You can use this process id to stop Cassandra via ``kill `cat .cassandra/dist/dsc-cassandra-x.y.z/cassandra.pid` ``.
\ No newline at end of file
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/_maven.repositories b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/_maven.repositories
new file mode 100644
index 000000000..711fc0034
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/_maven.repositories
@@ -0,0 +1,6 @@
+#NOTE: This is an internal implementation file, its format can be changed without prior notice.
+#Sun Feb 24 13:09:33 AMT 2013
+cassandra-driver-core-1.0.0-beta1-javadoc.jar>=
+cassandra-driver-core-1.0.0-beta1.jar>=
+cassandra-driver-core-1.0.0-beta1.pom>=
+cassandra-driver-core-1.0.0-beta1-sources.jar>=
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-javadoc.jar b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-javadoc.jar
new file mode 100644
index 000000000..e56bc0442
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-javadoc.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-sources.jar b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-sources.jar
new file mode 100644
index 000000000..22fcf0db7
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1-sources.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.jar b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.jar
new file mode 100644
index 000000000..5cd08ec05
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.pom b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.pom
new file mode 100644
index 000000000..823b45a21
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-core/1.0.0-beta1/cassandra-driver-core-1.0.0-beta1.pom
@@ -0,0 +1,126 @@
+
+
+ 4.0.0
+
+ com.datastax.cassandra
+ cassandra-driver-parent
+ 1.0.0-beta1
+
+ cassandra-driver-core
+ jar
+ DataStax Java Driver for Apache Cassandra - Core
+ A driver for Apache Cassandra 1.2+ that works exclusively with the Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol.
+ https://github.com/datastax/java-driver
+
+
+
+ io.netty
+ netty
+ 3.6.2.Final
+
+
+
+ com.google.guava
+ guava
+ 13.0.1
+
+
+
+ org.apache.cassandra
+ cassandra-thrift
+ 1.2.0
+
+
+
+ org.apache.thrift
+ libthrift
+ 0.7.0
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+ 1.4.0
+
+
+
+ com.yammer.metrics
+ metrics-core
+ 2.2.0
+
+
+
+
+
+
+ default
+
+ default
+ 1.2.0
+
+
+ true
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.5
+
+ false
+
+ ${cassandra.version}
+ ${ipprefix}
+
+
+
+
+
+
+
+
+ Apache 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+ Apache License Version 2.0
+
+
+
+
+ scm:git:git@github.com:datastax/java-driver.git
+ scm:git:git@github.com:datastax/java-driver.git
+ https://github.com/datastax/java-driver
+
+
+
+
+ Various
+ DataStax
+
+
+
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-core/maven-metadata-local.xml b/repo/com/datastax/cassandra/cassandra-driver-core/maven-metadata-local.xml
new file mode 100644
index 000000000..9b6dcc2ae
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-core/maven-metadata-local.xml
@@ -0,0 +1,12 @@
+
+
+ com.datastax.cassandra
+ cassandra-driver-core
+
+ 1.0.0-beta1
+
+ 1.0.0-beta1
+
+ 20130224090933
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/_maven.repositories b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/_maven.repositories
new file mode 100644
index 000000000..c672f7584
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/_maven.repositories
@@ -0,0 +1,3 @@
+#NOTE: This is an internal implementation file, its format can be changed without prior notice.
+#Sun Feb 24 13:09:33 AMT 2013
+cassandra-driver-examples-parent-1.0.0-beta1.pom>=
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/cassandra-driver-examples-parent-1.0.0-beta1.pom b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/cassandra-driver-examples-parent-1.0.0-beta1.pom
new file mode 100644
index 000000000..6280142c8
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/1.0.0-beta1/cassandra-driver-examples-parent-1.0.0-beta1.pom
@@ -0,0 +1,54 @@
+
+
+ 4.0.0
+
+ com.datastax.cassandra
+ cassandra-driver-parent
+ 1.0.0-beta1
+
+ cassandra-driver-examples-parent
+ pom
+ DataStax Java Driver for Apache Cassandra Examples
+ A collection of examples to demonstrate DataStax Java Driver for Apache Cassandra.
+ https://github.com/datastax/java-driver
+
+
+ stress
+
+
+
+
+ Apache 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+ Apache License Version 2.0
+
+
+
+
+ scm:git:git@github.com:datastax/java-driver.git
+ scm:git:git@github.com:datastax/java-driver.git
+ https://github.com/datastax/java-driver
+
+
+
+
+ Various
+ DataStax
+
+
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-parent/maven-metadata-local.xml b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/maven-metadata-local.xml
new file mode 100644
index 000000000..73f033af9
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-parent/maven-metadata-local.xml
@@ -0,0 +1,12 @@
+
+
+ com.datastax.cassandra
+ cassandra-driver-examples-parent
+
+ 1.0.0-beta1
+
+ 1.0.0-beta1
+
+ 20130224090933
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/_maven.repositories b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/_maven.repositories
new file mode 100644
index 000000000..af054258e
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/_maven.repositories
@@ -0,0 +1,6 @@
+#NOTE: This is an internal implementation file, its format can be changed without prior notice.
+#Sun Feb 24 13:09:34 AMT 2013
+cassandra-driver-examples-stress-1.0.0-beta1-javadoc.jar>=
+cassandra-driver-examples-stress-1.0.0-beta1.jar>=
+cassandra-driver-examples-stress-1.0.0-beta1.pom>=
+cassandra-driver-examples-stress-1.0.0-beta1-sources.jar>=
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-javadoc.jar b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-javadoc.jar
new file mode 100644
index 000000000..7284ab0b3
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-javadoc.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-sources.jar b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-sources.jar
new file mode 100644
index 000000000..a86701d94
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1-sources.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.jar b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.jar
new file mode 100644
index 000000000..ba3ca9e80
Binary files /dev/null and b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.jar differ
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.pom b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.pom
new file mode 100644
index 000000000..b0de61ab2
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/1.0.0-beta1/cassandra-driver-examples-stress-1.0.0-beta1.pom
@@ -0,0 +1,89 @@
+
+
+ 4.0.0
+
+ com.datastax.cassandra
+ cassandra-driver-examples-parent
+ 1.0.0-beta1
+
+ cassandra-driver-examples-stress
+ jar
+ DataStax Java Driver for Apache Cassandra Examples - Stress
+ A stress test example for DataStax Java Driver for Apache Cassandra.
+ https://github.com/datastax/java-driver
+
+
+
+ com.datastax.cassandra
+ cassandra-driver-core
+ 1.0.0-beta1
+
+
+
+ com.yammer.metrics
+ metrics-core
+ 2.2.0
+
+
+
+ net.sf.jopt-simple
+ jopt-simple
+ 4.3
+
+
+
+
+
+
+ maven-assembly-plugin
+
+
+
+ com.datastax.driver.stress.Stress
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+
+
+ Apache 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+ Apache License Version 2.0
+
+
+
+
+ scm:git:git@github.com:datastax/java-driver.git
+ scm:git:git@github.com:datastax/java-driver.git
+ https://github.com/datastax/java-driver
+
+
+
+
+ Various
+ DataStax
+
+
+
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-examples-stress/maven-metadata-local.xml b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/maven-metadata-local.xml
new file mode 100644
index 000000000..f1552536c
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-examples-stress/maven-metadata-local.xml
@@ -0,0 +1,12 @@
+
+
+ com.datastax.cassandra
+ cassandra-driver-examples-stress
+
+ 1.0.0-beta1
+
+ 1.0.0-beta1
+
+ 20130224090934
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/_maven.repositories b/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/_maven.repositories
new file mode 100644
index 000000000..19b1cf1fa
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/_maven.repositories
@@ -0,0 +1,3 @@
+#NOTE: This is an internal implementation file, its format can be changed without prior notice.
+#Sun Feb 24 13:09:29 AMT 2013
+cassandra-driver-parent-1.0.0-beta1.pom>=
diff --git a/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/cassandra-driver-parent-1.0.0-beta1.pom b/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/cassandra-driver-parent-1.0.0-beta1.pom
new file mode 100644
index 000000000..7632d1dec
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-parent/1.0.0-beta1/cassandra-driver-parent-1.0.0-beta1.pom
@@ -0,0 +1,126 @@
+
+
+ 4.0.0
+ com.datastax.cassandra
+ cassandra-driver-parent
+ 1.0.0-beta1
+ pom
+ DataStax Java Driver for Apache Cassandra
+ A driver for Apache Cassandra 1.2+ that works exclusively with the Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol.
+ https://github.com/datastax/java-driver
+
+
+ driver-core
+ driver-examples
+
+
+
+ UTF-8
+
+
+
+
+ org.apache.cassandra
+ cassandra-all
+ 1.2.0
+
+
+
+ log4j
+ log4j
+ 1.2.17
+ test
+
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.6.6
+ test
+
+
+
+ junit
+ junit
+ 4.10
+ test
+
+
+
+
+
+
+ maven-compiler-plugin
+ 2.5.1
+
+ 1.6
+ 1.6
+ true
+ true
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.2.1
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.9
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+
+
+
+
+ Apache 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+ Apache License Version 2.0
+
+
+
+
+ scm:git:git@github.com:datastax/java-driver.git
+ scm:git:git@github.com:datastax/java-driver.git
+ https://github.com/datastax/java-driver
+
+
+
+
+ Various
+ DataStax
+
+
+
diff --git a/repo/com/datastax/cassandra/cassandra-driver-parent/maven-metadata-local.xml b/repo/com/datastax/cassandra/cassandra-driver-parent/maven-metadata-local.xml
new file mode 100644
index 000000000..0fea148ed
--- /dev/null
+++ b/repo/com/datastax/cassandra/cassandra-driver-parent/maven-metadata-local.xml
@@ -0,0 +1,12 @@
+
+
+ com.datastax.cassandra
+ cassandra-driver-parent
+
+ 1.0.0-beta1
+
+ 1.0.0-beta1
+
+ 20130224090929
+
+
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 000000000..062310fab
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = 'spring-data-cassandra'
\ No newline at end of file
diff --git a/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java b/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java
new file mode 100644
index 000000000..56a2ce9c8
--- /dev/null
+++ b/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright 2011-2012 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.cassandra.config;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.type.filter.AnnotationTypeFilter;
+import org.springframework.data.annotation.Persistent;
+import org.springframework.data.cassandra.convert.CassandraConverter;
+import org.springframework.data.cassandra.convert.MappingCassandraConverter;
+import org.springframework.data.cassandra.core.CassandraTemplate;
+import org.springframework.data.cassandra.core.Keyspace;
+import org.springframework.data.cassandra.mapping.CassandraMappingContext;
+import org.springframework.data.cassandra.mapping.CassandraPersistentEntity;
+import org.springframework.data.cassandra.mapping.CassandraPersistentProperty;
+import org.springframework.data.cassandra.mapping.Table;
+import org.springframework.data.mapping.context.MappingContext;
+import org.springframework.util.ClassUtils;
+import org.springframework.util.StringUtils;
+
+import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Session;
+
+/**
+ * Base class for Spring Data Cassandra configuration using JavaConfig.
+ *
+ * @author Alex Shvid
+ */
+@Configuration
+public abstract class AbstractCassandraConfiguration {
+
+ /**
+ * Return the name of the keyspace to connect to.
+ *
+ * @return must not be {@literal null}.
+ */
+ protected abstract String getKeyspaceName();
+
+ /**
+ * Return the {@link Cluster} instance to connect to.
+ *
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public abstract Cluster cluster() throws Exception;
+
+ /**
+ * Creates a {@link Session} to be used by the {@link Keyspace}. Will use the {@link Cluster} instance
+ * configured in {@link #cluster()}.
+ *
+ * @see #cluster()
+ * @see #Keyspace()
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public Session session() throws Exception {
+ String keyspace = getKeyspaceName();
+ if (StringUtils.hasText(keyspace)) {
+ return cluster().connect(keyspace);
+ }
+ else {
+ return cluster().connect();
+ }
+ }
+
+ /**
+ * Creates a {@link Keyspace} to be used by the {@link CassandraTemplate}. Will use the {@link Session} instance
+ * configured in {@link #session()} and {@link CassandraConverter} configured in {@link #converter()}.
+ *
+ * @see #cluster()
+ * @see #Keyspace()
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public Keyspace keyspace() throws Exception {
+ return new Keyspace(getKeyspaceName(), session(), converter());
+ }
+ /**
+ * Return the base package to scan for mapped {@link Table}s. Will return the package name of the configuration
+ * class' (the concrete class, not this one here) by default. So if you have a {@code com.acme.AppConfig} extending
+ * {@link AbstractCassandraConfiguration} the base package will be considered {@code com.acme} unless the method is
+ * overriden to implement alternate behaviour.
+ *
+ * @return the base package to scan for mapped {@link Table} classes or {@literal null} to not enable scanning for
+ * entities.
+ */
+ protected String getMappingBasePackage() {
+ return getClass().getPackage().getName();
+ }
+
+ /**
+ * Creates a {@link CassandraTemplate}.
+ *
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public CassandraTemplate cassandraTemplate() throws Exception {
+ return new CassandraTemplate(keyspace());
+ }
+
+ /**
+ * Return the {@link MappingContext} instance to map Entities to properties.
+ *
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public MappingContext extends CassandraPersistentEntity>, CassandraPersistentProperty> mappingContext() {
+ return new CassandraMappingContext();
+ }
+
+ /**
+ * Return the {@link CassandraConverter} instance to convert Rows to Objects.
+ *
+ * @return
+ * @throws Exception
+ */
+ @Bean
+ public CassandraConverter converter() {
+ return new MappingCassandraConverter(mappingContext());
+ }
+
+ /**
+ * Scans the mapping base package for classes annotated with {@link Table}.
+ *
+ * @see #getMappingBasePackage()
+ * @return
+ * @throws ClassNotFoundException
+ */
+ protected Set> getInitialEntitySet() throws ClassNotFoundException {
+
+ String basePackage = getMappingBasePackage();
+ Set> initialEntitySet = new HashSet>();
+
+ if (StringUtils.hasText(basePackage)) {
+ ClassPathScanningCandidateComponentProvider componentProvider = new ClassPathScanningCandidateComponentProvider(
+ false);
+ componentProvider.addIncludeFilter(new AnnotationTypeFilter(Table.class));
+ componentProvider.addIncludeFilter(new AnnotationTypeFilter(Persistent.class));
+
+ for (BeanDefinition candidate : componentProvider.findCandidateComponents(basePackage)) {
+ initialEntitySet.add(ClassUtils.forName(candidate.getBeanClassName(),
+ AbstractCassandraConfiguration.class.getClassLoader()));
+ }
+ }
+
+ return initialEntitySet;
+ }
+
+}
diff --git a/src/main/java/org/springframework/data/cassandra/config/BeanNames.java b/src/main/java/org/springframework/data/cassandra/config/BeanNames.java
new file mode 100644
index 000000000..e4c0f9709
--- /dev/null
+++ b/src/main/java/org/springframework/data/cassandra/config/BeanNames.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2011 by the original author(s).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.cassandra.config;
+
+/**
+ * @author Alex Shvid
+ */
+public class BeanNames {
+
+ static final String CASSANDRA_CLUSTER = "cassandra-cluster";
+ static final String CASSANDRA_KEYSPACE = "cassandra-keyspace";
+
+}
diff --git a/src/main/java/org/springframework/data/cassandra/config/CassandraClusterParser.java b/src/main/java/org/springframework/data/cassandra/config/CassandraClusterParser.java
new file mode 100644
index 000000000..246071fe8
--- /dev/null
+++ b/src/main/java/org/springframework/data/cassandra/config/CassandraClusterParser.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2011-2012 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.cassandra.config;
+
+import java.util.List;
+
+import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.data.cassandra.core.CassandraClusterFactoryBean;
+import org.springframework.data.config.ParsingUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.util.xml.DomUtils;
+import org.w3c.dom.Element;
+
+/**
+ * Parser for <cluster;gt; definitions.
+ *
+ * @author Alex Shvid
+ */
+
+public class CassandraClusterParser extends AbstractSimpleBeanDefinitionParser {
+
+ @Override
+ protected Class> getBeanClass(Element element) {
+ return CassandraClusterFactoryBean.class;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.beans.factory.xml.AbstractBeanDefinitionParser#resolveId(org.w3c.dom.Element, org.springframework.beans.factory.support.AbstractBeanDefinition, org.springframework.beans.factory.xml.ParserContext)
+ */
+ @Override
+ protected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext)
+ throws BeanDefinitionStoreException {
+
+ String id = super.resolveId(element, definition, parserContext);
+ return StringUtils.hasText(id) ? id : BeanNames.CASSANDRA_CLUSTER;
+ }
+
+ @Override
+ protected void doParse(Element element, ParserContext parserContext,
+ BeanDefinitionBuilder builder) {
+
+ String contactPoints = element.getAttribute("contactPoints");
+ if (StringUtils.hasText(contactPoints)) {
+ builder.addPropertyValue("contactPoints", contactPoints);
+ }
+
+ String port = element.getAttribute("port");
+ if (StringUtils.hasText(port)) {
+ builder.addPropertyValue("port", port);
+ }
+
+ String compression = element.getAttribute("compression");
+ if (StringUtils.hasText(compression)) {
+ builder.addPropertyValue("compressionType", CompressionType.valueOf(compression));
+ }
+
+ postProcess(builder, element);
+ }
+
+ @Override
+ protected void postProcess(BeanDefinitionBuilder builder, Element element) {
+ List subElements = DomUtils.getChildElements(element);
+
+ // parse nested elements
+ for (Element subElement : subElements) {
+ String name = subElement.getLocalName();
+
+ if ("local-pooling-options".equals(name)) {
+ builder.addPropertyValue("localPoolingOptions", parsePoolingOptions(subElement));
+ }
+ else if ("remote-pooling-options".equals(name)) {
+ builder.addPropertyValue("remotePoolingOptions", parsePoolingOptions(subElement));
+ }
+ else if ("socket-options".equals(name)) {
+ builder.addPropertyValue("socketOptions", parseSocketOptions(subElement));
+ }
+ }
+
+ }
+
+ private BeanDefinition parsePoolingOptions(Element element) {
+ BeanDefinitionBuilder defBuilder = BeanDefinitionBuilder.genericBeanDefinition(PoolingOptionsConfig.class);
+ ParsingUtils.setPropertyValue(defBuilder, element, "min-simultaneous-requests", "minSimultaneousRequests");
+ ParsingUtils.setPropertyValue(defBuilder, element, "max-simultaneous-requests", "maxSimultaneousRequests");
+ ParsingUtils.setPropertyValue(defBuilder, element, "core-connections", "coreConnections");
+ ParsingUtils.setPropertyValue(defBuilder, element, "max-connections", "maxConnections");
+ return defBuilder.getBeanDefinition();
+ }
+
+ private BeanDefinition parseSocketOptions(Element element) {
+ BeanDefinitionBuilder defBuilder = BeanDefinitionBuilder.genericBeanDefinition(SocketOptionsConfig.class);
+ ParsingUtils.setPropertyValue(defBuilder, element, "connect-timeout-mls", "connectTimeoutMls");
+ ParsingUtils.setPropertyValue(defBuilder, element, "keep-alive", "keepAlive");
+ ParsingUtils.setPropertyValue(defBuilder, element, "reuse-address", "reuseAddress");
+ ParsingUtils.setPropertyValue(defBuilder, element, "so-linger", "soLinger");
+ ParsingUtils.setPropertyValue(defBuilder, element, "tcp-no-delay", "tcpNoDelay");
+ ParsingUtils.setPropertyValue(defBuilder, element, "receive-buffer-size", "receiveBufferSize");
+ ParsingUtils.setPropertyValue(defBuilder, element, "send-buffer-size", "sendBufferSize");
+ return defBuilder.getBeanDefinition();
+ }
+
+}
diff --git a/src/main/java/org/springframework/data/cassandra/config/CassandraKeyspaceParser.java b/src/main/java/org/springframework/data/cassandra/config/CassandraKeyspaceParser.java
new file mode 100644
index 000000000..5b34d561d
--- /dev/null
+++ b/src/main/java/org/springframework/data/cassandra/config/CassandraKeyspaceParser.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2011-2012 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.cassandra.config;
+
+import java.util.List;
+
+import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.support.ManagedList;
+import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.data.cassandra.core.CassandraKeyspaceFactoryBean;
+import org.springframework.data.config.ParsingUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.util.xml.DomUtils;
+import org.w3c.dom.Element;
+
+/**
+ * Parser for <keyspace;gt; definitions.
+ *
+ * @author Alex Shvid
+ */
+
+
+public class CassandraKeyspaceParser extends AbstractSimpleBeanDefinitionParser {
+
+ @Override
+ protected Class> getBeanClass(Element element) {
+ return CassandraKeyspaceFactoryBean.class;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.beans.factory.xml.AbstractBeanDefinitionParser#resolveId(org.w3c.dom.Element, org.springframework.beans.factory.support.AbstractBeanDefinition, org.springframework.beans.factory.xml.ParserContext)
+ */
+ @Override
+ protected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext)
+ throws BeanDefinitionStoreException {
+
+ String id = super.resolveId(element, definition, parserContext);
+ return StringUtils.hasText(id) ? id : BeanNames.CASSANDRA_KEYSPACE;
+ }
+
+ @Override
+ protected void doParse(Element element, ParserContext parserContext,
+ BeanDefinitionBuilder builder) {
+
+ String name = element.getAttribute("name");
+ if (StringUtils.hasText(name)) {
+ builder.addPropertyValue("keyspace", name);
+ }
+
+ String clusterRef = element.getAttribute("cassandra-cluster-ref");
+ if (!StringUtils.hasText(clusterRef)) {
+ clusterRef = BeanNames.CASSANDRA_CLUSTER;
+ }
+ builder.addPropertyReference("cluster", clusterRef);
+
+ String converterRef = element.getAttribute("cassandra-converter-ref");
+ if (StringUtils.hasText(converterRef)) {
+ builder.addPropertyReference("converter", converterRef);
+ }
+
+ postProcess(builder, element);
+ }
+
+ @Override
+ protected void postProcess(BeanDefinitionBuilder builder, Element element) {
+ List subElements = DomUtils.getChildElements(element);
+
+ // parse nested elements
+ for (Element subElement : subElements) {
+ String name = subElement.getLocalName();
+
+ if ("keyspace-attributes".equals(name)) {
+ builder.addPropertyValue("keyspaceAttributes", parseKeyspaceAttributes(subElement));
+ }
+ }
+
+ }
+
+ private BeanDefinition parseKeyspaceAttributes(Element element) {
+ BeanDefinitionBuilder defBuilder = BeanDefinitionBuilder.genericBeanDefinition(KeyspaceAttributes.class);
+ ParsingUtils.setPropertyValue(defBuilder, element, "auto", "auto");
+ ParsingUtils.setPropertyValue(defBuilder, element, "replication-strategy", "replicationStrategy");
+ ParsingUtils.setPropertyValue(defBuilder, element, "replication-factor", "replicationFactor");
+ ParsingUtils.setPropertyValue(defBuilder, element, "durable-writes", "durableWrites");
+
+ List subElements = DomUtils.getChildElements(element);
+ ManagedList