Author: bfitzpat
Date: 2010-08-18 16:28:50 -0400 (Wed, 18 Aug 2010)
New Revision: 24275
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUI.properties
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUIMessages.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java
Log:
OPEN - issue JBIDE-6851: [tester] provide ability to read WSDL exxposed over HTTPS
https://jira.jboss.org/browse/JBIDE-6851
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUI.properties
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUI.properties 2010-08-18
19:40:14 UTC (rev 24274)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUI.properties 2010-08-18
20:28:50 UTC (rev 24275)
@@ -158,6 +158,8 @@
DelimitedStringList_Msg_Yes_Btn=Yes
DelimitedStringList_NO_COMMAS_WARNING=There are no commas delimiting the name and value
for this key/value pair.
DelimitedStringList_NO_EQUALS_DELIMITER_WARNING=Parameters should be in
'name=value' format.
+TesterWSDLUtils_WSDL_HTTPS_Secured_Inaccessible=WSDL is secured and inaccessible. Try
saving a copy of the WSDL and using the file copy instead.
+TesterWSDLUtils_WSDL_Inaccessible=WSDL is inaccessible.
UidPwdDialog_Description=Specify the user name and password to access this web service
via basic authentication.
UidPwdDialog_PWD_Label=Password:
UidPwdDialog_Title=User Name/ Password
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUIMessages.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUIMessages.java 2010-08-18
19:40:14 UTC (rev 24274)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/messages/JBossWSUIMessages.java 2010-08-18
20:28:50 UTC (rev 24275)
@@ -157,6 +157,8 @@
public static String JAXRSWSTestView2_Text_Msg_May_Be_Out_of_Date;
public static String JAXRSWSTestView2_Title_Msg_May_Be_Out_of_Date;
public static String ResultsXMLStorageInput_WS_Invocation_Results_Prefix;
+ public static String TesterWSDLUtils_WSDL_HTTPS_Secured_Inaccessible;
+ public static String TesterWSDLUtils_WSDL_Inaccessible;
public static String UidPwdDialog_Description;
public static String UidPwdDialog_PWD_Label;
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java 2010-08-18
19:40:14 UTC (rev 24274)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/utils/TesterWSDLUtils.java 2010-08-18
20:28:50 UTC (rev 24275)
@@ -47,6 +47,10 @@
import javax.xml.namespace.QName;
//import org.jdom.Attribute;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.jboss.tools.ws.core.utils.StatusUtils;
+import org.jboss.tools.ws.ui.messages.JBossWSUIMessages;
import org.jdom.Namespace;
import org.jdom.input.DOMBuilder;
@@ -122,6 +126,38 @@
return def;
}
+ public static IStatus isWSDLAccessible(URL contextURL) {
+ Properties props = System.getProperties();
+ String oldPropValue = props.getProperty(DEF_FACTORY_PROPERTY_NAME);
+
+ props.setProperty(DEF_FACTORY_PROPERTY_NAME, PRIVATE_DEF_FACTORY_CLASS);
+
+ WSDLFactory factory;
+ try {
+ factory = WSDLFactory.newInstance();
+ WSDLReader wsdlReader = factory.newWSDLReader();
+ wsdlReader.setFeature(Constants.FEATURE_VERBOSE, false);
+ wsdlReader.setFeature("javax.wsdl.importDocuments", true); //$NON-NLS-1$
+ String context = null;
+ if (contextURL != null)
+ context = contextURL.toString();
+ wsdlReader.readWSDL(context);
+ } catch (WSDLException e) {
+ if (contextURL.getProtocol().equalsIgnoreCase("https")) { //$NON-NLS-1$
+ return
StatusUtils.warningStatus(JBossWSUIMessages.TesterWSDLUtils_WSDL_HTTPS_Secured_Inaccessible);
+ } else {
+ return StatusUtils.errorStatus(JBossWSUIMessages.TesterWSDLUtils_WSDL_Inaccessible,
e);
+ }
+ }
+
+ if (oldPropValue != null) {
+ props.setProperty(DEF_FACTORY_PROPERTY_NAME, oldPropValue);
+ } else {
+ props.remove(DEF_FACTORY_PROPERTY_NAME);
+ }
+ return Status.OK_STATUS;
+ }
+
public static Definition readWSDLURL(URL contextURL) throws WSDLException,
NullPointerException {
Properties props = System.getProperties();
String oldPropValue = props.getProperty(DEF_FACTORY_PROPERTY_NAME);
Modified:
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java 2010-08-18
19:40:14 UTC (rev 24274)
+++
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/views/WSDLBrowseDialog.java 2010-08-18
20:28:50 UTC (rev 24275)
@@ -423,6 +423,11 @@
.beginTask(JBossWSUIMessages.WSDLBrowseDialog_Status_ParsingWSDLFromURL,
100);
try {
+ IStatus testStatus =
+ TesterWSDLUtils.isWSDLAccessible(testURL);
+ if (testStatus.getSeverity() != IStatus.OK){
+ result = testStatus;
+ }
wsdlDefinition =
TesterWSDLUtils.readWSDLURL(testURL);
} catch (WSDLException e) {
@@ -454,6 +459,12 @@
}
} else {
try {
+ IStatus testStatus =
+ TesterWSDLUtils.isWSDLAccessible(testURL);
+ if (testStatus.getSeverity() != IStatus.OK) {
+ return StatusUtils.errorStatus(testStatus.getMessage(),
+ testStatus.getException());
+ }
wsdlDefinition =
TesterWSDLUtils.readWSDLURL(testURL);
} catch (WSDLException e) {