OK, I've finished the tests on the methods I created for the howto and
everything seems to be working fine. As Luciano suggested there is no need
to make a jsp for the howto, so I think it's time to start writing the
howto, right Willian? Below the .java, .xml and the tables I've created for
this webapp.

ShoppingCart.java

package org.apache.tuscany.samples.web;

import java.io.IOException;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.DAS;

import commonj.sdo.DataObject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class CommandServlet extends HttpServlet {

   private static final long serialVersionUID = 1922159305255311505L;

   public CommandServlet() {}

   @Override
   protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
       Statement s = null;
       CommandServlet shoppingCart = new CommandServlet();

       try {
           s = getConnection().createStatement();
           s.executeUpdate("delete from cart_item;");
           s.executeUpdate("delete from item;");
           s.executeUpdate("delete from cart;");
           s.execute("commit;");
           s.close();

       } catch (Exception e) {
           e.printStackTrace();
       }

       shoppingCart.newCart();
       shoppingCart.newItem("motherboard", 5);
       shoppingCart.newItem("mouse", 90);
       shoppingCart.newItem("processor", 23);
       shoppingCart.newItem("keyboard", 68);

       Vector allCarts = new Vector(getCarts());
       DataObject cart = (DataObject) allCarts.firstElement();
       int cartId = cart.getInt("ID");

       ArrayList allItems = new ArrayList(getItems());

       int c = 0;
       int itemId = 0;
       for (Iterator it = allItems.iterator(); it.hasNext();) {
           c++;
           DataObject item = (DataObject) it.next();
           itemId = item.getInt("ID");
           addCartItem(cartId, itemId, c);

       }

       removeCartItem(cartId, itemId);
       confirmOrder(cartId);

       shoppingCart.print();

   }

   public void print() {
       ArrayList carts = new ArrayList(getCarts());
       ArrayList items = new ArrayList(getItems());

       for (Iterator it1 = carts.iterator(); it1.hasNext();) {
           DataObject cart = (DataObject) it1.next();
           ArrayList cartItems = new ArrayList(getCartItems(cart.getInt
("ID")));

           System.out.println("Cart " + cart.getInt("ID") + ":");
           System.out.println("    Items:");

           for (Iterator it2 = cartItems.iterator(); it2.hasNext();) {
               DataObject itemCart = (DataObject) it2.next();
               DataObject item = getItem(itemCart.getInt("ITEM_ID"));

               System.out.println("        " + item.getString("DESCR") + "
- " + itemCart.getInt("QUANTITY") + " units");

           }

           System.out.println("    Subtotal: " + cart.getFloat
("SUB_TOTAL"));
           System.out.println("    Tax: " + cart.getFloat("TAX"));
           System.out.println("    Total: " + cart.getFloat("TOTAL") +
"\n");

       }

       for (Iterator it = items.iterator(); it.hasNext();) {
           DataObject item = (DataObject) it.next();

           System.out.println("Item " + item.getInt("ID") + ":");
           System.out.println("    Description: " + item.getString
("DESCR"));
           System.out.println("    Units: " + item.getInt("UNITS") + "\n");

       }

   }

   public DataObject getItem(int itemId) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("get item");
       command.setParameter(1, itemId);
       DataObject item = command.executeQuery();

       return item.getDataObject("ITEM[1]");

   }

   public void newCart() {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());
       Command command = das.getCommand("all carts");
       DataObject allCarts = command.executeQuery();

       DataObject newCart = allCarts.createDataObject("CART");
       newCart.setInt("CONFIRMED", 0);
       allCarts.getList("CART").add(newCart);

       das.applyChanges(allCarts);

   }

   public void newItem(String description, int units) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());
       Command command = das.getCommand("all items");
       DataObject allItems = command.executeQuery();

       DataObject newItem = allItems.createDataObject("ITEM");
       newItem.setString("DESCR", description);
       newItem.setInt("UNITS", units);

       allItems.getList("ITEM").add(newItem);
       das.applyChanges(allItems);

   }

   public boolean confirmOrder(int cartId) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());
       Command command = das.getCommand("all cart items");
       command.setParameter(1, new Integer(cartId));
       DataObject cartItems = command.executeQuery();
       ArrayList array = new ArrayList(cartItems.getList("CART_ITEM"));

       // check if there are enough items in stock in case another cart,
