Search in sources :

Example 51 with SimpleMongoDbFactory

use of org.springframework.data.mongodb.core.SimpleMongoDbFactory in project spring-data-mongodb by spring-projects.

the class MappingMongoConverterBenchmark method setUp.

@Setup
public void setUp() throws Exception {
    client = new MongoClient(new ServerAddress());
    this.mappingContext = new MongoMappingContext();
    this.mappingContext.setInitialEntitySet(Collections.singleton(Customer.class));
    this.mappingContext.afterPropertiesSet();
    DbRefResolver dbRefResolver = new DefaultDbRefResolver(new SimpleMongoDbFactory(client, DB_NAME));
    this.converter = new MappingMongoConverter(dbRefResolver, mappingContext);
    this.converter.setCustomConversions(new MongoCustomConversions(Collections.emptyList()));
    this.converter.afterPropertiesSet();
    // just a flat document
    this.documentWith2Properties = new Document("firstname", "Dave").append("lastname", "Matthews");
    // document with a nested one
    Document address = new Document("zipCode", "ABCDE").append("city", "Some Place");
    this.documentWith2PropertiesAnd1Nested = // 
    new Document("firstname", "Dave").append("lastname", // 
    "Matthews").append("address", address);
    // object equivalent of documentWith2PropertiesAnd1Nested
    this.objectWith2PropertiesAnd1Nested = new Customer("Dave", "Matthews", new Address("zipCode", "City"));
    // a bit more challenging object with list & map conversion.
    objectWithFlatAndComplexPropertiesPlusListAndMap = new SlightlyMoreComplexObject();
    objectWithFlatAndComplexPropertiesPlusListAndMap.id = UUID.randomUUID().toString();
    objectWithFlatAndComplexPropertiesPlusListAndMap.addressList = Arrays.asList(new Address("zip-1", "city-1"), new Address("zip-2", "city-2"));
    objectWithFlatAndComplexPropertiesPlusListAndMap.customer = objectWith2PropertiesAnd1Nested;
    objectWithFlatAndComplexPropertiesPlusListAndMap.customerMap = new LinkedHashMap<>();
    objectWithFlatAndComplexPropertiesPlusListAndMap.customerMap.put("dave", objectWith2PropertiesAnd1Nested);
    objectWithFlatAndComplexPropertiesPlusListAndMap.customerMap.put("deborah", new Customer("Deborah Anne", "Dyer", new Address("?", "london")));
    objectWithFlatAndComplexPropertiesPlusListAndMap.customerMap.put("eddie", new Customer("Eddie", "Vedder", new Address("??", "Seattle")));
    objectWithFlatAndComplexPropertiesPlusListAndMap.intOne = Integer.MIN_VALUE;
    objectWithFlatAndComplexPropertiesPlusListAndMap.intTwo = Integer.MAX_VALUE;
    objectWithFlatAndComplexPropertiesPlusListAndMap.location = new Point(-33.865143, 151.209900);
    objectWithFlatAndComplexPropertiesPlusListAndMap.renamedField = "supercalifragilisticexpialidocious";
    objectWithFlatAndComplexPropertiesPlusListAndMap.stringOne = "¯\\_(ツ)_/¯";
    objectWithFlatAndComplexPropertiesPlusListAndMap.stringTwo = " (╯°□°)╯︵ ┻━┻";
    // JSON equivalent of objectWithFlatAndComplexPropertiesPlusListAndMap
    documentWithFlatAndComplexPropertiesPlusListAndMap = Document.parse("{ \"_id\" : \"517f6aee-e9e0-44f0-88ed-f3694a019f27\", \"intOne\" : -2147483648, \"intTwo\" : 2147483647, \"stringOne\" : \"¯\\\\_(ツ)_/¯\", \"stringTwo\" : \" (╯°□°)╯︵ ┻━┻\", \"explicit-field-name\" : \"supercalifragilisticexpialidocious\", \"location\" : { \"x\" : -33.865143, \"y\" : 151.2099 }, \"objectWith2PropertiesAnd1Nested\" : { \"firstname\" : \"Dave\", \"lastname\" : \"Matthews\", \"address\" : { \"zipCode\" : \"zipCode\", \"city\" : \"City\" } }, \"addressList\" : [{ \"zipCode\" : \"zip-1\", \"city\" : \"city-1\" }, { \"zipCode\" : \"zip-2\", \"city\" : \"city-2\" }], \"customerMap\" : { \"dave\" : { \"firstname\" : \"Dave\", \"lastname\" : \"Matthews\", \"address\" : { \"zipCode\" : \"zipCode\", \"city\" : \"City\" } }, \"deborah\" : { \"firstname\" : \"Deborah Anne\", \"lastname\" : \"Dyer\", \"address\" : { \"zipCode\" : \"?\", \"city\" : \"london\" } }, \"eddie\" : { \"firstname\" : \"Eddie\", \"lastname\" : \"Vedder\", \"address\" : { \"zipCode\" : \"??\", \"city\" : \"Seattle\" } } }, \"_class\" : \"org.springframework.data.mongodb.core.convert.MappingMongoConverterBenchmark$SlightlyMoreComplexObject\" }");
}
Also used : ServerAddress(com.mongodb.ServerAddress) ServerAddress(com.mongodb.ServerAddress) Point(org.springframework.data.geo.Point) Document(org.bson.Document) MongoClient(com.mongodb.MongoClient) SimpleMongoDbFactory(org.springframework.data.mongodb.core.SimpleMongoDbFactory) MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) Setup(org.openjdk.jmh.annotations.Setup)

Aggregations

SimpleMongoDbFactory (org.springframework.data.mongodb.core.SimpleMongoDbFactory)51 MongoClient (com.mongodb.MongoClient)38 Test (org.junit.Test)28 MongoDbAvailable (org.springframework.integration.mongodb.rules.MongoDbAvailable)28 AbstractBatchingMessageGroupStore (org.springframework.integration.store.AbstractBatchingMessageGroupStore)16 MessageGroupStore (org.springframework.integration.store.MessageGroupStore)16 GenericMessage (org.springframework.messaging.support.GenericMessage)14 MessageGroup (org.springframework.integration.store.MessageGroup)12 MongoTemplate (org.springframework.data.mongodb.core.MongoTemplate)10 Bean (org.springframework.context.annotation.Bean)9 MongoDbFactory (org.springframework.data.mongodb.MongoDbFactory)8 MappingMongoConverter (org.springframework.data.mongodb.core.convert.MappingMongoConverter)8 MessageStore (org.springframework.integration.store.MessageStore)8 MongoClientURI (com.mongodb.MongoClientURI)6 Net (de.flapdoodle.embed.mongo.config.Net)4 Matchers.containsString (org.hamcrest.Matchers.containsString)4 GenericApplicationContext (org.springframework.context.support.GenericApplicationContext)4 ClaimCheckInTransformer (org.springframework.integration.transformer.ClaimCheckInTransformer)4 ClaimCheckOutTransformer (org.springframework.integration.transformer.ClaimCheckOutTransformer)4 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)3