Added Spring tests and ensured a minimal implementation.

Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/6fab0f93
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/6fab0f93
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/6fab0f93

Branch: refs/heads/master
Commit: 6fab0f93223056c5de48b07759e230ccbaae7002
Parents: 043a3e6
Author: anatole <anat...@apache.org>
Authored: Thu Nov 12 01:24:52 2015 +0100
Committer: anatole <anat...@apache.org>
Committed: Thu Nov 12 01:24:52 2015 +0100

----------------------------------------------------------------------
 .../SpringConfigInjectionPostProcessor.java     |  3 ++
 .../integration/spring/TamayaEnvironment.java   | 18 ++++++++
 .../integration/spring/TamayaSpringConfig.java  | 10 +++-
 .../spring/TamayaSpringPropertySource.java      |  1 +
 .../spring/ConfiguredSpringBean.java            | 10 ++++
 .../integration/spring/SpringConfigTest2.java   | 48 ++++++++++++++++++++
 .../META-INF/javaconfiguration.properties       |  3 +-
 .../test/resources/spring-config-scanOnly.xml   | 35 ++++++++++++++
 .../spring/src/test/resources/spring-config.xml |  2 -
 9 files changed, 126 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
index 1193b8d..91f0047 100644
--- 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
+++ 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
@@ -21,10 +21,13 @@ package org.apache.tamaya.integration.spring;
 import org.apache.tamaya.inject.ConfigurationInjection;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
 
 /**
  * PostProcessor that performs injection of configured values using Tamaya 
{@link ConfigurationInjection}.
  */
