You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/06/04 07:33:33 UTC

svn commit: r544056 - in /incubator/tuscany/java/das/samples: companyweb/ companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/ companyweb/src/main/resources/ companyweb/src/main/webapp/ companyweb/src/main/webapp/WEB-INF/ testing/tomcat/...

Author: lresende
Date: Sun Jun  3 22:33:32 2007
New Revision: 544056

URL: http://svn.apache.org/viewvc?view=rev&rev=544056
Log:
JIRA-1300 - Integrating companyweb with dbConfig utility

Added:
    incubator/tuscany/java/das/samples/companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/CompanyDBInit.java
    incubator/tuscany/java/das/samples/companyweb/src/main/resources/CompanyWebDBConfig.xml
Modified:
    incubator/tuscany/java/das/samples/companyweb/pom.xml
    incubator/tuscany/java/das/samples/companyweb/src/main/webapp/Company.jsp
    incubator/tuscany/java/das/samples/companyweb/src/main/webapp/WEB-INF/web.xml
    incubator/tuscany/java/das/samples/testing/tomcat/build.xml
    incubator/tuscany/java/das/samples/testing/tomcat/companyweb/src/test/java/org/apache/tuscany/test/das/DasTestCase.java
    incubator/tuscany/java/das/samples/testing/tomcat/datasource.xsl

Modified: incubator/tuscany/java/das/samples/companyweb/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/companyweb/pom.xml?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/companyweb/pom.xml (original)
+++ incubator/tuscany/java/das/samples/companyweb/pom.xml Sun Jun  3 22:33:32 2007
@@ -31,18 +31,31 @@
     <description>Sample use of RDB DAS in a Web application</description>
 
     <dependencies>
-
         <dependency>
             <groupId>org.apache.tuscany.das</groupId>
             <artifactId>tuscany-das-rdb</artifactId>
-            <version>${pom.version}</version>
+            <version>${das.version}</version>
             <scope>compile</scope>
         </dependency>
-
+        
+        <dependency>
+            <groupId>org.apache.tuscany.das.samples</groupId>
+            <artifactId>tuscany-das-sample-dbconfig</artifactId>
+            <version>${das.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <!-- this will place the java source files inside the war -->
     <build>
+        <finalName>sample-companyweb</finalName>
         <sourceDirectory>src/main/java</sourceDirectory>
         <resources>
             <resource>

Added: incubator/tuscany/java/das/samples/companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/CompanyDBInit.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/CompanyDBInit.java?view=auto&rev=544056
==============================================================================
--- incubator/tuscany/java/das/samples/companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/CompanyDBInit.java (added)
+++ incubator/tuscany/java/das/samples/companyweb/src/main/java/org/apache/tuscany/samples/das/companyweb/CompanyDBInit.java Sun Jun  3 22:33:32 2007
@@ -0,0 +1,71 @@
+/*
+ * 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.companyweb;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+
+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.dbconfig.DBInitializer;
+
+public class CompanyDBInit extends HttpServlet {
+    private static final long serialVersionUID = -4795999792460944805L;
+    private static final String dbConfigFile = "CompanyWebDBConfig.xml";
+
+    @Override
+    public void init() throws ServletException {
+        try {
+            DBInitializer dbInitializer;
+            dbInitializer = new DBInitializer(getConfig(dbConfigFile)); 
+            if (! dbInitializer.isDatabaseReady()) {
+                dbInitializer.initializeDatabase(true);
+            }
+        } catch (Exception e) {
+
+            e.printStackTrace();
+            log(e.toString(), e);
+            throw new ServletException(e);
+        }
+    }
+
+    /*
+     * (non-Java-doc)
+     * 
+     * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest arg0, HttpServletResponse arg1)
+     */
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+
+        out.println();
+        out.println("<center><h2>CompanyWeb database initialization servlet !<h2></center>");
+        out.println();
+    }
+    
+    private InputStream getConfig(String fileName) {
+        return getClass().getClassLoader().getResourceAsStream(fileName);
+    }
+
+}

