You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/13 20:01:05 UTC
svn commit: r537623 - in /incubator/tuscany/java/sca/modules/core-spring/src:
main/java/org/apache/tuscany/core/spring/implementation/java/
main/java/org/apache/tuscany/sca/core/spring/context/ test/java/calculator/
test/java/org/apache/tuscany/core/ t...
Author: jsdelfino
Date: Sun May 13 11:01:04 2007
New Revision: 537623
URL: http://svn.apache.org/viewvc?view=rev&rev=537623
Log:
Refactoring packages to o.a.t.sca.
Added:
incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java (with props)
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/sca/core/spring/
- copied from r537620, incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/spring/
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/sca/core/spring/Calculator.composite
- copied unchanged from r537621, incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/spring/Calculator.composite
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/sca/core/spring/InnerCalculator.composite
- copied unchanged from r537621, incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/spring/InnerCalculator.composite
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/sca/core/spring/InnerOperations.composite
- copied unchanged from r537621, incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/spring/InnerOperations.composite
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/sca/core/spring/OuterCalculator.composite
- copied unchanged from r537621, incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/spring/OuterCalculator.composite
Removed:
incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/implementation/java/
incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/ComponentContext.java
incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/core/
incubator/tuscany/java/sca/modules/core-spring/src/test/resources/org/apache/tuscany/core/
Modified:
incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/CalculatorClient.java
incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/NestedCalculatorClient.java
incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/CalculatorTestCase.java
incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/NestedCalculatorTestCase.java
Added: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java?view=auto&rev=537623
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java (added)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java Sun May 13 11:01:04 2007
@@ -0,0 +1,192 @@
+/*
+ * 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.tuscany.sca.core.spring.context;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
+import org.apache.tuscany.sca.assembly.builder.Problem;
+import org.apache.tuscany.sca.assembly.builder.impl.DefaultCompositeBuilder;
+import org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor;
+import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
+import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeProcessor;
+import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionException;
+import org.apache.tuscany.sca.core.spring.assembly.impl.BeanAssemblyFactory;
+import org.apache.tuscany.sca.core.spring.implementation.java.impl.BeanJavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.introspect.ExtensibleJavaClassIntrospector;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospector;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.AllowsPassByReferenceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.BaseJavaClassVisitor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ConstructorProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ContextProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ConversationProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.DestroyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.EagerInitProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.HeuristicPojoProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.InitProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.PolicyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.PropertyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ReferenceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ResourceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ScopeProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor;
+import org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.interfacedef.impl.DefaultInterfaceContractMapper;
+import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.introspect.DefaultJavaInterfaceIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.interfacedef.java.introspect.ExtensibleJavaInterfaceIntrospector;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospector;
+import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
+import org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor;
+import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+
+/**
+ * A mini test runtime that uses the SCA assembly model variant implementation
+ * backed by Spring bean definitions.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SCADomainContext {
+
+ private DefaultListableBeanFactory beanFactory;
+
+ public SCADomainContext(String... compositeFiles) {
+
+ // Create Spring bean factory
+ beanFactory = new DefaultListableBeanFactory();
+
+ // Create SCA assembly and SCA Java factories
+ AssemblyFactory assemblyFactory = new BeanAssemblyFactory(new DefaultAssemblyFactory(), beanFactory);
+ PolicyFactory policyFactory = new DefaultPolicyFactory();
+ InterfaceContractMapper interfaceContractMapper = new DefaultInterfaceContractMapper();
+ JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory();
+ JavaInterfaceIntrospectorExtensionPoint interfaceVisitors = new DefaultJavaInterfaceIntrospectorExtensionPoint();
+ JavaImplementationFactory javaImplementationFactory = new BeanJavaImplementationFactory(beanFactory);
+ JavaClassIntrospectorExtensionPoint classVisitors = new DefaultJavaClassIntrospectorExtensionPoint();
+
+ JavaInterfaceIntrospector interfaceIntrospector = new ExtensibleJavaInterfaceIntrospector(javaFactory, interfaceVisitors);
+
+ BaseJavaClassVisitor[] extensions = new BaseJavaClassVisitor[] {
+ new ConstructorProcessor(assemblyFactory),
+ new AllowsPassByReferenceProcessor(assemblyFactory),
+ new ContextProcessor(assemblyFactory),
+ new ConversationProcessor(assemblyFactory),
+ new DestroyProcessor(assemblyFactory),
+ new EagerInitProcessor(assemblyFactory),
+ new InitProcessor(assemblyFactory),
+ new PropertyProcessor(assemblyFactory),
+ new ReferenceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+ new ResourceProcessor(assemblyFactory),
+ new ScopeProcessor(assemblyFactory),
+ new ServiceProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+ new HeuristicPojoProcessor(assemblyFactory, javaFactory, interfaceIntrospector),
+ new PolicyProcessor(assemblyFactory, policyFactory)
+ };
+ for (JavaClassVisitor e : extensions) {
+ classVisitors.addClassVisitor(e);
+ }
+ JavaClassIntrospector classIntrospector = new ExtensibleJavaClassIntrospector(classVisitors);
+
+ // Populate ArtifactProcessor registry
+ DefaultStAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint();
+ ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
+ CompositeProcessor compositeProcessor = new CompositeProcessor(assemblyFactory, policyFactory,
+ interfaceContractMapper, staxProcessor);
+ staxProcessors.addArtifactProcessor(compositeProcessor);
+ staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+ staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+ staxProcessors.addArtifactProcessor(new JavaInterfaceProcessor(javaFactory, interfaceIntrospector));
+ staxProcessors.addArtifactProcessor(new JavaImplementationProcessor(assemblyFactory, policyFactory, javaImplementationFactory, classIntrospector));
+
+ // Create a resolver
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ DefaultModelResolver resolver = new DefaultModelResolver(classLoader);
+
+ try {
+
+ // Read the composite files
+ List<Composite> composites = new ArrayList<Composite>();
+ for (String compositeFile: compositeFiles) {
+ InputStream is = classLoader.getResourceAsStream(compositeFile);
+ Composite composite = staxProcessor.read(is, Composite.class);
+ resolver.addModel(composite);
+ composites.add(composite);
+ }
+
+ for (Composite composite: composites) {
+
+ // Resolve the composite
+ compositeProcessor.resolve(composite, resolver);
+ }
+
+ // Wire the top level component's composite
+ buildComposite(composites.get(0), assemblyFactory, interfaceContractMapper);
+
+ } catch (ContributionException e) {
+ throw new RuntimeException(e);
+ } catch (CompositeBuilderException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private void buildComposite(Composite composite, AssemblyFactory assemblyFactory, InterfaceContractMapper interfaceContractMapper) throws CompositeBuilderException {
+
+ CompositeBuilderMonitor monitor = new CompositeBuilderMonitor() {
+
+ public void problem(Problem problem) {
+ // Uncommenting the following two lines can be useful to detect
+ // and troubleshoot SCA assembly XML composite configuration
+ // problems.
+
+ System.out.println("Composite assembly problem: " + problem.getMessage());
+ }
+ };
+
+ // Configure and wire the composite
+ DefaultCompositeBuilder compositeUtil = new DefaultCompositeBuilder(assemblyFactory, interfaceContractMapper, monitor);
+ compositeUtil.build(composite);
+
+ }
+
+ public <B> B getService(Class<B> businessInterface, String serviceName) {
+ Object bean = beanFactory.getBean(serviceName);
+ return businessInterface.cast(bean);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/CalculatorClient.java?view=diff&rev=537623&r1=537622&r2=537623
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/CalculatorClient.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/CalculatorClient.java Sun May 13 11:01:04 2007
@@ -18,7 +18,7 @@
*/
package calculator;
-import org.apache.tuscany.sca.core.spring.context.ComponentContext;
+import org.apache.tuscany.sca.core.spring.context.SCADomainContext;
/**
* This client program shows how to create an SCA runtime, start it, locate the
@@ -27,7 +27,7 @@
public class CalculatorClient {
public static void main(String[] args) throws Exception {
- ComponentContext context = new ComponentContext("org/apache/tuscany/core/spring/Calculator.composite");
+ SCADomainContext context = new SCADomainContext("org/apache/tuscany/core/spring/Calculator.composite");
CalculatorService calculatorService = context.getService(CalculatorService.class, "CalculatorServiceComponent");
Modified: incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/NestedCalculatorClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/NestedCalculatorClient.java?view=diff&rev=537623&r1=537622&r2=537623
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/NestedCalculatorClient.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/test/java/calculator/NestedCalculatorClient.java Sun May 13 11:01:04 2007
@@ -18,7 +18,7 @@
*/
package calculator;
-import org.apache.tuscany.sca.core.spring.context.ComponentContext;
+import org.apache.tuscany.sca.core.spring.context.SCADomainContext;
/**
* This client program shows how to create an SCA runtime, start it, locate the
@@ -27,7 +27,7 @@
public class NestedCalculatorClient {
public static void main(String[] args) throws Exception {
- ComponentContext context = new ComponentContext(
+ SCADomainContext context = new SCADomainContext(
"org/apache/tuscany/core/spring/OuterCalculator.composite",
"org/apache/tuscany/core/spring/InnerCalculator.composite",
"org/apache/tuscany/core/spring/InnerOperations.composite");
Modified: incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/CalculatorTestCase.java?view=diff&rev=537623&r1=537622&r2=537623
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/CalculatorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/CalculatorTestCase.java Sun May 13 11:01:04 2007
@@ -18,7 +18,7 @@
*/
package org.apache.tuscany.sca.core.spring;
-import org.apache.tuscany.sca.core.spring.context.ComponentContext;
+import org.apache.tuscany.sca.core.spring.context.SCADomainContext;
import junit.framework.TestCase;
import calculator.CalculatorService;
@@ -28,11 +28,11 @@
*/
public class CalculatorTestCase extends TestCase {
- private ComponentContext context;
+ private SCADomainContext context;
private CalculatorService calculatorService;
protected void setUp() throws Exception {
- context = new ComponentContext("org/apache/tuscany/core/spring/Calculator.composite");
+ context = new SCADomainContext("org/apache/tuscany/sca/core/spring/Calculator.composite");
calculatorService = context.getService(CalculatorService.class, "CalculatorServiceComponent");
}
Modified: incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/NestedCalculatorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/NestedCalculatorTestCase.java?view=diff&rev=537623&r1=537622&r2=537623
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/NestedCalculatorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/test/java/org/apache/tuscany/sca/core/spring/NestedCalculatorTestCase.java Sun May 13 11:01:04 2007
@@ -18,7 +18,7 @@
*/
package org.apache.tuscany.sca.core.spring;
-import org.apache.tuscany.sca.core.spring.context.ComponentContext;
+import org.apache.tuscany.sca.core.spring.context.SCADomainContext;
import junit.framework.TestCase;
import calculator.CalculatorService;
@@ -28,14 +28,14 @@
*/
public class NestedCalculatorTestCase extends TestCase {
- private ComponentContext context;
+ private SCADomainContext context;
private CalculatorService calculatorService;
protected void setUp() throws Exception {
- context = new ComponentContext(
- "org/apache/tuscany/core/spring/OuterCalculator.composite",
- "org/apache/tuscany/core/spring/InnerCalculator.composite",
- "org/apache/tuscany/core/spring/InnerOperations.composite");
+ context = new SCADomainContext(
+ "org/apache/tuscany/sca/core/spring/OuterCalculator.composite",
+ "org/apache/tuscany/sca/core/spring/InnerCalculator.composite",
+ "org/apache/tuscany/sca/core/spring/InnerOperations.composite");
calculatorService = context.getService(CalculatorService.class, "CalculatorServiceComponent/InnerCalculatorServiceComponent");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org