Skip to content

Commit 5164953

Browse files
committed
Adding tests with embedded cassandra support
1 parent 24094c8 commit 5164953

11 files changed

Lines changed: 216 additions & 228 deletions

File tree

spring-data-cassandra/pom.xml

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
<properties>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14-
<org.springframework.data.version>1.1.0.RELEASE</org.springframework.data.version>
15-
<org.springframework.version>4.0.7.RELEASE</org.springframework.version>
14+
<org.springframework.data.version>1.3.1.RELEASE</org.springframework.data.version>
15+
<org.springframework.version>4.2.2.RELEASE</org.springframework.version>
1616
<junit.version>4.11</junit.version>
1717
<org.slf4j.version>1.7.12</org.slf4j.version>
1818
<logback.version>1.1.3</logback.version>
@@ -49,9 +49,53 @@
4949
<dependency>
5050
<groupId>org.cassandraunit</groupId>
5151
<artifactId>cassandra-unit-spring</artifactId>
52-
<version>2.1.3.1</version>
52+
<version>2.1.9.2</version>
5353
<scope>test</scope>
54+
<exclusions>
55+
<exclusion>
56+
<groupId>org.cassandraunit</groupId>
57+
<artifactId>cassandra-unit</artifactId>
58+
</exclusion>
59+
</exclusions>
5460
</dependency>
61+
<dependency>
62+
<groupId>org.cassandraunit</groupId>
63+
<artifactId>cassandra-unit-shaded</artifactId>
64+
<version>2.1.9.2</version>
65+
<scope>test</scope>
66+
</dependency>
67+
<dependency>
68+
<groupId>org.hectorclient</groupId>
69+
<artifactId>hector-core</artifactId>
70+
<version>2.0-0</version>
71+
<!--<exclusions>-->
72+
<!--<exclusion>-->
73+
<!--<groupId>org.slf4j</groupId>-->
74+
<!--<artifactId>slf4j-log4j12</artifactId>-->
75+
<!--</exclusion>-->
76+
<!--<exclusion>-->
77+
<!--<groupId>commons-lang</groupId>-->
78+
<!--<artifactId>commons-lang</artifactId>-->
79+
<!--</exclusion>-->
80+
<!--<exclusion>-->
81+
<!--<groupId>com.google.guava</groupId>-->
82+
<!--<artifactId>guava</artifactId>-->
83+
<!--</exclusion>-->
84+
<!--</exclusions>-->
85+
</dependency>
86+
<dependency>
87+
<groupId>com.datastax.cassandra</groupId>
88+
<artifactId>cassandra-driver-core</artifactId>
89+
<version>2.1.5</version>
90+
<optional>true</optional>
91+
<!--<exclusions>-->
92+
<!--<exclusion>-->
93+
<!--<groupId>com.google.guava</groupId>-->
94+
<!--<artifactId>guava</artifactId>-->
95+
<!--</exclusion>-->
96+
<!--</exclusions>-->
97+
</dependency>
98+
5599

56100
<dependency>
57101
<groupId>org.slf4j</groupId>
@@ -84,8 +128,8 @@
84128
<artifactId>maven-compiler-plugin</artifactId>
85129
<version>2.3.2</version>
86130
<configuration>
87-
<source>1.8</source>
88-
<target>1.8</target>
131+
<source>1.7</source>
132+
<target>1.7</target>
89133
</configuration>
90134
</plugin>
91135
</plugins>

spring-data-cassandra/src/main/java/org/baeldung/spring/data/cassandra/config/CassandraConfig.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,39 @@
11
package org.baeldung.spring.data.cassandra.config;
22

3-
3+
import org.apache.commons.logging.Log;
4+
import org.apache.commons.logging.LogFactory;
5+
import org.springframework.beans.factory.annotation.Autowired;
46
import org.springframework.context.annotation.Bean;
57
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.context.annotation.PropertySource;
9+
import org.springframework.core.env.Environment;
610
import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;
711
import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration;
812
import org.springframework.data.cassandra.mapping.BasicCassandraMappingContext;
913
import org.springframework.data.cassandra.mapping.CassandraMappingContext;
1014
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
1115

