Skip to content

Commit d9f7790

Browse files
mp911deodrotbohm
authored andcommitted
spring-projects#224 - Use external or embedded (if external Apache Cassandra is not available) for Cassandra examples.
We now check whether an external Apache Cassandra instance is available at localhost:9042 and use it to run the examples. Otherwise, if no external Apache Cassandra instance is available, we start an embedded Cassandra instance.
1 parent 1d3af17 commit d9f7790

File tree

21 files changed

+1081
-213
lines changed

21 files changed

+1081
-213
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ addons:
1010

1111
services:
1212
- redis-server
13-
- cassandra
1413

1514
cache:
1615
directories:

cassandra/example/Readme.MD

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

cassandra/example/src/test/java/example/springdata/cassandra/basic/BasicUserRepositoryTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,20 @@
1919
import static org.junit.Assert.*;
2020
import static org.junit.Assume.*;
2121

22+
import example.springdata.cassandra.util.CassandraKeyspace;
23+
import example.springdata.cassandra.util.CassandraVersion;
24+
2225
import org.junit.Before;
2326
import org.junit.ClassRule;
2427
import org.junit.Test;
2528
import org.junit.runner.RunWith;
26-
2729
import org.springframework.beans.factory.annotation.Autowired;
2830
import org.springframework.boot.test.context.SpringBootTest;
2931
import org.springframework.data.util.Version;
3032
import org.springframework.test.context.junit4.SpringRunner;
3133

3234
import com.datastax.driver.core.Session;
3335

