Just want to make sure, we actually don't need to deliver an app for the
HowTo, but give enough information on how someone would go and build one...

See the howTo I created here :

  -
http://lresende.blogspot.com/2006_11_01_lresende_archive.html#116491398958651871

Please let me know if you need any help writting it...

--
Luciano Resende
http://people.apache.org/~lresende

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

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.gif
> > > 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