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 2007/03/15 20:13:42 UTC
svn commit: r518729 - in
/incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian:
./ builder/ component/
Author: jmarino
Date: Thu Mar 15 12:13:42 2007
New Revision: 518729
URL: http://svn.apache.org/viewvc?view=rev&rev=518729
Log:
merge HessianService into BindingComponent
Removed:
incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/HessianService.java
incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/HessianServiceImpl.java
Modified:
incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/DestinationCreationException.java
incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/builder/BindingComponentBuilder.java
incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/component/BindingComponent.java
Modified: incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/DestinationCreationException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/DestinationCreationException.java?view=diff&rev=518729&r1=518728&r2=518729
==============================================================================
--- incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/DestinationCreationException.java (original)
+++ incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/DestinationCreationException.java Thu Mar 15 12:13:42 2007
@@ -31,4 +31,9 @@
super(message);
}
+ protected DestinationCreationException(String message, String identifier, Throwable cause) {
+ super(message, identifier, cause);
+ }
+
+
}
Modified: incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/builder/BindingComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/builder/BindingComponentBuilder.java?view=diff&rev=518729&r1=518728&r2=518729
==============================================================================
--- incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/builder/BindingComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/builder/BindingComponentBuilder.java Thu Mar 15 12:13:42 2007
@@ -26,10 +26,10 @@
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
import org.apache.tuscany.spi.builder.physical.WireAttacher;
import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.host.ServletHost;
import org.apache.tuscany.spi.wire.Wire;
import org.apache.tuscany.hessian.DestinationCreationException;
-import org.apache.tuscany.hessian.HessianService;
import org.apache.tuscany.hessian.InvalidDestinationException;
import org.apache.tuscany.hessian.component.BindingComponent;
import org.apache.tuscany.hessian.model.HessianBindingComponentDefinition;
@@ -43,20 +43,20 @@
implements PhysicalComponentBuilder<HessianBindingComponentDefinition, BindingComponent>,
WireAttacher<BindingComponent, HessianWireSourceDefinition, HessianWireTargetDefinition> {
- private HessianService hessianService;
+ private ServletHost servletHost;
- public BindingComponentBuilder(@Reference HessianService hessianService) {
- this.hessianService = hessianService;
+ public BindingComponentBuilder(@Reference ServletHost host) {
+ this.servletHost = host;
}
public BindingComponent build(HessianBindingComponentDefinition definition) throws BuilderException {
- return new BindingComponent(definition.getComponentId(), hessianService);
+ return new BindingComponent(definition.getComponentId(), servletHost);
}
public void attach(BindingComponent source, Component target, Wire wire, HessianWireSourceDefinition definition)
throws DestinationCreationException {
URI endpointUri = definition.getEndpointUri();
- hessianService.createDestination(endpointUri, wire, null); // FIXME classloader
+ source.createEndpoint(endpointUri, wire, null); // FIXME classloader
}
Modified: incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/component/BindingComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/component/BindingComponent.java?view=diff&rev=518729&r1=518728&r2=518729
==============================================================================
--- incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/component/BindingComponent.java (original)
+++ incubator/tuscany/java/sca/extensions/hessian/binding/src/main/java/org/apache/tuscany/hessian/component/BindingComponent.java Thu Mar 15 12:13:42 2007
@@ -18,8 +18,9 @@
*/
package org.apache.tuscany.hessian.component;
+import java.net.MalformedURLException;
import java.net.URI;
-import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -35,6 +36,7 @@
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.event.EventFilter;
import org.apache.tuscany.spi.event.RuntimeEventListener;
+import org.apache.tuscany.spi.host.ServletHost;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.PropertyValue;
import org.apache.tuscany.spi.model.Scope;
@@ -45,21 +47,28 @@
import org.apache.tuscany.hessian.Channel;
import org.apache.tuscany.hessian.DestinationCreationException;
-import org.apache.tuscany.hessian.HessianService;
import org.apache.tuscany.hessian.InvalidDestinationException;
import org.apache.tuscany.hessian.InvokerInterceptor;
+import org.apache.tuscany.hessian.ServletHostNotFoundException;
+import org.apache.tuscany.hessian.channel.HttpChannel;
+import org.apache.tuscany.hessian.channel.LocalChannel;
+import org.apache.tuscany.hessian.destination.HttpDestination;
+import org.apache.tuscany.hessian.destination.LocalDestination;
/**
* @version $Rev$ $Date$
*/
public class BindingComponent extends AbstractLifecycle implements Component {
+ private String LOCAL_SCHEME = "hessianLocal";
+ private String HTTP_SCHEME = "http";
private URI uri;
- private HessianService hessianService;
- private List<URI> endpoints = new ArrayList<URI>();
+ private ServletHost servletHost;
+ private Map<URI, LocalDestination> destinations;
- public BindingComponent(URI uri, HessianService hessianService) {
+ public BindingComponent(URI uri, ServletHost host) {
this.uri = uri;
- this.hessianService = hessianService;
+ this.servletHost = host;
+ destinations = new HashMap<URI, LocalDestination>();
}
public URI getUri() {
@@ -79,11 +88,22 @@
}
public void createEndpoint(URI endpointUri, Wire wire, ClassLoader loader) throws DestinationCreationException {
- hessianService.createDestination(endpointUri, wire, loader);
+ if (LOCAL_SCHEME.equals(uri.getScheme())) {
+ LocalDestination destination = new LocalDestination(wire, loader);
+ destinations.put(uri, destination);
+ } else if (HTTP_SCHEME.equals(uri.getScheme())) {
+ if (servletHost == null) {
+ throw new ServletHostNotFoundException("ServletHost is was not found");
+ }
+ HttpDestination destination = new HttpDestination(wire, loader);
+ // FIXME mapping
+ servletHost.registerMapping(uri.toString(), destination);
+ }
+ throw new UnsupportedOperationException("Unsupported scheme");
}
public void bindToEndpoint(URI endpointUri, Wire wire) throws InvalidDestinationException {
- Channel channel = hessianService.createChannel(endpointUri);
+ Channel channel = createChannel(endpointUri);
for (Map.Entry<PhysicalOperationDefinition, InvocationChain> entry : wire.getPhysicalInvocationChains()
.entrySet()) {
String name = entry.getKey().getName();
@@ -173,6 +193,31 @@
public TargetInvoker createTargetInvoker(String targetName, PhysicalOperationDefinition operation)
throws TargetInvokerCreationException {
return null;
+ }
+
+
+ /**
+ * Creates a Channel to the service at the given URI
+ *
+ * @param uri the service uri
+ * @return the channel
+ * @throws InvalidDestinationException if an error is encountered creating the channel
+ */
+ private Channel createChannel(URI uri) throws InvalidDestinationException {
+ if (LOCAL_SCHEME.equals(uri.getScheme())) {
+ LocalDestination destination = destinations.get(uri);
+ if (destination != null) {
+ throw new InvalidDestinationException("Destination not found", uri.toString());
+ }
+ return new LocalChannel(destination);
+ } else if (HTTP_SCHEME.equals(uri.getScheme())) {
+ try {
+ return new HttpChannel(uri.toURL());
+ } catch (MalformedURLException e) {
+ throw new InvalidDestinationException("URI must be a valid URL ", e);
+ }
+ }
+ throw new UnsupportedOperationException("Unsupported scheme");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org