Added: incubator/tuscany/java/das/samples/companyweb/src/main/resources/CompanyWebDBConfig.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/companyweb/src/main/resources/CompanyWebDBConfig.xml?view=auto&rev=544056
==============================================================================
--- incubator/tuscany/java/das/samples/companyweb/src/main/resources/CompanyWebDBConfig.xml (added)
+++ incubator/tuscany/java/das/samples/companyweb/src/main/resources/CompanyWebDBConfig.xml Sun Jun  3 22:33:32 2007
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  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.
+ -->
+<DBConfig xmlns="http:///org.apache.tuscany.das.rdb/dbconfig.xsd">
+	
+	<!--ConnectionInfo>
+		<ConnectionProperties 
+			driverClass="org.apache.derby.jdbc.EmbeddedDriver" 
+			databaseURL="jdbc:derby:../Databases/dastest; create = true" 
+			loginTimeout="600000"/>
+	</ConnectionInfo-->
+    <ConnectionInfo dataSource="java:comp/env/jdbc/dastest"/>
+    
+	<Table name="COMPANY" SQLCreate="CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY , NAME VARCHAR(30))" >
+		<row>'ACME Publishing'</row>
+		<row>'Do-rite plumbing'</row>
+		<row>'MegaCorp'</row>
+	</Table>
+	<Table name="DEPARTMENT" SQLCreate="CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30),LOCATION VARCHAR(30), DEPNUMBER VARCHAR(10),COMPANYID INT)">
+		<row>'Advanced Technologies', 'NY', '123', 1</row>
+		<row>'Default Name 2', '', '', 1</row>
+		<row>'Default Name 3', '', '', 1</row>
+		<row>'Default Name 4', '', '', 1</row>
+		<row>'Default Name 5', '', '', 1</row>
+		<row>'Default Name 6', '', '', 1</row>
+		<row>'Default Name 7', '', '', 1</row>
+		<row>'Default Name 8', '', '', 1</row>
+	</Table>
+	<Table name="EMPLOYEE" SQLCreate="CREATE TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY,NAME VARCHAR(30),SN VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)">
+		<row>'John Jones','E0001',0,1</row>
+		<row>'Mary Smith','E0002',1,null</row>
+		<row>'Jane Doe','E0003',0,1</row>
+		<row>'Al Smith','E0004',1,1</row>
+	</Table>
+</DBConfig>

Modified: incubator/tuscany/java/das/samples/companyweb/src/main/webapp/Company.jsp
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/companyweb/src/main/webapp/Company.jsp?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/companyweb/src/main/webapp/Company.jsp (original)
+++ incubator/tuscany/java/das/samples/companyweb/src/main/webapp/Company.jsp Sun Jun  3 22:33:32 2007
@@ -19,14 +19,11 @@
  -->
 <html>
 <head>
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"
+   import="commonj.sdo.*"
 
-	pageEncoding="ISO-8859-1"
-
-        import="org.apache.tuscany.samples.das.companyweb.CompanyClient"
-        import="commonj.sdo.*"
+   import="org.apache.tuscany.samples.das.companyweb.CompanyClient"
 %>
-
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Company Test</title>
 </head>

Modified: incubator/tuscany/java/das/samples/companyweb/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/companyweb/src/main/webapp/WEB-INF/web.xml?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/companyweb/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/tuscany/java/das/samples/companyweb/src/main/webapp/WEB-INF/web.xml Sun Jun  3 22:33:32 2007
@@ -27,4 +27,10 @@
         <welcome-file>Company.jsp</welcome-file>
     </welcome-file-list>
 
+    <!-- Initialize Company database -->
+    <servlet>
+        <servlet-name>CompanyDBInit</servlet-name>
+        <servlet-class>org.apache.tuscany.samples.das.companyweb.CompanyDBInit</servlet-class>
+        <load-on-startup>2</load-on-startup>
+  </servlet>
 </web-app>

Modified: incubator/tuscany/java/das/samples/testing/tomcat/build.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/testing/tomcat/build.xml?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/testing/tomcat/build.xml (original)
+++ incubator/tuscany/java/das/samples/testing/tomcat/build.xml Sun Jun  3 22:33:32 2007
@@ -169,10 +169,11 @@
                         <fileset dir="${tuscany.acceptance.das.samples.companyweb.dir}">
                                 <include name="**/*.war" />
                         </fileset>
-                        <chainedmapper>
+                        <!-- lresende - using the right name on the build now, don't need to clean up -->
+                        <!-- chainedmapper>
                                 <flattenmapper/>
                                 <globmapper from="*-1.0-incubating-SNAPSHOT.war" to="*.war"/>
