From 7385f77705b43e32ae97fd9d01313d27d7e19167 Mon Sep 17 00:00:00 2001 From: Matthew Adams Date: Tue, 26 Nov 2013 09:04:09 -0600 Subject: [PATCH] looking like modules are now separated & mavenized --- pom.xml | 60 +++++++++++++++++-- spring-cassandra/pom.xml | 10 ++++ spring-data-cassandra-distribution/pom.xml | 15 ++++- spring-data-cassandra/pom.xml | 53 ++++++++++++---- .../AbstractCassandraConfiguration.java | 10 ++-- .../core/CassandraAdminTemplate.java | 8 +-- .../core/CassandraKeyspaceFactoryBean.java | 10 ++-- .../cassandra/core/SpringDataKeyspace.java | 30 ++++++++++ .../mapping/CassandraMappingContext.java | 3 - .../config/CassandraNamespaceTests.java | 5 +- spring-data-cassandra/template.mf | 3 +- 11 files changed, 166 insertions(+), 41 deletions(-) create mode 100644 spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/SpringDataKeyspace.java diff --git a/pom.xml b/pom.xml index f9f8f2a16..cd34e43f2 100644 --- a/pom.xml +++ b/pom.xml @@ -82,12 +82,7 @@ cassandra-driver-core ${cassandra-driver-core.version} - - org.cassandraunit - cassandra-unit - ${cassandra-unit.version} - test - + org.springframework @@ -130,6 +125,54 @@ true + + cglib + cglib-nodep + 2.2.2 + test + + + + org.xerial.snappy + snappy-java + 1.1.0.1 + test + + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + test + + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + test + + + + org.cassandraunit + cassandra-unit + ${cassandra-unit.version} + test + + + cassandra-all + org.apache.cassandra + + + + + + org.cassandraunit + cassandra-unit-spring + ${cassandra-unit.version} + test + + javax.el el-api @@ -162,6 +205,11 @@ + + org.apache.maven.plugins + maven-dependency-plugin + 2.8 + org.apache.maven.plugins maven-surefire-plugin diff --git a/spring-cassandra/pom.xml b/spring-cassandra/pom.xml index e0ac6ac84..c408c397c 100644 --- a/spring-cassandra/pom.xml +++ b/spring-cassandra/pom.xml @@ -51,6 +51,16 @@ provided true + + org.codehaus.jackson + jackson-mapper-asl + test + + + org.codehaus.jackson + jackson-core-asl + test + org.cassandraunit cassandra-unit diff --git a/spring-data-cassandra-distribution/pom.xml b/spring-data-cassandra-distribution/pom.xml index f8eb9eaf0..184ed9d33 100644 --- a/spring-data-cassandra-distribution/pom.xml +++ b/spring-data-cassandra-distribution/pom.xml @@ -1,8 +1,9 @@ - + 4.0.0 - + spring-data-cassandra-distribution pom @@ -16,12 +17,20 @@ 1.0.0.BUILD-SNAPSHOT ../pom.xml - + ${basedir}/.. SDCASS + + + org.codehaus.jackson + jackson-mapper-asl + test + + + diff --git a/spring-data-cassandra/pom.xml b/spring-data-cassandra/pom.xml index 71abecfb5..780f10cfa 100644 --- a/spring-data-cassandra/pom.xml +++ b/spring-data-cassandra/pom.xml @@ -1,8 +1,9 @@ - + 4.0.0 - + spring-data-cassandra Spring Data Cassandra - Core @@ -25,14 +26,14 @@ ${project.groupId} spring-cassandra - - + + org.springframework spring-expression - + ${project.groupId} spring-data-commons @@ -45,7 +46,7 @@ 1.0 true - + javax.enterprise @@ -53,13 +54,43 @@ provided true - + + + org.xerial.snappy + snappy-java + test + + + + org.cassandraunit + cassandra-unit + test + + + + cglib + cglib-nodep + test + + + + org.codehaus.jackson + jackson-mapper-asl + test + + + + org.codehaus.jackson + jackson-core-asl + test + + javax.el el-api test - + javax.validation @@ -73,13 +104,13 @@ hibernate-validator test - + joda-time joda-time test - + - + diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java index 88ed1e4d0..0009d0010 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java @@ -22,7 +22,7 @@ import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.cassandra.core.CassandraOperations; import org.springframework.cassandra.core.CassandraTemplate; -import org.springframework.cassandra.core.Keyspace; +import org.springframework.data.cassandra.core.SpringDataKeyspace; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.context.annotation.Configuration; @@ -74,7 +74,7 @@ public abstract class AbstractCassandraConfiguration implements BeanClassLoaderA 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 + * Creates a {@link Session} to be used by the {@link SpringDataKeyspace}. Will use the {@link Cluster} instance configured in * {@link #cluster()}. * * @see #cluster() @@ -93,7 +93,7 @@ public abstract class AbstractCassandraConfiguration implements BeanClassLoaderA } /** - * Creates a {@link Keyspace} to be used by the {@link CassandraTemplate}. Will use the {@link Session} instance + * Creates a {@link SpringDataKeyspace} 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() @@ -102,8 +102,8 @@ public abstract class AbstractCassandraConfiguration implements BeanClassLoaderA * @throws Exception */ @Bean - public Keyspace keyspace() throws Exception { - return new Keyspace(getKeyspaceName(), session(), converter()); + public SpringDataKeyspace keyspace() throws Exception { + return new SpringDataKeyspace(getKeyspaceName(), session(), converter()); } /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java index a5aa85fca..77292e0d6 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java @@ -5,7 +5,7 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cassandra.core.Keyspace; +import org.springframework.data.cassandra.core.SpringDataKeyspace; import org.springframework.cassandra.core.SessionCallback; import org.springframework.cassandra.support.CassandraExceptionTranslator; import org.springframework.cassandra.support.exception.CassandraTableExistsException; @@ -30,7 +30,7 @@ public class CassandraAdminTemplate implements CassandraAdminOperations { private static Logger log = LoggerFactory.getLogger(CassandraAdminTemplate.class); - private Keyspace keyspace; + private SpringDataKeyspace keyspace; private Session session; private CassandraConverter converter; private MappingContext, CassandraPersistentProperty> mappingContext; @@ -42,11 +42,11 @@ public class CassandraAdminTemplate implements CassandraAdminOperations { * * @param keyspace must not be {@literal null}. */ - public CassandraAdminTemplate(Keyspace keyspace) { + public CassandraAdminTemplate(SpringDataKeyspace keyspace) { setKeyspace(keyspace); } - protected CassandraAdminTemplate setKeyspace(Keyspace keyspace) { + protected CassandraAdminTemplate setKeyspace(SpringDataKeyspace keyspace) { Assert.notNull(keyspace); this.keyspace = keyspace; return setSession(keyspace.getSession()).setCassandraConverter(keyspace.getCassandraConverter()); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraKeyspaceFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraKeyspaceFactoryBean.java index ef79df884..36aae8114 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraKeyspaceFactoryBean.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraKeyspaceFactoryBean.java @@ -24,7 +24,7 @@ import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; -import org.springframework.cassandra.core.Keyspace; +import org.springframework.data.cassandra.core.SpringDataKeyspace; import org.springframework.cassandra.support.CassandraExceptionTranslator; import org.springframework.dao.DataAccessException; import org.springframework.dao.InvalidDataAccessApiUsageException; @@ -55,7 +55,7 @@ import com.datastax.driver.core.exceptions.NoHostAvailableException; * @author Alex Shvid */ -public class CassandraKeyspaceFactoryBean implements FactoryBean, InitializingBean, DisposableBean, +public class CassandraKeyspaceFactoryBean implements FactoryBean, InitializingBean, DisposableBean, BeanClassLoaderAware, PersistenceExceptionTranslator { private static final Logger log = LoggerFactory.getLogger(CassandraKeyspaceFactoryBean.class); @@ -72,7 +72,7 @@ public class CassandraKeyspaceFactoryBean implements FactoryBean, Init private CassandraConverter converter; private MappingContext, CassandraPersistentProperty> mappingContext; - private Keyspace keyspaceBean; + private SpringDataKeyspace keyspaceBean; private KeyspaceAttributes keyspaceAttributes; @@ -82,7 +82,7 @@ public class CassandraKeyspaceFactoryBean implements FactoryBean, Init this.beanClassLoader = classLoader; } - public Keyspace getObject() { + public SpringDataKeyspace getObject() { return keyspaceBean; } @@ -245,7 +245,7 @@ public class CassandraKeyspaceFactoryBean implements FactoryBean, Init // initialize property this.session = session; - this.keyspaceBean = new Keyspace(keyspace, session, converter); + this.keyspaceBean = new SpringDataKeyspace(keyspace, session, converter); } private void createNewTable(Session session, String useTableName, CassandraPersistentEntity entity) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/SpringDataKeyspace.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/SpringDataKeyspace.java new file mode 100644 index 000000000..065d7f7f8 --- /dev/null +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/SpringDataKeyspace.java @@ -0,0 +1,30 @@ +package org.springframework.data.cassandra.core; + +import org.springframework.cassandra.core.Keyspace; +import org.springframework.data.cassandra.convert.CassandraConverter; +import org.springframework.util.Assert; + +import com.datastax.driver.core.Session; + +/** + * @deprecated This needs more thought. + */ +@Deprecated +public class SpringDataKeyspace extends Keyspace { + + private CassandraConverter converter; + + public SpringDataKeyspace(String keyspace, Session session, CassandraConverter converter) { + super(keyspace, session); + setCassandraConverter(converter); + } + + public CassandraConverter getCassandraConverter() { + return converter; + } + + private void setCassandraConverter(CassandraConverter converter) { + Assert.notNull(converter); + this.converter = converter; + } +} diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/mapping/CassandraMappingContext.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/mapping/CassandraMappingContext.java index ec59a044c..341de5a35 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/mapping/CassandraMappingContext.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/mapping/CassandraMappingContext.java @@ -77,9 +77,6 @@ public class CassandraMappingContext extends */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - this.context = applicationContext; - super.setApplicationContext(applicationContext); } - } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/config/CassandraNamespaceTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/config/CassandraNamespaceTests.java index 4be1b08f0..5117d0e3f 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/config/CassandraNamespaceTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/test/integration/config/CassandraNamespaceTests.java @@ -11,7 +11,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cassandra.core.Keyspace; +import org.springframework.data.cassandra.core.SpringDataKeyspace; import org.springframework.context.ApplicationContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -39,10 +39,9 @@ public class CassandraNamespaceTests { Assert.isInstanceOf(Cluster.class, cluster); Object ks = ctx.getBean("cassandra-keyspace"); Assert.notNull(ks); - Assert.isInstanceOf(Keyspace.class, ks); + Assert.isInstanceOf(SpringDataKeyspace.class, ks); Cluster c = (Cluster) cluster; - System.out.println(org.apache.commons.beanutils.BeanUtils.describe(c.getConfiguration())); } @After diff --git a/spring-data-cassandra/template.mf b/spring-data-cassandra/template.mf index 3cbe47034..053c579cc 100644 --- a/spring-data-cassandra/template.mf +++ b/spring-data-cassandra/template.mf @@ -1,6 +1,6 @@ Bundle-SymbolicName: org.springframework.data.cassandra Bundle-Name: Spring Data Cassandra -Bundle-Vendor: Mirantis +Bundle-Vendor: Spring Data Cassandra Community Bundle-ManifestVersion: 2 Import-Package: sun.reflect;version="0";resolution:=optional @@ -16,6 +16,7 @@ Import-Template: org.springframework.transaction.support.*;version="[3.1.0, 4.0.0)", org.springframework.data.*;version="[1.5.0, 2.0.0)", org.springframework.expression.*;version="[3.1.0, 4.0.0)", + org.springframework.cassandra.*;version="[1.0.0,2.0.0)", org.aopalliance.*;version="[1.0.0, 2.0.0)";resolution:=optional, org.apache.commons.logging.*;version="[1.1.1, 2.0.0)", org.w3c.dom.*;version="0",