that contains
       // the same item, was ordered before
       for (Iterator it = array.iterator(); it.hasNext();) {
           DataObject cartXItem = (DataObject) it.next();
           int quantity = cartXItem.getInt("QUANTITY");
           int itemId = cartXItem.getInt("ITEM_ID");

           command = das.getCommand("get item");
           command.setParameter(1, new Integer(itemId));
           DataObject itemRoot = command.executeQuery();
           DataObject item = itemRoot.getDataObject("ITEM[1]");
           int units = item.getInt("UNITS");

           if (quantity > units) {
               return false;
           }

           item.setInt("UNITS", units - quantity);
           das.applyChanges(itemRoot);

       }

       command = das.getCommand("get cart");
       command.setParameter(1, new Integer(cartId));
       DataObject cart = command.executeQuery();
       cart.getDataObject("CART[1]").setInt("CONFIRMED", 1);

       das.applyChanges(cart);
       return true;

   }

   public List getCarts() {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("all carts");
       DataObject allCarts = command.executeQuery();

       return allCarts.getList("CART");

   }

   public List getItems() {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("all items");
       DataObject allItems = command.executeQuery();

       return allItems.getList("ITEM");

   }

   public List getCartItems(int cartId) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("all cart items");
       command.setParameter(1, new Integer(cartId));
       DataObject allCartItems = command.executeQuery();

       return allCartItems.getList("CART_ITEM");

   }

   public void addCartItem(int cartId, int itemId, int quantity) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("all carts x items");
       DataObject allCartsXItems = command.executeQuery();
       DataObject newCartXItem = allCartsXItems.createDataObject
("CART_ITEM");

       newCartXItem.setInt("CART_ID", cartId);
       newCartXItem.setInt("ITEM_ID", itemId);
       newCartXItem.setInt("QUANTITY", quantity);

       allCartsXItems.getList("CART_ITEM").add(newCartXItem);
       das.applyChanges(allCartsXItems);

   }

   public void removeCartItem(int cartId, int itemId) {
       DAS das = DAS.FACTORY.createDAS
(getClass().getClassLoader().getResourceAsStream("ShoppingCartConfig.xml"),
getConnection());

       Command command = das.getCommand("all cart items");
       command.setParameter(1, new Integer(cartId));

       DataObject cartItem = command.executeQuery();
       cartItem.getDataObject("CART_ITEM[1]").delete();

       das.applyChanges(cartItem);

   }

   private static java.sql.Connection getConnection() {

       try {
           Class.forName("com.mysql.jdbc.Driver");
       } catch(ClassNotFoundException e) {
           e.printStackTrace();
           return null;

       }

       try {
           java.sql.Connection con = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/shoppingcart","root","tuscany");
           con.setAutoCommit(false);
           return con;

       } catch(SQLException e) {
           e.printStackTrace();
           return null;

       }

   }

}

ShoppingCartConfig.xml

<?xml version="1.0" encoding="ASCII"?>
<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd";>

   <ConnectionInfo dataSource="java:comp/env/jdbc/shoppingcart"/>

   <Command name="all carts" SQL="SELECT * FROM CART" kind="Select"/>

   <Command name="all carts x items" SQL="SELECT * FROM CART_ITEM"
kind="Select"/>

   <Command name="get cart item" SQL="SELECT * from CART_ITEM WHERE CART_ID
= ? AND ITEM_ID = ?" kind="Select"/>

   <Command name="all cart items" SQL="SELECT * from CART_ITEM WHERE