-                        </chainedmapper>
+                        </chainedmapper -->
                 </copy>
 
                 <!-- Create directory for the derby database -->
@@ -180,11 +181,12 @@
                 <mkdir dir="${tuscany.acceptance.target.databases.dir}" />
 
                 <!-- Copy over the Derby database -->
-                <copy todir="${tuscany.acceptance.target.databases.dir}">
+                <!-- lresende - we now use the dbConfig, and don't need to copy canned database here -->
+                <!-- copy todir="${tuscany.acceptance.target.databases.dir}">
                         <fileset dir="${tuscany.acceptance.das.samples.companyweb.dir}">
                                 <include name="**/dastest/**" />
                         </fileset>
-                </copy>
+                </copy -->
         </target>
 
 

Modified: incubator/tuscany/java/das/samples/testing/tomcat/companyweb/src/test/java/org/apache/tuscany/test/das/DasTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/testing/tomcat/companyweb/src/test/java/org/apache/tuscany/test/das/DasTestCase.java?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/testing/tomcat/companyweb/src/test/java/org/apache/tuscany/test/das/DasTestCase.java (original)
+++ incubator/tuscany/java/das/samples/testing/tomcat/companyweb/src/test/java/org/apache/tuscany/test/das/DasTestCase.java Sun Jun  3 22:33:32 2007
@@ -28,7 +28,7 @@
 import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
 
 public class DasTestCase extends TestCase {
-    public static final String testUrl = "http://localhost:8080/tuscany-das-sample-companyweb/";
+    public static final String testUrl = "http://localhost:8080/sample-companyweb/";
 
     protected WebClient _webClient;
     protected URL _url;
@@ -60,20 +60,20 @@
         assertTrue(-1 != responseText.indexOf("Department_ID"));
         assertTrue(-1 != responseText.indexOf("Department_Name"));
         //check companies values
-        assertTrue(-1 != responseText.indexOf("51"));
+        //assertTrue(-1 != responseText.indexOf("51"));
         assertTrue(-1 != responseText.indexOf("ACME Publishing"));
-        assertTrue(-1 != responseText.indexOf("53"));
+        //assertTrue(-1 != responseText.indexOf("53"));
         assertTrue(-1 != responseText.indexOf("Do-rite plumbing"));
-        assertTrue(-1 != responseText.indexOf("53"));
+        //assertTrue(-1 != responseText.indexOf("53"));
         assertTrue(-1 != responseText.indexOf("MegaCorp"));
         //check departments
-        assertTrue(-1 != responseText.indexOf("73"));
-        assertTrue(-1 != responseText.indexOf("74"));
-        assertTrue(-1 != responseText.indexOf("75"));
-        assertTrue(-1 != responseText.indexOf("76"));
-        assertTrue(-1 != responseText.indexOf("77"));
-        assertTrue(-1 != responseText.indexOf("78"));
-        assertTrue(-1 != responseText.indexOf("12"));
+        assertTrue(-1 != responseText.indexOf("Default Name 2"));
+        assertTrue(-1 != responseText.indexOf("Default Name 3"));
+        assertTrue(-1 != responseText.indexOf("Default Name 4"));
+        assertTrue(-1 != responseText.indexOf("Default Name 5"));
+        assertTrue(-1 != responseText.indexOf("Default Name 6"));
+        assertTrue(-1 != responseText.indexOf("Default Name 7"));
+        assertTrue(-1 != responseText.indexOf("Default Name 8"));
 
         System.out.println("SUCCESS!!!");
     }
@@ -100,11 +100,11 @@
         assertTrue(-1 != responseText.indexOf("ID"));
         assertTrue(-1 != responseText.indexOf("Name"));
         //check table values
-        assertTrue(-1 != responseText.indexOf("51"));
+        //assertTrue(-1 != responseText.indexOf("51"));
         assertTrue(-1 != responseText.indexOf("ACME Publishing"));
-        assertTrue(-1 != responseText.indexOf("52"));
+        //assertTrue(-1 != responseText.indexOf("52"));
         assertTrue(-1 != responseText.indexOf("Do-rite plumbing"));
-        assertTrue(-1 != responseText.indexOf("53"));
+        //assertTrue(-1 != responseText.indexOf("53"));
         assertTrue(-1 != responseText.indexOf("MegaCorp"));
 
         System.out.println("SUCCESS!!!");
