diff --git a/.travis.yml b/.travis.yml index ec13902e..9f82cf44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ jdk: - oraclejdk8 services: - - mongodb - redis-server cache: diff --git a/mongodb/aggregation/pom.xml b/mongodb/aggregation/pom.xml index bc3fc634..58980a3a 100644 --- a/mongodb/aggregation/pom.xml +++ b/mongodb/aggregation/pom.xml @@ -11,14 +11,5 @@ spring-data-mongodb-examples 1.0.0.BUILD-SNAPSHOT - - - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - - \ No newline at end of file diff --git a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java index dfccbfa3..ad2182b1 100644 --- a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java +++ b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java @@ -22,20 +22,12 @@ import static org.junit.Assert.*; import java.util.Date; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import example.springdata.mongodb.aggregation.ApplicationConfiguration; -import example.springdata.mongodb.aggregation.Invoice; -import example.springdata.mongodb.aggregation.LineItem; -import example.springdata.mongodb.aggregation.Order; -import example.springdata.mongodb.aggregation.OrderRepository; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * Integration tests for {@link OrderRepository}. * @@ -46,8 +38,6 @@ import example.springdata.mongodb.util.RequiresMongoDB; @SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class OrderRepositoryIntegrationTests { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.anyVersion(); - @Autowired OrderRepository repository; private final static LineItem product1 = new LineItem("p1", 1.23); diff --git a/mongodb/aggregation/src/test/resources/logback.xml b/mongodb/aggregation/src/test/resources/logback.xml deleted file mode 100644 index 39985cc4..00000000 --- a/mongodb/aggregation/src/test/resources/logback.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - %d %5p %40.40c:%4L - %m%n - - - - - - - - - - \ No newline at end of file diff --git a/mongodb/example/pom.xml b/mongodb/example/pom.xml index c4ee34b3..5c3bebda 100644 --- a/mongodb/example/pom.xml +++ b/mongodb/example/pom.xml @@ -12,15 +12,6 @@ 1.0.0.BUILD-SNAPSHOT - - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - - - diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java index d832e536..ade14f56 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java @@ -18,8 +18,9 @@ package example.springdata.mongodb.advanced; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; +import example.springdata.mongodb.customer.Customer; + import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -27,16 +28,12 @@ import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Meta; -import org.springframework.data.util.Version; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.BasicDBObject; import com.mongodb.DBCursor; import com.mongodb.DBObject; -import example.springdata.mongodb.customer.Customer; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * @author Christoph Strobl */ @@ -44,8 +41,6 @@ import example.springdata.mongodb.util.RequiresMongoDB; @SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class AdvancedIntegrationTests { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.atLeast(new Version(2, 6)); - @Autowired AdvancedRepository repository; @Autowired MongoOperations operations; @@ -76,8 +71,8 @@ public class AdvancedIntegrationTests { // execute another finder without meta attributes that should not be picked up repository.findByLastname(dave.getLastname(), new Sort("firstname")); - DBCursor cursor = operations.getCollection(ApplicationConfiguration.SYSTEM_PROFILE_DB).find( - new BasicDBObject("query.$comment", AdvancedRepository.META_COMMENT)); + DBCursor cursor = operations.getCollection(ApplicationConfiguration.SYSTEM_PROFILE_DB) + .find(new BasicDBObject("query.$comment", AdvancedRepository.META_COMMENT)); while (cursor.hasNext()) { diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/ServersideScriptTests.java b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/ServersideScriptTests.java index 7e4192c0..352a2eba 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/ServersideScriptTests.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/ServersideScriptTests.java @@ -20,12 +20,10 @@ import static org.hamcrest.core.IsNull.*; import static org.junit.Assert.*; import example.springdata.mongodb.customer.Customer; -import example.springdata.mongodb.util.RequiresMongoDB; import java.util.Map; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +31,6 @@ import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.script.ExecutableMongoScript; import org.springframework.data.mongodb.core.script.NamedMongoScript; -import org.springframework.data.util.Version; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.BasicDBObject; @@ -46,8 +43,6 @@ import com.mongodb.DBObject; @SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class ServersideScriptTests { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.atLeast(new Version(2, 6)); - @Autowired AdvancedRepository repository; @Autowired MongoOperations operations; diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java b/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java index df435feb..4419cb95 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java @@ -21,7 +21,6 @@ import static org.junit.Assert.*; import java.util.List; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -35,8 +34,6 @@ import org.springframework.data.mongodb.core.index.GeospatialIndex; import org.springframework.data.querydsl.QSort; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * Integration test for {@link CustomerRepository}. * @@ -46,8 +43,6 @@ import example.springdata.mongodb.util.RequiresMongoDB; @SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class CustomerRepositoryIntegrationTest { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.anyVersion(); - @Autowired CustomerRepository repository; @Autowired MongoOperations operations; diff --git a/mongodb/example/src/test/resources/application.properties b/mongodb/example/src/test/resources/application.properties new file mode 100644 index 00000000..c59a689b --- /dev/null +++ b/mongodb/example/src/test/resources/application.properties @@ -0,0 +1,2 @@ +# Random port for embedded MongoDB +spring.data.mongodb.port=0 diff --git a/mongodb/geo-json/pom.xml b/mongodb/geo-json/pom.xml index 2b7f0fd9..ce64e543 100644 --- a/mongodb/geo-json/pom.xml +++ b/mongodb/geo-json/pom.xml @@ -12,23 +12,12 @@ Spring Data MongoDB - GeoJson support - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - com.fasterxml.jackson.core jackson-databind - - org.springframework.data - spring-data-mongodb - - diff --git a/mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/Application.java b/mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/ApplicationConfiguration.java similarity index 92% rename from mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/Application.java rename to mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/ApplicationConfiguration.java index 936f577f..610a05e1 100644 --- a/mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/Application.java +++ b/mongodb/geo-json/src/main/java/example/springdata/mongodb/geojson/ApplicationConfiguration.java @@ -17,7 +17,6 @@ package example.springdata.mongodb.geojson; import static com.fasterxml.jackson.databind.DeserializationFeature.*; -import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.core.io.ClassPathResource; @@ -37,11 +36,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; * @author Oliver Gierke */ @SpringBootApplication -public class Application { - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } +public class ApplicationConfiguration { /** * Read JSON data from disk and insert those stores. diff --git a/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java b/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java index 1ad41cac..3f6314de 100644 --- a/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java +++ b/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java @@ -15,7 +15,6 @@ */ package example.springdata.mongodb.geojson; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -28,17 +27,11 @@ import org.springframework.data.mongodb.core.geo.GeoJson; import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.util.Version; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; -import example.springdata.mongodb.geojson.Application; -import example.springdata.mongodb.geojson.Store; -import example.springdata.mongodb.geojson.StoreRepository; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * Integration tests for {@link StoreRepository}. * @@ -46,14 +39,12 @@ import example.springdata.mongodb.util.RequiresMongoDB; * @author Oliver Gierke */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = { Application.class }) +@SpringApplicationConfiguration(classes = { ApplicationConfiguration.class }) public class StoreRepositoryTests { private static final GeoJsonPolygon GEO_JSON_POLYGON = new GeoJsonPolygon(new Point(-73.992514, 40.758934), new Point(-73.961138, 40.760348), new Point(-73.991658, 40.730006), new Point(-73.992514, 40.758934)); - public static @ClassRule RequiresMongoDB requiresMongoDB_2_6 = RequiresMongoDB.atLeast(new Version(2, 6, 0)); - @Autowired StoreRepository repository; @Autowired MongoOperations operations; @@ -114,9 +105,8 @@ public class StoreRepositoryTests { */ @Test public void findWithinLegacyPolygon() { - repository.findByLocationWithin( - new Polygon(new Point(-73.992514, 40.758934), new Point(-73.961138, 40.760348), - new Point(-73.991658, 40.730006))).forEach(System.out::println); + repository.findByLocationWithin(new Polygon(new Point(-73.992514, 40.758934), new Point(-73.961138, 40.760348), + new Point(-73.991658, 40.730006))).forEach(System.out::println); } /** @@ -130,8 +120,8 @@ public class StoreRepositoryTests { operations.getConverter().write(GEO_JSON_POLYGON, geoJsonDbo); - BasicQuery bq = new BasicQuery(new BasicDBObject("location", new BasicDBObject("$geoIntersects", new BasicDBObject( - "$geometry", geoJsonDbo)))); + BasicQuery bq = new BasicQuery( + new BasicDBObject("location", new BasicDBObject("$geoIntersects", new BasicDBObject("$geometry", geoJsonDbo)))); operations.find(bq, Store.class).forEach(System.out::println); } diff --git a/mongodb/geo-json/src/test/resources/application.properties b/mongodb/geo-json/src/test/resources/application.properties new file mode 100644 index 00000000..c59a689b --- /dev/null +++ b/mongodb/geo-json/src/test/resources/application.properties @@ -0,0 +1,2 @@ +# Random port for embedded MongoDB +spring.data.mongodb.port=0 diff --git a/mongodb/java8/pom.xml b/mongodb/java8/pom.xml index b54a1638..9a059360 100644 --- a/mongodb/java8/pom.xml +++ b/mongodb/java8/pom.xml @@ -11,19 +11,4 @@ spring-data-mongodb-java8 Spring Data MongoDB - Java 8 specific features - - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - - - - org.springframework.data - spring-data-mongodb - - - - diff --git a/mongodb/java8/src/test/java/example/springdata/mongodb/people/PersonRepositoryIntegrationTest.java b/mongodb/java8/src/test/java/example/springdata/mongodb/people/PersonRepositoryIntegrationTest.java index b0e77417..a236b053 100644 --- a/mongodb/java8/src/test/java/example/springdata/mongodb/people/PersonRepositoryIntegrationTest.java +++ b/mongodb/java8/src/test/java/example/springdata/mongodb/people/PersonRepositoryIntegrationTest.java @@ -18,7 +18,6 @@ package example.springdata.mongodb.people; import java.util.stream.Stream; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -27,8 +26,6 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.mapping.event.LoggingEventListener; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * Integration test for {@link PersonRepository}. * @@ -39,8 +36,6 @@ import example.springdata.mongodb.util.RequiresMongoDB; @SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class PersonRepositoryIntegrationTest { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.anyVersion(); - @Autowired PersonRepository repository; @Autowired MongoOperations operations; diff --git a/mongodb/java8/src/test/resources/application.properties b/mongodb/java8/src/test/resources/application.properties new file mode 100644 index 00000000..c59a689b --- /dev/null +++ b/mongodb/java8/src/test/resources/application.properties @@ -0,0 +1,2 @@ +# Random port for embedded MongoDB +spring.data.mongodb.port=0 diff --git a/mongodb/pom.xml b/mongodb/pom.xml index 6f4523a8..eee53492 100644 --- a/mongodb/pom.xml +++ b/mongodb/pom.xml @@ -22,7 +22,6 @@ text-search java8 security - util geo-json @@ -44,6 +43,12 @@ spring-boot-starter + + de.flapdoodle.embed + de.flapdoodle.embed.mongo + runtime + + \ No newline at end of file diff --git a/mongodb/security/pom.xml b/mongodb/security/pom.xml index c3d04dc7..34633d63 100644 --- a/mongodb/security/pom.xml +++ b/mongodb/security/pom.xml @@ -13,13 +13,6 @@ - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - - org.springframework.boot spring-boot-starter-security diff --git a/mongodb/security/src/main/java/example/springdata/mongodb/security/Application.java b/mongodb/security/src/main/java/example/springdata/mongodb/security/ApplicationConfiguration.java similarity index 97% rename from mongodb/security/src/main/java/example/springdata/mongodb/security/Application.java rename to mongodb/security/src/main/java/example/springdata/mongodb/security/ApplicationConfiguration.java index f6dda983..7bc23845 100644 --- a/mongodb/security/src/main/java/example/springdata/mongodb/security/Application.java +++ b/mongodb/security/src/main/java/example/springdata/mongodb/security/ApplicationConfiguration.java @@ -28,7 +28,7 @@ import org.springframework.security.data.repository.query.SecurityEvaluationCont * @author Thomas Darimont */ @SpringBootApplication -class Application { +class ApplicationConfiguration { @Bean public EvaluationContextExtension securityExtension() { diff --git a/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java b/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java index d8928163..a0616833 100644 --- a/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java +++ b/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java @@ -18,16 +18,10 @@ package example.springdata.mongodb.security; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import example.springdata.mongodb.security.Application; -import example.springdata.mongodb.security.Person; -import example.springdata.mongodb.security.PersonRepository; -import example.springdata.mongodb.util.RequiresMongoDB; - import java.util.Collections; import java.util.List; import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -41,14 +35,12 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; * Integration test for {@link PersonRepository}. * * @author Thomas Darimont - * @authot Oliver Gierke + * @author Oliver Gierke */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = Application.class) +@SpringApplicationConfiguration(classes = ApplicationConfiguration.class) public class PersonRepositoryIntegrationTest { - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.anyVersion(); - @Autowired PersonRepository repository; Person dave, oliver, carter, admin; diff --git a/mongodb/security/src/test/resources/application.properties b/mongodb/security/src/test/resources/application.properties new file mode 100644 index 00000000..c59a689b --- /dev/null +++ b/mongodb/security/src/test/resources/application.properties @@ -0,0 +1,2 @@ +# Random port for embedded MongoDB +spring.data.mongodb.port=0 diff --git a/mongodb/text-search/pom.xml b/mongodb/text-search/pom.xml index 0b04942e..3e50d2c8 100644 --- a/mongodb/text-search/pom.xml +++ b/mongodb/text-search/pom.xml @@ -13,15 +13,11 @@ + com.fasterxml.jackson.core jackson-databind - - ${project.groupId} - spring-data-mongodb-utils - ${project.version} - test - + diff --git a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java index f1cba0e3..f6d94fd9 100644 --- a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java +++ b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 the original author or authors. + * Copyright 2014-2015 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,18 +19,14 @@ import static example.springdata.mongodb.util.ConsoleResultPrinter.*; import java.util.List; -import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.mapping.TextScore; import org.springframework.data.mongodb.core.query.TextCriteria; -import org.springframework.data.util.Version; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import example.springdata.mongodb.util.RequiresMongoDB; - /** * Integration tests showing the text search functionality using repositories. * @@ -44,8 +40,6 @@ public class TextSearchRepositoryTests { @Autowired BlogPostRepository repo; - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.atLeast(new Version(2, 6)); - /** * Show how to do simple matching.
* Note that text search is case insensitive and will also find entries like {@literal releases}. diff --git a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java index f67a3c03..4cd520f1 100644 --- a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java +++ b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 the original author or authors. + * Copyright 2014-2015 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. @@ -20,47 +20,41 @@ import static org.springframework.data.mongodb.core.query.Query.*; import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; import org.junit.Test; -import org.springframework.boot.autoconfigure.mongo.MongoProperties; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoOperations; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.index.TextIndexDefinition; -import org.springframework.data.mongodb.core.index.TextIndexDefinition.TextIndexDefinitionBuilder; import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.data.mongodb.core.query.TextQuery; -import org.springframework.data.util.Version; - -import example.springdata.mongodb.util.BlogPostInitializer; -import example.springdata.mongodb.util.RequiresMongoDB; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Christoph Strobl * @author Thomas Darimont */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { MongoTestConfiguration.class }) public class TextSearchTemplateTests { - MongoOperations operations; + @Autowired MongoOperations operations; - @ClassRule public static RequiresMongoDB mongodbAvailable = RequiresMongoDB.atLeast(new Version(2, 6)); - - @Before - public void setUp() throws Exception { - - MongoProperties properties = new MongoProperties(); - - operations = new MongoTemplate(properties.createMongoClient(null), properties.getMongoClientDatabase()); - operations.dropCollection(BlogPost.class); - - createIndex(); - - BlogPostInitializer.INSTANCE.initialize(this.operations); - } + // @Before + // public void setUp() throws Exception { + // + // MongoProperties properties = new MongoProperties(); + // + // operations = new MongoTemplate(properties.createMongoClient(null), properties.getMongoClientDatabase()); + // operations.dropCollection(BlogPost.class); + // + // createIndex(); + // + // BlogPostInitializer.INSTANCE.initialize(this.operations); + // } /** - * Show how to do simple matching.
- * Note that text search is case insensitive and will also find entries like {@literal releases}. + * Show how to do simple matching. Note that text search is case insensitive and will also find entries like + * {@literal releases}. */ @Test public void findAllBlogPostsWithRelease() { @@ -87,36 +81,4 @@ public class TextSearchTemplateTests { printResult(blogPosts, criteria); } - - /** - * Creates the mongodb text index for {@link BlogPost}.
- * - *
-	 * 
-	 * db.collection.ensureIndex(
-	 * {
-	 *     "title" : "text" 
-	 *     "content" : "text"
-	 *     "categories" : "text",
-	 * },
-	 * {
-	 *     weights : {
-	 *         "title" : 3,
-	 *         "content" : 2
-	 *     }
-	 * }
-	 * )
-	 * 
-	 * 
- */ - private void createIndex() { - - TextIndexDefinition textIndex = new TextIndexDefinitionBuilder()// - .onField("title", 3F) // - .onField("content", 2F) // - .onField("categories") // - .build(); - - operations.indexOps(BlogPost.class).ensureIndex(textIndex); - } } diff --git a/mongodb/util/pom.xml b/mongodb/util/pom.xml deleted file mode 100644 index 6333f4b0..00000000 --- a/mongodb/util/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - - spring-data-mongodb-utils - - Spring Data MongoDB - Example utilities - - - org.springframework.data.examples - spring-data-mongodb-examples - 1.0.0.BUILD-SNAPSHOT - - - - - org.springframework.boot - spring-boot-starter-test - - - diff --git a/mongodb/util/src/main/java/example/springdata/mongodb/util/RequiresMongoDB.java b/mongodb/util/src/main/java/example/springdata/mongodb/util/RequiresMongoDB.java deleted file mode 100644 index 753c9525..00000000 --- a/mongodb/util/src/main/java/example/springdata/mongodb/util/RequiresMongoDB.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2014-2015 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 example.springdata.mongodb.util; - -import java.net.UnknownHostException; - -import org.junit.AssumptionViolatedException; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.rules.ExternalResource; -import org.junit.rules.TestRule; -import org.springframework.data.util.Version; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import com.mongodb.BasicDBObjectBuilder; -import com.mongodb.CommandResult; -import com.mongodb.DB; -import com.mongodb.MongoClient; - -/** - * {@link TestRule} verifying server tests are executed against match a given version. This one can be used as - * {@link ClassRule} e.g. in context depending tests run with {@link SpringJUnit4ClassRunner} when the context would - * fail to start in case of invalid version, or as simple {@link Rule} on specific tests. - * - * @author Christoph Strobl - * @author Alexander Golonzovsky - * @since 1.6 - */ -public class RequiresMongoDB extends ExternalResource { - - private String host = "localhost"; - private int port = 27017; - - private final Version minVersion; - private final Version maxVersion; - - private Version currentVersion; - - public RequiresMongoDB(Version min, Version max) { - this.minVersion = min; - this.maxVersion = max; - } - - public static RequiresMongoDB anyVersion() { - return new RequiresMongoDB(new Version(0, 0, 0), new Version(9999, 9999, 9999)); - } - - public static RequiresMongoDB atLeast(Version minVersion) { - return new RequiresMongoDB(minVersion, new Version(9999, 9999, 9999)); - } - - public static RequiresMongoDB atMost(Version maxVersion) { - return new RequiresMongoDB(new Version(0, 0, 0), maxVersion); - } - - public RequiresMongoDB serverRunningAt(String host, int port) { - this.host = host; - this.port = port; - - return this; - } - - @Override - protected void before() throws Throwable { - - initCurrentVersion(); - - if (currentVersion.isLessThan(minVersion) || currentVersion.isGreaterThan(maxVersion)) { - throw new AssumptionViolatedException(String.format( - "Expected mongodb server to be in range %s to %s but found %s", minVersion, maxVersion, currentVersion)); - } - } - - private void initCurrentVersion() { - - if (currentVersion == null) { - try { - DB db = new MongoClient(host, port).getDB("test"); - CommandResult result = db.command(new BasicDBObjectBuilder().add("buildInfo", 1).get()); - this.currentVersion = Version.parse(result.get("version").toString()); - } catch (com.mongodb.MongoTimeoutException | UnknownHostException e) { - throw new AssumptionViolatedException("Seems as mongodb server is not running.", e); - } - } - } -} diff --git a/rest/multi-store/pom.xml b/rest/multi-store/pom.xml index adeb324a..2c5deb0f 100644 --- a/rest/multi-store/pom.xml +++ b/rest/multi-store/pom.xml @@ -21,6 +21,7 @@ org.springframework.boot spring-boot-starter-data-jpa
+ com.h2database h2 @@ -31,6 +32,13 @@ org.springframework.boot spring-boot-starter-data-mongodb + + + de.flapdoodle.embed + de.flapdoodle.embed.mongo + runtime + +
diff --git a/rest/starbucks/pom.xml b/rest/starbucks/pom.xml index 35f037ac..dd0d129f 100644 --- a/rest/starbucks/pom.xml +++ b/rest/starbucks/pom.xml @@ -19,6 +19,12 @@ spring-boot-starter-data-mongodb + + de.flapdoodle.embed + de.flapdoodle.embed.mongo + runtime + + com.mysema.querydsl querydsl-mongodb @@ -28,9 +34,13 @@ org.springframework.data spring-data-rest-hal-browser - 2.4.0.DATAREST-627-SNAPSHOT runtime + + + com.fasterxml.jackson.module + jackson-module-parameter-names + org.springframework.batch @@ -75,7 +85,6 @@ org.webjars webjars-locator - 0.22 runtime diff --git a/rest/starbucks/src/main/java/example/springdata/rest/stores/StoreApp.java b/rest/starbucks/src/main/java/example/springdata/rest/stores/StoreApp.java index 28c9e8f4..eebb66da 100644 --- a/rest/starbucks/src/main/java/example/springdata/rest/stores/StoreApp.java +++ b/rest/starbucks/src/main/java/example/springdata/rest/stores/StoreApp.java @@ -17,6 +17,10 @@ package example.springdata.rest.stores; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +import com.fasterxml.jackson.databind.Module; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; /** * Spring configuration class main application bootstrap point. @@ -29,4 +33,9 @@ public class StoreApp { public static void main(String[] args) { SpringApplication.run(StoreApp.class, args); } + + // Workaround for https://github.com/spring-projects/spring-boot/issues/4336 + public @Bean Module namesModule() { + return new ParameterNamesModule(); + } } diff --git a/rest/starbucks/src/main/resources/application.properties b/rest/starbucks/src/main/resources/application.properties index 6846da4e..fc79c73a 100644 --- a/rest/starbucks/src/main/resources/application.properties +++ b/rest/starbucks/src/main/resources/application.properties @@ -1 +1,5 @@ +# Random port for embedded MongoDB +spring.data.mongodb.port=0 + +# Spring Data REST spring.data.rest.base-path=/api