You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ro...@apache.org on 2007/10/12 21:55:02 UTC
svn commit: r584248 [4/4] - in /webservices/axis2/trunk/java/modules:
codegen/src/org/apache/axis2/wsdl/codegen/ kernel/conf/
kernel/src/org/apache/axis2/ kernel/src/org/apache/axis2/deployment/
kernel/src/org/apache/axis2/deployment/repository/util/ k...
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java?rev=584248&r1=584247&r2=584248&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java Fri Oct 12 12:53:43 2007
@@ -25,6 +25,7 @@
import org.apache.axis2.metadata.factory.ResourceFinderFactory;
import org.apache.axis2.metadata.registry.MetadataFactoryRegistry;
import org.apache.axis2.metadata.resource.ResourceFinder;
+import org.apache.axis2.wsdl.util.WSDLDefinitionWrapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -63,8 +64,11 @@
public class WSDL4JWrapper implements WSDLWrapper {
private static final Log log = LogFactory.getLog(WSDL4JWrapper.class);
- private Definition wsdlDefinition = null;
+
+ private WSDLDefinitionWrapper wsdlDefinition = null;
+
private URL wsdlURL;
+ private String wsdlExplicitURL;
public WSDL4JWrapper(URL wsdlURL) throws FileNotFoundException, UnknownHostException,
ConnectException, IOException, WSDLException {
@@ -153,23 +157,8 @@
if(is != null) {
is.close();
}
- final String explicitWsdl = urlCon.getURL().toString();
- try {
- wsdlDefinition = (Definition)AccessController.doPrivileged(
- new PrivilegedExceptionAction() {
- public Object run() throws WSDLException {
- WSDLReader reader = getWSDLReader();
- return reader.readWSDL(explicitWsdl);
- }
- }
- );
- } catch (PrivilegedActionException e) {
- if (log.isDebugEnabled()) {
- log.debug("Exception thrown from AccessController: " + e);
- }
- throw ExceptionFactory.makeWebServiceException(e.getException());
- }
-
+ this.wsdlExplicitURL = urlCon.getURL().toString();
+ getDefinition();
} catch (FileNotFoundException ex) {
throw ex;
} catch (UnknownHostException ex) {
@@ -272,18 +261,99 @@
public WSDL4JWrapper(URL wsdlURL, Definition wsdlDefinition) throws WSDLException {
super();
this.wsdlURL = wsdlURL;
- this.wsdlDefinition = wsdlDefinition;
+ if ((wsdlDefinition != null) && !(wsdlDefinition instanceof WSDLDefinitionWrapper)) {
+ this.wsdlDefinition = new WSDLDefinitionWrapper(wsdlDefinition, wsdlURL);
+ } else {
+ this.wsdlDefinition = (WSDLDefinitionWrapper) wsdlDefinition;
+ }
+ }
+
+
+ public WSDL4JWrapper(Definition wsdlDefinition) throws WSDLException {
+ super();
+ if ((wsdlDefinition != null) && !(wsdlDefinition instanceof WSDLDefinitionWrapper)) {
+ this.wsdlDefinition = new WSDLDefinitionWrapper(wsdlDefinition);
+ } else {
+ this.wsdlDefinition = (WSDLDefinitionWrapper) wsdlDefinition;
+ }
+ if (this.wsdlDefinition != null) {
+ String baseURI = wsdlDefinition.getDocumentBaseURI();
+ try {
+ wsdlURL = new URL(baseURI);
+ } catch (Exception ex) {
+ // just absorb the error
+ }
+ }
}
+
//TODO: Perform validations for each method to check for null parameters on QName.
+ /*
+ * Returns a wrapped WSDL4J wSDL definition
+ */
public Definition getDefinition() {
+ if (wsdlDefinition == null) {
+ Definition def = loadDefinition();
+ if (def != null) {
+ wsdlDefinition = new WSDLDefinitionWrapper(def);
+ }
+ }
return wsdlDefinition;
}
+ /*
+ * Returns an unwrapped WSDL4J wSDL definition
+ */
+ public Definition getUnwrappedDefinition() {
+ Definition def;
+ if (wsdlDefinition == null) {
+ def = loadDefinition();
+ } else if (wsdlDefinition instanceof WSDLDefinitionWrapper) {
+ def = wsdlDefinition.getUnwrappedDefinition();
+ } else {
+ def = wsdlDefinition;
+ }
+ return def;
+ }
+
+
+ /*
+ * Load a WSDL4J WSDL definition from a URL
+ */
+ public Definition loadDefinition() {
+
+ Definition def = null;
+
+ if (wsdlExplicitURL != null) {
+ try {
+ def = (Definition) AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ public Object run() throws WSDLException {
+ WSDLReader reader = getWSDLReader();
+ return reader.readWSDL(wsdlExplicitURL);
+ }
+ });
+ } catch (PrivilegedActionException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Exception thrown from AccessController: " + e);
+ }
+ throw ExceptionFactory.makeWebServiceException(e.getException());
+ }
+ }
+
+
+ if (log.isDebugEnabled()) {
+ if (def != null) {
+ log.debug("loadDefinition() returning a NON-NULL definition");
+ } else {
+ log.debug("loadDefinition() returning a NULL definition");
+ }
+ }
+
+ return def;
+ }
public Binding getFirstPortBinding(QName serviceQname) {
- // TODO Auto-generated method stub
Service service = getService(serviceQname);
if (service == null) {
return null;
@@ -326,7 +396,6 @@
}
public ArrayList getPortBinding(QName serviceQname) {
- // TODO Auto-generated method stub
Map map = this.getService(serviceQname).getPorts();
if (map == null || map.isEmpty()) {
return null;
@@ -375,16 +444,19 @@
}
public Service getService(QName serviceQname) {
- // TODO Auto-generated method stub
if (serviceQname == null) {
return null;
}
- return wsdlDefinition.getService(serviceQname);
+ Definition def = getDefinition();
+ if (def != null) {
+ return def.getService(serviceQname);
+ } else {
+ return null;
+ }
}
public String getSOAPAction(QName serviceQname) {
- // TODO Auto-generated method stub
Binding binding = getFirstPortBinding(serviceQname);
if (binding == null) {
return null;
@@ -405,7 +477,6 @@
}
public String getSOAPAction(QName serviceQname, QName portQname) {
- // TODO Auto-generated method stub
Port port = getPort(serviceQname, portQname);
if (port == null) {
return null;
@@ -461,7 +532,6 @@
}
public URL getWSDLLocation() {
- // TODO Auto-generated method stub
return this.wsdlURL;
}
@@ -472,8 +542,12 @@
}
public String getTargetNamespace() {
- // TODO Auto-generated method stub
- return wsdlDefinition.getTargetNamespace();
+ Definition def = getDefinition();
+ if (def != null) {
+ return def.getTargetNamespace();
+ } else {
+ return null;
+ }
}
/**
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDLWrapper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDLWrapper.java?rev=584248&r1=584247&r2=584248&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDLWrapper.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/util/WSDLWrapper.java Fri Oct 12 12:53:43 2007
@@ -65,4 +65,6 @@
public String getTargetNamespace();
public Definition getDefinition();
+
+ public Definition getUnwrappedDefinition();
}
Modified: webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java?rev=584248&r1=584247&r2=584248&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java Fri Oct 12 12:53:43 2007
@@ -61,6 +61,7 @@
WSDLFactory factory = WSDLFactory.newInstance();
WSDLReader reader = factory.newWSDLReader();
wsdlDefinition = reader.readWSDL(wsdlURL.toString());
+ wsdlDefinition.setDocumentBaseURI(wsdlURL.toString());
}
catch (Exception e) {
System.out.println(
Modified: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java?rev=584248&r1=584247&r2=584248&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java (original)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java Fri Oct 12 12:53:43 2007
@@ -201,6 +201,10 @@
WSDL11ToAxisServiceBuilder builder = new WSDL11ToAxisServiceBuilder(url.openConnection().getInputStream());
+ // Set the URI of the base document for the Definition.
+ // Note that this is the URI of the base document, not the imports.
+ builder.setDocumentBaseUri(url.toString());
+
builder.setBaseUri(getBaseUri(wsdlURI));
builder.setCodegen(true);
return builder.populateService();
Modified: webservices/axis2/trunk/java/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java?rev=584248&r1=584247&r2=584248&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java (original)
+++ webservices/axis2/trunk/java/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java Fri Oct 12 12:53:43 2007
@@ -287,6 +287,7 @@
WSDL11ToAxisServiceBuilder builder =
new WSDL11ToAxisServiceBuilder(url.openConnection().getInputStream());
+ builder.setDocumentBaseUri(url.toString());
builder.setBaseUri(getBaseUri(wsdlURI));
builder.setCodegen(true);
return builder.populateService();
@@ -407,6 +408,9 @@
WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
wsdlDefinition = reader.readWSDL(WSDLFileName) ;
+ if (wsdlDefinition != null) {
+ wsdlDefinition.setDocumentBaseURI(WSDLFileName);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org