+@Component
 public class SpringConfigInjectionPostProcessor implements BeanPostProcessor{
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaEnvironment.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaEnvironment.java
 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaEnvironment.java
new file mode 100644
index 0000000..6f3214f
--- /dev/null
+++ 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaEnvironment.java
@@ -0,0 +1,18 @@
+package org.apache.tamaya.integration.spring;
+
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.core.env.StandardEnvironment;
+import org.springframework.core.env.SystemEnvironmentPropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by atsticks on 12.11.15.
+ */
+public class TamayaEnvironment extends StandardEnvironment{
+
+    protected void customizePropertySources(MutablePropertySources 
propertySources) {
+        super.customizePropertySources(propertySources);
+        propertySources.addLast(new TamayaSpringPropertySource());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringConfig.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringConfig.java
 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringConfig.java
index e3adf3f..15e616e 100644
--- 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringConfig.java
+++ 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringConfig.java
@@ -24,6 +24,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import 
org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.core.env.PropertySources;
+import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
 
@@ -31,6 +34,7 @@ import javax.annotation.PostConstruct;
  * Spring Configuration Bean adding {@link TamayaSpringPropertySource} to the 
current
  * {@link org.springframework.core.env.Environment}.
  */
+@Component
 @Configuration
 public class TamayaSpringConfig {
 
@@ -44,6 +48,10 @@ public class TamayaSpringConfig {
 
     @Bean
     public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() 
{
-        return new PropertySourcesPlaceholderConfigurer();
+        PropertySourcesPlaceholderConfigurer cfgBean = new 
PropertySourcesPlaceholderConfigurer();
+        MutablePropertySources sources = new MutablePropertySources();
+        sources.addFirst(new TamayaSpringPropertySource());
+        cfgBean.setPropertySources(sources);
+        return cfgBean;
     }
  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
index 2e8ac1c..cb85a2a 100644
--- 
a/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
+++ 
b/modules/integration/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
@@ -21,6 +21,7 @@ package org.apache.tamaya.integration.spring;
 
 import org.apache.tamaya.ConfigurationProvider;
 import org.springframework.core.env.PropertySource;
+import org.springframework.stereotype.Component;
 
 /**
  * Spring PropertySource bridging to Tamaya {@link 
org.apache.tamaya.Configuration}.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/ConfiguredSpringBean.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/ConfiguredSpringBean.java
 
b/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/ConfiguredSpringBean.java
index 95b10ef..b926233 100644
--- 
a/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/ConfiguredSpringBean.java
+++ 
b/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/ConfiguredSpringBean.java
@@ -30,6 +30,8 @@ import org.springframework.core.env.Environment;
 @ConfigDefaultSections
 public class ConfiguredSpringBean {
 
+    private String message;
+
     @Autowired
     private Environment env;
 
@@ -51,4 +53,12 @@ public class ConfiguredSpringBean {
     public Environment getEnv(){
         return env;
     }
+
+    public void setMessage(String message){
+        this.message = message;
+    }
+
+    public String getMessage() {
+        return message;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/SpringConfigTest2.java
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/SpringConfigTest2.java
 
b/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/SpringConfigTest2.java
new file mode 100644
index 0000000..d59ae0d
--- /dev/null
+++ 
b/modules/integration/spring/src/test/java/org/apache/tamaya/integration/spring/SpringConfigTest2.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.tamaya.integration.spring;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * Test using standard Spring setup.
+ */
+public class SpringConfigTest2 {
+
+    @Test
+    public void assertDefaultSetup(){
+        ApplicationContext context = new 
ClassPathXmlApplicationContext("classpath:spring-config-scanOnly.xml");
+        ConfiguredSpringBean configuredBean = 
context.getBean(ConfiguredSpringBean.class);
+        assertNotNull(configuredBean.getJavaVersion());
+        assertEquals(System.getProperty("java.version"), 
configuredBean.getJavaVersion());
+        org.springframework.core.env.Environment env;
+        assertNotNull(configuredBean.getMessage());
+        assertEquals("value2", configuredBean.getMessage());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/test/resources/META-INF/javaconfiguration.properties
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/test/resources/META-INF/javaconfiguration.properties
 
b/modules/integration/spring/src/test/resources/META-INF/javaconfiguration.properties
index 3a7cba7..3366128 100644
--- 
a/modules/integration/spring/src/test/resources/META-INF/javaconfiguration.properties
+++ 
b/modules/integration/spring/src/test/resources/META-INF/javaconfiguration.properties
@@ -16,4 +16,5 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-myConfiguredValue=value11
\ No newline at end of file
+myConfiguredValue=value11
+propertyValue=value2
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/test/resources/spring-config-scanOnly.xml
----------------------------------------------------------------------
diff --git 
a/modules/integration/spring/src/test/resources/spring-config-scanOnly.xml 
b/modules/integration/spring/src/test/resources/spring-config-scanOnly.xml
new file mode 100644
index 0000000..6e98d80
--- /dev/null
+++ b/modules/integration/spring/src/test/resources/spring-config-scanOnly.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you 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 current 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns:context="http://www.springframework.org/schema/context";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd";>
+    <context:annotation-config />
+    <context:component-scan 
base-package="org.apache.tamaya.integration.spring"/>
+
+    <!-- Our dependencies -->
+    <!--<bean id="tamayaInjectionProcessor" name="tamayaInjectionProcessor" 
class="org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor"/>-->
+    <!--<bean id="tamayaConfigProvider" name="tamayaConfigProvider" 
class="org.apache.tamaya.integration.spring.TamayaSpringConfig"/>-->
+    <bean id="configuredBean" name="configuredBean" 
class="org.apache.tamaya.integration.spring.ConfiguredSpringBean">
+        <property name="message" value="${propertyValue}"/>
+    </bean>
+
+</beans>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/6fab0f93/modules/integration/spring/src/test/resources/spring-config.xml
----------------------------------------------------------------------
diff --git a/modules/integration/spring/src/test/resources/spring-config.xml 
b/modules/integration/spring/src/test/resources/spring-config.xml
index 1978ab9..fc3f9d8 100644
--- a/modules/integration/spring/src/test/resources/spring-config.xml
+++ b/modules/integration/spring/src/test/resources/spring-config.xml
@@ -22,8 +22,6 @@ under the License.
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:context="http://www.springframework.org/schema/context";
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd";>
-    <context:annotation-config />
-    <context:component-scan 
base-package="org.apache.tamaya.integration.spring"/>
 
     <!-- Our dependencies -->
     <bean id="tamayaInjectionProcessor" name="tamayaInjectionProcessor" 
class="org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor"/>

Reply via email to