diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/basic/BasicConfiguration.java b/cassandra/example/src/main/java/example/springdata/cassandra/basic/BasicConfiguration.java index 38a27f8a..9f3eda99 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/basic/BasicConfiguration.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/basic/BasicConfiguration.java @@ -18,8 +18,8 @@ package example.springdata.cassandra.basic; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; import org.springframework.data.cassandra.config.SchemaAction; -import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration; import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/basic/User.java b/cassandra/example/src/main/java/example/springdata/cassandra/basic/User.java index 7203c6b3..2b454ae7 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/basic/User.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/basic/User.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2016 the original author or authors. + * Copyright 2013-2017 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. @@ -18,15 +18,16 @@ package example.springdata.cassandra.basic; import lombok.Data; import lombok.NoArgsConstructor; -import org.springframework.data.cassandra.mapping.Column; -import org.springframework.data.cassandra.mapping.PrimaryKey; -import org.springframework.data.cassandra.mapping.Table; +import org.springframework.data.cassandra.core.mapping.Column; +import org.springframework.data.cassandra.core.mapping.PrimaryKey; +import org.springframework.data.cassandra.core.mapping.Table; /** * Sample user class. - * + * * @author Oliver Gierke * @author Thomas Darimont + * @author Mark Paluch */ @Data @NoArgsConstructor diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/convert/Addressbook.java b/cassandra/example/src/main/java/example/springdata/cassandra/convert/Addressbook.java index 0caff593..fd644534 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/convert/Addressbook.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/convert/Addressbook.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,16 +15,16 @@ */ package example.springdata.cassandra.convert; -import org.springframework.data.annotation.Id; -import org.springframework.data.cassandra.mapping.Table; - import lombok.Data; import java.util.List; +import org.springframework.data.annotation.Id; +import org.springframework.data.cassandra.core.mapping.Table; + /** * Sample Addressbook class. - * + * * @author Mark Paluch */ @Data diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/convert/Contact.java b/cassandra/example/src/main/java/example/springdata/cassandra/convert/Contact.java index 1a4ebf58..1d5f02c8 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/convert/Contact.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/convert/Contact.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -21,7 +21,7 @@ import lombok.NoArgsConstructor; /** * Sample Contact class. - * + * * @author Mark Paluch */ @Data diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/convert/ConverterConfiguration.java b/cassandra/example/src/main/java/example/springdata/cassandra/convert/ConverterConfiguration.java index fd62c085..e313b046 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/convert/ConverterConfiguration.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/convert/ConverterConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -21,9 +21,9 @@ import java.util.List; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.converter.Converter; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; import org.springframework.data.cassandra.config.SchemaAction; -import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration; -import org.springframework.data.cassandra.convert.CassandraCustomConversions; +import org.springframework.data.cassandra.core.convert.CassandraCustomConversions; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; import org.springframework.util.StringUtils; @@ -32,7 +32,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; /** * {@link Configuration} class to register custom converters. - * + * * @author Mark Paluch */ @Configuration diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/projection/Customer.java b/cassandra/example/src/main/java/example/springdata/cassandra/projection/Customer.java index 8255dfb3..4ff98650 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/projection/Customer.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/projection/Customer.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,11 +15,11 @@ */ package example.springdata.cassandra.projection; -import org.springframework.data.annotation.Id; -import org.springframework.data.cassandra.mapping.Table; - import lombok.Value; +import org.springframework.data.annotation.Id; +import org.springframework.data.cassandra.core.mapping.Table; + /** * @author Mark Paluch */ diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/projection/ProjectionConfiguration.java b/cassandra/example/src/main/java/example/springdata/cassandra/projection/ProjectionConfiguration.java index 0758a458..ff21925a 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/projection/ProjectionConfiguration.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/projection/ProjectionConfiguration.java @@ -16,17 +16,11 @@ package example.springdata.cassandra.projection; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; import org.springframework.data.cassandra.config.SchemaAction; -import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration; -import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; -import com.datastax.driver.core.Session; - -import example.springdata.cassandra.basic.User; - /** * Basic {@link Configuration} to create the necessary schema for the {@link Customer} table. * diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/udt/Address.java b/cassandra/example/src/main/java/example/springdata/cassandra/udt/Address.java index 2e3bf60c..6f39d787 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/udt/Address.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/udt/Address.java @@ -18,7 +18,7 @@ package example.springdata.cassandra.udt; import lombok.AllArgsConstructor; import lombok.Data; -import org.springframework.data.cassandra.mapping.UserDefinedType; +import org.springframework.data.cassandra.core.mapping.UserDefinedType; /** * @author Mark Paluch diff --git a/cassandra/example/src/main/java/example/springdata/cassandra/udt/Person.java b/cassandra/example/src/main/java/example/springdata/cassandra/udt/Person.java index 6c14680f..4674bd06 100644 --- a/cassandra/example/src/main/java/example/springdata/cassandra/udt/Person.java +++ b/cassandra/example/src/main/java/example/springdata/cassandra/udt/Person.java @@ -15,15 +15,16 @@ */ package example.springdata.cassandra.udt; -import com.datastax.driver.core.DataType.Name; -import com.datastax.driver.core.UDTValue; import lombok.Data; import java.util.List; import org.springframework.data.annotation.Id; -import org.springframework.data.cassandra.mapping.CassandraType; -import org.springframework.data.cassandra.mapping.Table; +import org.springframework.data.cassandra.core.mapping.CassandraType; +import org.springframework.data.cassandra.core.mapping.Table; + +import com.datastax.driver.core.DataType.Name; +import com.datastax.driver.core.UDTValue; /** * @author Mark Paluch diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/basic/BasicUserRepositoryTests.java b/cassandra/example/src/test/java/example/springdata/cassandra/basic/BasicUserRepositoryTests.java index 7170fd3c..50c88617 100644 --- a/cassandra/example/src/test/java/example/springdata/cassandra/basic/BasicUserRepositoryTests.java +++ b/cassandra/example/src/test/java/example/springdata/cassandra/basic/BasicUserRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2014 the original author or authors. + * Copyright 2013-2017 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. @@ -15,8 +15,7 @@ */ package example.springdata.cassandra.basic; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import static org.junit.Assume.*; import example.springdata.cassandra.util.CassandraKeyspace; @@ -35,7 +34,7 @@ import com.datastax.driver.core.Session; /** * Integration test showing the basic usage of {@link BasicUserRepository}. - * + * * @author Oliver Gierke * @author Thomas Darimont * @author Christoph Strobl @@ -71,7 +70,7 @@ public class BasicUserRepositoryTests { user = repository.save(user); - assertThat(repository.findById(user.getId()), is(user)); + assertThat(repository.findById(user.getId())).contains(user); } /** @@ -82,8 +81,8 @@ public class BasicUserRepositoryTests { repository.save(user); - assertThat(repository.findUserByIdIn(1000), is(nullValue())); - assertThat(repository.findUserByIdIn(42), is(equalTo(user))); + assertThat(repository.findUserByIdIn(1000)).isNull(); + assertThat(repository.findUserByIdIn(42)).isEqualTo(user); } /** @@ -103,7 +102,7 @@ public class BasicUserRepositoryTests { repository.save(user); - assertThat(repository.findUserByUsername(user.getUsername()), is(user)); + assertThat(repository.findUserByUsername(user.getUsername())).isEqualTo(user); } /** @@ -123,6 +122,6 @@ public class BasicUserRepositoryTests { repository.save(user); - assertThat(repository.findUsersByLastnameStartsWith("last"), hasItem(user)); + assertThat(repository.findUsersByLastnameStartsWith("last")).contains(user); } } diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/basic/CassandraOperationsIntegrationTests.java b/cassandra/example/src/test/java/example/springdata/cassandra/basic/CassandraOperationsIntegrationTests.java index b4cd3c3d..d7b767f2 100644 --- a/cassandra/example/src/test/java/example/springdata/cassandra/basic/CassandraOperationsIntegrationTests.java +++ b/cassandra/example/src/test/java/example/springdata/cassandra/basic/CassandraOperationsIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,12 +15,10 @@ */ package example.springdata.cassandra.basic; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import example.springdata.cassandra.util.CassandraKeyspace; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; @@ -32,18 +30,20 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.cassandra.core.AsyncCassandraTemplate; import org.springframework.data.cassandra.core.CassandraOperations; import org.springframework.data.cassandra.core.CassandraTemplate; -import org.springframework.data.cassandra.core.WriteListener; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.concurrent.ListenableFuture; import com.datastax.driver.core.Row; +import com.datastax.driver.core.Session; import com.datastax.driver.core.querybuilder.Insert; import com.datastax.driver.core.querybuilder.QueryBuilder; /** * Integration test showing the basic usage of {@link CassandraTemplate}. - * + * * @author Mark Paluch */ @RunWith(SpringRunner.class) @@ -52,11 +52,12 @@ public class CassandraOperationsIntegrationTests { @ClassRule public final static CassandraKeyspace CASSANDRA_KEYSPACE = CassandraKeyspace.onLocalhost(); + @Autowired Session session; @Autowired CassandraOperations template; @Before public void setUp() throws Exception { - template.truncate("users"); + template.getCqlOperations().execute("TRUNCATE users"); } /** @@ -72,14 +73,14 @@ public class CassandraOperationsIntegrationTests { .value("lname", "White") // .ifNotExists(); // - template.execute(insert); + template.getCqlOperations().execute(insert); - User user = template.selectOneById(User.class, 42L); - assertThat(user.getUsername(), is(equalTo("heisenberg"))); + User user = template.selectOneById(42L, User.class); + assertThat(user.getUsername()).isEqualTo("heisenberg"); List users = template.select(QueryBuilder.select().from("users"), User.class); - assertThat(users, hasSize(1)); - assertThat(users.get(0), is(equalTo(user))); + assertThat(users).hasSize(1); + assertThat(users.get(0)).isEqualTo(user); } /** @@ -100,9 +101,9 @@ public class CassandraOperationsIntegrationTests { user.setFirstname(null); template.update(user); - User loaded = template.selectOneById(User.class, 42L); - assertThat(loaded.getUsername(), is(equalTo("heisenberg"))); - assertThat(loaded.getFirstname(), is(nullValue())); + User loaded = template.selectOneById(42L, User.class); + assertThat(loaded.getUsername()).isEqualTo("heisenberg"); + assertThat(loaded.getFirstname()).isNull(); } /** @@ -119,21 +120,16 @@ public class CassandraOperationsIntegrationTests { final CountDownLatch countDownLatch = new CountDownLatch(1); - template.insertAsynchronously(user, new WriteListener() { + AsyncCassandraTemplate asyncTemplate = new AsyncCassandraTemplate(session); - @Override - public void onWriteComplete(Collection entities) { - countDownLatch.countDown(); - } + ListenableFuture future = asyncTemplate.insert(user); - @Override - public void onException(Exception x) {} - }); + future.addCallback(it -> countDownLatch.countDown(), throwable -> countDownLatch.countDown()); countDownLatch.await(5, TimeUnit.SECONDS); - User loaded = template.selectOneById(User.class, user.getId()); - assertThat(loaded, is(equalTo(user))); + User loaded = template.selectOneById(user.getId(), User.class); + assertThat(loaded).isEqualTo(user); } /** @@ -153,13 +149,13 @@ public class CassandraOperationsIntegrationTests { template.insert(user); Long id = template.selectOne(QueryBuilder.select("user_id").from("users"), Long.class); - assertThat(id, is(user.getId())); + assertThat(id).isEqualTo(user.getId()); Row row = template.selectOne(QueryBuilder.select("user_id").from("users"), Row.class); - assertThat(row.getLong(0), is(user.getId())); + assertThat(row.getLong(0)).isEqualTo(user.getId()); Map map = template.selectOne(QueryBuilder.select().from("users"), Map.class); - assertThat(map, hasEntry("user_id", user.getId())); - assertThat(map, hasEntry("fname", "Walter")); + assertThat(map).containsEntry("user_id", user.getId()); + assertThat(map).containsEntry("fname", "Walter"); } } diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/convert/ConversionIntegrationTests.java b/cassandra/example/src/test/java/example/springdata/cassandra/convert/ConversionIntegrationTests.java index 9acea93d..daef820a 100644 --- a/cassandra/example/src/test/java/example/springdata/cassandra/convert/ConversionIntegrationTests.java +++ b/cassandra/example/src/test/java/example/springdata/cassandra/convert/ConversionIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,8 +15,7 @@ */ package example.springdata.cassandra.convert; -import static org.hamcrest.MatcherAssert.*; -import static org.hamcrest.Matchers.*; +import static org.assertj.core.api.Assertions.*; import example.springdata.cassandra.util.CassandraKeyspace; @@ -47,7 +46,7 @@ public class ConversionIntegrationTests { @Before public void setUp() throws Exception { - operations.truncate("addressbook"); + operations.getCqlOperations().execute("TRUNCATE addressbook"); } /** @@ -67,11 +66,11 @@ public class ConversionIntegrationTests { Row row = operations.selectOne(QueryBuilder.select().from("addressbook"), Row.class); - assertThat(row, is(notNullValue())); + assertThat(row).isNotNull(); - assertThat(row.getString("id"), is(equalTo("private"))); - assertThat(row.getString("me"), containsString("\"firstname\":\"Walter\"")); - assertThat(row.getList("friends", String.class), hasSize(2)); + assertThat(row.getString("id")).isEqualTo("private"); + assertThat(row.getString("me")).contains("\"firstname\":\"Walter\""); + assertThat(row.getList("friends", String.class)).hasSize(2); } /** @@ -91,8 +90,8 @@ public class ConversionIntegrationTests { Addressbook loaded = operations.selectOne(QueryBuilder.select().from("addressbook"), Addressbook.class); - assertThat(loaded.getMe(), is(equalTo(addressbook.getMe()))); - assertThat(loaded.getFriends(), is(equalTo(addressbook.getFriends()))); + assertThat(loaded.getMe()).isEqualTo(addressbook.getMe()); + assertThat(loaded.getFriends()).isEqualTo(addressbook.getFriends()); } /** @@ -112,7 +111,7 @@ public class ConversionIntegrationTests { CustomAddressbook loaded = operations.selectOne(QueryBuilder.select().from("addressbook"), CustomAddressbook.class); - assertThat(loaded.getTheId(), is(equalTo(addressbook.getId()))); - assertThat(loaded.getMyDetailsAsJson(), containsString("\"firstname\":\"Walter\"")); + assertThat(loaded.getTheId()).isEqualTo(addressbook.getId()); + assertThat(loaded.getMyDetailsAsJson()).contains("\"firstname\":\"Walter\""); } } diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/projection/CustomerRepositoryIntegrationTest.java b/cassandra/example/src/test/java/example/springdata/cassandra/projection/CustomerRepositoryIntegrationTest.java index 16e45a53..ecaf0aca 100644 --- a/cassandra/example/src/test/java/example/springdata/cassandra/projection/CustomerRepositoryIntegrationTest.java +++ b/cassandra/example/src/test/java/example/springdata/cassandra/projection/CustomerRepositoryIntegrationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,8 +15,7 @@ */ package example.springdata.cassandra.projection; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import example.springdata.cassandra.util.CassandraKeyspace; @@ -33,7 +32,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Integration tests for {@link CustomerRepository} to show projection capabilities. - * + * * @author Mark Paluch */ @RunWith(SpringJUnit4ClassRunner.class) @@ -60,8 +59,8 @@ public class CustomerRepositoryIntegrationTest { Collection result = customers.findAllProjectedBy(); - assertThat(result, hasSize(2)); - assertThat(result.iterator().next().getFirstname(), is("Carter")); + assertThat(result).hasSize(2); + assertThat(result.iterator().next().getFirstname()).isEqualTo("Carter"); } @Test @@ -69,8 +68,8 @@ public class CustomerRepositoryIntegrationTest { Collection result = customers.findById("d", CustomerProjection.class); - assertThat(result, hasSize(1)); - assertThat(result.iterator().next().getFirstname(), is("Dave")); + assertThat(result).hasSize(1); + assertThat(result.iterator().next().getFirstname()).isEqualTo("Dave"); } @Test @@ -78,11 +77,11 @@ public class CustomerRepositoryIntegrationTest { CustomerSummary result = customers.findProjectedById(dave.getId(), CustomerSummary.class); - assertThat(result, is(notNullValue())); - assertThat(result.getFullName(), is("Dave Matthews")); + assertThat(result).isNotNull(); + assertThat(result.getFullName()).isEqualTo("Dave Matthews"); // Proxy backed by original instance as the projection uses dynamic elements - assertThat(((TargetAware) result).getTarget(), is(instanceOf(Customer.class))); + assertThat(((TargetAware) result).getTarget()).isInstanceOf(Customer.class); } @Test @@ -90,9 +89,8 @@ public class CustomerRepositoryIntegrationTest { CustomerProjection result = customers.findProjectedById(dave.getId()); - assertThat(result, is(notNullValue())); - assertThat(result.getFirstname(), is("Dave")); - assertThat(((TargetAware) result).getTarget(), is(instanceOf(Customer.class))); + assertThat(result).isNotNull(); + assertThat(result.getFirstname()).isEqualTo("Dave"); + assertThat(((TargetAware) result).getTarget()).isInstanceOf(Customer.class); } - } diff --git a/cassandra/example/src/test/java/example/springdata/cassandra/udt/UserDefinedTypeIntegrationTest.java b/cassandra/example/src/test/java/example/springdata/cassandra/udt/UserDefinedTypeIntegrationTest.java index 96a32f68..9df1a72b 100644 --- a/cassandra/example/src/test/java/example/springdata/cassandra/udt/UserDefinedTypeIntegrationTest.java +++ b/cassandra/example/src/test/java/example/springdata/cassandra/udt/UserDefinedTypeIntegrationTest.java @@ -28,8 +28,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; import org.springframework.data.cassandra.config.SchemaAction; -import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration; import org.springframework.data.cassandra.core.CassandraAdminOperations; import org.springframework.data.cassandra.core.CassandraOperations; import org.springframework.test.context.junit4.SpringRunner; @@ -40,7 +40,7 @@ import com.datastax.driver.core.UserType; /** * Integration test to show User-Defined type support. - * + * * @author Mark Paluch * @author Oliver Gierke */ @@ -74,7 +74,7 @@ public class UserDefinedTypeIntegrationTest { @Before public void before() throws Exception { - operations.truncate("person"); + operations.getCqlOperations().execute("TRUNCATE person"); } /** diff --git a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/CassandraConfiguration.java b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/CassandraConfiguration.java index c008c8a8..c61ba240 100644 --- a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/CassandraConfiguration.java +++ b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/CassandraConfiguration.java @@ -17,8 +17,8 @@ package example.springdata.cassandra.java8; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; import org.springframework.data.cassandra.config.SchemaAction; -import org.springframework.data.cassandra.config.java.AbstractCassandraConfiguration; import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; /** diff --git a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Order.java b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Order.java index eda71bd9..52cd330d 100644 --- a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Order.java +++ b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Order.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -23,7 +23,7 @@ import java.time.LocalDate; import java.time.ZoneId; import org.springframework.data.annotation.Id; -import org.springframework.data.cassandra.mapping.Table; +import org.springframework.data.cassandra.core.mapping.Table; /** * @author Mark Paluch diff --git a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/OrderRepository.java b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/OrderRepository.java index 365db253..5778b2c1 100644 --- a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/OrderRepository.java +++ b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/OrderRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -18,13 +18,13 @@ package example.springdata.cassandra.java8; import java.time.LocalDate; import java.time.ZoneId; -import org.springframework.data.cassandra.mapping.CassandraType; +import org.springframework.data.cassandra.core.mapping.CassandraType; import org.springframework.data.cassandra.repository.Query; import org.springframework.data.repository.Repository; /** * Repository to manage {@link Order} instances. - * + * * @author Mark Paluch */ public interface OrderRepository extends Repository { diff --git a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Person.java b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Person.java index a313f24d..9f4969fc 100644 --- a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Person.java +++ b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/Person.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -16,13 +16,13 @@ package example.springdata.cassandra.java8; -import org.springframework.data.annotation.Id; -import org.springframework.data.cassandra.mapping.Table; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.cassandra.core.mapping.Table; + /** * @author Mark Paluch */ diff --git a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/PersonRepository.java b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/PersonRepository.java index 57ff2826..02714db8 100644 --- a/cassandra/java8/src/main/java/example/springdata/cassandra/java8/PersonRepository.java +++ b/cassandra/java8/src/main/java/example/springdata/cassandra/java8/PersonRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -19,43 +19,36 @@ import java.util.Optional; import java.util.stream.Stream; import org.springframework.data.cassandra.repository.Query; -import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.Repository; /** * Repository to manage {@link Person} instances. - * + * * @author Mark Paluch */ public interface PersonRepository extends Repository { - /** - * Special customization of {@link CrudRepository#findOne(java.io.Serializable)} to return a JDK 8 {@link Optional}. - * - * @param id - * @return - */ - Optional findOne(String id); + Optional findById(String id); Stream findAll(); /** * Sample method to derive a query from using JDK 8's {@link Optional} as return type. - * + * * @param id * @return */ @Query("select * from person where id = ?0") - Optional findById(String id); + Optional findPersonById(String id); /** * Sample default method to show JDK 8 feature support. - * + * * @param person * @return */ default Optional findByPerson(Person person) { - return findById(person == null ? null : person.id); + return findPersonById(person == null ? null : person.id); } void deleteAll(); diff --git a/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Java8IntegrationTests.java b/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Java8IntegrationTests.java old mode 100644 new mode 100755 index 4a48075c..8570f471 --- a/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Java8IntegrationTests.java +++ b/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Java8IntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,8 +15,7 @@ */ package example.springdata.cassandra.java8; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import example.springdata.cassandra.util.CassandraKeyspace; @@ -35,7 +34,7 @@ import org.springframework.test.context.junit4.SpringRunner; /** * Integration test to show the usage of Java 8 features with Spring Data Cassandra. - * + * * @author Mark Paluch */ @RunWith(SpringRunner.class) @@ -57,8 +56,8 @@ public class Java8IntegrationTests { Person homer = repository.save(new Person("1", "Homer", "Simpson")); - assertThat(repository.findOne(homer.id).isPresent(), is(true)); - assertThat(repository.findOne(homer.id + 1), is(Optional. empty())); + assertThat(repository.findById(homer.id).isPresent()).isTrue(); + assertThat(repository.findById(homer.id + 1)).isEqualTo(Optional. empty()); } @Test @@ -67,8 +66,8 @@ public class Java8IntegrationTests { Person homer = repository.save(new Person("1", "Homer", "Simpson")); Optional result = repository.findByPerson(homer); - assertThat(result.isPresent(), is(true)); - assertThat(result.get(), is(homer)); + assertThat(result.isPresent()).isTrue(); + assertThat(result.get()).isEqualTo(homer); } /** @@ -82,7 +81,7 @@ public class Java8IntegrationTests { Person bart = repository.save(new Person("2", "Bart", "Simpson")); try (Stream stream = repository.findAll()) { - assertThat(stream.collect(Collectors.toList()), hasItems(homer, bart)); + assertThat(stream.collect(Collectors.toList())).contains(homer, bart); } } } diff --git a/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Jsr310IntegrationTests.java b/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Jsr310IntegrationTests.java old mode 100644 new mode 100755 index e86df469..3350de1b --- a/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Jsr310IntegrationTests.java +++ b/cassandra/java8/src/test/java/example/springdata/cassandra/java8/Jsr310IntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2017 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. @@ -15,8 +15,7 @@ */ package example.springdata.cassandra.java8; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.*; import example.springdata.cassandra.util.CassandraKeyspace; @@ -34,7 +33,7 @@ import org.springframework.test.context.junit4.SpringRunner; /** * Integration test to show the usage of JSR-310 date/time types with Spring Data Cassandra. - * + * * @author Mark Paluch */ @RunWith(SpringRunner.class) @@ -58,7 +57,7 @@ public class Jsr310IntegrationTests { repository.save(order); - assertThat(repository.findOrderByOrderDateAndZoneId(order.getOrderDate(), order.getZoneId()), is(equalTo(order))); + assertThat(repository.findOrderByOrderDateAndZoneId(order.getOrderDate(), order.getZoneId())).isEqualTo(order); } @Test @@ -71,6 +70,6 @@ public class Jsr310IntegrationTests { com.datastax.driver.core.LocalDate date = com.datastax.driver.core.LocalDate.fromYearMonthDay(2010, 1, 2); String zoneId = order.getZoneId().getId(); - assertThat(repository.findOrderByDate(date, zoneId), is(equalTo(order))); + assertThat(repository.findOrderByDate(date, zoneId)).isEqualTo(order); } } diff --git a/cassandra/reactive/pom.xml b/cassandra/reactive/pom.xml index 2d6f3da9..dc86fae7 100644 --- a/cassandra/reactive/pom.xml +++ b/cassandra/reactive/pom.xml @@ -11,26 +11,8 @@ spring-data-cassandra-reactive Spring Data Cassandra - Reactive features - - Kay-RC2 - 5.0.0.RC3 - 3.1.0.M3 - 2.1.3 - 1.2.1 - - - - org.springframework.data - spring-data-commons - - - - org.springframework.data - spring-data-cassandra - - io.projectreactor reactor-core @@ -39,13 +21,11 @@ io.reactivex.rxjava2 rxjava - ${rxjava.version} io.reactivex rxjava-reactive-streams - ${rxjava-reactive-streams.version} diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java index c9aa4eb5..aa676094 100644 --- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java +++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactiveCassandraTemplateIntegrationTest.java @@ -73,13 +73,13 @@ public class ReactiveCassandraTemplateIntegrationTest { template.count(Person.class) // .doOnNext(System.out::println) // - .thenMany(template.insert(Flux.just(new Person("Hank", "Schrader", 43), // - new Person("Mike", "Ehrmantraut", 62)))) // + .thenMany(Flux.just(new Person("Hank", "Schrader", 43), // + new Person("Mike", "Ehrmantraut", 62))) + .flatMap(template::insert) // .last() // .flatMap(v -> template.count(Person.class)) // .doOnNext(System.out::println) // - .doOnSuccess(it -> countDownLatch.countDown()) // - .doOnError(throwable -> countDownLatch.countDown()) // + .doOnTerminate((i, t) -> countDownLatch.countDown()) // .subscribe(); countDownLatch.await(); diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java index 6869cd25..baeda41a 100644 --- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java +++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/ReactivePersonRepositoryIntegrationTest.java @@ -75,8 +75,7 @@ public class ReactivePersonRepositoryIntegrationTest { .last() // .flatMap(v -> repository.count()) // .doOnNext(System.out::println) // - .doOnSuccess(it -> countDownLatch.countDown()) // - .doOnError(throwable -> countDownLatch.countDown()) // + .doOnTerminate((l, t) -> countDownLatch.countDown()) // .subscribe(); countDownLatch.await(); diff --git a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java index a62d95bb..1a07283f 100644 --- a/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java +++ b/cassandra/reactive/src/test/java/example/springdata/cassandra/people/RxJava2PersonRepositoryIntegrationTest.java @@ -55,7 +55,7 @@ public class RxJava2PersonRepositoryIntegrationTest { Completable deleteAll = repository.deleteAll(); - Flowable save = repository.saveAll(Flowable.just(new Person("Walter", "White", 50), // + Observable save = repository.saveAll(Observable.just(new Person("Walter", "White", 50), // new Person("Skyler", "White", 45), // new Person("Saul", "Goodman", 42), // new Person("Jesse", "Pinkman", 27))); @@ -73,15 +73,14 @@ public class RxJava2PersonRepositoryIntegrationTest { repository.count() // .doOnSuccess(System.out::println) // - .toFlowable() // - .switchMap(count -> repository.saveAll(Flowable.just(new Person("Hank", "Schrader", 43), // + .toObservable() // + .switchMap(count -> repository.saveAll(Observable.just(new Person("Hank", "Schrader", 43), // new Person("Mike", "Ehrmantraut", 62)))) // .lastElement() // .toSingle() // .flatMap(v -> repository.count()) // .doOnSuccess(System.out::println) // .doAfterTerminate(countDownLatch::countDown) // - .doOnError(throwable -> countDownLatch.countDown()) // .subscribe(); countDownLatch.await(); diff --git a/cassandra/util/pom.xml b/cassandra/util/pom.xml index f97697bc..de2461d2 100644 --- a/cassandra/util/pom.xml +++ b/cassandra/util/pom.xml @@ -32,6 +32,10 @@ io.netty netty-all + + com.addthis.metrics + reporter-config3 + diff --git a/pom.xml b/pom.xml index 7b53743f..df91b553 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ bom - + cassandra elasticsearch jpa ldap