You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/08/15 09:45:43 UTC

svn commit: r431552 - in /incubator/tuscany/java/sca/containers/container.spring/src: main/java/org/apache/tuscany/container/spring/impl/ main/java/org/apache/tuscany/container/spring/model/ main/resources/META-INF/sca/ test/java/org/apache/tuscany/con...

Author: jmarino
Date: Tue Aug 15 00:45:42 2006
New Revision: 431552

URL: http://svn.apache.org/viewvc?rev=431552&view=rev
Log:
add start of spring bootstrap

Added:
    incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/spring.system.scdl
      - copied, changed from r431521, incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/default.scdl
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml   (with props)
Removed:
    incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/default.scdl
Modified:
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringImplementation.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java Tue Aug 15 00:45:42 2006
@@ -29,6 +29,7 @@
 import org.apache.tuscany.spi.model.InteractionScope;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
 
 import org.apache.tuscany.container.spring.config.SCAService;
 import org.apache.tuscany.container.spring.config.ScaServiceBeanDefinitionParser;
@@ -121,7 +122,7 @@
     }
 
     private ServiceDefinition createService(Class<?> interfaze) {
-        ServiceDefinition service = new ServiceDefinition();
+        ServiceDefinition service = new BoundServiceDefinition();
         service.setName(getBaseName(interfaze));
         service.setRemotable(interfaze.getAnnotation(Remotable.class) != null);
         ServiceContract contract = new SpringServiceContract();

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java Tue Aug 15 00:45:42 2006
@@ -36,9 +36,8 @@
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 
-import org.springframework.context.ConfigurableApplicationContext;
 import org.apache.tuscany.container.spring.model.SpringImplementation;
-import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
+import org.springframework.context.ConfigurableApplicationContext;
 
 /**
  * Creates a {@link org.apache.tuscany.container.spring.impl.SpringCompositeComponent} from an assembly model

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java Tue Aug 15 00:45:42 2006
@@ -44,9 +44,12 @@
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 import javax.xml.namespace.QName;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
+import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 import org.osoa.sca.annotations.Constructor;
 
 import org.apache.tuscany.spi.annotation.Autowire;
@@ -55,22 +58,28 @@
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.LoaderUtil;
 import org.apache.tuscany.spi.loader.MissingResourceException;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
 import org.apache.tuscany.spi.services.info.RuntimeInfo;
 
+import org.apache.tuscany.container.spring.model.SpringImplementation;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.UrlResource;
-import org.apache.tuscany.container.spring.model.SpringImplementation;
 
 /**
  * Loader for handling Spring <spring:implementation.spring> elements.
  */
 public class SpringImplementationLoader extends LoaderExtension<SpringImplementation> {
-    private static final QName IMPLEMENTATION_SPRING = new QName("http://tuscany.apache.org/xmlns/spring/1.0",
+    private static final QName IMPLEMENTATION_SPRING = new QName("http://www.osoa.org/xmlns/sca/1.0",
         "implementation.spring");
+
     private static final String APPLICATION_CONTEXT = "META-INF/application-context.xml";
 
+    private static final QName SERVICE_ELEMENT = new QName(XML_NAMESPACE_1_0, "service");
+    private static final QName REFERENCE_ELEMENT = new QName(XML_NAMESPACE_1_0, "reference");
+    private static final QName COMPONENT = new QName(XML_NAMESPACE_1_0, "component");
+
+
     private final RuntimeInfo runtimeInfo;
 
     @Constructor
@@ -84,8 +93,8 @@
     }
 
     public SpringImplementation load(CompositeComponent parent,
-                                                                               XMLStreamReader reader,
-                                                                               DeploymentContext deploymentContext)
+                                     XMLStreamReader reader,
+                                     DeploymentContext deploymentContext)
         throws XMLStreamException, LoaderException {
 
         String locationAttr = reader.getAttributeValue(null, "location");
@@ -93,12 +102,27 @@
             throw new MissingResourceException("No location supplied");
         }
 
-        LoaderUtil.skipToEndElement(reader);
-
         SpringImplementation implementation = new SpringImplementation();
         implementation.setApplicationResource(getApplicationContextResource(locationAttr));
         registry.loadComponentType(parent, implementation, deploymentContext);
-        return implementation;
+        while (true) {
+            switch (reader.next()) {
+                case START_ELEMENT:
+                    QName qname = reader.getName();
+                    if (SERVICE_ELEMENT.equals(qname)) {
+                        BoundServiceDefinition service =
+                            (BoundServiceDefinition) registry.load(parent, reader, deploymentContext);
+                        implementation.getComponentType().getServices().put(service.getName(), service);
+                    } else if (REFERENCE_ELEMENT.equals(qname)) {
+                        throw new UnsupportedOperationException();
+                    }
+                    break;
+                case END_ELEMENT:
+                    if (COMPONENT.equals(reader.getName())) {
+                        return implementation;
+                    }
+            }
+        }
     }
 
     protected Resource getApplicationContextResource(String locationAttr) throws LoaderException {
@@ -160,7 +184,7 @@
             } catch (IOException e) {
                 // bad archive
                 // TODO: create a more appropriate exception type
-                throw new MissingResourceException(locationAttr);
+                throw new MissingResourceException(locationAttr, e);
             }
         }
         throw new MissingResourceException(APPLICATION_CONTEXT);

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringImplementation.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringImplementation.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringImplementation.java Tue Aug 15 00:45:42 2006
@@ -25,7 +25,6 @@
 import org.apache.tuscany.spi.model.Property;
 
 import org.springframework.core.io.Resource;
