You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wookie.apache.org by sc...@apache.org on 2009/10/22 16:47:03 UTC

svn commit: r828725 - in /incubator/wookie/branches/standalone: ./ ant/ scripts/ scripts/derby/ scripts/mysql/ src/ src/org/apache/wookie/server/

Author: scottbw
Date: Thu Oct 22 14:47:02 2009
New Revision: 828725

URL: http://svn.apache.org/viewvc?rev=828725&view=rev
Log:
Applied enhancements for WOOKIE-26 that support both derby/jetty and mysql/tomcat deployment based on build.properties. Instructions provided in the readme.txt. 

Added:
    incubator/wookie/branches/standalone/scripts/derby/
    incubator/wookie/branches/standalone/scripts/derby/hibernate.cfg.xml
    incubator/wookie/branches/standalone/scripts/derby/widgetdb.sql
      - copied unchanged from r827972, incubator/wookie/branches/standalone/scripts/widgetdb_derby.sql
    incubator/wookie/branches/standalone/scripts/mysql/
    incubator/wookie/branches/standalone/scripts/mysql/hibernate.cfg.xml
    incubator/wookie/branches/standalone/scripts/mysql/widgetdb.sql
      - copied unchanged from r827970, incubator/wookie/branches/standalone/scripts/widgetdb_mysql.sql
Removed:
    incubator/wookie/branches/standalone/scripts/widgetdb_derby.sql
    incubator/wookie/branches/standalone/scripts/widgetdb_mysql.sql
    incubator/wookie/branches/standalone/src/hibernate.cfg.xml
Modified:
    incubator/wookie/branches/standalone/ant/ivy-webapp-common.xml
    incubator/wookie/branches/standalone/build.properties
    incubator/wookie/branches/standalone/build.xml
    incubator/wookie/branches/standalone/ivy.xml
    incubator/wookie/branches/standalone/readme.txt
    incubator/wookie/branches/standalone/src/org/apache/wookie/server/Start.java

Modified: incubator/wookie/branches/standalone/ant/ivy-webapp-common.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/ant/ivy-webapp-common.xml?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/ant/ivy-webapp-common.xml (original)
+++ incubator/wookie/branches/standalone/ant/ivy-webapp-common.xml Thu Oct 22 14:47:02 2009
@@ -17,10 +17,7 @@
 -->
 <project xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
 
-	<property name="project.webapp.dir" location="src/webapp" />
-	<property name="project.lib.dir" location="lib" />
-
-	<property name="serveltEngine.webapp.dir" location="C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps" />
+	<property name="project.webapp.dir" location="WebContent" />
 
 	<import file="ivy-java-common.xml" />
 	
@@ -29,19 +26,23 @@
 			<java classname="org.apache.wookie.server.Stop" classpathref="run.path.id" />
 		</parallel>
 	</target>
-
-	<target name="deploy-webapp" depends="compile-core">
-		<copy todir="${serveltEngine.webapp.dir}/${ant.project.name}/WEB-INF/classes">
+	
+    <target name="clean-webapp-lib" description="--> clean the project webapp libs directory">
+        <delete includeemptydirs="true" dir="${project.weblib.dir}"/>
+    </target>
+
+	<target name="deploy-webapp" depends="compile-core, clean-webapp-lib">
+		<ivy:cachepath pathid="project.core.class.path" conf="default" />
+		<copy todir="${servletEngine.webapp.dir}/${ant.project.name}/WEB-INF/classes">
 			<fileset dir="${project.build.classes.dir}" />
 		</copy>
 
-		<copy todir="${serveltEngine.webapp.dir}/${ant.project.name}">
+		<copy todir="${servletEngine.webapp.dir}/${ant.project.name}">
 			<fileset dir="${project.webapp.dir}" />
 		</copy>
-
-		<ivy:retrieve />
-		<copy todir="${serveltEngine.webapp.dir}/${ant.project.name}/WEB-INF/lib">
-			<fileset dir="${project.lib.dir}" />
+		<ivy:retrieve conf="deploy" pattern="${project.weblib.dir}/[artifact]-[revision].[ext]"/>
+		<copy todir="${servletEngine.webapp.dir}/${ant.project.name}/WEB-INF/lib">
+			<fileset dir="${project.weblib.dir}" />
 		</copy>
 
 		<antcall target="post-deploy-webapp" />
@@ -50,7 +51,9 @@
 	<target name="post-deploy-webapp" />
 
 	<target name="undeploy-webapp">
