From 743264cbb87dde5ef47c8533f62564b55ee35bef Mon Sep 17 00:00:00 2001 From: Martin Baumgartner Date: Sat, 25 Jan 2014 18:44:28 +0100 Subject: [PATCH] DATAMONGO-823: Add bucket attribute to --- .../mongodb/config/GridFsTemplateParser.java | 8 ++++++- .../data/mongodb/config/spring-mongo-1.4.xsd | 6 ++++++ .../mongodb/config/MongoNamespaceTests.java | 21 ++++++++++++++++--- .../config/MongoNamespaceTests-context.xml | 3 ++- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/GridFsTemplateParser.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/GridFsTemplateParser.java index 9f1351e748..b468c901a7 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/GridFsTemplateParser.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/GridFsTemplateParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 the original author or authors. + * Copyright 2013-2014 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. @@ -57,6 +57,7 @@ protected AbstractBeanDefinition parseInternal(Element element, ParserContext pa String converterRef = element.getAttribute("converter-ref"); String dbFactoryRef = element.getAttribute("db-factory-ref"); + String bucket = element.getAttribute("bucket"); BeanDefinitionBuilder gridFsTemplateBuilder = BeanDefinitionBuilder.genericBeanDefinition(GridFsTemplate.class); @@ -71,6 +72,11 @@ protected AbstractBeanDefinition parseInternal(Element element, ParserContext pa } else { gridFsTemplateBuilder.addConstructorArgReference(BeanNames.DEFAULT_CONVERTER_BEAN_NAME); } + + if (StringUtils.hasText(bucket)){ + gridFsTemplateBuilder.addConstructorArgValue(bucket); + } + return (AbstractBeanDefinition) helper.getComponentIdButFallback(gridFsTemplateBuilder, BeanNames.GRID_FS_TEMPLATE) .getBeanDefinition(); diff --git a/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.4.xsd b/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.4.xsd index 749e3c3742..c036f6b506 100644 --- a/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.4.xsd +++ b/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.4.xsd @@ -628,6 +628,12 @@ The reference to a Mongoconverter instance. + + + + + \ No newline at end of file diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoNamespaceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoNamespaceTests.java index 1dacf982e0..1a027cabb0 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoNamespaceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoNamespaceTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 the original author or authors. + * Copyright 2010-2014 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. @@ -176,10 +176,25 @@ public void testGridFsTemplateFactory() { */ @Test public void testSecondGridFsTemplateFactory() { - assertTrue(ctx.containsBean("antoherGridFsTemplate")); - GridFsOperations operations = (GridFsOperations) ctx.getBean("antoherGridFsTemplate"); + assertTrue(ctx.containsBean("secondGridFsTemplate")); + GridFsOperations operations = (GridFsOperations) ctx.getBean("secondGridFsTemplate"); MongoDbFactory dbf = (MongoDbFactory) getField(operations, "dbFactory"); assertEquals("database", getField(dbf, "databaseName")); + assertEquals(null, getField(operations, "bucket")); + MongoConverter converter = (MongoConverter) getField(operations, "converter"); + assertNotNull(converter); + } + + /** + * @see DATAMONGO-823 + */ + @Test + public void testThirdGridFsTemplateFactory() { + assertTrue(ctx.containsBean("thirdGridFsTemplate")); + GridFsOperations operations = (GridFsOperations) ctx.getBean("thirdGridFsTemplate"); + MongoDbFactory dbf = (MongoDbFactory) getField(operations, "dbFactory"); + assertEquals("database", getField(dbf, "databaseName")); + assertEquals("bucketString", getField(operations, "bucket")); MongoConverter converter = (MongoConverter) getField(operations, "converter"); assertNotNull(converter); } diff --git a/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/config/MongoNamespaceTests-context.xml b/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/config/MongoNamespaceTests-context.xml index 056c638121..cfb76c9541 100644 --- a/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/config/MongoNamespaceTests-context.xml +++ b/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/config/MongoNamespaceTests-context.xml @@ -76,6 +76,7 @@ - + +