You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/03/26 18:17:42 UTC
svn commit: r522563 - in
/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main:
java/org/apache/tuscany/samples/das/util/XmlUtil.java
java/org/apache/tuscany/samples/web/CommandServlet.java
webapp/WEB-INF/web.xml webapp/index.jsp webapp/js/ajax.js
Author: lresende
Date: Mon Mar 26 09:17:40 2007
New Revision: 522563
URL: http://svn.apache.org/viewvc?view=rev&rev=522563
Log:
Updating with contents of Amita's patch for Tuscany-800.
Modified:
incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/das/util/XmlUtil.java
incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/web/CommandServlet.java
incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/WEB-INF/web.xml
incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/index.jsp
incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/js/ajax.js
Modified: incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/das/util/XmlUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/das/util/XmlUtil.java?view=diff&rev=522563&r1=522562&r2=522563
==============================================================================
--- incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/das/util/XmlUtil.java (original)
+++ incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/das/util/XmlUtil.java Mon Mar 26 09:17:40 2007
@@ -41,7 +41,13 @@
posEndElement += + xmlEndElement.length();
//return xml contents for the requested element
- return xmlString.substring(posStartElement, posEndElement);
+ String result =
+ "<?xml version='1.0' encoding='ISO-8859-1' ?> \n"+
+ "<root xmlns:das='http://org.apache.tuscany.das.rdb/config.xsd' \n"+
+ "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'> \n"+
+ xmlString.substring(posStartElement, posEndElement)+"\n"+
+ " </root>";
+ return result;
}
}
Modified: incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/web/CommandServlet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/web/CommandServlet.java?view=diff&rev=522563&r1=522562&r2=522563
==============================================================================
--- incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/web/CommandServlet.java (original)
+++ incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/java/org/apache/tuscany/samples/web/CommandServlet.java Mon Mar 26 09:17:40 2007
@@ -26,10 +26,14 @@
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Properties;
+import javax.servlet.http.HttpServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -37,7 +41,6 @@
import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.DAS;
-import org.apache.tuscany.samples.das.Constants;
import org.apache.tuscany.samples.das.util.XmlUtil;
import commonj.sdo.DataGraph;
@@ -48,10 +51,9 @@
* @author lresende
*
*/
-public class CommandServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
- private static final long serialVersionUID = 4153201214773140451L;
-
- /*
+public class CommandServlet extends HttpServlet {
+
+ /*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#HttpServlet()
@@ -59,7 +61,7 @@
public CommandServlet() {
super();
}
-
+
/*
* (non-Java-doc)
*
@@ -80,43 +82,102 @@
doTask(request, response);
}
-
- protected void doTask(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String command = request.getParameter(Constants.COMMAND);
- if (command == null || command.trim().length() == 0) {
- //doError(request, response, "Invalid Command URL -> COMMAND is NULL", null);
+ public void doTask(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String qry = null;
+ String command = null;
+
+ qry = req.getParameter("sqlQuery");
+ command = req.getParameter("DasCommand");
+
+ if ((command == null || command.trim().length() == 0)&&
+ (qry == null || qry.trim().length() == 0)){
+ writeResponse(resp, "Invalid Command URL -> COMMAND is NULL");
}
-
- if (command.equalsIgnoreCase(Constants.COMMAND_EXECUTE_QUERY)) {
- doSQL_Query(request, response);
- } else {
- //doError(request, response, "Invalid Command : '" + command + "'", null);
- }
- }
-
- private InputStream getConfig(String fileName) {
+ if (qry != null) {
+ String status = null;
+ InputStream xslStr = getXSL(qry);
+ try{
+ status = transformDOM(this.getResult(qry, "query"), xslStr);
+ }catch(Exception e){
+ status = e.getMessage();
+ }
+
+ this.writeResponse(resp, status);
+ }
+
+ if (command != null) {
+ String status = null;
+ InputStream xslStr = getXSL(command);
+ try{
+ status = transformDOM(this.getResult(command, "command"), xslStr);
+ }catch(Exception e){
+ status = e.getMessage();
+ }
+
+ this.writeResponse(resp, status);
+ }
+ }
+
+ private InputStream getConfig(String fileName) {
return getClass().getClassLoader().getResourceAsStream(fileName);
}
-
- private String getPostContent(HttpServletRequest request)throws IOException {
- StringBuffer postContents = new StringBuffer(request.getContentLength());
+
+ private InputStream getXSL(String qryKey) throws IOException{
+ Properties xslProps = new Properties();
+ xslProps.load(getClass().getClassLoader().getResourceAsStream("QueryXSLMapping.properties"));
+ String xslFileName = (String)xslProps.get(qryKey);
+ System.out.println("xsl File Name:"+xslFileName);
+
+ return getClass().getClassLoader().getResourceAsStream(xslFileName);
+ }
+
+ public static String transformDOM(String xmlStr, InputStream xslStr) throws javax.xml.transform.TransformerException{
+ javax.xml.transform.Source xmlSource =
+ new javax.xml.transform.stream.StreamSource(new StringReader(xmlStr));
+ javax.xml.transform.Source xsltSource =
+ new javax.xml.transform.stream.StreamSource(xslStr);
+ StringWriter xmlStrWrtr = new StringWriter();
+ javax.xml.transform.Result result =
+ new javax.xml.transform.stream.StreamResult(xmlStrWrtr);
+
+ // create an instance of TransformerFactory
+ javax.xml.transform.TransformerFactory transFact =
+ javax.xml.transform.TransformerFactory.newInstance( );
+
+ javax.xml.transform.Transformer trans =
+ transFact.newTransformer(xsltSource);
+
+ trans.transform(xmlSource, result);
+
+ System.out.println("result:"+xmlStrWrtr.toString());
+ return xmlStrWrtr.toString();
+ }
+
+ public void writeResponse(HttpServletResponse resp, String output) throws IOException {
+ resp.setContentType("text/text");
+ resp.setHeader("Cache-Control", "no-cache");
+ resp.getWriter().write(output);
+ }
+
+ protected String getResult(String qry, String qryOrCommand) throws Exception {
+ System.out.println("Query: " + qry);
- BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
- postContents.append(in.readLine());
-
- return postContents.toString();
+ DAS das = DAS.FACTORY.createDAS(getConfig("DasConfig.xml"));
+ Command read = null;
+ DataObject root = null;
+ DataGraph graph = null;
- }
-
- protected void doSQL_Query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String query = getPostContent(request);
- System.out.println("Query: " + query);
+ if(qryOrCommand.equals("query")){
+ read = das.createCommand(qry);
+ }
+ if(qryOrCommand.equals("command")){
+ read = das.getCommand(qry);
+ }
- DAS das = DAS.FACTORY.createDAS(getConfig("DasConfig.xml"));
- Command read = das.createCommand(query);
- DataObject root = read.executeQuery();
- DataGraph graph = root.getDataGraph();
+ root = read.executeQuery();
+ graph = root.getDataGraph();
OutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
@@ -125,25 +186,10 @@
String xmlSerializationContent = out.toString();
String xmlContent = XmlUtil.getXmlContents(xmlSerializationContent, "<das:DataGraphRoot>", "</das:DataGraphRoot>");
- //int xmlStart = xmlSerializationContent.indexOf("<?xml");
-
- //String xmlContent = xmlSerializationContent.substring(xmlStart);
-
- PrintWriter writer=response.getWriter();
- writer.write(xmlContent);
-
-
- System.out.print(xmlContent);
- List allCompanies = new ArrayList(root.getList("COMPANY"));
- Iterator iCompanies = allCompanies.iterator();
- while( iCompanies.hasNext()){
- DataObject company = (DataObject) iCompanies.next();
- System.out.println(company.getString("NAME"));
- }
-
- }
-
+ System.out.println(xmlContent);
+ return xmlContent;
+ }
// Utility methods
@@ -163,5 +209,5 @@
RequestDispatcher dispatch = getServletContext().getRequestDispatcher(url);
dispatch.forward(request, response);
}
-
-}
\ No newline at end of file
+
+}
Modified: incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/WEB-INF/web.xml?view=diff&rev=522563&r1=522562&r2=522563
==============================================================================
--- incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/WEB-INF/web.xml Mon Mar 26 09:17:40 2007
@@ -17,25 +17,22 @@
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
- <display-name>Tuscany DAS Features</display-name>
-
+<web-app id="WebApp">
+ <display-name>Tuscany DAS Features</display-name>
<welcome-file-list id="WelcomeFileList">
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
-
<!-- Command Servlet -->
<servlet>
<display-name>CommandServlet</display-name>
<servlet-name>CommandServlet</servlet-name>
<servlet-class>org.apache.tuscany.samples.web.CommandServlet</servlet-class>
</servlet>
-
<servlet-mapping>
<servlet-name>CommandServlet</servlet-name>
<url-pattern>/CommandServlet</url-pattern>
</servlet-mapping>
-
+
<!-- JSTL Tag Library Descriptors -->
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
@@ -44,6 +41,5 @@
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
- </taglib>
-
+ </taglib>
</web-app>
Modified: incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/index.jsp?view=diff&rev=522563&r1=522562&r2=522563
==============================================================================
--- incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/index.jsp (original)
+++ incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/index.jsp Mon Mar 26 09:17:40 2007
@@ -21,66 +21,74 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
+
<head>
<title>DAS Features</title>
-
<link href="default.css" rel="stylesheet" type="text/css">
-<script src="js/ajax.js"></script>
-
-<script type="text/javascript">
-function executeQuery(){
- var url = "CommandServlet?COMMAND=EXECUTE_QUERY";
- var query = document.getElementById("sqlQuery").value;
-
- doPost(url, query);
-}
-
+<script type="text/javascript" src="/sample-ajax-das-1.0-incubator-SNAPSHOT/js/ajax.js" >
</script>
</head>
-<body bgcolor="#ffffff">
+<body onload="startup()">
+<%@ page import="java.util.*" %>
+
+<font face="Arial,Helvetica,Verdana" size="3">
<table width="90%" border="0" align="center">
<tr><td><b><i>Tuscany DAS</i></b></td></tr>
</table>
<hr width="90%" size="1">
-
- <table width="90%" border="0" align="center" cellspacing="0" cellpadding="2">
- <tr><td><b>Database SQL Query:</b></td></tr>
- </table>
-
<br>
<br>
- <table width="90%" border="0" align="center" cellspacing="0" cellpadding="2">
- <tr>
- <td width="50%">SQL Query</td>
- </tr>
- <tr>
- <td width="100%">
- <textarea style="width:100%;height:100%" id="sqlQuery">select * from COMPANY</textarea>
- </td>
- </tr>
- <tr>
- <td>
- <a href="javascript:executeQuery()")>Execute</a>
- </td>
- </tr>
- <tr>
- <td> </td>
- </tr>
- <tr>
- <td width="50%">Query Results</td>
- </tr>
- <tr>
- <td>
- <div id="content"></div>
- </td>
- </tr>
+<form name="DasForm" action="/sample-ajax-das-1.0-incubator-SNAPSHOT/CommandServlet">
+<b>Adhoc SQL Query: </b>
+<input type="text" id="sqlQuery" name="sqlQuery" value="select * from company"
+ onclick="this.form.queryButton.disabled=false;
+ this.form.commandButton.disabled=true;">
+</input>
+
+<input type="button" name="queryButton" value="ExecuteQuery"
+ onclick="executeQuery(this.form);
+ msg.innerHTML = 'Retreiving result..please wait' "
+ disabled>
+</input>
+<hr>
+
+<b>DAS Command: </b>
+
+<select id="DasCommand" name="DasCommand"
+ onfocus="this.form.queryButton.disabled=true;
+ this.form.commandButton.disabled=false;">
+<option value="NullCommand"></option>
+<option value="all companies">all companies</option>
+<option value="all companies and departments">all companies and departments</option>
+</select>
+
+<input type="button" name="commandButton" value="ExecuteCommand"
+ onclick="executeCommand(this.form);
+ msg.innerHTML = 'Retreiving result..please wait' "
+ disabled>
+</input>
+
+<table height="300" width="600" border="1">
+<tr>
+<td valign="top" width="40%">
+
+<!-- Font for Status Message -->
+<font face="Arial,Helvetica,Verdana" size="2" color="#FF0000">
+<b id="msg"></b>
+</font>
+<!-- Font End -->
+
+</td>
+</tr>
+</table>
+<hr>
+</form>
- </table>
-
+</font>
</body>
</html>
Modified: incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/js/ajax.js
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/js/ajax.js?view=diff&rev=522563&r1=522562&r2=522563
==============================================================================
--- incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/js/ajax.js (original)
+++ incubator/tuscany/sandbox/lresende/ajaxDAS/src/main/webapp/js/ajax.js Mon Mar 26 09:17:40 2007
@@ -1,79 +1,42 @@
-function doPost(sourceURL, content){
- var xmlhttp = null;
- var doc = null;
-
- xmlhttp = getXmlHttpObject();
-
- if (xmlhttp)
- {
- xmlhttp.open('POST', sourceURL, false);
- xmlhttp.send(content);
-
- if( xmlhttp.responseText )
- alert(xmlhttp.responseText);
- document.getElementById("content").innerHTML=xmlhttp.responseText;
- }
- else
- {
- alert("No XMLHttpRequest object available!");
- }
+var req;
+var url;
+function startup() {
+ document.forms[0].sqlQuery.focus = true;
}
-function getPage(url) {
- xmlHttp=getXmlHttpObject()
- if (xmlHttp==null) {
- alert ("Browser does not support HTTP Request")
- return
- }
- xmlHttp.onreadystatechange=stateChanged
- xmlHttp.open("GET",url)
- xmlHttp.send(null)
+function init() {
+ if (window.XMLHttpRequest) {
+ req = new XMLHttpRequest();
+ } else if (window.ActiveXObject) {
+ req = new ActiveXObject("Microsoft.XMLHTTP");
+ }
+ var url = "/sample-ajax-das-1.0-incubator-SNAPSHOT/CommandServlet";
+ req.open("POST", url, true);
+ req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
-function stateChanged() {
- if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
- //document.getElementById("content").innerHTML=xmlHttp.responseText
- document.getElementById("content").innerHTML=transformXML(xmlHttp.responseText, "sdoDataGraph.xsl");
- }
-}
-
-function getXmlHttpObject() {
- var objXMLHttp=null
- if (window.XMLHttpRequest){
- objXMLHttp=new XMLHttpRequest()
- }
- else if (window.ActiveXObject){
- objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
- }
- return objXMLHttp
+function executeQuery(formObj) {
+ init();
+ req.onreadystatechange = resultHandler;
+ req.send("sqlQuery=" + formObj.sqlQuery.value);
}
-function transformXML(source, styleSource){
+function executeCommand(formObj) {
+ init();
+ req.onreadystatechange = resultHandler;
+ req.send("DasCommand="+ formObj.DasCommand.value);
+}
- if( window.XSLTProcessor ) {
- var oXSLTProcessor = new XSLTProcessor();
- oXSLTProcessor.importStylesheet( w.goXsl.xmlHttp.responseXML );
- var oTransformed = oXSLT.transformToFragment(oHttpReq.responseXML,w.document);
- oListDiv.appendChild( oTransformed );
- } else {
- oListDiv.innerHTML = oHttpReq.responseXML.transformNode(w.goXsl.xmlHttp.responseXML);
+function resultHandler() {
+ if (req.readystate == 4) {
+ if (req.status == 200) {
+ var message = req.responseText;
+
+ //alert(message);
+ msg.innerHTML = message
+ }
}
-
-
-
-// Load XML
-var xml = new ActiveXObject("Microsoft.XMLDOM")
-xml.async = false
-xml.load("cdcatalog.xml")
-
-// Load XSL
-var xsl = new ActiveXObject("Microsoft.XMLDOM")
-xsl.async = false
-xsl.load("cdcatalog.xsl")
-
-// Transform
-document.write(xml.transformNode(xsl))
}
-
\ No newline at end of file
+
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org