-		<delete dir="${serveltEngine.webapp.dir}/${ant.project.name}" />
+		<delete dir="${servletEngine.webapp.dir}/${ant.project.name}" />
 	</target>
+	
+	<target name="redeploy-webapp" description="replace current webapp" depends="undeploy-webapp, deploy-webapp"/>
 
 </project>

Modified: incubator/wookie/branches/standalone/build.properties
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/build.properties?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/build.properties (original)
+++ incubator/wookie/branches/standalone/build.properties Thu Oct 22 14:47:02 2009
@@ -1,3 +1,10 @@
 build.dir=build
 ivy.repository.dir=ant
-main.class.name=org.apache.wookie.server.Start
\ No newline at end of file
+main.class.name=org.apache.wookie.server.Start
+## Set this to the location of your tomcat app engine, or ignore if using built-in Jetty server
+servletEngine.webapp.dir=/usr/local/tomcat-5.5.27/webapps/
+project.weblib.dir=weblibs
+
+## Enable one of the following settings to select database to use
+#project.using.mysql=true
+project.using.derby=true
\ No newline at end of file

Modified: incubator/wookie/branches/standalone/build.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/build.xml?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/build.xml (original)
+++ incubator/wookie/branches/standalone/build.xml Thu Oct 22 14:47:02 2009
@@ -25,11 +25,34 @@
 	
   <import file="ant/ivy-webapp-common.xml"/>
 	
-  <target name="post-compile-core">
-  	<copy file="scripts/widgetdb_derby.sql" tofile="${project.build.classes.dir}/widgetdb_derby.sql"/>
+ <target name="set-mysql-script-dir" if="project.using.mysql">
+ 	<property name="project.scripts.dir" value="scripts/mysql"/>
+ </target>
+  <target name="set-derby-script-dir" if="project.using.derby">
+	 	<property name="project.scripts.dir" value="scripts/derby"/>
   </target>
 	
-  <target name="clean-db" description="delete the Wookie database, it will be recreated next time the application is run">
+  <target name="post-compile-core" depends="set-mysql-script-dir, set-derby-script-dir">
+  	<copy file="${project.scripts.dir}/widgetdb.sql" tofile="${project.build.classes.dir}/widgetdb.sql"/>
+  	<copy file="${project.scripts.dir}/hibernate.cfg.xml" tofile="${project.build.classes.dir}/hibernate.cfg.xml"/>
+  </target>
+	
+  <target name="clean-mysql" if="project.using.mysql">
+  	<echo>Deleting mysql database</echo>
+  	<sql 
+	   	classpath="${project.weblib.dir}/mysql-connector-java-5.1.6.jar"
+	   	driver="com.mysql.jdbc.Driver" 
+	   	url="jdbc:mysql://localhost:3306/?autoReconnect=true" 
+	   	userid="java" password="java" >
+	      <transaction src="${project.scripts.dir}/widgetdb.sql"/>
+	</sql>
+  </target>
+	
+  <target name="clean-derby" if="project.using.derby">
+  	<echo>Deleting derby database files</echo>
   	<delete dir="${db.name}"/>
   </target>
+	
+  <target name="clean-db" depends="clean-mysql, clean-derby" description="delete the Wookie database, it will be recreated next time the application is run">
+  </target>
 </project>
\ No newline at end of file

Modified: incubator/wookie/branches/standalone/ivy.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/ivy.xml?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/ivy.xml (original)
+++ incubator/wookie/branches/standalone/ivy.xml Thu Oct 22 14:47:02 2009
@@ -2,46 +2,47 @@
     <info organisation="org.apache.incubator" module="wookie-server"/>
     
     <configurations>
-	  <conf name="default"/>
+      <conf name="deploy"/>
+	  <conf name="default" extends="deploy"/>
 	  <conf name="test" extends="default"/>
 	</configurations>
     
     <dependencies>
-        <dependency org="antlr" name="antlr" rev="2.7.7" conf="default->default">
+        <dependency org="antlr" name="antlr" rev="2.7.7" conf="deploy->default">
         </dependency>
-        <dependency org="cglib" name="cglib" rev="2.2" conf="default->default">
+        <dependency org="cglib" name="cglib" rev="2.2" conf="deploy->default">
         </dependency>
-        <dependency org="commons-codec" name="commons-codec" rev="1.3" conf="default->default">
+        <dependency org="commons-codec" name="commons-codec" rev="1.3" conf="deploy->default">
         </dependency>
