Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Default.aspx URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Default.aspx?view=diff&rev=491822&r1=491821&r2=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Default.aspx (original) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Default.aspx Tue Jan 2 07:58:43 2007 @@ -9,7 +9,20 @@ <body>
<form id="form1" runat="server"> <div> - Howdy! + <ul> + <li> + <a href="HelloWorld.html">HelloWorld.html</a> - Simple Jayrock example + </li> + <li> + <a href="Demo.ashx">Demo.ashx</a> - Jayrock JSON-RPC DemoService, with automatic service discovery and interactive test page. It doesn't get any easier than this! + </li> + <li> + <a href="DemoDojo.html">DemoDojo.html</a> - Simple example of integrating Dojo and Jayrock + </li> + <li> + <a href="PhoneBook.html">PhoneBook.html</a> - First blush example of calling Nexus commands from JSON-RPC service + </li> + </ul> </div> </form> </body> Modified: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/DemoDojo.html URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/DemoDojo.html?view=diff&rev=491822&r1=491821&r2=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/DemoDojo.html (original) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/DemoDojo.html Tue Jan 2 07:58:43 2007 @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> - <title>DojoJayrocksDemo</title> + <title>Dojo/Jayrocks Demo</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name=ProgId content=VisualStudio.HTML> <meta name=Originator content="Microsoft Visual Studio .NET 7.1"> @@ -13,6 +13,7 @@ dojo.require("dojo.html.*"); dojo.require("dojo.json"); + // Invokes service method function dojoChannel(call) { var bindArgs = { @@ -28,10 +29,11 @@ return req; } - function handleResponse(type, data, evt) + // Formats output into a control + function string_array_element(type, data, evt) { var arr = data.result; - var theDiv = dojo.byId('theDiv'); + var theDiv = dojo.byId('string_array'); var select = document.createElement('select'); for(var i=0; i < arr.length; i++) { @@ -40,15 +42,21 @@ theDiv.appendChild(select); } - function getArray() + // Wraps call to RPC method + function getStringArray() { - DemoService.rpc.getStringArray(handleResponse).call(dojoChannel); + DemoService.rpc.getStringArray(string_array_element).call(dojoChannel); } - dojo.event.connect(window, "onload", getArray); + // Obtains output on page load + dojo.event.connect(window, "onload", getStringArray); </script> </head> <body> - <div id="theDiv"></div> + + <h2>getStringArray as Select control</h2> + <div id="string_array"></div> + <hr /> + </body> </html> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.ashx Tue Jan 2 07:58:43 2007 @@ -0,0 +1,33 @@ +<%@ WebHandler Class="JayrockWeb.PhoneBook" Language="C#" %> + +using System; +using System.Collections; +using Agility.Extras.Spring; +using Jayrock.JsonRpc; +using Jayrock.JsonRpc.Web; +using Nexus.Core; +using Spring.Context; + +namespace JayrockWeb +{ + public class PhoneBook : JsonRpcHandler + { + protected IRequestCatalog catalog; + + [JsonRpcMethod("last_name_list", Idempotent = true)] + [JsonRpcHelp("Returns Lastn Name List as an array.")] + public string[] last_name_list() + { + IApplicationContext factory = Objects.Factory(); + catalog = factory.GetObject("Catalog") as IRequestCatalog; + RequestContext context = (RequestContext) catalog.ExecuteRequest("last_name_list"); + KeyValueList list = context.Outcome as KeyValueList; + ArrayList names = new ArrayList(list.Count); + foreach (KeyValue k in list) + { + names.Add(k.Value); + } + return (string[]) names.ToArray(typeof (String)); + } + } +} \ No newline at end of file Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/PhoneBook.html Tue Jan 2 07:58:43 2007 @@ -0,0 +1,54 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> + <head> + <title>PhoneBook</title> + <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> + <meta name=ProgId content=VisualStudio.HTML> + <meta name=Originator content="Microsoft Visual Studio .NET 7.1"> + <script language="javascript" src="PhoneBook.ashx?proxy&v=2"></script> + <script language="javascript" src="js/dojo/dojo.js"></script> + <script language="javascript"> + dojo.require("dojo.io.*"); + dojo.require("dojo.event.*"); + dojo.require("dojo.html.*"); + dojo.require("dojo.json"); + + function dojoChannel(call) + { + var bindArgs = { + url: call.url+'?rpc', + error: function(type, data, evt){alert("error");}, + method: "POST", + mimetype: "text/json", + handle: call.callback, + postContent: dojo.json.serialize(call.request) + }; + var req = dojo.io.bind(bindArgs); + dojo.event + return req; + } + + function last_name_list_element(type, data, evt) + { + var arr = data.result; + var theDiv = dojo.byId('last_name_list'); + var select = document.createElement('select'); + for(var i=0; i < arr.length; i++) + { + select.options[i] = new Option(arr[i], arr[i]); + } + theDiv.appendChild(select); + } + + function last_name_list() + { + PhoneBook.rpc.last_name_list(last_name_list_element).call(dojoChannel); + } + + dojo.event.connect(window, "onload", last_name_list); + </script> + </head> + <body> + <div id="last_name_list"></div> + </body> +</html> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppBase.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8" ?> +<objects xmlns="http://www.springframework.net" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd"> + + <!-- Base element (super parent)--> + + <object id="BaseMapper" abstract="true"> + <property name="Mapper"><ref object="Mapper"/></property> + </object> + + <!-- Base class parents --> + + <object id="BaseChain" type="Nexus.Core.RequestChain, Nexus.Core"/> + + <object id="BaseCount" type="PhoneBook.Core.Commands.BaseCount, PhoneBook.Core" parent="BaseMapper"/> + + <object id="BaseEntry" type="PhoneBook.Core.Commands.BaseEntry, PhoneBook.Core" parent="BaseMapper"/> + + <object id="BaseFilterList" type="PhoneBook.Core.Commands.BaseFilterList, PhoneBook.Core" parent="BaseMapper"/> + + <object id="BaseFieldContext" type="Nexus.Extras.Spring.FieldContext"> + <property name="MessageSource"> + <ref object="messageSource" /> + </property> + </object> + + <object id="BaseKeyValueProcessor" type="Nexus.Core.Validators.KeyValueProcessor"/> + + <object id="BaseList" type="PhoneBook.Core.Commands.BaseList, PhoneBook.Core" parent="BaseMapper"/> + + <object id="BaseSave" type="PhoneBook.Core.Commands.BaseSave, PhoneBook.Core" parent="BaseMapper"/> + + <object id="EntryInitial" type="PhoneBook.Core.Commands.EntryInitial, PhoneBook.Core" parent="BaseMapper"/> + +</objects> \ No newline at end of file Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppConfig.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppConfig.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppConfig.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppConfig.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8" ?> +<objects xmlns="http://www.springframework.net" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd"> + + <!-- Message Source --> + + <object id="messageSource" type="Spring.Context.Support.ResourceSetMessageSource, Spring.Core"> + <property name="ResourceManagers"> + <list> + <value>PhoneBook.Core.Messages, PhoneBook.Core</value> + <value>Nexus.Web.Messages, Nexus.Web</value> + </list> + </property> + </object> + + + <!-- Request Processors --> + + <object id="convert_input" type="Nexus.Core.Validators.ConvertInput"> + <property name="ID"><value>convert_input</value></property> + </object> + + <object id="format_output" type="Nexus.Core.Validators.FormatOutput"> + <property name="ID"><value>format_output</value></property> + </object> + + <object id="clear_context" type="Nexus.Core.Validators.ClearContext"> + <property name="ID"><value>clear_context</value></property> + </object> + + <!-- pre-op --> + + <object id="pre-op" parent="BaseChain"> + <property name="AddCommands"> + <list> + <ref object="convert_input"/> + </list> + </property> + </object> + + <!-- post-op --> + + <object id="post-op" parent="BaseChain"> + <property name="AddCommands"> + <list> + <ref object="format_output"/> + </list> + </property> + </object> + + <!-- Catalog --> + + <object id="Catalog" type="Nexus.Extras.Spring.Catalog"> + <property name="FieldTable"><ref object="FieldTable"/></property> + <property name="PreOp"><ref object="pre-op"/></property> + <property name="PostOp"><ref object="post-op"/></property> + <property name="ViewHelper"><object type="Nexus.Web.WebHelper, Nexus.Web" singleton="false"/></property> + </object> + +<!-- iBATIS Mapper --> + + <object id="Mapper" type="IBatisNet.DataMapper.Mapper, IBatisNet.DataMapper" + factory-method="Instance"/> + +</objects> \ No newline at end of file Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/AppFields.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="utf-8" ?> +<objects xmlns="http://www.springframework.net" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd"> + + <!-- FieldTable --> + + <object id="FieldTable" type="Nexus.Core.Tables.FieldTable"> + <property name="AddFieldContexts"> + <list> + <ref object="last_name"/> + <ref object="first_name"/> + <ref object="extension"/> + <ref object="user_name"/> + <ref object="hired"/> + <ref object="hours"/> + <ref object="_entry_list"/> + <ref object="_entry_list_count"/> + <ref object="_extension_list"/> + <ref object="_hired_list"/> + </list> + </property> + <property name="AddProcessors"> + <list> + <ref object="DateTimeProcessor"/> + <ref object="TelephoneProcessor"/> + <ref object="EntryListProcessor"/> + <ref object="ExtensionListProcessor"/> + <ref object="HiredListProcessor"/> + </list> + </property> + </object> + + <object id="last_name" parent="BaseFieldContext"> + <property name="ID"><value>last_name</value></property> + </object> + + <object id="first_name" parent="BaseFieldContext"> + <property name="ID"><value>first_name</value></property> + </object> + + <object id="user_name" parent="BaseFieldContext"> + <property name="ID"><value>user_name</value></property> + </object> + + <object id="extension" parent="BaseFieldContext"> + <property name="ID"><value>extension</value></property> + <property name="Processor"><ref object="TelephoneProcessor"/></property> + </object> + + <object id="hired" parent="BaseFieldContext"> + <property name="ID"><value>hired</value></property> + <property name="Processor"><ref object="DateTimeProcessor"/></property> + </object> + + <object id="hours" parent="BaseFieldContext"> + <property name="ID"><value>hours</value></property> + </object> + + <object id="editor" parent="BaseFieldContext"> + <property name="ID"><value>editor</value></property> + </object> + + <!-- property name="ControlTypeName"><value>CheckBox</value></property --> + + <!-- We need to "hash" the name with "_" to avoid conflict with the filter Command --> + <object id="_entry_list" parent="BaseFieldContext"> + <property name="ID"><value>entry_list</value></property> + <property name="Processor"><ref object="EntryListProcessor"/></property> + </object> + + <object id="_entry_list_count" parent="BaseFieldContext"> + <property name="ID"><value>entry_list_count</value></property> + <property name="Processor"><ref object="CollectionProcessor"/></property> + </object> + + <object id="_extension_list" parent="BaseFieldContext"> + <property name="ID"><value>extension_list</value></property> + <property name="Processor"><ref object="ExtensionListProcessor"/></property> + </object> + + <object id="_hired_list" parent="BaseFieldContext"> + <property name="ID"><value>hired_list</value></property> + <property name="Processor"><ref object="HiredListProcessor"/></property> + </object> + + <object id="CollectionProcessor" type="Nexus.Core.Validators.CollectionProcessor, Nexus.Core"> + <property name="ID"><value>EntryCountProcessor</value></property> + </object> + + <!-- "d" is .NET for "short date" --> + <object id="DateTimeProcessor" type="Nexus.Core.Validators.DateTimeProcessor"> + <property name="ID"><value>DateTimeProcessor</value></property> + <property name="DataFormat"><value>d</value></property> + </object> + + <object id="TelephoneProcessor" type="PhoneBook.Core.TelephoneProcessor"> + <property name="ID"><value>TelephoneProcessor</value></property> + </object> + + <object id="EntryListProcessor" type="PhoneBook.Core.AppEntryListProcessor"> + <property name="ID"><value>EntryListProcessor</value></property> + </object> + + <object id="ExtensionListProcessor" parent="BaseKeyValueProcessor"> + <property name="ID"><value>ExtensionListProcessor</value></property> + <property name="Key"><value>extension</value></property> + </object> + + <object id="HiredListProcessor" parent="BaseKeyValueProcessor"> + <property name="ID"><value>HiredListProcessor</value></property> + <property name="Key"><value>hired</value></property> + </object> + +</objects> \ No newline at end of file Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Catalog.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="utf-8" ?> +<objects xmlns="http://www.springframework.net" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd"> + + <!-- entry commands --> + + <object id="entry_list_rows" parent="BaseList"> + <property name="ID"><value>entry_list</value></property> + <property name="QueryID"><value>entry</value></property> + <property name="RelatedIDs"> + <list> + <value>entry_list</value> + <value>entry_key</value> + <value>last_name</value> + <value>first_name</value> + <value>extension</value> + <value>user_name</value> + <value>hired</value> + <value>hours</value> + <value>editor</value> + <value>initial</value> + <value>item_count</value> + <value>item_offset</value> + <value>item_limit</value> + </list> + </property> + </object> + + <object id="entry_list_count" parent="BaseCount"> + <property name="ID"><value>entry_list_count</value></property> + <property name="QueryID"><value>entry_count</value></property> + <property name="RelatedIDs"> + <list> + <value>entry_list</value> + <value>entry_key</value> + <value>last_name</value> + <value>first_name</value> + <value>extension</value> + <value>user_name</value> + <value>hired</value> + <value>hours</value> + <value>editor</value> + <value>initial</value> + <value>item_count</value> + <value>item_offset</value> + <value>item_limit</value> + </list> + </property> + </object> + + <object id="entry" parent="BaseEntry"> + <property name="ID"><value>entry</value></property> + <property name="RelatedIDs"> + <list> + <value>entry</value> + <value>entry_key</value> + <value>last_name</value> + <value>first_name</value> + <value>extension</value> + <value>user_name</value> + <value>hired</value> + <value>hours</value> + <value>editor</value> + </list> + </property> + </object> + + + <!-- filter list commands --> + + <object id="last_name_list" parent="BaseFilterList"> + <property name="ID"><value>last_name_list</value></property> + <property name="RelatedIDs"><list><value>last_name_list</value></list></property> + </object> + + <object id="first_name_list" parent="BaseFilterList"> + <property name="ID"><value>first_name_list</value></property> + <property name="RelatedIDs"><list><value>first_name_list</value></list></property> + </object> + + <object id="extension_list" parent="BaseFilterList"> + <property name="ID"><value>extension_list</value></property> + <property name="RelatedIDs"><list><value>extension_list</value></list></property> + </object> + + <object id="user_name_list" parent="BaseFilterList"> + <property name="ID"><value>user_name_list</value></property> + <property name="RelatedIDs"><list><value>user_name_list</value></list></property> + </object> + + <object id="hired_list" parent="BaseFilterList"> + <property name="ID"><value>hired_list</value></property> + <property name="RelatedIDs"><list><value>hired_list</value></list></property> + </object> + + <object id="hours_list" parent="BaseFilterList"> + <property name="ID"><value>hours_list</value></property> + <property name="RelatedIDs"><list><value>hours_list</value></list></property> + </object> + + <object id="entry_initial" parent="EntryInitial"> + <property name="ID"> + <value>entry_initial</value> + </property> + <property name="RelatedIDs"> + <list> + <value>entry_initial</value> + </list> + </property> + </object> + + <!-- chains --> + + <object id="entry_list" parent="BaseChain"> + <property name="ID"> + <value>entry_list</value> + </property> + <property name="AddCommands"> + <list> + <ref object="entry_list_count" /> + <ref object="entry_list_rows" /> + </list> + </property> + </object> + + <object id="entry_find" parent="BaseChain"> + <property name="ID"> + <value>entry_find</value> + </property> + <property name="AddCommands"> + <list> + <ref object="last_name_list" /> + <ref object="first_name_list" /> + <ref object="extension_list" /> + <ref object="user_name_list" /> + <ref object="hired_list" /> + <ref object="hours_list" /> + </list> + </property> + </object> + + <object id="entry_save" parent="BaseSave"> + <property name="ID"> + <value>entry_save</value> + </property> + <property name="KeyID"> + <value>entry_key</value> + </property> + <property name="InsertID"> + <value>entry_insert</value> + </property> + <property name="UpdateID"> + <value>entry_update</value> + </property> + <property name="RelatedIDs"> + <list> + <value>entry_key</value> + </list> + </property> + <property name="RequiredIDs"> + <list> + <value>first_name</value> + <value>last_name</value> + <value>extension</value> + <value>user_name</value> + <value>hours</value> + <value>hired</value> + <value>editor</value> + </list> + </property> + </object> + +</objects> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/Resources/Queries.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<sqlMap + namespace="phonebook" + xmlns="http://ibatis.apache.org/mapping" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > + +  <parameterMaps> + +  <parameterMap id="entry_save_param"> + <parameter property="last_name"/> + <parameter property="first_name"/> + <parameter property="extension"/> + <parameter property="user_name"/> + <parameter property="hired"/> + <parameter property="hours"/> + <parameter property="editor"/> +  <parameter property="entry_key"/>  +    </parameterMap>   + + </parameterMaps> + + <statements> + + <select id="last_name_list" resultClass="string"> + SELECT DISTINCT + last_name + FROM entry + ORDER BY last_name + </select> + + <select id="first_name_list" resultClass="string"> + SELECT DISTINCT + first_name + FROM entry + ORDER BY first_name + </select> + + <select id="extension_list" resultClass="string"> + SELECT DISTINCT + extension + FROM entry + ORDER BY extension + </select> + + <select id="user_name_list" resultClass="string"> + SELECT DISTINCT + user_name + FROM entry + ORDER BY user_name + </select> + + <select id="hired_list" resultClass="date"> + SELECT DISTINCT + hired + FROM entry + ORDER BY hired + </select> + + <select id="hours_list" resultClass="string"> + SELECT DISTINCT + hours + FROM entry + ORDER BY hours + </select> + + <select id="entry" paramClass="Hashtable" resultClass="Hashtable"> + SELECT + last_name, + first_name, + extension, + user_name, + hired, + hours, + editor, + pk_entry AS entry_key + FROM entry + <dynamic prepend="WHERE"> + <isNotNull property="initial" prepend="AND"> + last_name LIKE #initial# + </isNotNull> + <isNotNull property="last_name" prepend="AND"> + last_name=#last_name# + </isNotNull> + <isNotNull property="first_name" prepend="AND"> + first_name=#first_name# + </isNotNull> + <isNotNull property="extension" prepend="AND"> + extension=#extension# + </isNotNull> + <isNotNull property="user_name" prepend="AND"> + user_name=#user_name# + </isNotNull> + <isNotNull property="hired" prepend="AND"> + hired=#hired# + </isNotNull> + <isNotNull property="hours" prepend="AND"> + hours=#hours# + </isNotNull> + <isNotNull property="editor" prepend="AND"> + hours=#editor# + </isNotNull> + <isNotNull property="entry_key" prepend="AND"> + pk_entry=#entry_key# + </isNotNull> + </dynamic> + <dynamic> + <isNotNull property="item_limit"> + LIMIT #item_limit# OFFSET #item_offset# + </isNotNull> + </dynamic>; + </select> + + <select id="entry_count" paramClass="Hashtable" resultClass="string"> + SELECT COUNT(*) FROM entry + <dynamic prepend="WHERE"> + <isNotNull property="initial" prepend="AND"> + last_name LIKE #initial# + </isNotNull> + <isNotNull property="last_name" prepend="AND"> + last_name=#last_name# + </isNotNull> + <isNotNull property="first_name" prepend="AND"> + first_name=#first_name# + </isNotNull> + <isNotNull property="extension" prepend="AND"> + extension=#extension# + </isNotNull> + <isNotNull property="user_name" prepend="AND"> + user_name=#user_name# + </isNotNull> + <isNotNull property="hired" prepend="AND"> + hired=#hired# + </isNotNull> + <isNotNull property="hours" prepend="AND"> + hours=#hours# + </isNotNull> + <isNotNull property="editor" prepend="AND"> + hours=#editor# + </isNotNull> + <isNotNull property="entry_key" prepend="AND"> + pk_entry=#entry_key# + </isNotNull> + </dynamic> + </select> + + <select id="entry_initial" paramClass="string" resultClass="string"> + SELECT COUNT(*) + FROM entry + WHERE last_name LIKE #value# + </select> + + <insert id="entry_insert" parameterMap="entry_save_param"> +   INSERT INTO entry (   + last_name, + first_name, + extension, + user_name, + hired, + hours, + editor, + pk_entry + ) + VALUES (?,?,?,?, ?,?,?,?) + </insert> + + <update id="entry_update" parameterMap="entry_save_param"> + UPDATE entry SET + last_name=?, + first_name=?, + extension=?, + user_name=?, + hired=?, + hours=?, + editor=? + WHERE + pk_entry=? + </update> + + </statements> +</sqlMap> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/providers.config URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/providers.config?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/providers.config (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/providers.config Tue Jan 2 07:58:43 2007 @@ -0,0 +1,307 @@ +<?xml version="1.0" encoding="utf-8"?> +<providers +xmlns="http://ibatis.apache.org/providers" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<clear/> +<provider + name="sqlServer1.0" + description="Microsoft SQL Server, provider V1.0.3300.0 in framework .NET V1.0" + enabled="false" + assemblyName="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection" + commandClass="System.Data.SqlClient.SqlCommand" + parameterClass="System.Data.SqlClient.SqlParameter" + parameterDbTypeClass="System.Data.SqlDbType" + parameterDbTypeProperty="SqlDbType" + dataAdapterClass="System.Data.SqlClient.SqlDataAdapter" + commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="@" + allowMARS="false" + /> +<provider + name="sqlServer1.1" + description="Microsoft SQL Server, provider V1.0.5000.0 in framework .NET V1.1" + enabled="true" + default="true" + assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.SqlClient.SqlConnection" + commandClass="System.Data.SqlClient.SqlCommand" + parameterClass="System.Data.SqlClient.SqlParameter" + parameterDbTypeClass="System.Data.SqlDbType" + parameterDbTypeProperty="SqlDbType" + dataAdapterClass="System.Data.SqlClient.SqlDataAdapter" + commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="@" + allowMARS="false" + /> +<provider + name="sqlServer2.0" + enabled="false" + description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V2.0" + assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.SqlClient.SqlConnection" + commandClass="System.Data.SqlClient.SqlCommand" + parameterClass="System.Data.SqlClient.SqlParameter" + parameterDbTypeClass="System.Data.SqlDbType" + parameterDbTypeProperty="SqlDbType" + dataAdapterClass="System.Data.SqlClient.SqlDataAdapter" + commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder" + usePositionalParameters = "false" + useParameterPrefixInSql = "true" + useParameterPrefixInParameter = "true" + parameterPrefix="@" + allowMARS="false" + /> +<provider name="OleDb1.1" + description="OleDb, provider V1.0.5000.0 in framework .NET V1.1" + enabled="true" + assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.OleDb.OleDbConnection" + commandClass="System.Data.OleDb.OleDbCommand" + parameterClass="System.Data.OleDb.OleDbParameter" + parameterDbTypeClass="System.Data.OleDb.OleDbType" + parameterDbTypeProperty="OleDbType" + dataAdapterClass="System.Data.OleDb.OleDbDataAdapter" + commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="false" + useParameterPrefixInParameter="false" + parameterPrefix="" + allowMARS="false" + /> + <provider name="OleDb2.0" + description="OleDb, provider V2.0.0.0 in framework .NET V2" + enabled="false" + assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.OleDb.OleDbConnection" + commandClass="System.Data.OleDb.OleDbCommand" + parameterClass="System.Data.OleDb.OleDbParameter" + parameterDbTypeClass="System.Data.OleDb.OleDbType" + parameterDbTypeProperty="OleDbType" + dataAdapterClass="System.Data.OleDb.OleDbDataAdapter" + commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="false" + useParameterPrefixInParameter="false" + parameterPrefix="" + allowMARS="false" + /> + <provider + name="Odbc1.1" + description="Odbc, provider V1.0.5000.0 in framework .NET V1.1" + enabled="true" + assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.Odbc.OdbcConnection" + commandClass="System.Data.Odbc.OdbcCommand" + parameterClass="System.Data.Odbc.OdbcParameter" + parameterDbTypeClass="System.Data.Odbc.OdbcType" + parameterDbTypeProperty="OdbcType" + dataAdapterClass="System.Data.Odbc.OdbcDataAdapter" + commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="false" + useParameterPrefixInParameter="false" + parameterPrefix="@" + allowMARS="false" + /> + <provider + name="Odbc2.0" + description="Odbc, provider V2.0.0.0 in framework .NET V2" + enabled="false" + assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + connectionClass="System.Data.Odbc.OdbcConnection" + commandClass="System.Data.Odbc.OdbcCommand" + parameterClass="System.Data.Odbc.OdbcParameter" + parameterDbTypeClass="System.Data.Odbc.OdbcType" + parameterDbTypeProperty="OdbcType" + dataAdapterClass="System.Data.Odbc.OdbcDataAdapter" + commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="false" + useParameterPrefixInParameter="false" + parameterPrefix="@" + allowMARS="false" + /> + <provider + name="oracle9.2" + description="Oracle, Oracle provider V9.2.0.401" + enabled="false" + assemblyName="Oracle.DataAccess, Version=9.2.0.401, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection" + commandClass="Oracle.DataAccess.Client.OracleCommand" + parameterClass="Oracle.DataAccess.Client.OracleParameter" + parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType" + parameterDbTypeProperty="OracleDbType" + dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter" + commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="false" + parameterPrefix=":" + useDeriveParameters="false" + allowMARS="false" + /> + <provider + name="oracle10.1" + description="Oracle, oracle provider V10.1.0.301" + enabled="false" + assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection" + commandClass="Oracle.DataAccess.Client.OracleCommand" + parameterClass="Oracle.DataAccess.Client.OracleParameter" + parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType" + parameterDbTypeProperty="OracleDbType" + dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter" + commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix=":" + useDeriveParameters="false" + allowMARS="false" + /> + <provider + name="oracleClient1.0" + description="Oracle, Microsoft provider V1.0.5000.0" + enabled="false" + assemblyName="System.Data.OracleClient, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.OracleClient.OracleConnection" + commandClass="System.Data.OracleClient.OracleCommand" + parameterClass="System.Data.OracleClient.OracleParameter" + parameterDbTypeClass="System.Data.OracleClient.OracleType" + parameterDbTypeProperty="OracleType" + dataAdapterClass="System.Data.OracleClient.OracleDataAdapter" + commandBuilderClass="System.Data.OracleClient.OracleCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="false" + parameterPrefix=":" + allowMARS="false" + /> + <provider + name="ByteFx" + description="MySQL, ByteFx provider V0.7.6.15073" + enabled="false" + assemblyName="ByteFX.MySqlClient, Version=0.7.6.15073, Culture=neutral, PublicKeyToken=f2fef6fed1732fc1" connectionClass="ByteFX.Data.MySqlClient.MySqlConnection" + commandClass="ByteFX.Data.MySqlClient.MySqlCommand" + parameterClass="ByteFX.Data.MySqlClient.MySqlParameter" + parameterDbTypeClass="ByteFX.Data.MySqlClient.MySqlDbType" + parameterDbTypeProperty="MySqlDbType" + dataAdapterClass="ByteFX.Data.MySqlClient.MySqlDataAdapter" + commandBuilderClass="ByteFX.Data.MySqlClient.MySqlCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="@" + allowMARS="false" + /> + <provider + name="MySql" + description="MySQL, MySQL provider 1.0.7.30072" + enabled="true" + assemblyName="MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection" + commandClass="MySql.Data.MySqlClient.MySqlCommand" + parameterClass="MySql.Data.MySqlClient.MySqlParameter" + parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType" + parameterDbTypeProperty="MySqlDbType" + dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter" + commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="?" + allowMARS="false" + /> + <provider name="SQLite3" + description="SQLite, SQLite.NET provider V0.21.1869.3794" + enabled="false" + assemblyName="SQLite.NET, Version=0.21.1869.3794, Culture=neutral, PublicKeyToken=c273bd375e695f9c" + connectionClass="Finisar.SQLite.SQLiteConnection" + commandClass="Finisar.SQLite.SQLiteCommand" + parameterClass="Finisar.SQLite.SQLiteParameter" + parameterDbTypeClass="System.Data.DbType, System.Data" + parameterDbTypeProperty="DbType" + dataAdapterClass="Finisar.SQLite.SQLiteDataAdapter" + commandBuilderClass="Finisar.SQLite.SQLiteCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="@" + setDbParameterPrecision="false" + setDbParameterScale="false" + allowMARS="false" + /> + <provider + name="Firebird1.7" + description="Firebird, Firebird SQL .NET provider V1.7.0.33200" + enabled="false" + assemblyName="FirebirdSql.Data.Firebird, Version=1.7.0.33200, Culture=neutral, PublicKeyToken=fa843d180294369d" connectionClass="FirebirdSql.Data.Firebird.FbConnection" + commandClass="FirebirdSql.Data.Firebird.FbCommand" + parameterClass="FirebirdSql.Data.Firebird.FbParameter" + parameterDbTypeClass="FirebirdSql.Data.Firebird.FbDbType" + parameterDbTypeProperty="FbDbType" + dataAdapterClass="FirebirdSql.Data.Firebird.FbDataAdapter" + commandBuilderClass="FirebirdSql.Data.Firebird.FbCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix="@" + allowMARS="false" + /> + <provider + name="PostgreSql0.99.1.0" + description="PostgreSql, Npgsql provider V0.99.1.0" + enabled="false" + assemblyName="Npgsql, Version=0.99.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" + connectionClass="Npgsql.NpgsqlConnection" + commandClass="Npgsql.NpgsqlCommand" + parameterClass="Npgsql.NpgsqlParameter" + parameterDbTypeClass="NpgsqlTypes.NpgsqlDbType" + parameterDbTypeProperty="NpgsqlDbType" + dataAdapterClass="Npgsql.NpgsqlDataAdapter" + commandBuilderClass="Npgsql.NpgsqlCommandBuilder" + usePositionalParameters="false" + useParameterPrefixInSql="true" + useParameterPrefixInParameter="true" + parameterPrefix=":" + allowMARS="true" + /> + <provider + name="iDb2.10" + description="IBM DB2 Provider, V 10.0" + enabled="false" + assemblyName="IBM.Data.DB2.iSeries, Version=10.0.0.0,Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26, Custom=null" connectionClass="IBM.Data.DB2.iSeries.iDB2Connection" + commandClass="IBM.Data.DB2.iSeries.iDB2Command" + parameterClass="IBM.Data.DB2.iSeries.iDB2Parameter" + parameterDbTypeClass="IBM.Data.DB2.iSeries.iDB2DbType" + parameterDbTypeProperty="iDB2DbType" + dataAdapterClass="IBM.Data.DB2.iSeries.iDB2DataAdapter" + commandBuilderClass="IBM.Data.DB2.iSeries.iDB2CommandBuilder" + usePositionalParameters="true" + useParameterPrefixInSql="false" + useParameterPrefixInParameter="false" + parameterPrefix="" + allowMARS="false" + /> + <provider + name="Informix" + description="Informix NET Provider, 2.81.0.0" + enabled="false" + assemblyName="IBM.Data.Informix, Version=2.81.0.0, Culture=neutral, PublicKeyToken=7c307b91aa13d208" + connectionClass="IBM.Data.Informix.IfxConnection" + commandClass="IBM.Data.Informix.IfxCommand" + parameterClass="IBM.Data.Informix.IfxParameter" + parameterDbTypeClass="IBM.Data.Informix.IfxType" + parameterDbTypeProperty="IfxType" + dataAdapterClass="IBM.Data.Informix.IfxDataAdapter" + commandBuilderClass="IBM.Data.Informix.IfxCommandBuilder" + usePositionalParameters = "true" + useParameterPrefixInSql = "false" + useParameterPrefixInParameter = "false" + useDeriveParameters="false" + allowMARS="false" + /> +</providers> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config Tue Jan 2 07:58:43 2007 @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" > + + <properties resource="sqlmap.config.xml"/> + + <settings> + <setting useStatementNamespaces="false"/> + <setting cacheModelsEnabled="true"/> + </settings> + + <database> + <provider name="${provider}"/> + <dataSource name="default" connectionString="${development}"/> + </database> + + <sqlMaps> + <sqlMap resource="${root}Resources/Queries.xml"/> + </sqlMaps> + +</sqlMapConfig> Added: struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config.xml?view=auto&rev=491822 ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config.xml (added) +++ struts/sandbox/trunk/overdrive/PhoneBook2/projects/Web/sqlmap.config.xml Tue Jan 2 07:58:43 2007 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" ?> +<settings> + <add key="root" value="./" /> + <add key="provider" value="MySql" /> + <add key="development" value="Host=localhost;Database=phonebook;Username=phonebookApp;Password=p1nH34d" /> + <add key="production" value="Host=zippy;Database=phonebook;Username=phonebookApp;Password=p1nH34d" /> +</settings>