From ad0e368eeedb0454e1dd398bd84c23cbfbd692f8 Mon Sep 17 00:00:00 2001 From: lresende Date: Mon, 2 Nov 2009 22:23:40 +0000 Subject: Moving das tags git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@832150 13f79535-47bb-0310-9956-ffa450edef68 --- .../samples/das/customer/CustomerClient.java | 227 +++++++++++++++++++++ .../samples/das/databaseSetup/DB2Setup.java | 225 ++++++++++++++++++++ .../samples/das/databaseSetup/DatabaseSetup.java | 206 +++++++++++++++++++ .../samples/das/databaseSetup/DerbySetup.java | 209 +++++++++++++++++++ .../samples/das/databaseSetup/MySQLSetup.java | 211 +++++++++++++++++++ 5 files changed, 1078 insertions(+) create mode 100644 das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/customer/CustomerClient.java create mode 100644 das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/databaseSetup/DB2Setup.java create mode 100644 das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/databaseSetup/DatabaseSetup.java create mode 100644 das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/databaseSetup/DerbySetup.java create mode 100644 das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/databaseSetup/MySQLSetup.java (limited to 'das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany') diff --git a/das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/customer/CustomerClient.java b/das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/customer/CustomerClient.java new file mode 100644 index 0000000000..b9557f0f9e --- /dev/null +++ b/das-java/tags/1.0-incubating-beta1-rc1/samples/customer/src/main/java/org/apache/tuscany/samples/das/customer/CustomerClient.java @@ -0,0 +1,227 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tuscany.samples.das.customer; + +import java.io.InputStream; +import java.util.List; + +import org.apache.tuscany.das.rdb.Command; +import org.apache.tuscany.das.rdb.DAS; +import org.apache.tuscany.das.rdb.config.Config; +import org.apache.tuscany.das.rdb.util.ConfigUtil; +import org.apache.tuscany.samples.das.databaseSetup.DB2Setup; +import org.apache.tuscany.samples.das.databaseSetup.DerbySetup; +import org.apache.tuscany.samples.das.databaseSetup.MySQLSetup; + +import commonj.sdo.DataObject; + +public class CustomerClient { + private DAS das = null; + public static final String DERBY = "derby"; + public static final String MYSQL = "mysql"; + public static final String DB2 = "db2"; + + private CustomerClient(){ + } + + /**If database is present connect to it and create necessary tables, procedures, data etc. + * If database is not present create database and then create the above elements. Create database + * is implemented for MySQL and Derby (not for IBM DB2). + */ + + protected boolean checkIfDBPresent(String dbType, String dbName, String user, String password){ + try { + if(dbType.equals(DERBY)){ + new DerbySetup(dbName+"-"+user+"-"+password); + } + + if(dbType.equals(DB2)){ + new DB2Setup(dbName+"-"+user+"-"+password); + } + + if(dbType.equals(MYSQL)){ + new MySQLSetup(dbName+"-"+user+"-"+password); + } + + } catch(Exception e){ + e.printStackTrace(); + } + + return true; + } + + private void init(String configFile){ + try{ + this.das = DAS.FACTORY.createDAS(getConfig(configFile)); + }catch(Exception e){ + e.printStackTrace(); + } + } + + public static void main(String[] args){ + String configFile = "Customers.xml";//this can be from input params too as below + + if(args != null && args.length >0){ + configFile = args[0]; + } + + CustomerClient cclient = new CustomerClient(); + + Config config = ConfigUtil.loadConfig(cclient.getClass().getClassLoader().getResourceAsStream(configFile)); + + String dbType = null; + String dbURL = null; + String user = null; + String password = null; + + if(config.getConnectionInfo().getConnectionProperties().getDriverClass().indexOf(DERBY) != -1){ + dbType = DERBY; + } + + if(config.getConnectionInfo().getConnectionProperties().getDriverClass().indexOf(MYSQL) != -1){ + dbType = MYSQL; + } + + if(config.getConnectionInfo().getConnectionProperties().getDriverClass().indexOf(DB2) != -1){ + dbType = DB2; + } + + //get connection info from config + dbURL = config.getConnectionInfo().getConnectionProperties().getDatabaseURL(); + user = config.getConnectionInfo().getConnectionProperties().getUserName(); + password = config.getConnectionInfo().getConnectionProperties().getPassword(); + + System.out.println("connection info from config***************"); + System.out.println("dbName:"+dbURL+" user:"+user+" password:"+password); + System.out.println("******************************************"); + //dt create/connect/create schema + cclient.checkIfDBPresent(dbType, dbURL, user, password); + + //get das handle + cclient.init(configFile); + + //test select + System.out.println("Result:select all customers"); + printList(cclient.getCustomers()); + + //test insert + System.out.println("Result:insert new customer"); + cclient.addCustomer(); + printList(cclient.getCustomers()); + + //test update + System.out.println("Result:update first customer"); + cclient.changeFirstCustomerName(); + printList(cclient.getCustomers()); + + //test delete + System.out.println("Result:delete last customer"); + cclient.deleteCustomer(); + printList(cclient.getCustomers()); + } + + /** + * display result + * @param customers + */ + public static void printList(List customers){ + for(int i=0; i