diff options
Diffstat (limited to 'sca-java-2.x/trunk')
9 files changed, 51 insertions, 24 deletions
diff --git a/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyServlet.java b/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyServlet.java index e8c8d941ff..d20019372e 100644 --- a/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyServlet.java +++ b/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/TuscanyServlet.java @@ -46,7 +46,8 @@ public class TuscanyServlet extends HttpServlet { public void init(ServletConfig config) throws ServletException { try { super.init(config); - WebAppHelper.init(WebAppHelper.getConfigurator(this)); + configurator = WebAppHelper.getConfigurator(this); + WebAppHelper.init(configurator); } catch (Throwable e) { logger.log(Level.SEVERE, e.getMessage(), e); configurator.getServletContext().log(e.getMessage(), e); diff --git a/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java b/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java index 41503f1cac..cfd034002d 100644 --- a/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java +++ b/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java @@ -196,7 +196,10 @@ public class WebAppHelper { } public static void stop(WebContextConfigurator configurator) { - Node node = (Node)configurator.getAttribute(SCA_NODE_ATTRIBUTE); + Node node = null; + if (configurator != null) { + node = (Node)configurator.getAttribute(SCA_NODE_ATTRIBUTE); + } if (node != null) { node.stop(); configurator.setAttribute(SCA_NODE_ATTRIBUTE, null); @@ -234,11 +237,6 @@ public class WebAppHelper { configuration = factory.loadConfiguration(url.openStream(), url); } else { configuration = factory.createNodeConfiguration(); - - configuration.setAttribute(ServletContext.class.getName(), servletContext); - if(configurator instanceof ServletConfigurator) { - configuration.setAttribute(Servlet.class.getName(), ((ServletConfigurator) configurator).servlet); - } boolean explicitContributions = false; Enumeration<String> names = configurator.getInitParameterNames(); @@ -322,6 +320,10 @@ public class WebAppHelper { } } } + configuration.setAttribute(ServletContext.class.getName(), servletContext); + if(configurator instanceof ServletConfigurator) { + configuration.setAttribute(Servlet.class.getName(), ((ServletConfigurator) configurator).servlet); + } return configuration; } @@ -428,11 +430,14 @@ public class WebAppHelper { public String getInitParameter(String name) { String value = config.getInitParameter(name); + return value; + /* if (value == null) { return config.getServletContext().getInitParameter(name); } else { return value; } + */ } public Enumeration<String> getInitParameterNames() { diff --git a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java index db7831322a..b9b993c609 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java +++ b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProvider.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.implementation.spring.provider; import org.apache.tuscany.sca.context.PropertyValueFactory; import org.apache.tuscany.sca.core.invocation.ProxyFactory; +import org.apache.tuscany.sca.implementation.spring.context.SpringApplicationContextAccessor; import org.apache.tuscany.sca.implementation.spring.context.SpringContextWrapper; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.invocation.Invoker; @@ -34,6 +35,8 @@ import org.springframework.context.ApplicationContext; */ public class SpringImplementationProvider implements ImplementationProvider { private RuntimeComponent component; + private SpringImplementationWrapper implementation; + private SpringApplicationContextAccessor contextAccessor; // A Spring application context object private SpringContextWrapper springContext; @@ -46,13 +49,13 @@ public class SpringImplementationProvider implements ImplementationProvider { */ public SpringImplementationProvider(RuntimeComponent component, SpringImplementationWrapper implementation, - ApplicationContext parentApplicationContext, ProxyFactory proxyService, - PropertyValueFactory propertyValueObjectFactory) { + PropertyValueFactory propertyValueObjectFactory, + SpringApplicationContextAccessor contextAccessor) { super(); this.component = component; - - springContext = new SpringContextWrapper(implementation, implementation.getResource()); + this.implementation = implementation; + this.contextAccessor = contextAccessor; } // end constructor @@ -68,6 +71,10 @@ public class SpringImplementationProvider implements ImplementationProvider { * Start this Spring implementation instance */ public void start() { + ApplicationContext parentApplicationContext = + (contextAccessor == null) ? null : contextAccessor.getParentApplicationContext(component); + implementation.setParentApplicationContext(parentApplicationContext); + springContext = new SpringContextWrapper(implementation, implementation.getResource()); springContext.start(); } diff --git a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java index ad395323c5..14105890b9 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java +++ b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationProviderFactory.java @@ -28,7 +28,6 @@ import org.apache.tuscany.sca.implementation.spring.context.SpringApplicationCon import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.provider.ImplementationProviderFactory; import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.springframework.context.ApplicationContext; /** * ImplementationProviderFactory for Spring implementation type @@ -61,11 +60,10 @@ public class SpringImplementationProviderFactory implements ImplementationProvid */ public ImplementationProvider createImplementationProvider(RuntimeComponent component, SpringImplementation implementation) { - ApplicationContext parentApplicationContext = - (contextAccessor != null) ? contextAccessor.getParentApplicationContext(component) : null; + SpringImplementationWrapper tie = - new SpringImplementationWrapper(implementation, parentApplicationContext, component, propertyFactory); - return new SpringImplementationProvider(component, tie, parentApplicationContext, proxyFactory, propertyFactory); + new SpringImplementationWrapper(implementation, component, propertyFactory); + return new SpringImplementationProvider(component, tie, proxyFactory, propertyFactory, contextAccessor); } /** diff --git a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java index e5593f5eaa..c3c125ff90 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java +++ b/sca-java-2.x/trunk/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/provider/SpringImplementationWrapper.java @@ -42,13 +42,11 @@ public class SpringImplementationWrapper { private PropertyValueFactory propertyFactory; public SpringImplementationWrapper(SpringImplementation implementation, - ApplicationContext parentApplicationContext, RuntimeComponent component, PropertyValueFactory propertyFactory) { this.implementation = implementation; this.component = component; this.propertyFactory = propertyFactory; - this.parentApplicationContext = parentApplicationContext; } public String getURI() { @@ -155,4 +153,8 @@ public class SpringImplementationWrapper { return parentApplicationContext; } + public void setParentApplicationContext(ApplicationContext parentApplicationContext) { + this.parentApplicationContext = parentApplicationContext; + } + } diff --git a/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/spring/TuscanyDispatcherServlet.java b/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/spring/TuscanyDispatcherServlet.java index 4a615b9a3a..e15840f613 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/spring/TuscanyDispatcherServlet.java +++ b/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/spring/TuscanyDispatcherServlet.java @@ -48,7 +48,8 @@ public class TuscanyDispatcherServlet extends DispatcherServlet { public void init(ServletConfig config) throws ServletException { try { super.init(config); - WebAppHelper.init(WebAppHelper.getConfigurator(this)); + configurator = WebAppHelper.getConfigurator(this); + WebAppHelper.init(configurator); } catch (Throwable e) { logger.log(Level.SEVERE, e.getMessage(), e); configurator.getServletContext().log(e.getMessage(), e); diff --git a/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/implementation/spring/webapp/SpringWebApplicationContextAccessor.java b/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/implementation/spring/webapp/SpringWebApplicationContextAccessor.java index d9596e3ecf..d94494fbe0 100644 --- a/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/implementation/spring/webapp/SpringWebApplicationContextAccessor.java +++ b/sca-java-2.x/trunk/modules/implementation-spring-webapp/src/main/java/org/apache/tuscany/sca/implementation/spring/webapp/SpringWebApplicationContextAccessor.java @@ -42,8 +42,10 @@ public class SpringWebApplicationContextAccessor implements SpringApplicationCon ApplicationContext context = null; Servlet servlet = component.getComponentContext().getCompositeContext().getAttribute(Servlet.class.getName()); if (servlet instanceof FrameworkServlet) { - context = ((FrameworkServlet)servlet).getWebApplicationContext(); + FrameworkServlet frameworkServlet = (FrameworkServlet)servlet; + context = frameworkServlet.getWebApplicationContext(); if (context != null) { + log.info("Spring application context is found for servlet: " + frameworkServlet.getServletName()); return context; } } diff --git a/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationImpl.java b/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationImpl.java index f3853fc4bf..97fbb5b950 100644 --- a/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationImpl.java +++ b/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/impl/NodeConfigurationImpl.java @@ -117,11 +117,19 @@ public class NodeConfigurationImpl implements NodeConfiguration { } public NodeConfiguration addContribution(String contributionURI, URL location) { - return addContribution(contributionURI, location.toString()); + String url = null; + if (location != null) { + url = location.toString(); + } + return addContribution(contributionURI, url); } public NodeConfiguration addContribution(URI contributionURI, URL location) { - return addContribution(contributionURI.toString(), location.toString()); + String url = null; + if (location != null) { + url = location.toString(); + } + return addContribution(contributionURI.toString(), url); } public NodeConfiguration addContribution(URL... locations) { diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java index 0ff1a87fe9..2d46a8659b 100644 --- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java +++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java @@ -336,10 +336,13 @@ public class NodeFactoryImpl extends NodeFactory { URI contributionURI = createURI(contrib.getURI()); URI uri = createURI(contrib.getLocation()); - if (uri.getScheme() == null) { + if (uri != null && uri.getScheme() == null) { uri = new File(contrib.getLocation()).toURI(); } - URL contributionURL = uri.toURL(); + URL contributionURL = null; + if (uri != null) { + contributionURL = uri.toURL(); + } // Load the contribution logger.log(quietLogging? Level.FINE : Level.INFO, "Loading contribution: " + contributionURL); |