-        <dependency org="commons-collections" name="commons-collections" rev="3.2" conf="default->default">
+        <dependency org="commons-collections" name="commons-collections" rev="3.2" conf="deploy->default">
         </dependency>
-        <dependency org="commons-compress" name="commons-compress" rev="1.0" conf="default->default">
+        <dependency org="commons-compress" name="commons-compress" rev="1.0" conf="deploy->default">
 		</dependency>
-        <dependency org="commons-configuration" name="commons-configuration" rev="1.4" conf="default->default">
+        <dependency org="commons-configuration" name="commons-configuration" rev="1.4" conf="deploy->default">
         </dependency>
-        <dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.1" conf="default->default">
+        <dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.1" conf="deploy->default">
         </dependency>
-        <dependency org="commons-httpclient" name="commons-httpclient" rev="3.0.1" conf="default->default">
+        <dependency org="commons-httpclient" name="commons-httpclient" rev="3.0.1" conf="deploy->default">
         </dependency>
-        <dependency org="commons-lang" name="commons-lang" rev="2.4" conf="default->default">
+        <dependency org="commons-lang" name="commons-lang" rev="2.4" conf="deploy->default">
         </dependency>
-        <dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="default->optional">
+        <dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="deploy->default">
         </dependency>
-        <dependency org="dom4j" name="dom4j" rev="1.6.1" conf="default->default">
+        <dependency org="dom4j" name="dom4j" rev="1.6.1" conf="deploy->default">
         </dependency>
-        <dependency org="htmlcleaner" name="htmlcleaner" rev="2.1.0" conf="default->default">
+        <dependency org="htmlcleaner" name="htmlcleaner" rev="2.1.0" conf="deploy->default">
         </dependency>
-        <dependency org="org.directwebremoting" name="dwr" rev="2.0.5" conf="default->default">
+        <dependency org="org.directwebremoting" name="dwr" rev="2.0.5" conf="deploy->default">
 		</dependency>
-        <dependency org="com.google.collections" name="google-collections" rev="0.9" conf="default->default">
+        <dependency org="com.google.collections" name="google-collections" rev="0.9" conf="deploy->default">
         </dependency>
-        <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.5.2" conf="default->default">
+        <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.5.2" conf="deploy->default">
         </dependency> 
         <dependency org="org.apache.incubator" name="shindig-common" rev="1.1-SNAPSHOT">
         </dependency>
-        <dependency org="org.jdom" name="jdom" rev="1.1" conf="default->default">
+        <dependency org="org.jdom" name="jdom" rev="1.1" conf="deploy->default">
         </dependency>
-        <dependency org="org.json" name="json" rev="20080701" conf="default->default">
+        <dependency org="org.json" name="json" rev="20080701" conf="deploy->default">
         </dependency>
         
         <!-- Libraries used in a development/test environment but not in deployment -->
@@ -64,11 +65,11 @@
         
         
         <!-- Libraries with incompatible open source licences -->
-        <dependency org="org.hibernate" name="hibernate-c3p0" rev="3.3.1.GA" conf="default->default">
+        <dependency org="org.hibernate" name="hibernate-c3p0" rev="3.3.1.GA" conf="deploy->default">
         </dependency>
-        <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf="default->default,optional">
+        <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf="deploy->default,optional">
         </dependency>
-        <dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="default->default">
+        <dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="deploy->default">
         </dependency>
         
         <exclude module="spring"/>

Modified: incubator/wookie/branches/standalone/readme.txt
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/readme.txt?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/readme.txt (original)
+++ incubator/wookie/branches/standalone/readme.txt Thu Oct 22 14:47:02 2009
@@ -46,6 +46,27 @@
 
 ant clean-db
 
