You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by hu...@apache.org on 2007/01/02 16:58:45 UTC
svn commit: r491822 [2/2] - in /struts/sandbox/trunk/overdrive/PhoneBook2:
./ projects/ projects/Core/ projects/Core/Commands/ projects/Test/
projects/Test/Commands/ projects/Test/Resources/ projects/Web/
projects/Web/Resources/ projects/src/ projects/...
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>