CART_ID = ?" kind="Select"/>

   <Command name="all items" SQL="select * FROM ITEM"  kind="Select"/>

   <Command name="get item" SQL="select * FROM ITEM WHERE ID = ?"
kind="Select"/>

   <Command name="get cart" SQL="select * FROM CART WHERE ID = ?"
kind="Select"/>


   <Table tableName="CART">
       <Column columnName="ID" primaryKey="true" generated="true"/>
   </Table>


</Config>

The tables for mysql server 5.0:

CREATE TABLE CART (
 ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
 SUB_TOTAL DOUBLE,
 TAX DOUBLE,
 TOTAL DOUBLE,
 CONFIRMED INTEGER
);

CREATE TABLE ITEM (
 ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
 DESCR CHAR(30),
 UNITS INTEGER
);

CREATE TABLE CART_ITEM (
 ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
 CART_ID INTEGER,
 ITEM_ID INTEGER,
 QUANTITY INTEGER,
 FOREIGN KEY (CART_ID) REFERENCES CART(ID),
 FOREIGN KEY (ITEM_ID) REFERENCES ITEM(ID)
);

Adriano Crestani

On 12/4/06, Adriano Crestani <[EMAIL PROTECTED]> wrote:

Sorry, but I was a bit busy last week. I'm still trying to finish that
methods for the howto. I'm getting some problems when I try to remove any
tuple from the database, but I think it's a jdbc problem. I'm actually
working on it and if I find any specific problem I will post it here ; ).
Hey, Willian, have you written anything?

Adriano Crestani

