[wsas-java-dev] svn commit r2728 - in trunk/wsas/java/modules: admin/src/org/wso2/wsas/admin/service www/extensions/core/js www/extensions/core/xslt

svn at wso2.org svn at wso2.org
Wed May 16 04:26:04 PDT 2007


Author: chamil
Date: Wed May 16 04:25:35 2007
New Revision: 2728

Modified:
   trunk/wsas/java/modules/admin/src/org/wso2/wsas/admin/service/DataServiceAdmin.java
   trunk/wsas/java/modules/www/extensions/core/js/data_service.js
   trunk/wsas/java/modules/www/extensions/core/xslt/list_services.xsl
Log:
Adding in the code to save a new data service.

Modified: trunk/wsas/java/modules/admin/src/org/wso2/wsas/admin/service/DataServiceAdmin.java
==============================================================================
--- trunk/wsas/java/modules/admin/src/org/wso2/wsas/admin/service/DataServiceAdmin.java	(original)
+++ trunk/wsas/java/modules/admin/src/org/wso2/wsas/admin/service/DataServiceAdmin.java	Wed May 16 04:25:35 2007
@@ -18,17 +18,20 @@
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
 
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.AxisService;
 import org.apache.commons.logging.Log;
@@ -91,17 +94,52 @@
 	// list all the available modules
 	public void saveDataServiceContents(String serviceId, String configContents) throws AxisFault {
 		AxisService axisService = getAxisConfig().getService(serviceId);
-		String fileParth =
-				(String) axisService.getParameter(DBConstants.DB_SERVICE_CONFIG_FILE).getValue();
+		if (axisService == null) {
+			// New service
+			String axis2RepoDirectory = this.configCtx.getAxisConfiguration().getRepository().getPath();
+			String repoDirectory = (String)this.configCtx.getProperty(DBConstants.DB_SERVICE_REPO);
+			String fileExtension = (String)this.configCtx.getProperty(DBConstants.DB_SERVICE_EXTENSION);
+			String filePath = axis2RepoDirectory + File.separator + repoDirectory + File.separator + serviceId + "." + fileExtension;
+			try {
+				File file = new File(filePath);
+				file.createNewFile();
+				BufferedWriter out = new BufferedWriter(new FileWriter(filePath));
+				out.write(configContents);
+				out.close();
+			} catch (IOException e) {
+				throw new AxisFault(
+						"Error while writing the contents for the service config file for the new service "
+								+ serviceId, e);
+			}
+		} else {
+			String filePath =
+					(String) axisService.getParameter(DBConstants.DB_SERVICE_CONFIG_FILE).getValue();
+			try {
+				BufferedWriter out = new BufferedWriter(new FileWriter(filePath));
+				out.write(configContents);
+				out.close();
+			} catch (IOException e) {
+				throw new AxisFault(
+						"Error while writing the contents from the service config file for service "
+								+ serviceId, e);
+			}
+		}
+	}
+	
+	public OMElement echoDataElement(String dataElement) throws AxisFault{
+		
+		OMElement returnEle = null;
 		try {
-			BufferedWriter out = new BufferedWriter(new FileWriter(fileParth));
-			out.write(configContents);
-			out.close();
-		} catch (IOException e) {
+			XMLStreamReader xmlSR =
+					StAXUtils.createXMLStreamReader(new ByteArrayInputStream(dataElement
+							.getBytes()));
+
+			returnEle = new StAXOMBuilder(xmlSR).getDocumentElement();
+			// new BufferedReader(new InputStreamReader(
+		} catch (Exception e) {
 			throw new AxisFault(
-					"Error while writing the contents from the service config file for service "
-							+ serviceId, e);
+					"Error while converting the contents echoed to an OMElement", e);
 		}
-
+		return returnEle;
 	}
 }

Modified: trunk/wsas/java/modules/www/extensions/core/js/data_service.js
==============================================================================
--- trunk/wsas/java/modules/www/extensions/core/js/data_service.js	(original)
+++ trunk/wsas/java/modules/www/extensions/core/js/data_service.js	Wed May 16 04:25:35 2007
@@ -10,48 +10,58 @@
 
 var curDataServiceOutputMappingType = null;
 
