Author: antelder
Date: Sat May 17 04:18:24 2008
New Revision: 657331
URL: http://svn.apache.org/viewvc?rev=657331&view=rev
Log:
Start of getting cross webapp endpoints going
Modified:
incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointProviderImpl.java
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
Modified: incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml?rev=657331&r1=657330&r2=657331&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml Sat May 17
04:18:24 2008
@@ -61,6 +61,12 @@
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-runtime</artifactId>
<version>2.0-incubating-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-endpoint</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
Modified:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointProviderImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointProviderImpl.java?rev=657331&r1=657330&r2=657331&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointProviderImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointProviderImpl.java
Sat May 17 04:18:24 2008
@@ -21,8 +21,16 @@
import java.util.logging.Logger;
+import org.apache.catalina.core.StandardContext;
+import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.builder.DefaultEndpointBuilder;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain;
+import org.apache.tuscany.sca.host.webapp.WebAppServletHost;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.provider.EndpointProvider;
/**
@@ -43,10 +51,43 @@
public void start() {
if (endpoint.isUnresolved()){
- // Resolve the endpoint binding here
-
logger.info("resolving endpoint: " + endpoint.getTargetName());
+
+ Component target = findTarget();
+ if (target != null) {
+ logger.info("endpoint target found: " +
endpoint.getTargetName() + " component " + target);
+ resolveEndpoint(target);
+ } else {
+ logger.info("endpoint target not found: " +
endpoint.getTargetName());
+ }
+
+ }
+ }
+
+ protected void resolveEndpoint(Component targetComponent) {
+
+ endpoint.setTargetComponent(targetComponent);
+
endpoint.setTargetComponentService(targetComponent.getServices().get(0)); //
TODO real service
+
+ DefaultEndpointBuilder ebi = new DefaultEndpointBuilder(new Monitor() {
+ public void problem(Problem problem) {
+ logger.warning(problem.toString());
+ }});
+
+ ebi.build(endpoint);
+ }
+
+ protected Component findTarget() {
+ for (StandardContext sc : TuscanyHost.scaApps) {
+ SCADomain scaDomain =
(SCADomain)sc.getServletContext().getAttribute(WebAppServletHost.SCA_DOMAIN_ATTRIBUTE);
+ if (scaDomain != null) {
+ Component component =
((DefaultSCADomain)scaDomain).getComponent(endpoint.getTargetName());
+ if ( component != null) {
+ return component;
+ }
+ }
}
+ return null;
}
public void stop() {
Modified:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java?rev=657331&r1=657330&r2=657331&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
(original)
+++
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
Sat May 17 04:18:24 2008
@@ -21,6 +21,8 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.jar.JarFile;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -50,6 +52,9 @@
public class TuscanyHost extends StandardHost {
private static final long serialVersionUID = 1L;
private final static Logger logger =
Logger.getLogger(TuscanyHost.class.getName());
+
+ // TODO static for expedience, find a better way to share when/if this is
working properly
+ protected static List<StandardContext> scaApps = new
ArrayList<StandardContext>();
public synchronized void start() throws LifecycleException {
try {
@@ -142,6 +147,8 @@
filterMap.setFilterName(filterDef.getFilterName());
filterMap.addURLPattern("/*");
scaApp.addFilterMap(filterMap);
+
+ scaApps.add(scaApp);
}
}