@@ -133,20 +133,20 @@
         assertTrue(-1 != responseText.indexOf("Department_ID"));
         assertTrue(-1 != responseText.indexOf("Department_Name"));
         //check companies values
-        assertTrue(-1 != responseText.indexOf("51"));
+        //assertTrue(-1 != responseText.indexOf("51"));
         assertTrue(-1 != responseText.indexOf("ACME Publishing"));
-        assertTrue(-1 != responseText.indexOf("53"));
+        //assertTrue(-1 != responseText.indexOf("53"));
         assertTrue(-1 != responseText.indexOf("Do-rite plumbing"));
-        assertTrue(-1 != responseText.indexOf("53"));
+        //assertTrue(-1 != responseText.indexOf("53"));
         assertTrue(-1 != responseText.indexOf("MegaCorp"));
         //check departments
-        assertTrue(-1 != responseText.indexOf("73"));
-        assertTrue(-1 != responseText.indexOf("74"));
-        assertTrue(-1 != responseText.indexOf("75"));
-        assertTrue(-1 != responseText.indexOf("76"));
-        assertTrue(-1 != responseText.indexOf("77"));
-        assertTrue(-1 != responseText.indexOf("78"));
-        assertTrue(-1 != responseText.indexOf("12"));
+        assertTrue(-1 != responseText.indexOf("Default Name 2"));
+        assertTrue(-1 != responseText.indexOf("Default Name 3"));
+        assertTrue(-1 != responseText.indexOf("Default Name 4"));
+        assertTrue(-1 != responseText.indexOf("Default Name 5"));
+        assertTrue(-1 != responseText.indexOf("Default Name 6"));
+        assertTrue(-1 != responseText.indexOf("Default Name 7"));
+        assertTrue(-1 != responseText.indexOf("Default Name 8"));
 
         System.out.println("SUCCESS!!!");
     }
@@ -169,12 +169,11 @@
         String responseText = resultPage.asText();
         //System.out.println("html-->\n" + responseText);
         //check new department
-        assertTrue(-1 != responseText.indexOf("79"));
+        assertTrue(-1 != responseText.indexOf("8"));
 
         System.out.println("SUCCESS!!!");
     }
 
-
     public void testChangeCompanyDepartmentNames() throws Exception{
         final String TEST_CASE = "ChangeCompanyDepartmentNames";
         System.out.print("Running:" + TEST_CASE + "\t");
@@ -218,12 +217,13 @@
         String responseText = resultPage.asText();
         //System.out.println("html-->\n" + responseText);
         //check that al the company 1 departments are gone..
-        assertTrue(-1 == responseText.indexOf("73"));
-        assertTrue(-1 == responseText.indexOf("74"));
-        assertTrue(-1 == responseText.indexOf("75"));
-        assertTrue(-1 == responseText.indexOf("76"));
-        assertTrue(-1 == responseText.indexOf("77"));
-        assertTrue(-1 == responseText.indexOf("78"));
+        assertTrue(-1 == responseText.indexOf("Default Name 2"));
+        assertTrue(-1 == responseText.indexOf("Default Name 3"));
+        assertTrue(-1 == responseText.indexOf("Default Name 4"));
+        assertTrue(-1 == responseText.indexOf("Default Name 5"));
+        assertTrue(-1 == responseText.indexOf("Default Name 6"));
+        assertTrue(-1 == responseText.indexOf("Default Name 7"));
+        assertTrue(-1 == responseText.indexOf("Default Name 8"));
 
         System.out.println("SUCCESS!!!");
     }

Modified: incubator/tuscany/java/das/samples/testing/tomcat/datasource.xsl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/samples/testing/tomcat/datasource.xsl?view=diff&rev=544056&r1=544055&r2=544056
==============================================================================
--- incubator/tuscany/java/das/samples/testing/tomcat/datasource.xsl (original)
+++ incubator/tuscany/java/das/samples/testing/tomcat/datasource.xsl Sun Jun  3 22:33:32 2007
@@ -43,7 +43,7 @@
               maxActive="100" maxIdle="30" maxWait="10000"
               username="" password="" 
               driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
-              url="{$database_location}"/>
+              url="{$database_location};create = true"/>
 
    </xsl:copy>
 	



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org