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 de...@apache.org on 2008/07/01 09:02:22 UTC
svn commit: r673010 - in
/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin:
resources/ src/main/java/org/apache/axis2/tool/service/eclipse/ui/
src/main/java/org/apache/axis2/tool/service/resource/
src/main/java/org/apache/axis2/to...
Author: deepal
Date: Tue Jul 1 00:02:22 2008
New Revision: 673010
URL: http://svn.apache.org/viewvc?rev=673010&view=rev
Log:
applying the patch in 3880
Added:
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/services.xsd
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/ServicePluginUtils.java
Modified:
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLFileSelectionPage.java
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/resource/ServiceResources.properties
webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/Constants.java
Added: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/services.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/services.xsd?rev=673010&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/services.xsd (added)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/resources/services.xsd Tue Jul 1 00:02:22 2008
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="serviceGroup">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="service"/>
+ <xs:element minOccurs="0" ref="parameter"/>
+ <xs:element minOccurs="0" ref="module"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="service">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="module"/>
+ <xs:element ref="operation"/>
+ <xs:element ref="parameter"/>
+ <xs:element ref="description"/>
+ <xs:element ref="Description"/>
+ <xs:element ref="excludeOperations"/>
+ <xs:element ref="messageReceivers"/>
+ <xs:element ref="schema"/>
+ <xs:element ref="transports"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="dataLocator"/>
+ </xs:sequence>
+ <xs:attribute name="class"/>
+ <xs:attribute name="name"/>
+ <xs:attribute name="scope" type="xs:NCName"/>
+ <xs:attribute name="targetNamespace" type="xs:anyURI"/>
+ <xs:attribute name="activate" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="description" type="xs:string"/>
+ <xs:element name="Description" type="xs:string"/>
+ <xs:element name="excludeOperations">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="operation" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="messageReceivers">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="messageReceiver"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="schema">
+ <xs:complexType>
+ <xs:attribute name="schemaNamespace" use="required" type="xs:anyURI"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="transports">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="transport"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="transport" type="xs:NCName"/>
+ <xs:element name="dataLocator">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="dialectLocator"/>
+ </xs:sequence>
+ <xs:attribute name="class"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dialectLocator">
+ <xs:complexType>
+ <xs:attribute name="class" use="required"/>
+ <xs:attribute name="dialect" use="required" type="xs:anyURI"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="parameter">
+ <xs:complexType mixed="true">
+ <xs:attribute name="locked" type="xs:NMTOKEN"/>
+ <xs:attribute name="name" use="required" type="xs:NCName"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="module">
+ <xs:complexType>
+ <xs:attribute name="ref" use="required" type="xs:NCName"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="operation">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="messageReceiver"/>
+ <xs:element ref="module"/>
+ <xs:element ref="parameter"/>
+ <xs:element ref="actionMapping"/>
+ <xs:element ref="faultActionMapping"/>
+ <xs:element ref="message"/>
+ <xs:element ref="outputActionMapping"/>
+ </xs:choice>
+ <xs:attribute name="mep" type="xs:anyURI"/>
+ <xs:attribute name="name" type="xs:NCName"/>
+ <xs:attribute name="qname" type="xs:NCName"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="actionMapping" type="xs:anyURI"/>
+ <xs:element name="faultActionMapping">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="faultName" use="required" type="xs:NCName"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="message">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="parameter"/>
+ </xs:sequence>
+ <xs:attribute name="label" use="required" type="xs:NCName"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="outputActionMapping" type="xs:anyURI"/>
+ <xs:element name="messageReceiver">
+ <xs:complexType>
+ <xs:attribute name="class" use="required" type="xs:NCName"/>
+ <xs:attribute name="mep" type="xs:anyURI"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
Modified: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLFileSelectionPage.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLFileSelectionPage.java?rev=673010&r1=673009&r2=673010&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLFileSelectionPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLFileSelectionPage.java Tue Jul 1 00:02:22 2008
@@ -19,8 +19,11 @@
package org.apache.axis2.tool.service.eclipse.ui;
+import java.io.File;
+
import org.apache.axis2.tool.service.bean.Page2Bean;
import org.apache.axis2.tool.service.eclipse.plugin.ServiceArchiver;
+import org.apache.axis2.tool.util.ServicePluginUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
@@ -38,7 +41,7 @@
public class ServiceXMLFileSelectionPage extends AbstractServiceWizardPage {
- private static final String SERVICES_XML_NAME = "services.xml";
+ private static final String SERVICES_XML_NAME = "*.xml";
private Text serviceXMLText;
private Label manualSelectionLabel;
private Label recommendationTextLable;
@@ -168,12 +171,14 @@
}
private void handleModify(){
- String serviceXMLString =serviceXMLText.getText().trim().toLowerCase();
+ String serviceXMLString =serviceXMLText.getText().trim();
settings.put(PREF_SERVICE_XML_FILE,serviceXMLString);
if (serviceXMLString.equals("")){
- this.updateStatus(ServiceArchiver.getResourceString("page2.error.servicenameempty"));
- }else if(!serviceXMLString.endsWith(SERVICES_XML_NAME)){
- this.updateStatus(ServiceArchiver.getResourceString("page2.error.servicenamewrong"));
+ this.updateStatus(ServiceArchiver.getResourceString("page2.error.servicenameempty"));
+ }else if (!(new File(serviceXMLString)).exists()){
+ this.updateStatus(ServiceArchiver.getResourceString("page2.error.servicenotexist"));
+ }else if(!ServicePluginUtils.isServicesXMLValid(serviceXMLString)){
+ this.updateStatus(ServiceArchiver.getResourceString("page2.error.serviceselectedinvalid"));
}else{
this.updateStatus(null);
}
Modified: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/resource/ServiceResources.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/resource/ServiceResources.properties?rev=673010&r1=673009&r2=673010&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/resource/ServiceResources.properties (original)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/resource/ServiceResources.properties Tue Jul 1 00:02:22 2008
@@ -58,6 +58,8 @@
page2.generateauto.caption=Generate the service xml automatically
page2.error.servicenameempty=Service XML should not be empty
page2.error.servicenamewrong=Please select a file named service.xml
+page2.error.servicenotexist=Service file does not exist
+page2.error.serviceselectedinvalid=The selected service file is invalid
###############################################################################
#third page
page3.name=page3
Modified: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/Constants.java?rev=673010&r1=673009&r2=673010&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/Constants.java Tue Jul 1 00:02:22 2008
@@ -28,5 +28,12 @@
public static final int GENERAL_BUTTON_WIDTH=80;
public static final int GENERAL_COMP_HEIGHT=20;
+
+ }
+
+ public class ServiceConstants{
+ public static final String RESOURCE_FOLDER="resources";
+ public static final String SERVICES_XSD_SCHEMA_NAME="services.xsd";
+ public static final String XML_SCHEMA="http://www.w3.org/2001/XMLSchema";
}
}
Added: webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/ServicePluginUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/ServicePluginUtils.java?rev=673010&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/ServicePluginUtils.java (added)
+++ webservices/axis2/trunk/java/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/util/ServicePluginUtils.java Tue Jul 1 00:02:22 2008
@@ -0,0 +1,41 @@
+package org.apache.axis2.tool.util;
+
+import java.io.File;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
+
+import org.apache.axis2.tool.service.eclipse.plugin.ServiceArchiver;
+import org.apache.axis2.tool.util.Constants.ServiceConstants;
+
+public class ServicePluginUtils {
+ /**
+ * Validates the given xml file against the axis2 services schema.
+ * @return return true if the xml is valid
+ */
+ public static boolean isServicesXMLValid(String servicesXmlPath){
+ SchemaFactory factory =
+ SchemaFactory.newInstance(ServiceConstants.XML_SCHEMA);
+
+ try {
+ String resourcePath=addAnotherNodeToPath(
+ ServiceConstants.RESOURCE_FOLDER, ServiceConstants.SERVICES_XSD_SCHEMA_NAME);
+ Schema schema = factory.newSchema(
+ ServiceArchiver.getDefault().getBundle().getEntry(resourcePath));
+ Validator validator = schema.newValidator();
+ Source source = new StreamSource(new File(servicesXmlPath));
+ validator.validate(source);
+ return true;
+ }
+ catch (Exception ex) {
+ return false;
+ }
+ }
+
+ public static String addAnotherNodeToPath(String currentPath, String newNode) {
+ return currentPath + File.separator + newNode;
+ }
+}