34-
import example.springdata.cassandra.util.CassandraVersion;
35-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
36-
3736
/**
3837
* Integration test showing the basic usage of {@link BasicUserRepository}.
3938
*
@@ -48,7 +47,7 @@ public class BasicUserRepositoryTests {
4847

4948
public final static Version CASSANDRA_3_4 = Version.parse("3.4");
5049

51-
@ClassRule public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost();
50+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost();
5251

5352
@Autowired BasicUserRepository repository;
5453
@Autowired Session session;

cassandra/example/src/test/java/example/springdata/cassandra/basic/CassandraOperationsIntegrationTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import static org.hamcrest.Matchers.*;
1919
import static org.junit.Assert.*;
2020

21+
import example.springdata.cassandra.util.CassandraKeyspace;
22+
2123
import java.util.Collection;
2224
import java.util.List;
2325
import java.util.Map;
@@ -28,7 +30,6 @@
2830
import org.junit.ClassRule;
2931
import org.junit.Test;
3032
import org.junit.runner.RunWith;
31-
3233
import org.springframework.beans.factory.annotation.Autowired;
3334
import org.springframework.boot.test.context.SpringBootTest;
3435
import org.springframework.data.cassandra.core.CassandraOperations;
@@ -40,18 +41,16 @@
4041
import com.datastax.driver.core.querybuilder.Insert;
4142
import com.datastax.driver.core.querybuilder.QueryBuilder;
4243

43-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
44-
4544
/**
4645
* Integration test showing the basic usage of {@link CassandraTemplate}.
4746
*
4847
* @author Mark Paluch
4948
*/
5049
@RunWith(SpringRunner.class)
51-
@SpringBootTest(classes = BasicConfiguration.CassandraConfig.class)
50+
@SpringBootTest(classes = BasicConfiguration.class)
5251
public class CassandraOperationsIntegrationTests {
5352

54-
@ClassRule public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost();
53+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost();
5554

5655
@Autowired CassandraOperations template;
5756

cassandra/example/src/test/java/example/springdata/cassandra/convert/ConversionIntegrationTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
import static org.hamcrest.MatcherAssert.*;
1919
import static org.hamcrest.Matchers.*;
2020

21+
import example.springdata.cassandra.util.CassandraKeyspace;
22+
2123
import java.util.Arrays;
2224

2325
import org.junit.Before;
2426
import org.junit.ClassRule;
2527
import org.junit.Test;
2628
import org.junit.runner.RunWith;
27-
2829
import org.springframework.beans.factory.annotation.Autowired;
2930
import org.springframework.boot.test.context.SpringBootTest;
3031
import org.springframework.data.cassandra.core.CassandraOperations;
@@ -33,16 +34,14 @@
3334
import com.datastax.driver.core.Row;
3435
import com.datastax.driver.core.querybuilder.QueryBuilder;
3536

36-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
37-
3837
/**
3938
* @author Mark Paluch
4039
*/
4140
@RunWith(SpringRunner.class)
4241
@SpringBootTest(classes = ConverterConfiguration.class)
4342
public class ConversionIntegrationTests {
4443

45-
@ClassRule public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost();
44+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost();
4645

4746
@Autowired CassandraOperations operations;
4847

cassandra/example/src/test/java/example/springdata/cassandra/projection/CustomerRepositoryIntegrationTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,19 @@
1818
import static org.hamcrest.Matchers.*;
1919
import static org.junit.Assert.*;
2020

21+
import example.springdata.cassandra.util.CassandraKeyspace;
22+
2123
import java.util.Collection;
2224

2325
import org.junit.Before;
2426
import org.junit.ClassRule;
2527
import org.junit.Test;
2628
import org.junit.runner.RunWith;
27-
2829
import org.springframework.beans.factory.annotation.Autowired;
2930
import org.springframework.boot.test.context.SpringBootTest;
3031
import org.springframework.data.projection.TargetAware;
3132
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
3233

33-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
34-
3534
/**
3635
* Integration tests for {@link CustomerRepository} to show projection capabilities.
3736
*
@@ -41,7 +40,7 @@
4140
@SpringBootTest(classes = ProjectionConfiguration.class)
4241
public class CustomerRepositoryIntegrationTest {
4342

44-
@ClassRule public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost();
43+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost();
4544

4645
@Autowired CustomerRepository customers;
4746

cassandra/java8/README.md

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,3 @@ public interface PersonRepository extends CrudRepository<Person, String> {
1919
```
2020

2121
The test cases in `PersonRepositoryIntegrationTest` oppose a plain `List` based query method with one that uses a `Stream` and shows how the former pulls all data into memory first and the iteration is done over the pre-populated list. The execution of the `Stream`-based method in contrast shows that the individual elements are read and converted while iterating the stream.
22-
23-
## Preparation
24-
25-
### Install Cassandra
26-
Before we can start we have to install Cassandra, e.g. via brew on Max OS.
27-
28-
More details can be found here: https://wiki.apache.org/cassandra/GettingStarted
29-
30-
### Start Cassandra
31-
```
32-
/usr/local/bin/cassandra -f
33-
```
34-
35-
That should be enough to get you started.
36-
Now you can simply type ```mvn clean install``` to run the example.

cassandra/java8/src/test/java/example/springdata/cassandra/java8/Java8IntegrationTests.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
*/
1616
package example.springdata.cassandra.java8;
1717

18-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
1918
import static org.hamcrest.Matchers.*;
2019
import static org.junit.Assert.*;
2120

21+
import example.springdata.cassandra.util.CassandraKeyspace;
22+
2223
import java.util.Optional;
2324
import java.util.stream.Collectors;
2425
import java.util.stream.Stream;
@@ -41,8 +42,8 @@
4142
@SpringBootTest(classes = CassandraConfiguration.class)
4243
public class Java8IntegrationTests {
4344

44-
@ClassRule
45-
public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost().atLeast(Version.parse("3.0"));
45+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost()
46+
.atLeast(Version.parse("3.0"));
4647

4748
@Autowired PersonRepository repository;
4849

cassandra/java8/src/test/java/example/springdata/cassandra/java8/Jsr310IntegrationTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import static org.hamcrest.Matchers.*;
1919
import static org.junit.Assert.*;
2020

21+
import example.springdata.cassandra.util.CassandraKeyspace;
22+
2123
import java.time.LocalDate;
2224
import java.time.ZoneId;
2325

@@ -30,8 +32,6 @@
3032
import org.springframework.data.util.Version;
3133
import org.springframework.test.context.junit4.SpringRunner;
3234

33-
import example.springdata.cassandra.util.RequiresCassandraKeyspace;
34-
3535
/**
3636
* Integration test to show the usage of JSR-310 date/time types with Spring Data Cassandra.
3737
*
@@ -41,7 +41,7 @@
4141
@SpringBootTest(classes = CassandraConfiguration.class)
4242
public class Jsr310IntegrationTests {
4343

44-
@ClassRule public final static RequiresCassandraKeyspace CASSANDRA_KEYSPACE = RequiresCassandraKeyspace.onLocalhost()
44+
@ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost()
4545
.atLeast(Version.parse("3.0"));
4646

4747
@Autowired OrderRepository repository;

cassandra/reactive/README.md

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ public interface ReactivePersonRepository extends ReactiveCrudRepository<Person,
3737
Flux<Person> findByLastname(Mono<String> lastname);
3838

3939
Mono<Person> findByFirstnameAndLastname(Mono<String> firstname, String lastname);
40-
41-
@InfiniteStream // Use a tailable cursor
42-
Flux<Person> findWithTailableCursorBy();
4340
}
4441
```
4542

@@ -55,25 +52,5 @@ public interface RxJava1PersonRepository extends RxJava1CrudRepository<Person, S
5552
Observable<Person> findByLastname(Single<String> lastname);
5653

5754
Single<Person> findByFirstnameAndLastname(Single<String> firstname, String lastname);
58-
59-
@InfiniteStream // Use a tailable cursor
60-
Observable<Person> findWithTailableCursorBy();
6155
}
6256
```
63-
64-
## Preparation
65-
66-
### Install Cassandra
67-
68-
Before we can start we have to install Cassandra, e.g. via brew on Max OS.
69-
70-
More details can be found here: https://wiki.apache.org/cassandra/GettingStarted
71-
72-
### Start Cassandra
73-
74-
```
75-
/usr/local/bin/cassandra -f
76-
```
77-
78-
That should be enough to get you started.
79-
Now you can simply type ```mvn clean install``` to run the example.

0 commit comments

Comments
 (0)