1216
@Configuration
17+
@PropertySource(value = { "classpath:cassandra.properties" })
1318
@EnableCassandraRepositories(basePackages = "org.baeldung.spring.data.cassandra.repository")
1419
public class CassandraConfig extends AbstractCassandraConfiguration {
1520

21+
private static final Log LOGGER = LogFactory.getLog(CassandraConfig.class);
22+
@Autowired
23+
private Environment environment;
24+
1625
@Override
1726
protected String getKeyspaceName() {
18-
return "event";
27+
return environment.getProperty("cassandra.keyspace");
1928
}
2029

2130
@Bean
2231
public CassandraClusterFactoryBean cluster() {
2332
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
24-
cluster.setContactPoints("127.0.0.1");
25-
cluster.setPort(9142);
33+
cluster.setContactPoints(environment.getProperty("cassandra.contactpoints"));
34+
cluster.setPort(Integer.parseInt(environment.getProperty("cassandra.port")));
35+
LOGGER.info("Cluster created with contact points ["+ environment.getProperty("cassandra.contactpoints") +"] " +
36+
"& port [" + Integer.parseInt(environment.getProperty("cassandra.port")) + "].");
2637
return cluster;
2738
}
2839

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package org.baeldung.spring.data.cassandra.model;
2+
3+
import org.springframework.cassandra.core.Ordering;
4+
import org.springframework.cassandra.core.PrimaryKeyType;
5+
import org.springframework.data.cassandra.mapping.Column;
6+
import org.springframework.data.cassandra.mapping.PrimaryKeyColumn;
7+
import org.springframework.data.cassandra.mapping.Table;
8+
9+
import java.util.HashSet;
10+
import java.util.Set;
11+
import java.util.UUID;
12+
13+
@Table
14+
public class Book {
15+
@PrimaryKeyColumn(name = "isbn", ordinal = 2, type = PrimaryKeyType.CLUSTERED, ordering = Ordering.DESCENDING)
16+
private UUID id;
17+
@PrimaryKeyColumn(name = "title", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
18+
private String title;
19+
@PrimaryKeyColumn(name = "publisher", ordinal = 1, type = PrimaryKeyType.PARTITIONED)
20+
private String publisher;
21+
@Column
22+
private Set<String> tags = new HashSet<>();
23+
24+
public Book(UUID id, String title, String publisher, Set<String> tags) {
25+
this.id = id;
26+
this.title = title;
27+
this.publisher = publisher;
28+
this.tags.addAll(tags);
29+
}
30+
31+
public UUID getId() {
32+
return id;
33+
}
34+
35+
public String getTitle() {
36+
return title;
37+
}
38+
39+
public String getPublisher() {
40+
return publisher;
41+
}
42+
43+
public Set getTags() {
44+
return tags;
45+
}
46+
}

spring-data-cassandra/src/main/java/org/baeldung/spring/data/cassandra/model/Event.java

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.baeldung.spring.data.cassandra.repository;
2+
3+
4+
import org.baeldung.spring.data.cassandra.model.Book;
5+
import org.springframework.data.cassandra.repository.CassandraRepository;
6+
import org.springframework.data.cassandra.repository.Query;
7+
import org.springframework.stereotype.Repository;
8+
9+
@Repository
10+
public interface BookRepository extends CassandraRepository<Book> {
11+
@Query("select * from book where title = ?0 and publisher=?1")
12+
Iterable<Book> findByTitleAndPublisher(String title, String publisher);
13+
}
14+

spring-data-cassandra/src/main/java/org/baeldung/spring/data/cassandra/repository/EventRepository.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

spring-data-cassandra/src/main/resources/beans.xml

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
cassandra.contactpoints=127.0.0.1
2+
cassandra.port=9142
3+
cassandra.keyspace=testKeySpace

spring-data-cassandra/src/test/java/org/baeldung/spring/data/cassandra/config/CassandraTestConfig.java

Lines changed: 0 additions & 66 deletions
This file was deleted.

0 commit comments

Comments
 (0)