DATACOUCH-6 - Add simple support for XML config

This commit is contained in:
Michael Nitschinger
2013-07-17 14:58:51 +02:00
parent 2ed710cfa2
commit ab252f8924
10 changed files with 277 additions and 26 deletions

View File

@@ -18,7 +18,6 @@ package org.springframework.data.couchbase.config;
import org.junit.Test;
import org.junit.Before;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionReader;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
@@ -27,6 +26,8 @@ import org.springframework.core.io.ClassPathResource;
import java.util.List;
import static org.junit.Assert.assertEquals;
/**
* @author Michael Nitschinger
*/
@@ -44,11 +45,15 @@ public class CouchbaseParserIntegrationTest {
@Test
public void readsCouchbaseAttributesCorrectly() {
reader.loadBeanDefinitions(new ClassPathResource("namespace/couchbase-bean.xml"));
BeanDefinition definition = factory.getBeanDefinition("couchbase");
assertEquals(3, definition.getConstructorArgumentValues().getArgumentCount());
List<PropertyValue> values = definition.getPropertyValues().getPropertyValueList();
definition = factory.getBeanDefinition("couchbase2");
assertEquals(3, definition.getConstructorArgumentValues().getArgumentCount());
System.out.println(values);
factory.getBean("couchbase");
factory.getBean("couchbase2");
}
}

View File

@@ -0,0 +1,53 @@
/*
* Copyright 2013 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 org.springframework.data.couchbase.config;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionReader;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;
import static org.junit.Assert.assertEquals;
/**
* @author Michael Nitschinger
*/
public class CouchbaseTemplateParserIntegrationTest {
DefaultListableBeanFactory factory;
BeanDefinitionReader reader;
@Before
public void setUp() {
factory = new DefaultListableBeanFactory();
reader = new XmlBeanDefinitionReader(factory);
}
@Test
public void readsCouchbaseTemplateAttributesCorrectly() {
reader.loadBeanDefinitions(new ClassPathResource("namespace/couchbase-template-bean.xml"));
BeanDefinition definition = factory.getBeanDefinition("couchbaseTemplate");
assertEquals(1, definition.getConstructorArgumentValues().getArgumentCount());
factory.getBean("couchbaseTemplate");
}
}

View File

@@ -5,8 +5,8 @@
xsi:schemaLocation="http://www.springframework.org/schema/data/couchbase http://www.springframework.org/schema/data/couchbase/spring-couchbase.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<couchbase:couchbase id="couchbase" host="localhost" bucket="bucketname" password="secure" />
<couchbase:couchbase/>
<couchbase:couchbase id="couchbase2" />
<couchbase:couchbase id="couchbase2" host="localhost" bucket="default" password="" />
</beans>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:couchbase="http://www.springframework.org/schema/data/couchbase"
xsi:schemaLocation="http://www.springframework.org/schema/data/couchbase http://www.springframework.org/schema/data/couchbase/spring-couchbase.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<couchbase:couchbase/>
<couchbase:template/>
</beans>