summaryrefslogtreecommitdiffstats
path: root/sandbox/slaws/spring/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/slaws/spring/src/main')
-rw-r--r--sandbox/slaws/spring/src/main/java/app/MyBean.java55
-rw-r--r--sandbox/slaws/spring/src/main/java/app/Test.java66
-rw-r--r--sandbox/slaws/spring/src/main/resources/context1.xml35
-rw-r--r--sandbox/slaws/spring/src/main/resources/context2.xml39
-rw-r--r--sandbox/slaws/spring/src/main/resources/context3.xml39
5 files changed, 234 insertions, 0 deletions
diff --git a/sandbox/slaws/spring/src/main/java/app/MyBean.java b/sandbox/slaws/spring/src/main/java/app/MyBean.java
new file mode 100644
index 0000000000..2fa7d72e65
--- /dev/null
+++ b/sandbox/slaws/spring/src/main/java/app/MyBean.java
@@ -0,0 +1,55 @@
+/*
+ * 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 app;
+
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.access.BeanFactoryLocator;
+import org.springframework.beans.factory.access.BeanFactoryReference;
+import org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
+
+public class MyBean {
+
+ private String field1;
+ private MyBean anotherBean;
+ private BeanFactory factory;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public MyBean getAnotherBean() {
+ return anotherBean;
+ }
+
+ public void setAnotherBean(MyBean anotherBean) {
+ this.anotherBean = anotherBean;
+ }
+
+ public BeanFactory getFactory() {
+ return factory;
+ }
+
+ public void setFactory(BeanFactory factory) {
+ this.factory = factory;
+ }
+}
diff --git a/sandbox/slaws/spring/src/main/java/app/Test.java b/sandbox/slaws/spring/src/main/java/app/Test.java
new file mode 100644
index 0000000000..81a71faaf8
--- /dev/null
+++ b/sandbox/slaws/spring/src/main/java/app/Test.java
@@ -0,0 +1,66 @@
+/*
+ * 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 app;
+
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.access.BeanFactoryLocator;
+import org.springframework.beans.factory.access.BeanFactoryReference;
+import org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ */
+public class Test {
+
+ public static void main(String[] args) {
+ // single app context
+/*
+ ApplicationContext context1 = new ClassPathXmlApplicationContext("context1.xml");
+ MyBean myBean1 = (MyBean) context1.getBean("mybean1");
+ System.out.println("mybean1 " + myBean1.getField1());
+ System.out.println("mybean2 " + myBean1.getAnotherBean().getField1());
+*/
+
+ // multi app context - recursive composition
+/*
+ ApplicationContext context2 = new ClassPathXmlApplicationContext("context2.xml");
+ MyBean myBean3 = (MyBean) context2.getBean("mybean4");
+ System.out.println("mybean3 " + myBean3.getField1());
+ System.out.println("mybean1 " + myBean3.getAnotherBean().getField1());
+*/
+
+ // multi app context - declarative app context read from bean
+ ApplicationContext context2 = new ClassPathXmlApplicationContext("context3.xml");
+ MyBean myBean3 = (MyBean) context2.getBean("mybean3");
+ MyBean myBean1 = (MyBean) myBean3.getFactory().getBean("mybean1");
+ System.out.println("mybean1 " + myBean1.getField1());
+ System.out.println("mybean2 " + myBean1.getAnotherBean().getField1());
+
+ // multi app context - declarative app context read from file
+/*
+ BeanFactoryLocator bfLocator = SingletonBeanFactoryLocator.getInstance();
+ BeanFactoryReference bfReference = bfLocator.useBeanFactory("context3.xml");
+ BeanFactory factory = bfReference.getFactory();
+ MyBean myBean1 = (MyBean) factory.getBean("mybean1");
+ System.out.println("mybean1 " + myBean1.getField1());
+ System.out.println("mybean2 " + myBean1.getAnotherBean().getField1());
+*/
+ }
+}
diff --git a/sandbox/slaws/spring/src/main/resources/context1.xml b/sandbox/slaws/spring/src/main/resources/context1.xml
new file mode 100644
index 0000000000..6cd9717649
--- /dev/null
+++ b/sandbox/slaws/spring/src/main/resources/context1.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 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/sca http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd">
+
+ <bean id="mybean1" class="app.MyBean">
+ <property name="field1" value="27"/>
+ <property name="anotherBean" ref="mybean2"/>
+ </bean>
+
+ <bean id="mybean2" class="app.MyBean">
+ <property name="field1" value="28"/>
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/sandbox/slaws/spring/src/main/resources/context2.xml b/sandbox/slaws/spring/src/main/resources/context2.xml
new file mode 100644
index 0000000000..4c03c40c61
--- /dev/null
+++ b/sandbox/slaws/spring/src/main/resources/context2.xml
@@ -0,0 +1,39 @@
+<?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 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/sca http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd">
+
+ <bean id="mybean3" class="app.MyBean">
+ <property name="field1" value="26"/>
+ <property name="anotherBean" ref="mybean1"/>
+ </bean>
+
+ <bean id="mybean4" class="org.springframework.context.support.ClassPathXmlApplicationContext">
+ <constructor-arg>
+ <list>
+ <value>context1.xml</value>
+ </list>
+ </constructor-arg>
+ </bean>
+
+</beans> \ No newline at end of file
diff --git a/sandbox/slaws/spring/src/main/resources/context3.xml b/sandbox/slaws/spring/src/main/resources/context3.xml
new file mode 100644
index 0000000000..a2b468761a
--- /dev/null
+++ b/sandbox/slaws/spring/src/main/resources/context3.xml
@@ -0,0 +1,39 @@
+<?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 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/sca http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd">
+
+ <bean id="mybean3" class="app.MyBean">
+ <property name="field1" value="26"/>
+ <property name="factory" ref="mybean4"/>
+ </bean>
+
+ <bean id="mybean4" class="org.springframework.context.support.ClassPathXmlApplicationContext">
+ <constructor-arg>
+ <list>
+ <value>context1.xml</value>
+ </list>
+ </constructor-arg>
+ </bean>
+
+</beans> \ No newline at end of file