+Deploying using Tomcat and MySQL
+================================
+
+The following will compile and run the server in Tomcat with a MySQL database. The database tables will be set up automatically, however you
+must have previously created a database called "widgetdb" with username "java" and password "java".
+
+cd PROJECT_HOME_DIRECTORY
+edit the "build.properties" file, uncommenting "project.using.mysql=true" and setting "servletEngine.webapp.dir=" to the location of your
+tomcat webapps directory.
+ant clean-build deploy-webapp
+
+To access the administration menu (http://localhost:8080/wookie/admin) use the username 'java' and password 'java'.
+
+If you want to start with a completely clean build then use:
+
+ant clean-build deploy-webapp
+
+If you want to clean the database use:
+
+ant clean-db
+
 Debugging
 =========
 

Added: incubator/wookie/branches/standalone/scripts/derby/hibernate.cfg.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/scripts/derby/hibernate.cfg.xml?rev=828725&view=auto
==============================================================================
--- incubator/wookie/branches/standalone/scripts/derby/hibernate.cfg.xml (added)
+++ incubator/wookie/branches/standalone/scripts/derby/hibernate.cfg.xml Thu Oct 22 14:47:02 2009
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+    <session-factory>        
+		<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
+		<property name="hibernate.connection.url">jdbc:derby:widgetDB;create=true</property>
+		<!-- ************************************************************************ -->  
+		<!-- In production you should ***not*** use hbm2ddl.auto update, it is unsafe --> 
+		<!-- ************************************************************************ -->  
+		<property name="hibernate.hbm2ddl.auto">update</property>
+		<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
+		<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
+		<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
+		<property name="hibernate.connection.username">java</property>  
+		<property name="hibernate.connection.password">java</property> 
+		<property name="connection.pool_size">80</property>        
+		<property name="c3p0.acquire_increment">1</property> 
+		<property name="c3p0.idle_test_period">200</property> <!-- seconds --> 
+		<property name="c3p0.max_size">80</property> 
+		<property name="c3p0.max_statements">0</property> 
+		<property name="c3p0.min_size">5</property> 
+		<property name="c3p0.timeout">80</property>
+	    
+		<property name="hibernate.connection.release_mode">auto</property>               
+		<!-- Enable Hibernate's automatic session context management -->
+		<property name="current_session_context_class">thread</property>
+		<!-- Disable the second-level cache  -->
+		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
+		<!-- Echo all executed SQL to stdout -->
+		<property name="show_sql">false</property>
+		<mapping resource="org/apache/wookie/beans/schema.hbm.xml"/>
+       
+    </session-factory>
+
+</hibernate-configuration>
+

Added: incubator/wookie/branches/standalone/scripts/mysql/hibernate.cfg.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/scripts/mysql/hibernate.cfg.xml?rev=828725&view=auto
==============================================================================
--- incubator/wookie/branches/standalone/scripts/mysql/hibernate.cfg.xml (added)
+++ incubator/wookie/branches/standalone/scripts/mysql/hibernate.cfg.xml Thu Oct 22 14:47:02 2009
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+    <session-factory>   
+    	<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
+		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/widgetdb</property>   
+		<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
+		<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
+		<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
+		<property name="hibernate.connection.username">java</property>  
+		<property name="hibernate.connection.password">java</property>      
+		<property name="connection.pool_size">80</property>        
+		<property name="c3p0.acquire_increment">1</property> 
+		<property name="c3p0.idle_test_period">200</property> <!-- seconds --> 
+		<property name="c3p0.max_size">80</property> 
+		<property name="c3p0.max_statements">0</property> 
+		<property name="c3p0.min_size">5</property> 
+		<property name="c3p0.timeout">80</property>
+	    
+		<property name="hibernate.connection.release_mode">auto</property>               
+		<!-- Enable Hibernate's automatic session context management -->
+		<property name="current_session_context_class">thread</property>
+		<!-- Disable the second-level cache  -->
+		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
+		<!-- Echo all executed SQL to stdout -->
+		<property name="show_sql">false</property>
+		<mapping resource="org/apache/wookie/beans/schema.hbm.xml"/>
+       
+    </session-factory>
+
+</hibernate-configuration>
+

Modified: incubator/wookie/branches/standalone/src/org/apache/wookie/server/Start.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/standalone/src/org/apache/wookie/server/Start.java?rev=828725&r1=828724&r2=828725&view=diff
==============================================================================
--- incubator/wookie/branches/standalone/src/org/apache/wookie/server/Start.java (original)
+++ incubator/wookie/branches/standalone/src/org/apache/wookie/server/Start.java Thu Oct 22 14:47:02 2009
@@ -47,7 +47,7 @@
 	 */
 	private static void configureDatabase() throws IOException {
 		logger.debug("Configuring Derby Database");
-		URL sqlFile = Start.class.getClassLoader().getResource("widgetdb_derby.sql");
+		URL sqlFile = Start.class.getClassLoader().getResource("widgetdb.sql");
 		StringBuilder fileData = new StringBuilder(1000);
 		FileReader in = new FileReader(sqlFile.getFile());
 		BufferedReader br = new BufferedReader(in);