On 12/4/06, Luciano Resende <[EMAIL PROTECTED]> wrote:
>
> Hi Adriano and William
>
>    Any progress with the HOW-TO ? Any blocking issues ? Any help,
> guidance
> needed ?
>
> - Luciano
>
> On 11/17/06, Katja <[EMAIL PROTECTED]> wrote:
> >
> > Hi Willian!
> >
> > Thanks for your test! Now I found my error and everything works!
> >
> > The problem was, that in the bigbank sample a mapping between the
> table
> > and the SDO is used. The SDO classes are generated from WSDL with
> XSD2SDO.
> > The mapping connects these classes to the tables.
> >
> > In the original bigbank sample the DASAccountConfiguration.xml looks
> like:
> > <Table tableName="STOCKS" typeName="StockSummary">
> >   <Column columnName="ID" propertyName="id" />
> >   <Column columnName="Symbol" propertyName="symbol" />
> >   <Column columnName="quantity" propertyName="quantity" />
> >   <Column columnName="purchasePrice" propertyName="purchasePrice" />
> >   <Column columnName="PURCHASEDATE" propertyName="purchaseDate"
> > converterClassName="
> >
> bigbank.account.services.accountdata.AccountDataServiceDASImpl$DateConverter
> "
> > />
> > </Table>
> >
> > I had problems with the Timestamp-column "PURCHASEDATE" only because
> it
> > was misspelled. The right spelling of the column name is
> "purchaseDate". I
> > changed it, and now it works.
> >
> > Maybe this should be changed in the repository to prevent others of
> this
> > error.
> >
> > If you are interested, here is the code which is used to read from the
> > database:
> >
> > //Reading mapping from DASAccountConfiguration.xml
> > InputStream mapping = createConfigStream();
> >
> > Connection conn = getConnection();
> > DAS das = DAS.FACTORY.createDAS(mapping, conn);
> >
> > Command select = das.createCommand("SELECT Symbol, quantity,
> > purchasePrice, purchaseDate, purchaseLotNumber  FROM stocks where id =
> ?");
> > select.setParameter(1, customerID);
> >
> > DataObject root = select.executeQuery();
> > accountReport.getStockSummaries().addAll(root.getList
> ("StockSummary"));
> >
> > Thanks,
> > Katja
> >
> > -------- Original-Nachricht --------
> > Datum: Thu, 16 Nov 2006 18:00:26 +0000
> > Von: "Willian Maja" <[EMAIL PROTECTED]>
> > An: tuscany-dev@ws.apache.org
> > Betreff: Re: New proposal to make DAS/SDO HOW TO
> >
> > > I think I didn't understand what you want. But i tested using
> TimeStamp
> > > and
> > > DateTime:
> > >
> > >        CREATE TABLE test (ID integer not null AUTO_INCREMENT,
> timestamp
> > > timestamp, datetime datetime, primary key (ID));
> > >
> > >        INSERT INTO test VALUES ();
> > >
> > > This will create the following row:
> > >
> > >        |  1   |     2006-11-16 14:10:24.0    |    NULL
> > >
> > >
> > > Now I will read the timestamp:
> > >
> > >          Command read = das.createCommand("select * from test");
> > >          DataObject root = read.executeQuery();
> > >          DataObject node = root.getDataObject("test[1]");
> > >          java.util.Date date = node.getDate("timestamp"); // You
> must
> > use
> > > java.util.Date, not java.sql.Date
> > >
> > >          System.out.println(date.getHours()); // Print the hours
> > >          System.out.println(date.getMonth()); // Print the month
> > >          System.out.println(node.getDate("date")); // Print the
> > TimeStamp
> > > ex:2006-11-16 14:12:23.0
> > >
> > >
> > > To save DateTime I used the following code:
> > >          //Continuing the last code, I'm going to save the TimeStamp
> in
> > > the
> > > DateTime column
> > >         node.setDate("datetime", date);
> > >         das.applyChanges(root);
> > >
> > > Now the row 1 from the test table will be:
> > >
> > > |  1   |     2006-11-16 14:10:24.0    |    2006-11-16 14:10: 24.0
> > >
> > >
> > > I read/updated the row with datetime and timestamp column.
> > > If this wasn't what you want, please send me the code you want to
> make
> > > work
> > > with SDO/Mysql.
> > >
> > >
> > >
> > >
> > > >From: "Katja" <[EMAIL PROTECTED]>
> > > >Reply-To: tuscany-dev@ws.apache.org
> > > >To: tuscany-dev@ws.apache.org
> > > >Subject: Re: New proposal to make DAS/SDO HOW TO
> > > >Date: Thu, 16 Nov 2006 17:29:58 +0100
> > > >
> > > >Hi Willian!
> > > >
> > > >Thank you for the example! You tested with a Date-Column, that
> worked
> > in
> > > my
> > > >application, too, because no conversion between the column and the
> data
> > > >object value is necessary.
> > > >
> > > >With DateTime a converter is needed:
> > > >SDO format: 2006-11-16T17:22
> > > >MySQL format: 2006-11-16 17:22
> > > >
> > > >The bigbank sample has a DateConverter for this issue, but this
> does
> > only
> > > >work with Derby and not with MySQL. I don't know why. I posted the
> > error
> > > >last time:
> > > >http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg10725.html
> > > >
> > > >It would be great, if you could test again with a DateTime or
> Timestamp
> > > >column and tell me your solution.
> > > >
> > > >Thanks,
> > > >Katja
> > > >
> > > >
> > > >
> > > >-------- Original-Nachricht --------
> > > >Datum: Thu, 16 Nov 2006 16:08:48 +0000
> > > >Von: "Willian Maja" <[EMAIL PROTECTED]>
> > > >An: tuscany-dev@ws.apache.org
> > > >Betreff: Re: New proposal to make DAS/SDO HOW TO
> > > >
> > > > > Hi Katja,
> > > > >
> > > > >     I've just tested to read Date column, and it works. I'm
> going to
> > > >paste
> > > > > my code here for you:
> > > > >
> > > > > This will be the test table, it's just a simple table with a
> > DateTime
> > > > > Column.
> > > > >
> > > > > CREATE TABLE test (ID integer not null AUTO_INCREMENT,
> date_column
> > > >date);
> > > > > INSERT INTO test (date_column) VALUES ("06-11-16");
> > > > >
> > > > > Now you should create your Das connection. In my code example
> I'll
> > not
> > > >use
> > > > > XML configuration. I'm going to create the Command:
> > > > >
> > > > >         Command read = das.createCommand("select * from test");
> > > //Create
> > > > > the
> > > > >   Command
> > > > >         DataObject root = read.executeQuery();
> > > > >         DataObject row = root.getDataObject("teste[1]"); // Get
> the
> > > >first
> > > > > row from test table;
> > > > >         System.out.println (row.getDate("date_column")); //
> Print the
> > > > > DateTime
> > > > >
> > > > >
> > > > > I think this will help you :).
> > > > >
> > > > > Bye.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > >From: "Katja" <[EMAIL PROTECTED]>
> > > > > >Reply-To: tuscany-dev@ws.apache.org
> > > > > >To: tuscany-dev@ws.apache.org
> > > > > >Subject: Re: New proposal to make DAS/SDO HOW TO
> > > > > >Date: Thu, 16 Nov 2006 09:14:28 +0100
> > > > > >
> > > > > >Hi!
> > > > > >
> > > > > >Is it possible to add a Timestamp or DateTime column to the
> > database?
> > > I
> > > > > am
> > > > > >very interested in how to access these columns with DAS and
> MySQL
> > > >because
> > > > > I
> > > > > >have not succeeded in doing this.
> > > > > >
> > > > > >Thanks,
> > > > > >Katja
> > > > > >
> > > > > >-------- Original-Nachricht --------
> > > > > >Datum: Thu, 16 Nov 2006 03:44:18 -0400
> > > > > >Von: "Adriano Crestani" <[EMAIL PROTECTED]>
> > > > > >An: tuscany-dev@ws.apache.org
> > > > > >Betreff: Re: New proposal to make DAS/SDO HOW TO
> > > > > >
> > > > > > > Willian, I created these tables, that will possible be used
> in
> > the
> > > > > > > shopping
> > > > > > > cart app. It's simple, but I think a howto sample must be
> > simple.
> > > >And
> > > > > if
> > > > > > > you
> > > > > > > want to add anything, feel free ; )
> > > > > > >
> > > > > > > CREATE TABLE CART (
> > > > > > >     ID INTEGER,
> > > > > > >     PRIMARY KEY (ID)
> > > > > > > );
> > > > > > >
> > > > > > > CREATE TABLE ITEM (
> > > > > > >     ID INTEGER,
> > > > > > >     ITEM VARCHAR(30),
> > > > > > >     UNITS INTEGER,
> > > > > > >     CART_ID INTEGER,
> > > > > > >     PRIMARY KEY (ID),
> > > > > > >     FOREIGN KEY (CART_ID) REFERENCES CART(ID)
> > > > > > > );
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 11/16/06, Luciano Resende <[EMAIL PROTECTED] > wrote:
> > > > > > > >
> > > > > > > > Hey Guys
> > > > > > > >
> > > > > > > >    Very good to see some progress and some contents being
> > > >generated.
> > > > > I
> > > > > > > > agree
> > > > > > > > with you guys when you say this is becoming more like a
> user
> > > >guide,
> > > > > > > > instead
> > > > > > > > of a How To, and building it describing a new scenario
> would
> > > > > probably
> > > > > > > make
> > > > > > > > things more clear, altough let's try to keep it simple on
> the
> > > > > >beginning,
> > > > > > > > otherwise we are going to get a White paper :)
> > > > > > > >
> > > > > > > >    I think we should describe actions that you would take
> when
> > > > > trying
> > > > > >to
> > > > > > > > create an application and describe how you would do it (
> e.gNow
> > > we
> > > > > >need
> > > > > > > to
> > > > > > > > execute a query to read the list of products, and this is
> how
> > > you
> > > > > >would
> > > > > > > do
> > > > > > > > using DAS), and point the user to further documentation in
>
> > case
> > > it
> > > > > > > > needs/want to know more about the specific feature (e.g if
> > they
> > > >want
> > > > > >to
> > > > > > > > learn the whole syntax/xsd of the das config file).
> > > > > > > >
> > > > > > > >    I think couple things should not be covered on the How
> to :
> > > > > > > >       - How to build a war file
> > > > > > > >       - How to create a database (altough you might
> provide
> > the
> > > >SQL
> > > > > > > > statements to create the tables you would use or at least
> > > describe
> > > > > the
> > > > > > > DB
> > > > > > > > schema)
> > > > > > > >
> > > > > > > >    Now, talking about what should be in this how-to
> > > > > > > >       - We could start very simple... 1 product table, and
> one
> > > > > simple
> > > > > > > jsp
> > > > > > > > that gives you a list of the products available
> > > > > > > >       - Using MySQL is good, altough this how to should
> not
> > > really
> > > > > be
> > > > > > > > database dependent, right ? we could point it to any
> database,
> > > and
> > > > > you
> > > > > > > > guys
> > > > > > > > could maybe elaborate on what change would be necessary to
> do
> > > this
> > > > > :)
> > > > > > > >
> > > > > > > >    Also, I think this how to does not necessarily need to
> > > produce
> > > >a
> > > > > > > > working
> > > > > > > > application, as it's intended to show how people would use
> > DAS.
> > > If
> > > > > we
> > > > > > > want
> > > > > > > > to spend time creating an application, I'd suggest doing
> this
> > as
> > > > > >another
> > > > > > > > task, and finish the one I have started as part of
> > > > > > > > http://issues.apache.org/jira/browse/TUSCANY-800
> > > > > > > >
> > > > > > > > Let me know if you have any further questions... let's
> > continue
> > > to
> > > > > > > > updating
> > > > > > > > the wiki, and please let me know when you guys want me to
> take
> > a
> > > > > look
> > > > > > > and
> > > > > > > > provide a feedback on the contents...
> > > > > > > >
> > > > > > > > BTW, others are welcome to voice their opinion on what
> > direction
> > > >we
> > > > > > > should
> > > > > > > > take here...
> > > > > > > >
> > > > > > > >
> > > > > > > > - Luciano Resende
> > > > > > > > Apache Tuscany
> > > > > > > >
> > > > > > > >
> > > > > > > > On 11/15/06, Adriano Crestani < [EMAIL PROTECTED]>
> > wrote:
> > > > > > > > >
> > > > > > > > > I've decribed the XML configuration file, but it's still
> > > looking
> > > > > >like
> > > > > > > a
> > > > > > > > > user
> > > > > > > > > guide than a howto. I think the CompanyWeb sample is to
> > simple
> > > >and
> > > > > > > > doesn't
> > > > > > > > > cover well all the DAS features. So lets make this
> Shopping
> > > Cart
> > > > > > > > > application
> > > > > > > > > trying to use all the DAS features. Then we will be able
> to
> > do
> > > a
> > > > > >very
> > > > > > > > > useful
> > > > > > > > > howto.
> > > > > > > > >
> > > > > > > > >   My propose is that this app must have at least:
> > > > > > > > >
> > > > > > > > >      - 1 functionality that requires a SQL command with
> > > >arguments.
> > > > > > > Then
> > > > > > > > we
> > > > > > > > > cover how to deal with arguments in SQL commands.
> > > > > > > > >
> > > > > > > > >     - 1 table that has one autoincrement key column to
> cover
> > > the
> > > > > > > > > "genarated"
> > > > > > > > > attribute on the howto.
> > > > > > > > >
> > > > > > > > >     - 1 table that requires a concurrency control to
> cover
> > the
> > > > > > > > > "concurrency"
> > > > > > > > > attribute on the howto.
> > > > > > > > >
> > > > > > > > >    - 1 table containing a foreign key to cover how to
> > explicit
> > > >in
> > > > > >the
> > > > > > > > XML
> > > > > > > > > configuration file the link between two tables. There
> will
> > > > > probabily
> > > > > > > be
> > > > > > > > a
> > > > > > > > > foreign key in its database anyway. ; )
> > > > > > > > >
> > > > > > > > > I think also a good idea to use the MySql as the
> database
> > > >server,
> > > > > >once
> > > > > > > > > it's
> > > > > > > > > the most used server on webapps ; )
> > > > > > > > >
> > > > > > > > > We must discuss how will be the Shopping Cart GUI, it
> must
> > be
> > > > > simple
> > > > > > > > once
> > > > > > > > > it's not the focus of our howto. I think a simple html
> > > genarated
> > > > > by
> > > > > >a
> > > > > > > > jsp
> > > > > > > > > is
> > > > > > > > > enough. ; )
> > > > > > > > >
> > > > > > > > > Adriano Crestani
> > > > > > > > >
> > > > > > > > > On 11/15/06, Willian Yabusame Maja <
> [EMAIL PROTECTED]>
> > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > Hello Tuscany Community!
> > > > > > > > > >
> > > > > > > > > >     Adriano Crestani and I are working together on a
> > > >HelloWorld
> > > > > >DAS
> > > > > > > > "How
> > > > > > > > > > To". I have uploaded what we have done so far to
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > > >
> > > >
> > 
http://wiki.apache.org/ws/Tuscany/TuscanyJava/DAS_Java_Overview/RDBDAS_HOWTO_HelloDASApp
>
> > > > > > > > > >
> > > > > > > > > >     We were using the CompanyWeb sample application to
> > make
> > > >this
> > > > > > > > > > step-by-step how-to and teach how to use the DAS/SDO
> > > Features.
> > > > > We
> > > > > > > are
> > > > > > > > > not
> > > > > > > > > > liking what this is becoming, as it's looking more
> like a
> > > > > > > > > user-gide/readme
> > > > > > > > > > then really a how-to, so we would like to do a new
> > proposal
> > > :
> > > > > > > > > >
> > > > > > > > > >     Use the scenario of a Shopping cart, and use it to
> > > explain
> > > > > >more
> > > > > > > > > about
> > > > > > > > > > how to build it using DAS to handle the persistence
> part
> > of
> > > >the
> > > > > > > app...
> > > > > > > > > >
> > > > > > > > > >     The topics would be:
> > > > > > > > > >         Introducing the scenario and the motivation to
> use
> > > > > DAS/SDO
> > > > > > > > > >         Initial Setup and environment assumptions
> > > > > > > > > >         Building the application
> > > > > > > > > >         - database
> > > > > > > > > >                 - DAS commands
> > > > > > > > > >                 - Configuring the XML and how to make
> the
> > > > > commands
> > > > > > > > > >         Explain the DAS/SDO and how to read/get
> results
> > > > > > > > > >         conclusion
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >     Before we change our path to this new approach, we
> > would
> > > > > like
> > > > > >to
> > > > > > > > > hear
> > > > > > > > > > some feedback on what you guys think about this new
> > > >approach....
> > > > > > > > > >
> > > > > > > > > > Willian Yabusame Maja
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > >--
> > > > > >Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu
> sparen!
> > > > > >Ideal f�r Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
> > > > > >
> > > > >
> > >---------------------------------------------------------------------
> > > > > >To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > >For additional commands, e-mail: [EMAIL PROTECTED]
>
> > > > > >
> > > > >
> > > > >
> _________________________________________________________________
> > > > > MSN Busca: f�cil, r�pido, direto ao ponto.  http://search.msn.com.br
> > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >--
> > > >Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > > >Ideal f�r Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
> > > >
> > >
> >---------------------------------------------------------------------
> > > >To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > >For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > >
> > > _________________________________________________________________
> > > MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > --
> > Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > Ideal f�r Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Luciano Resende
> http://people.apache.org/~lresende
> <http://people.apache.org/%7Elresende>
>


Reply via email to