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/05/26 09:22:50 UTC
svn commit: r409577 -
/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/
Author: jmarino
Date: Fri May 26 00:22:49 2006
New Revision: 409577
URL: http://svn.apache.org/viewvc?rev=409577&view=rev
Log:
start of Spring namespace handling
Added:
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCABeanDefinitionReader.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandlerResolver.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCAXMLBeanDefinitionParser.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringComponentTypeLoader.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringImplementation.java
- copied, changed from r409555, incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeImplementation.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeImplementation.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandler.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCABeanDefinitionReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCABeanDefinitionReader.java?rev=409577&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCABeanDefinitionReader.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCABeanDefinitionReader.java Fri May 26 00:22:49 2006
@@ -0,0 +1,24 @@
+package org.apache.tuscany.container.spring;
+
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionParser;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SCABeanDefinitionReader extends XmlBeanDefinitionReader {
+
+ private CompositeComponentType componentType;
+
+ public SCABeanDefinitionReader(BeanDefinitionRegistry beanFactory, CompositeComponentType componentType) {
+ super(beanFactory);
+ this.componentType = componentType;
+ }
+
+
+ protected XmlBeanDefinitionParser createXmlBeanDefinitionParser() {
+ return new SCAXmlBeanDefinitionParser(componentType);
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandler.java?rev=409577&r1=409576&r2=409577&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandler.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandler.java Fri May 26 00:22:49 2006
@@ -4,11 +4,19 @@
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.BeanDefinitionDecorator;
import org.w3c.dom.Element;
+import org.apache.tuscany.spi.model.CompositeComponentType;
/**
* @version $$Rev$$ $$Date$$
*/
public class SCANamespaceHandler implements NamespaceHandler {
+
+ private CompositeComponentType componentType;
+
+ public SCANamespaceHandler(CompositeComponentType componentType) {
+ this.componentType = componentType;
+ }
+
public void init() {
}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandlerResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandlerResolver.java?rev=409577&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandlerResolver.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCANamespaceHandlerResolver.java Fri May 26 00:22:49 2006
@@ -0,0 +1,39 @@
+package org.apache.tuscany.container.spring;
+
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver;
+import org.springframework.beans.factory.xml.NamespaceHandler;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SCANamespaceHandlerResolver extends DefaultNamespaceHandlerResolver {
+
+ private static final String SCA_NAMESPACE = ""; //FIXME
+
+ private SCANamespaceHandler handler;
+
+ public SCANamespaceHandlerResolver(ClassLoader classLoader, CompositeComponentType componentType) {
+ super(classLoader);
+ handler = new SCANamespaceHandler(componentType);
+ }
+
+ public SCANamespaceHandlerResolver(String handlerMappingsLocation,
+ ClassLoader classLoader,
+ CompositeComponentType componentType) {
+ super(handlerMappingsLocation, classLoader);
+ handler = new SCANamespaceHandler(componentType);
+ }
+
+ /**
+ * Locate the {@link org.springframework.beans.factory.xml.NamespaceHandler} for the supplied namespace
+ * URI from the configured mappings.
+ */
+ public NamespaceHandler resolve(String namespaceUri) {
+ if (SCA_NAMESPACE.equals(namespaceUri)) {
+ return handler;
+ }
+ return super.resolve(namespaceUri);
+ }
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCAXMLBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCAXMLBeanDefinitionParser.java?rev=409577&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCAXMLBeanDefinitionParser.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SCAXMLBeanDefinitionParser.java Fri May 26 00:22:49 2006
@@ -0,0 +1,27 @@
+package org.apache.tuscany.container.spring;
+
+import org.springframework.beans.factory.xml.DefaultXmlBeanDefinitionParser;
+import org.springframework.beans.factory.xml.NamespaceHandlerResolver;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SCAXmlBeanDefinitionParser extends DefaultXmlBeanDefinitionParser {
+
+ private CompositeComponentType componentType;
+
+ public SCAXmlBeanDefinitionParser(CompositeComponentType componentType) {
+ this.componentType = componentType;
+ }
+
+ protected NamespaceHandlerResolver createNamespaceHandlerResolver() {
+ ClassLoader classLoader = getReaderContext().getReader().getBeanClassLoader();
+ if (classLoader == null) {
+ classLoader = Thread.currentThread().getContextClassLoader();
+ }
+ return new SCANamespaceHandlerResolver(classLoader,componentType);
+ }
+
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringComponentTypeLoader.java?rev=409577&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringComponentTypeLoader.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringComponentTypeLoader.java Fri May 26 00:22:49 2006
@@ -0,0 +1,27 @@
+package org.apache.tuscany.container.spring;
+
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.loader.ComponentTypeLoader;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.io.Resource;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SpringComponentTypeLoader implements ComponentTypeLoader<SpringImplementation> {
+
+ public void load(SpringImplementation implementation, DeploymentContext deploymentContext) {
+ DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
+ CompositeComponentType componentType = new CompositeComponentType();
+ XmlBeanDefinitionReader reader = new SCABeanDefinitionReader(beanFactory, componentType);
+ Resource resource = null; //FIXME
+ reader.loadBeanDefinitions(resource);
+ GenericApplicationContext ctx = new GenericApplicationContext(beanFactory);
+ ctx.refresh();
+ implementation.setComponentType(componentType);
+ implementation.setApplicationContext(ctx);
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java?rev=409577&r1=409576&r2=409577&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java Fri May 26 00:22:49 2006
@@ -16,24 +16,20 @@
import org.apache.tuscany.spi.model.Reference;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Service;
+import org.springframework.context.ConfigurableApplicationContext;
/**
* Creates a {@link SpringCompositeContext} from an assembly model
*
* @version $$Rev$$ $$Date$$
*/
-public class SpringCompositeBuilder extends ComponentBuilderExtension<SpringCompositeImplementation> {
+public class SpringCompositeBuilder extends ComponentBuilderExtension<SpringImplementation> {
- public ComponentContext build(CompositeContext parent, Component<SpringCompositeImplementation> component,
+ public ComponentContext build(CompositeContext parent, Component<SpringImplementation> component,
DeploymentContext deploymentContext) throws BuilderConfigException {
String name = component.getName();
- URL url;
- try {
- url = new URL(component.getImplementation().getContextPath());
- } catch (MalformedURLException e) {
- throw new BuilderConfigException(e);
- }
- SpringCompositeContext context = new SpringCompositeContext(name, url, parent);
+ ConfigurableApplicationContext applicationContext = component.getImplementation().getApplicationContext();
+ SpringCompositeContext context = new SpringCompositeContext(name,applicationContext, parent);
CompositeComponentType componentType = component.getImplementation().getComponentType();
for (Service service : componentType.getServices().values()) {
if (service instanceof BoundService) {
@@ -54,7 +50,7 @@
return context;
}
- protected Class<SpringCompositeImplementation> getImplementationType() {
- return SpringCompositeImplementation.class;
+ protected Class<SpringImplementation> getImplementationType() {
+ return SpringImplementation.class;
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java?rev=409577&r1=409576&r2=409577&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java Fri May 26 00:22:49 2006
@@ -33,25 +33,13 @@
private static final String[] EMPTY_ARRAY = new String[0];
private ConfigurableApplicationContext springContext;
private SCAApplicationContext scaApplicationContext;
- private URL springContextUrl;
/**
* Creates a new composite
- * @param name the name of the SCA composite
- * @param springContextUrl a URL to the Spring application context configuration file
- * @param parent the SCA composite parent
- */
- public SpringCompositeContext(String name, URL springContextUrl, CompositeContext parent) {
- super(name, parent);
- this.springContextUrl = springContextUrl;
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- /**
- * Creates a new composite
- * @param name the name of the SCA composite
+ *
+ * @param name the name of the SCA composite
* @param springContext the pre-instantiated Spring applicaiton context
- * @param parent the SCA composite parent
+ * @param parent the SCA composite parent
*/
public SpringCompositeContext(String name, ConfigurableApplicationContext springContext, CompositeContext parent) {
super(name, parent);
Copied: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringImplementation.java (from r409555, incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeImplementation.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringImplementation.java?p2=incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringImplementation.java&p1=incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeImplementation.java&r1=409555&r2=409577&rev=409577&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeImplementation.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringImplementation.java Fri May 26 00:22:49 2006
@@ -2,31 +2,42 @@
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.Implementation;
+import org.springframework.context.ConfigurableApplicationContext;
/**
* @version $$Rev$$ $$Date$$
*/
-public class SpringCompositeImplementation extends Implementation<CompositeComponentType> {
- private String contextPath;
+public class SpringImplementation extends Implementation<CompositeComponentType> {
- public SpringCompositeImplementation() {
+ private String location;
+ private ConfigurableApplicationContext applicationContext;
+
+ public SpringImplementation() {
}
- public SpringCompositeImplementation(CompositeComponentType componentType) {
+ public SpringImplementation(CompositeComponentType componentType) {
super(componentType);
}
/**
* Returns the path of the Spring application context configuration
*/
- public String getContextPath() {
- return contextPath;
+ public String getContextLocation() {
+ return location;
}
/**
* Sets the path of the Spring application context configuration
*/
- public void setContextPath(String contextPath) {
- this.contextPath = contextPath;
+ public void setContextLocation(String location) {
+ this.location = location;
+ }
+
+ public ConfigurableApplicationContext getApplicationContext() {
+ return applicationContext;
+ }
+
+ public void setApplicationContext(ConfigurableApplicationContext applicationContext) {
+ this.applicationContext = applicationContext;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org