You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2006/09/09 03:15:00 UTC
svn commit: r441721 - in /incubator/tuscany/java/sca/idl/wsdl/src/main:
java/org/apache/tuscany/idl/wsdl/ resources/ resources/META-INF/
resources/META-INF/tuscany/
Author: rfeng
Date: Fri Sep 8 18:14:59 2006
New Revision: 441721
URL: http://svn.apache.org/viewvc?view=rev&rev=441721
Log:
Re-activate interface.wsdl support
Added:
incubator/tuscany/java/sca/idl/wsdl/src/main/resources/
incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/
incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/
incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/interface-wsdl.scdl
Modified:
incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java
incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLLoader.java
Modified: incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java?view=diff&rev=441721&r1=441720&r2=441721
==============================================================================
--- incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java (original)
+++ incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java Fri Sep 8 18:14:59 2006
@@ -36,6 +36,7 @@
import org.apache.tuscany.spi.idl.InvalidServiceContractException;
import org.apache.tuscany.spi.model.DataType;
+import org.apache.tuscany.spi.model.InteractionScope;
/**
* Introspector for creating WSDLServiceContract definitions from WSDL PortTypes.
@@ -103,7 +104,7 @@
dataTypes.add(dataType);
}
}
- DataType<List<DataType<QName>>> msgType = new DataType<List<DataType<QName>>>(Object.class, dataTypes);
+ DataType<List<DataType<QName>>> msgType = new DataType<List<DataType<QName>>>("wsdl:parts", Object.class, dataTypes);
return msgType;
}
@@ -114,7 +115,7 @@
partTypeName = part.getTypeName();
}
// FIXME: What java class is it? Should we try to see if there's a generated one?
- return new DataType<QName>(Object.class, partTypeName);
+ return new DataType<QName>("org.w3c.dom.Node", Object.class, partTypeName);
}
/**
@@ -125,6 +126,8 @@
contract.setPortType(portType);
contract.setInterfaceName(portType.getQName().getLocalPart());
contract.setOperations(introspectOperations(portType));
+ // FIXME: set to Non-conversational for now
+ contract.setInteractionScope(InteractionScope.NONCONVERSATIONAL);
return contract;
}
@@ -133,13 +136,18 @@
*/
public WSDLServiceContract introspect(PortType portType, PortType callbackPortType)
throws InvalidServiceContractException {
+ assert portType!=null: "PortType cannot be null";
WSDLServiceContract contract = new WSDLServiceContract();
+ // FIXME: set to Non-conversational for now
+ contract.setInteractionScope(InteractionScope.NONCONVERSATIONAL);
contract.setPortType(portType);
contract.setInterfaceName(portType.getQName().getLocalPart());
contract.setOperations(introspectOperations(portType));
- contract.setCallbackPortType(callbackPortType);
- contract.setCallbackName(callbackPortType.getQName().getLocalPart());
- contract.setCallbackOperations(introspectOperations(callbackPortType));
+ if (callbackPortType != null) {
+ contract.setCallbackPortType(callbackPortType);
+ contract.setCallbackName(callbackPortType.getQName().getLocalPart());
+ contract.setCallbackOperations(introspectOperations(callbackPortType));
+ }
return contract;
}
Modified: incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLLoader.java?view=diff&rev=441721&r1=441720&r2=441721
==============================================================================
--- incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLLoader.java (original)
+++ incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLLoader.java Fri Sep 8 18:14:59 2006
@@ -32,10 +32,12 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.idl.InvalidServiceContractException;
import org.apache.tuscany.spi.loader.InvalidValueException;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.LoaderUtil;
+import org.apache.tuscany.spi.loader.MissingResourceException;
/**
* Loads a WSDL interface definition from an XML-based assembly file
@@ -48,12 +50,15 @@
private static final String WSDLI_LOCATION = "wsdlLocation";
private WSDLDefinitionRegistry wsdlRegistry;
+ private InterfaceWSDLIntrospector introspector;
- @Constructor({"registry","wsdlRegistry"})
- public InterfaceWSDLLoader(@Autowire LoaderRegistry registry,
- @Autowire WSDLDefinitionRegistry wsdlRegistry) {
+ @Constructor( { "registry", "wsdlRegistry", "introspector" })
+ public InterfaceWSDLLoader(@Autowire LoaderRegistry registry,
+ @Autowire WSDLDefinitionRegistry wsdlRegistry,
+ @Autowire InterfaceWSDLIntrospector introspector) {
super(registry);
this.wsdlRegistry = wsdlRegistry;
+ this.introspector = introspector;
}
public QName getXMLType() {
@@ -91,19 +96,29 @@
}
}
- WSDLServiceContract serviceContract = new WSDLServiceContract();
- serviceContract.setPortType(getPortType(interfaceURI));
+ PortType portType = getPortType(interfaceURI);
+ if (portType == null) {
+ throw new MissingResourceException(interfaceURI);
+ }
+ PortType callback = null;
if (callbackURI != null) {
- serviceContract.setCallbackPortType(getPortType(callbackURI));
+ callback = getPortType(callbackURI);
+ }
+ try {
+ return introspector.introspect(portType, callback);
+ } catch (InvalidServiceContractException e) {
+ LoaderException le = new LoaderException(e);
+ le.setIdentifier(wsdlLocation);
+ throw le;
}
- return serviceContract;
}
protected PortType getPortType(String uri) {
- // fixme support WSDL 2.0 XPointer references and possible XML Schema QNames
+ // Syntax: <WSDL-namespace-URI>#wsdl.interface(<portTypeOrInterface-name>)
int index = uri.indexOf('#');
String namespace = uri.substring(0, index);
String name = uri.substring(index + 1);
+ name = name.substring("wsdl.interface(".length(), name.length()-1);
QName qname = new QName(namespace, name);
return wsdlRegistry.getPortType(qname);
}
Added: incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/interface-wsdl.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/interface-wsdl.scdl?view=auto&rev=441721
==============================================================================
--- incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/interface-wsdl.scdl (added)
+++ incubator/tuscany/java/sca/idl/wsdl/src/main/resources/META-INF/tuscany/interface-wsdl.scdl Fri Sep 8 18:14:59 2006
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+-->
+<!--
+ Default system configuration for the launcher environment.
+
+ $Rev: 440894 $ $Date: 2006-09-06 15:52:01 -0700 (Wed, 06 Sep 2006) $
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+ name="org.apache.tuscany.idl.WSDL">
+
+ <component name="interface.wsdl.Loader">
+ <system:implementation.system class="org.apache.tuscany.idl.wsdl.InterfaceWSDLLoader" />
+ </component>
+
+ <component name="wsdl.Registry">
+ <system:implementation.system class="org.apache.tuscany.idl.wsdl.WSDLDefinitionRegistryImpl" initLevel="40" />
+ </component>
+
+ <component name="interface.wsdl.Introspector">
+ <system:implementation.system class="org.apache.tuscany.idl.wsdl.InterfaceWSDLIntrospectorImpl" initLevel="40" />
+ </component>
+
+</composite>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org