-import org.apache.tuscany.container.spring.model.SpringComponentType;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -43,9 +42,9 @@
     }
 
     public SpringImplementation(SpringComponentType<
-            BoundServiceDefinition<? extends Binding>,
-            BoundReferenceDefinition<? extends Binding>,
-            ? extends Property> componentType) {
+        BoundServiceDefinition<? extends Binding>,
+        BoundReferenceDefinition<? extends Binding>,
+        ? extends Property> componentType) {
         super(componentType);
     }
 

Copied: incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/spring.system.scdl (from r431521, incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/default.scdl)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/spring.system.scdl?p2=incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/spring.system.scdl&p1=incubator/tuscany/java/sca/containers/container.spring/src/main/resources/META-INF/sca/default.scdl&r1=431521&r2=431552&rev=431552&view=diff
==============================================================================
    (empty)

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java Tue Aug 15 00:45:42 2006
@@ -23,7 +23,6 @@
 import junit.framework.TestCase;
 import org.apache.tuscany.container.spring.mock.TestBean;
 import org.apache.tuscany.container.spring.mock.TestBeanImpl;
-import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java Tue Aug 15 00:45:42 2006
@@ -28,7 +28,6 @@
 import junit.framework.TestCase;
 import org.apache.tuscany.container.spring.mock.TestBean;
 import org.apache.tuscany.container.spring.mock.TestBeanImpl;
-import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
 import org.apache.tuscany.test.ArtifactFactory;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.support.RootBeanDefinition;

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java Tue Aug 15 00:45:42 2006
@@ -39,8 +39,6 @@
 import org.apache.tuscany.container.spring.mock.VMBinding;
 import org.apache.tuscany.container.spring.model.SpringComponentType;
 import org.apache.tuscany.container.spring.model.SpringImplementation;
-import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
-import org.apache.tuscany.container.spring.impl.SpringCompositeBuilder;
 import org.apache.tuscany.test.ArtifactFactory;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.createNiceMock;

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java?rev=431552&r1=431551&r2=431552&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java Tue Aug 15 00:45:42 2006
@@ -28,7 +28,6 @@
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import org.springframework.context.ApplicationContext;
-import org.apache.tuscany.container.spring.impl.SpringInvoker;
 
 /**
  * Verifies a simple invocation on a Spring bean

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl?rev=431552&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl Tue Aug 15 00:45:42 2006
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+  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.
+ -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           name="groovy.test">
+
+    <component name="Spring">
+        <implementation.spring location="."/>
+        <service name = "fooService">
+            <binding.spring/>
+        </service>
+    </component>
+
+</composite>

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml?rev=431552&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml Tue Aug 15 00:45:42 2006
@@ -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:sca="http://www.springframework.org/schema/sca"
+       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.springframework.org/schema/sca/SpringSCA.xsd">
+
+<bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
+</bean>
+
+</beans>

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org