summaryrefslogtreecommitdiffstats
path: root/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly
diff options
context:
space:
mode:
authordims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
committerdims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
commitbdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch)
tree38a92061c0793434c4be189f1d70c3458b6bc41d /branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly')
-rw-r--r--branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactory.java32
-rw-r--r--branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceBinding.java80
-rw-r--r--branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceAssemblyFactoryImpl.java43
-rw-r--r--branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceBindingImpl.java184
4 files changed, 339 insertions, 0 deletions
diff --git a/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactory.java b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactory.java
new file mode 100644
index 0000000000..46d5cac4dd
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactory.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.binding.celtix.assembly;
+
+import org.apache.tuscany.core.loader.WSDLDefinitionRegistry;
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+
+/**
+ * The <b>Factory</b> for the model.
+ */
+public interface WebServiceAssemblyFactory extends AssemblyFactory {
+
+ /**
+ * Returns a new WebServiceBinding.
+ */
+ WebServiceBinding createWebServiceBinding(WSDLDefinitionRegistry wsdlRegistry);
+
+}
diff --git a/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceBinding.java b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceBinding.java
new file mode 100644
index 0000000000..82dd08ef0d
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/WebServiceBinding.java
@@ -0,0 +1,80 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.binding.celtix.assembly;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+
+import commonj.sdo.helper.TypeHelper;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.model.assembly.Binding;
+import org.objectweb.celtix.Bus;
+
+/**
+ * Represents a Web service binding.
+ */
+public interface WebServiceBinding extends Binding {
+
+ /**
+ * Set the URI of the WSDL port for this binding.
+ *
+ * @param portURI the URI of the WSDL port
+ */
+ void setPortURI(String portURI);
+
+ /**
+ * Returns the WSDL port defining this binding.
+ */
+ Port getWSDLPort();
+
+ /**
+ * Returns the WSDL service defining this binding.
+ */
+ Service getWSDLService();
+
+ /**
+ * Returns the WSDL definition containing the WSDL port.
+ *
+ * @return the WSDL definition containing the WSDL port
+ */
+ Definition getWSDLDefinition();
+
+ /**
+ * Sets the WSDL port defining this binding.
+ */
+ void setWSDLPort(Port value);
+
+ /**
+ * Sets the WSDL definition containing the WSDL port.
+ *
+ * @param definition
+ */
+ void setWSDLDefinition(Definition definition);
+
+ TypeHelper getTypeHelper();
+
+ void setTypeHelper(TypeHelper typeHelper);
+
+ ResourceLoader getResourceLoader();
+
+ void setResourceLoader(ResourceLoader resourceLoader);
+
+ Bus getBus();
+ void setBus(Bus b);
+}
diff --git a/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceAssemblyFactoryImpl.java b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceAssemblyFactoryImpl.java
new file mode 100644
index 0000000000..1288f67719
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceAssemblyFactoryImpl.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.binding.celtix.assembly.impl;
+
+import org.apache.tuscany.binding.celtix.assembly.WebServiceAssemblyFactory;
+import org.apache.tuscany.binding.celtix.assembly.WebServiceBinding;
+import org.apache.tuscany.core.loader.WSDLDefinitionRegistry;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
+
+/**
+ * An implementation of the model <b>Factory</b>.
+ */
+public class WebServiceAssemblyFactoryImpl extends AssemblyFactoryImpl implements WebServiceAssemblyFactory {
+
+ /**
+ * Creates an instance of the factory.
+ */
+ public WebServiceAssemblyFactoryImpl() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.celtix.assembly.WebServiceAssemblyFactory#createWebServiceBinding()
+ */
+ public WebServiceBinding createWebServiceBinding(WSDLDefinitionRegistry wsdlRegistry) {
+ return new WebServiceBindingImpl(wsdlRegistry);
+ }
+
+}
diff --git a/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceBindingImpl.java b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceBindingImpl.java
new file mode 100644
index 0000000000..477d2b656a
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/assembly/impl/WebServiceBindingImpl.java
@@ -0,0 +1,184 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.binding.celtix.assembly.impl;
+
+import java.util.Collection;
+import java.util.List;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+import javax.xml.namespace.QName;
+
+import commonj.sdo.helper.TypeHelper;
+import org.apache.tuscany.binding.celtix.assembly.WebServiceBinding;
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.core.loader.WSDLDefinitionRegistry;
+import org.apache.tuscany.model.assembly.AssemblyContext;
+import org.apache.tuscany.model.assembly.impl.BindingImpl;
+import org.objectweb.celtix.Bus;
+
+/**
+ * An implementation of WebServiceBinding.
+ */
+public class WebServiceBindingImpl extends BindingImpl implements WebServiceBinding {
+
+ private WSDLDefinitionRegistry wsdlRegistry;
+
+ private Definition definition;
+ private Port port;
+ private Service service;
+ private String portURI;
+ private TypeHelper typeHelper;
+ private ResourceLoader resourceLoader;
+ private Bus bus;
+
+ /**
+ * Constructor
+ */
+ protected WebServiceBindingImpl(WSDLDefinitionRegistry reg) {
+ wsdlRegistry = reg;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.celtix.assembly.WebServiceBinding#getWSDLPort()
+ */
+ public Port getWSDLPort() {
+ return port;
+ }
+
+ public Service getWSDLService() {
+ return service;
+ }
+
+
+
+ /**
+ * @see org.apache.tuscany.binding.celtix.assembly.WebServiceBinding#setWSDLPort(javax.wsdl.Port)
+ */
+ public void setWSDLPort(Port value) {
+ checkNotFrozen();
+ port = value;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.celtix.assembly.WebServiceBinding#getWSDLDefinition()
+ */
+ public Definition getWSDLDefinition() {
+ return definition;
+ }
+
+ /**
+ * @see WebServiceBinding#setWSDLDefinition(javax.wsdl.Definition)
+ */
+ public void setWSDLDefinition(Definition def) {
+ checkNotFrozen();
+ definition = def;
+ }
+
+ /**
+ * @param uri The portURI to set.
+ */
+ public void setPortURI(String uri) {
+ portURI = uri;
+ }
+
+ public TypeHelper getTypeHelper() {
+ return typeHelper;
+ }
+
+ public void setTypeHelper(TypeHelper pTypeHelper) {
+ this.typeHelper = pTypeHelper;
+ }
+
+ public ResourceLoader getResourceLoader() {
+ return resourceLoader;
+ }
+
+ public void setResourceLoader(ResourceLoader resourceLoader) {
+ this.resourceLoader = resourceLoader;
+ }
+
+ /**
+ * @see BindingImpl#initialize(org.apache.tuscany.model.assembly.AssemblyContext)
+ */
+ @SuppressWarnings("unchecked")
+ public void initialize(AssemblyContext modelContext) {
+ if (isInitialized()) {
+ return;
+ }
+ super.initialize(modelContext);
+
+ // Get the WSDL port namespace and name
+ if (port == null && portURI != null) {
+ int h = portURI.indexOf('#');
+ String portNamespace = portURI.substring(0, h);
+ String serviceName;
+ String portName;
+
+ String fragment = portURI.substring(h + 1);
+ if (fragment.startsWith("wsdl.endpoint(") && fragment.endsWith(")")) {
+ fragment = fragment.substring(14, fragment.length() - 1);
+ int slash = fragment.indexOf('/');
+ if (slash != -1) {
+ serviceName = fragment.substring(0, slash);
+ portName = fragment.substring(slash + 1);
+ } else {
+ serviceName = null;
+ portName = fragment;
+ }
+ } else {
+ serviceName = null;
+ portName = fragment;
+ }
+
+ // Load the WSDL definitions for the given namespace
+ List<Definition> definitions = wsdlRegistry.getDefinitionsForNamespace(portNamespace, resourceLoader);
+ if (definitions == null) {
+ throw new IllegalArgumentException("Cannot find WSDL definition for " + portNamespace);
+ }
+ for (Definition def : definitions) {
+
+ // Find the port with the given name
+ for (Service serv : (Collection<Service>)def.getServices().values()) {
+ QName sqn = serv.getQName();
+ if (serviceName != null
+ && !serviceName.equals(sqn.getLocalPart())) {
+ continue;
+ }
+
+ Port p = serv.getPort(portName);
+ if (p != null) {
+ service = serv;
+ definition = def;
+ port = p;
+ return;
+ }
+ }
+ }
+ throw new IllegalArgumentException("Cannot find WSDL port " + portURI);
+ }
+ }
+
+ public Bus getBus() {
+ return bus;
+ }
+
+ public void setBus(Bus b) {
+ bus = b;
+ }
+
+}