| package org.apache.axis2.savan.atom; |
| |
| import java.io.StringWriter; |
| import java.sql.Connection; |
| import java.sql.DriverManager; |
| import java.sql.ResultSet; |
| import java.sql.SQLException; |
| import java.sql.Statement; |
| import java.util.Date; |
| import java.util.Iterator; |
| import java.util.Properties; |
| import java.util.Random; |
| |
| import org.apache.axiom.om.OMAbstractFactory; |
| import org.apache.axiom.om.OMElement; |
| import org.apache.axiom.om.OMFactory; |
| import org.apache.axiom.om.OMNamespace; |
| import org.apache.savan.SavanException; |
| import org.apache.savan.atom.AtomDataSource; |
| |
| import junit.framework.TestCase; |
| |
| public class DerbyTest extends TestCase{ |
| |
| /* the default framework is embedded*/ |
| public String framework = "embedded"; |
| public String driver = "org.apache.derby.jdbc.EmbeddedDriver"; |
| public String protocol = "jdbc:derby:"; |
| |
| public void testDataSource() throws Exception{ |
| AtomDataSource dataSource = new AtomDataSource(); |
| String id = "id"+new Random().nextDouble(); |
| dataSource.addFeed(id, "foo", new Date(),"Srinath"); |
| dataSource.addEntry(id,getDummyMethodRequestElement()); |
| StringWriter w = new StringWriter(); |
| |
| OMElement result = dataSource.getFeedAsXml(id); |
| // Iterator it = result.getChildElements(); |
| // while(it.hasNext()){ |
| // System.out.println(it.next()); |
| // } |
| |
| result.serialize(w); |
| System.out.println(w.getBuffer().toString()); |
| } |
| |
| // public static void main(String[] args) |
| // { |
| // new DerbyTest().go(args); |
| // } |
| |
| // void go(String[] args) |
| // { |
| // /* parse the arguments to determine which framework is desired*/ |
| // parseArguments(args); |
| // |
| // System.out.println("SimpleApp starting in " + framework + " mode."); |
| // |
| // try |
| // { |
| // /* |
| // The driver is installed by loading its class. |
| // In an embedded environment, this will start up Derby, since it is not already running. |
| // */ |
| // Class.forName(driver).newInstance(); |
| // System.out.println("Loaded the appropriate driver."); |
| // |
| // Connection conn = null; |
| // Properties props = new Properties(); |
| // props.put("user", "user1"); |
| // props.put("password", "user1"); |
| // |
| // /* |
| // The connection specifies create=true to cause |
| // the database to be created. To remove the database, |
| // remove the directory derbyDB and its contents. |
| // The directory derbyDB will be created under |
| // the directory that the system property |
| // derby.system.home points to, or the current |
| // directory if derby.system.home is not set. |
| // */ |
| // conn = DriverManager.getConnection(protocol + |
| // "derbyDB;create=true", props); |
| // |
| // System.out.println("Connected to and created database derbyDB"); |
| // |
| // conn.setAutoCommit(false); |
| // |
| // /* |
| // Creating a statement lets us issue commands against |
| // the connection. |
| // */ |
| // Statement s = conn.createStatement(); |
| // |
| // /* |
| // We create a table, add a few rows, and update one. |
| // */ |
| // s.execute("create table derbyDB(num int, addr varchar(40))"); |
| // System.out.println("Created table derbyDB"); |
| // s.execute("insert into derbyDB values (1956,'Webster St.')"); |
| // System.out.println("Inserted 1956 Webster"); |
| // s.execute("insert into derbyDB values (1910,'Union St.')"); |
| // System.out.println("Inserted 1910 Union"); |
| // s.execute( |
| // "update derbyDB set num=180, addr='Grand Ave.' where num=1956"); |
| // System.out.println("Updated 1956 Webster to 180 Grand"); |
| // |
| // s.execute( |
| // "update derbyDB set num=300, addr='Lakeshore Ave.' where num=180"); |
| // System.out.println("Updated 180 Grand to 300 Lakeshore"); |
| // |
| // /* |
| // We select the rows and verify the results. |
| // */ |
| // ResultSet rs = s.executeQuery( |
| // "SELECT num, addr FROM derbyDB ORDER BY num"); |
| // |
| // if (!rs.next()) |
| // { |
| // throw new Exception("Wrong number of rows"); |
| // } |
| // |
| // if (rs.getInt(1) != 300) |
| // { |
| // throw new Exception("Wrong row returned"); |
| // } |
| // |
| // if (!rs.next()) |
| // { |
| // throw new Exception("Wrong number of rows"); |
| // } |
| // |
| // if (rs.getInt(1) != 1910) |
| // { |
| // throw new Exception("Wrong row returned"); |
| // } |
| // |
| // if (rs.next()) |
| // { |
| // throw new Exception("Wrong number of rows"); |
| // } |
| // |
| // System.out.println("Verified the rows"); |
| // |
| // s.execute("drop table derbyDB"); |
| // System.out.println("Dropped table derbyDB"); |
| // |
| // /* |
| // We release the result and statement resources. |
| // */ |
| // rs.close(); |
| // s.close(); |
| // System.out.println("Closed result set and statement"); |
| // |
| // /* |
| // We end the transaction and the connection. |
| // */ |
| // conn.commit(); |
| // conn.close(); |
| // System.out.println("Committed transaction and closed connection"); |
| // |
| // /* |
| // In embedded mode, an application should shut down Derby. |
| // If the application fails to shut down Derby explicitly, |
| // the Derby does not perform a checkpoint when the JVM shuts down, which means |
| // that the next connection will be slower. |
| // Explicitly shutting down Derby with the URL is preferred. |
| // This style of shutdown will always throw an "exception". |
| // */ |
| // boolean gotSQLExc = false; |
| // |
| // if (framework.equals("embedded")) |
| // { |
| // try |
| // { |
| // DriverManager.getConnection("jdbc:derby:;shutdown=true"); |
| // } |
| // catch (SQLException se) |
| // { |
| // gotSQLExc = true; |
| // } |
| // |
| // if (!gotSQLExc) |
| // { |
| // System.out.println("Database did not shut down normally"); |
| // } |
| // else |
| // { |
| // System.out.println("Database shut down normally"); |
| // } |
| // } |
| // } |
| // catch (Throwable e) |
| // { |
| // System.out.println("exception thrown:"); |
| // |
| // if (e instanceof SQLException) |
| // { |
| // printSQLError((SQLException) e); |
| // } |
| // else |
| // { |
| // e.printStackTrace(); |
| // } |
| // } |
| // |
| // System.out.println("SimpleApp finished"); |
| // } |
| // |
| // static void printSQLError(SQLException e) |
| // { |
| // while (e != null) |
| // { |
| // System.out.println(e.toString()); |
| // e = e.getNextException(); |
| // } |
| // } |
| // |
| // private void parseArguments(String[] args) |
| // { |
| // int length = args.length; |
| // |
| // for (int index = 0; index < length; index++) |
| // { |
| // if (args[index].equalsIgnoreCase("jccjdbcclient")) |
| // { |
| // framework = "jccjdbc"; |
| // driver = "com.ibm.db2.jcc.DB2Driver"; |
| // protocol = "jdbc:derby:net://localhost:1527/"; |
| // } |
| // if (args[index].equalsIgnoreCase("derbyclient")) |
| // { |
| // framework = "derbyclient"; |
| // driver = "org.apache.derby.jdbc.ClientDriver"; |
| // protocol = "jdbc:derby://localhost:1527/"; |
| // } |
| // } |
| // } |
| private final String applicationNamespaceName = "http://tempuri.org/"; |
| private final String dummyMethod = "dummyMethod"; |
| private OMElement getDummyMethodRequestElement() { |
| OMFactory fac = OMAbstractFactory.getOMFactory(); |
| OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1"); |
| return fac.createOMElement(dummyMethod, namespace); |
| } |
| } |