You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2010/07/12 23:37:32 UTC
svn commit: r963496 - in
/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main:
java/org/apache/tuscany/sca/interfacedef/wsdl/
java/org/apache/tuscany/sca/interfacedef/wsdl/impl/
java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ resources/
Author: antelder
Date: Mon Jul 12 21:37:32 2010
New Revision: 963496
URL: http://svn.apache.org/viewvc?rev=963496&view=rev
Log:
Update wsdl resolving to take account of wsdli:location namespace to location url mappings
Modified:
tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java
tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java
tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties
Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java?rev=963496&r1=963495&r2=963496&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java Mon Jul 12 21:37:32 2010
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.interface
import java.net.URI;
import java.util.List;
+import java.util.Map;
import javax.wsdl.Binding;
import javax.wsdl.Definition;
@@ -178,6 +179,12 @@ public interface WSDLDefinition extends
*
* @param nameOfBindingToResolve
*/
- void setNameOfServiceToResolve(QName nameOfServiceToResolve);
+ void setNameOfServiceToResolve(QName nameOfServiceToResolve);
+
+ /**
+ * Gets the wsdli:location attribute namespace mappings
+ * @return a Map with key being namespace and value the location
+ */
+ Map<String, String> getWsdliLocations();
}
Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java?rev=963496&r1=963495&r2=963496&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java Mon Jul 12 21:37:32 2010
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.interface
import java.net.URI;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -62,6 +63,7 @@ public class WSDLDefinitionImpl implemen
private QName nameOfPortTypeToResolve;
private QName nameOfBindingToResolve;
private QName nameOfServiceToResolve;
+ private Map<String, String> wsdliLocations = new HashMap<String, String>();
protected WSDLDefinitionImpl() {
}
@@ -311,4 +313,9 @@ public class WSDLDefinitionImpl implemen
public void setNameOfServiceToResolve(QName nameOfServiceToResolve) {
this.nameOfServiceToResolve = nameOfServiceToResolve;
}
+
+ @Override
+ public Map<String, String> getWsdliLocations() {
+ return wsdliLocations ;
+ }
}
Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java?rev=963496&r1=963495&r2=963496&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java Mon Jul 12 21:37:32 2010
@@ -339,6 +339,17 @@ public class WSDLModelResolver implement
return modelClass.cast(unresolved);
}
+ // Lookup based on wsdli:location
+ if (((WSDLDefinition)unresolved).getWsdliLocations().containsKey(namespace)) {
+ try {
+ loadDefinition(((WSDLDefinition)unresolved), context);
+ } catch (ContributionReadException e) {
+ context.getMonitor().error(context.getMonitor(), this, "interface-wsdlxml-validation-messages", "wsdliLocationException", e, ((WSDLDefinition)unresolved).getNamespace());
+ }
+ return modelClass.cast((WSDLDefinition)unresolved);
+ }
+
+
// Lookup a definition for the given namespace, from imports
for (Import import_ : this.contribution.getImports()) {
if (import_ instanceof NamespaceImport) {
@@ -458,11 +469,20 @@ public class WSDLModelResolver implement
* @throws ContributionReadException
*/
private void loadDefinition(WSDLDefinition wsdlDef, ProcessorContext context) throws ContributionReadException {
- if (wsdlDef.getDefinition() != null || wsdlDef.getLocation() == null) {
+ if (wsdlDef.getDefinition() != null) {
return;
}
try {
- URL artifactURL = wsdlDef.getLocation().toURL();
+ URL artifactURL;
+ String loc = wsdlDef.getWsdliLocations().get(wsdlDef.getNamespace());
+ if (loc != null) {
+ artifactURL = new URL(loc);
+ } else {
+ if (wsdlDef.getLocation() == null) {
+ return;
+ }
+ artifactURL = wsdlDef.getLocation().toURL();
+ }
// Read a WSDL document
InputStream is = IOHelper.openStream(artifactURL);
WSDLReader reader = wsdl4jFactory.newWSDLReader();
@@ -474,6 +494,7 @@ public class WSDLModelResolver implement
// Collection of namespace,location for wsdl:import definition
Map<String, String> wsdlImports = indexRead(wsdlDef.getLocation().toURL());
+ wsdlImports.putAll(wsdlDef.getWsdliLocations());
WSDLLocatorImpl locator = new WSDLLocatorImpl(context, artifactURL, is, wsdlImports);
Definition definition = reader.readWSDL(locator);
wsdlDef.setDefinition(definition);
Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties?rev=963496&r1=963495&r2=963496&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/resources/interface-wsdlxml-validation-messages.properties Mon Jul 12 21:37:32 2010
@@ -23,4 +23,5 @@ ContributionResolveException = Contribut
InvalidWSDLInterfaceAttr = Invalid WSDL interface attribute: {0}
WsdlInterfaceDoesNotMatch = The WSDL referenced by the interface.wsdl interface as ({0}) cannot be found in this contribution or in any imports that this contribution makes
InvalidRemotableValue = The interface.wsdl interface {0} element can only have a remotable attribute with the value "true" as WSDL interface are assumed to be remotable by default. The value that was found is: {1}.
-IncompatibleCallbacks = The interface.wsdl element has a forward interface with a callback declared in the WSDL {0} and a callback interface also declared using the callbackInterface attribute {1} but the callback interfaces are not equal.
\ No newline at end of file
+IncompatibleCallbacks = The interface.wsdl element has a forward interface with a callback declared in the WSDL {0} and a callback interface also declared using the callbackInterface attribute {1} but the callback interfaces are not equal.
+wsdliLocationException = Exception locating wsdli:location resource: {0}
\ No newline at end of file