-function createCSNode(nodeName){
-	var newObj = null;
-	if (isIE()) {
-        newObj = new ActiveXObject("Microsoft.XmlDom");
-        var sXml = "<" + nodeName + "></" + nodeName + ">";
-        newObj.loadXML(sXml);
-    } else {
-        newObj =
-        document.implementation.createDocument("", nodeName, null);
-    }
-	return newObj;
-}
-
 function addNewDataService(){
 	var getDSNamePrompt = "Enter the name of the data service"
 	var tempValue = window.prompt(getDSNamePrompt);
     if (tempValue == '' || tempValue == null) {
         return false;
     }
-    curDataServiceName = tempValue;
-	var newDataObject = createCSNode("return");
-	
-//	newDataObject.appendChild(document.createElement("data"));
+    
+    serviceSpecificName = tempValue;
+    curDataServiceName = tempValue; // TODO : This needs to be removed when cleaning up.
+	var newDataObject = document.createElement("return");
 	
-	var dataRowObj = createCSNode("data");
-//	dataRowObj.setAttribute("name", tempValue);
 	
-	var configRowObj = createCSNode("config");
+	var dataRowObj = document.createElement("data");
+	dataRowObj.setAttribute("name", tempValue);
 	
-	//dataRowObj.appendChild(configRowObj);
+	var configRowObj = document.createElement("config");
 
-	//newDataObject.appendChild(dataRowObj);
-	
-	
-	
-	
-	dataServiceObj = newDataObject;
-	alert(prettyPrintDOMNode(dataServiceObj));
-	//refreshDataServiceScreen();	
+	dataRowObj.appendChild(configRowObj);
+
+	newDataObject.appendChild(dataRowObj);
+
+	var tempDataServiceObj = document.createElement("temp");
+	tempDataServiceObj.appendChild(newDataObject);
+	addNewDataServiceEchoDataElement(tempDataServiceObj);
+	//refreshDataServiceScreen();
 	
 }
 
+
+function addNewDataServiceEchoDataElement(tempDataServiceObj) {
+	//alert(prettyPrintDOMNode(dataServiceObj.getElementsByTagName("data").item(0), "", "    ", true));
+	var dataServiceContents = prettyPrintDOMNode(tempDataServiceObj.getElementsByTagName("data").item(0), "", "    ", true);
+	    var body_xml = '<req:echoDataElement xmlns:req="http://org.apache.axis2/xsd">\n' +
+				   		' <arg0><![CDATA[' + dataServiceContents +']]></arg0>\n' +
+                   ' </req:echoDataElement>\n';
+
+    var callURL = serverURL + "/" + "DataServiceAdmin" + "/echoDataElement" ;
+
+    //send("getAxisConfigData", body_xml, "data_service.xsl", callURL, document.getElementById("divDataServiceDetails"), false);
+    send("echoDataElement", body_xml, "", callURL, "", false, addNewDataServiceEchoDataElementCallback);
+}
+
+function addNewDataServiceEchoDataElementCallback(){
+    if (!onError()) {
+        return;
+    }
+
+    dataServiceObj = xhReq.responseXML.getElementsByTagName("return").item(0);
+	refreshDataServiceScreen();
+}
+
+
 function configureDataservice(serviceName){
 	curDataServiceName = serviceName;
 
@@ -119,11 +129,16 @@
     alert(xmlSerializerToString(dataObj));*/
     dataServiceObj = xhReq.responseXML.getElementsByTagName("return").item(0);
 	refreshDataServiceScreen();
+		
 }
 
 
 function refreshDataServiceScreen(){
 	callbackhelper("data_service.xsl",document.getElementById("divDataServiceDetails"));
+	//alert(prettyPrintDOMNode(dataServiceObj));
+	//var opDivObj = document.getElementById("divDataServiceDetails");
+    //processXML(dataServiceObj, "data_service.xsl", opDivObj);
+    //showOnlyOneMain(opDivObj);
     showDataServiceHeader(document.getElementById('dataServiceHeader'));
 	
 }
@@ -372,7 +387,7 @@
 	
 	queryEle.appendChild(sqlEle);
 	queryEle.appendChild(resultEle);
-	dataServiceObj.getElementsByTagName("query").item(0).appendChild(queryEle);
+	dataServiceObj.getElementsByTagName("data").item(0).appendChild(queryEle);
 	dataServiceQueryObj = queryEle;
 	refresEditDataServiceQueryScreen();
 	
@@ -405,4 +420,7 @@
 	}
 	// Return null if no node is found with the given attribute.
 	return null;
-}
\ No newline at end of file
+}
+
+
+

Modified: trunk/wsas/java/modules/www/extensions/core/xslt/list_services.xsl
==============================================================================
--- trunk/wsas/java/modules/www/extensions/core/xslt/list_services.xsl	(original)
+++ trunk/wsas/java/modules/www/extensions/core/xslt/list_services.xsl	Wed May 16 04:25:35 2007
@@ -41,7 +41,7 @@
             </div>
 
         </fieldset>
-   	   <!-- <div>
+   	    <div>
    			<label><a alt="Add New">
    				<xsl:attribute name="title">Add new Dataservice</xsl:attribute>
    				<xsl:attribute name="href">#</xsl:attribute>
@@ -49,7 +49,7 @@
    				<xsl:attribute name="onclick">javascript:addNewDataService();return false;</xsl:attribute>
    				<xsl:text>&#160;&#160;&#160;&#160;New Dataservice</xsl:text>
    			</a></label>
-       	</div>-->
+       	</div>
     </xsl:template>
 
     <xsl:template name="serviceUploadTemplate">




More information about the Wsas-java-dev mailing list