[jboss-svn-commits] JBL Code SVN: r12398 - in labs/jbossesb/trunk/product/samples/quickstarts: helloworld_hibernate_action and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 8 00:35:06 EDT 2007


Author: tcunning
Date: 2007-06-08 00:35:05 -0400 (Fri, 08 Jun 2007)
New Revision: 12398

Added:
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/build.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/create.sql
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/hibernate.cfg.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jboss-esb.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jbossesb-properties.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jndi.properties
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/juddi.properties
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/listener.log
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.properties
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/readme.txt
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/WEB-INF/
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/WEB-INF/web.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/application.xml
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/action.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/delete.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/edit.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/index.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/insert.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/list.jsp
   labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/update.jsp
Log:
bug:JBESB-434
Add hibernate quickstart.   This quickstart builds a .war and an .esb which are packaged up in an .ear.    The jsps included allow you to perform CRUD operations in hibernate, and the listener will pass messages based on these operations.


Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/build.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/build.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,137 @@
+<project name="Quickstart_helloworld_hibernate_action" 
+	default="run" basedir=".">
+	
+	<description> 
+		${ant.project.name}
+		${line.separator}
+	</description>
+	
+	<property name="additional.deploys" value="lib/*.jar" />
+	
+	
+	<!-- Import the base Ant build script... -->
+	<import file="../conf/base-build.xml"/>
+
+	<path id="hibernate-classpath">
+		<pathelement location="${basedir}/build/classes"/>
+		<fileset dir="${basedir}/lib" includes="*.jar"/>
+	</path>	
+
+	<target name="deploy" depends="build-ear">
+		<copy file="${build.dir}/${ant.project.name}.ear"
+			todir="${org.jboss.esb.server.deploy.dir}"/>
+	</target>
+
+	<target name="config" depends="compile">
+		<copy file="hibernate.cfg.xml"
+                        todir="build/classes"/>
+                <copy file="${basedir}/src/org/jboss/soa/esb/samples/quickstart/hibernateaction/esb-mappings.hbm.xml"
+                        todir="build/classes/org/jboss/soa/esb/samples/quickstart/hibernateaction"/>	
+	</target>
+
+	<target name="build-ear" depends="package-deployment">
+		<jar destfile="${build.dir}/${ant.project.name}.jar">
+			<fileset dir="${build.dir}/classes">
+				<include name="**"/>
+			</fileset>
+			<fileset dir="${basedir}">
+				<include name="hibernate.cfg.xml"/>
+				<include name="esb-mappings.hbm.xml"/>
+			</fileset>
+			<fileset dir="${basedir}/src">
+				<include name="**/*.xml"/>
+			</fileset>
+		</jar>
+		<!-- We build the .esb in a custom manner because
+		 	we are packaging it within an .ear -->
+		<mkdir dir="${build.dir}/META-INF"/>
+		<copy file="jboss-esb.xml" todir="${build.dir}/META-INF"/>
+		<delete file="${build.dir}/${ant.project.name}.esb"/>
+		<jar destfile="${build.dir}/${ant.project.name}.esb">
+			<fileset dir="${build.dir}">
+				<include name="META-INF/*"/>	
+			</fileset>	
+		</jar>	
+
+		<war warfile="${build.dir}/${ant.project.name}.war"
+			webxml="${basedir}/resources/WEB-INF/web.xml">
+			<fileset dir="${basedir}/view">
+				<include name="**/*"/>
+			</fileset>
+		</war>
+
+		<ear destfile="${build.dir}/${ant.project.name}.ear"
+			appxml="${basedir}/resources/application.xml">
+			<fileset dir="${build.dir}">
+				<include name="*.jar"/>
+				<include name="*.war"/>
+				<include name="*.esb"/>
+			</fileset>
+			<fileset dir="${basedir}/lib/ext">
+				<include name="mysql-connector-java-3.1.12-bin.jar"/>
+			</fileset>
+		</ear>	
+	</target>
+  
+	<target name="runtest" depends="config"
+		description="Insert row data into hibernate polled by gateway">
+		<echo>basedir=${basedir}</echo>	
+		<echo>Insert row data into hibernate  polled by gateway</echo>
+
+		<java classname="org.jboss.soa.esb.samples.quickstart.hibernateaction.GatewayPopulator">
+			<classpath refid="hibernate-classpath"/>
+		</java>
+	</target>  
+
+	<target name="dropdb" 
+		description="drop database">
+		<echo>Drop database</echo>
+		<exec executable="mysql" >
+	  		<arg value="--user=root" />
+	  		<arg value="--password=" />
+	  		<arg value="--execute=drop database test_sql_gateway" />
+		</exec>
+	</target>  
+
+	<target name="createdb" depends="config"
+		description="createdb">
+		<echo>Create database and test table</echo>
+                <exec executable="mysql" input="create.sql" >
+                        <arg value="--user=root" />
+                        <arg value="--password=" />
+                </exec>
+		<!--
+		<taskdef name="htools"
+		classname="org.hibernate.tool.ant.HibernateToolTask"
+		classpathref="hibernate-classpath"/>
+		<htools destdir="${basedir}">
+		<classpath refid="hibernate-classpath"/>
+		<configuration
+			configurationfile="hibernate.cfg.xml"/>
+		<hbm2ddl drop="true" outputfilename="sample.sql"/>
+		</htools>	
+		-->
+	</target>  
+
+	<target name="purgetable"
+		description="purgetable">
+		<echo>Purge sql table polled by gateway</echo>
+		<exec executable="mysql">
+			<arg value="--user=root" />
+			<arg value="--password=" />
+			<arg value="--database=test_sql_gateway" />
+			<arg value="--execute=delete from gateway_table" />
+		</exec>
+	</target>  
+
+	<target name="select"
+		description="select * from gateway_table">
+		<echo>Select * from gateway_table</echo>
+		<exec executable="mysql" >
+			<arg value="--user=root" />
+	  		<arg value="--password=" />
+	  		<arg value="--database=test_sql_gateway" />
+	  		<arg value="--execute=select * from gateway_table" />
+	  	</exec>
+	</target>  
+</project>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/create.sql
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/create.sql	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/create.sql	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,11 @@
+-- drop database orders;
+create database orders;
+use orders;
+create table orders
+(
+unique_id serial,
+product text,
+quantity int,
+price float
+);
+create unique index uid_index on orders (unique_id);

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/hibernate.cfg.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/hibernate.cfg.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/hibernate.cfg.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+"-//Hibernate/Hibernate Configuration DTD//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/orders</property>
+      <property name="hibernate.connection.username">root</property>
+      <property name="hibernate.connection.password"></property>
+      <property name="hibernate.connection.pool_size">10</property>
+      <property name="show_sql">true</property>
+      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
+      <property name="hibernate.hbm2ddl.auto">update</property>
+      <property name="current_session_context_class">thread</property>
+<!--      <property name="hibernate.session_factory_name">java:comp/env/hibernate/SessionFactory</property> -->
+	<property name="hibernate.session_factory_name">SessionFactory</property>
+      <!-- Mapping files -->
+      <mapping resource="org/jboss/soa/esb/samples/quickstart/hibernateaction/esb-mappings.hbm.xml"/>
+</session-factory>
+</hibernate-configuration>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jboss-esb.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,55 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+    <providers>
+          <hibernate-provider name="Hibernateprovider"
+		hibernate-cfg-file="hibernate.cfg.xml">
+          	<hibernate-bus busid="helloHibernateChannel" >
+			<hibernate-message-filter
+				classname="org.jboss.soa.esb.samples.quickstart.hibernateaction.Order"
+				event="onLoad,onDelete"/>
+          	</hibernate-bus>
+          </hibernate-provider>
+          
+          <jms-provider name="JBossMQ" 
+          		connection-factory="ConnectionFactory"
+            	jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+            	jndi-URL="localhost" >
+            
+			    <jms-bus busid="quickstartEsbChannel">
+			        <jms-message-filter
+			            dest-type="QUEUE"
+			            dest-name="queue/A"
+			            selector="source='fromHelloworldHibernateAction'"
+			        />
+			    </jms-bus>
+			
+		   </jms-provider>
+
+      </providers>
+      
+      <services>
+        <service 
+			category="myCategory"
+			name="myJmsListener"
+        	description="Hello World Hibernate Action (esb hibernate listener)">
+            <listeners>
+            	<hibernate-listener name="HibernateGateway"
+            		busidref="helloHibernateChannel"
+            		maxThreads="1"
+            		is-gateway="true"/>
+                <jms-listener name="helloWorldJmsAction"
+                              busidref="quickstartEsbChannel"
+                              maxThreads="1"
+                />
+            </listeners>
+            <actions>
+                   <action name="action1" 
+                   	class="org.jboss.soa.esb.samples.quickstart.hibernateaction.MyAction" 
+                   	process="displayMessage" 
+                   	/>      
+            </actions>
+        </service>
+      </services>
+     
+</jbossesb>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jbossesb-properties.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jbossesb-properties.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+  You should have received a copy of the GNU Lesser General Public License,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+    </properties>
+    <properties name="registry">      
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
+    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
+    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+    	<property name="org.jboss.soa.esb.registry.implementationClass" 
+    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" 
+    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" 
+    		value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" 
+    	  value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
+    		value="org.apache.ws.scout.transport.RMITransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/jbossesb"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+    </properties>
+    <properties name="messagerouting">
+    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+    </properties>
+</esb>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jndi.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jndi.properties	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/juddi.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/juddi.properties	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any 
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct 
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+ 
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+  

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/listener.log
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/listener.log	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/listener.log	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,5 @@
+2007-06-04 20:26:53,177 ERROR [main][org.jboss.soa.esb.listeners.config.XmlValidatorImpl] 1-ERROR-null-13:cvc-complex-type.4: Attribute 'tablename' must appear on element 'hibernate-message-filter'.
+2007-06-04 20:26:53,189 ERROR [main][org.jboss.soa.esb.listeners.config.ConfigurationController] The configuration file /Users/tcunning/src/esb/trunk/product/samples/quickstarts/helloworld_hibernate_action/jboss-esb.xml
+ did not pass validation for the following reasons: 
+** 1. ERROR-null-13:cvc-complex-type.4: Attribute 'tablename' must appear on element 'hibernate-message-filter'.
+

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.properties	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,40 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+
+log4j.rootLogger=debug, stdout
+
+log4j.logger.org.hibernate=info
+#log4j.logger.org.hibernate=debug
+
+### log HQL query parser activity
+#log4j.logger.org.hibernate.hql.ast.AST=debug
+
+### log just the SQL
+log4j.logger.org.hibernate.SQL=debug
+
+### log JDBC bind parameters ###
+log4j.logger.org.hibernate.type=info
+
+### log schema export/update ###
+log4j.logger.org.hibernate.tool.hbm2ddl=info
+
+### log HQL parse trees
+#log4j.logger.org.hibernate.hql=debug
+
+### log cache activity ###
+log4j.logger.org.hibernate.cache=info
+
+### log transaction activity
+#log4j.logger.org.hibernate.transaction=debug
+
+### log JDBC resource acquisition
+#log4j.logger.org.hibernate.jdbc=debug
+
+### enable the following line if you want to track down connection ###
+### leakages when using DriverManagerConnectionProvider ###
+#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/log4j.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.hibernate">
+      <priority value="INFO"/>
+   </category>
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="INFO"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/readme.txt	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/readme.txt	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,43 @@
+Overview:
+=========
+This Quickstart requires jboss-4.2.0.GA.
+
+This is a demonstration of a Hibernate listener. This test is configured 
+to use a mysql database running on localhost (see jbossesb.xml).   This 
+quickstart builds an ear containing both an .esb and a .war.    The .war
+has a series of .jsps which demonstrate insert/delete/load/update.   
+
+If you browse the .war and insert items, you can see the Hibernate entities
+that you load and delete items, you can watch the Hibernate entities sent
+in messages to JBoss's console. 
+
+Running this quickstart:
+========================
+    Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+    more detailed descripton of the different ways to run the quickstarts.
+
+Before Running:
+===============
+	1.	install mysql if you have not already.
+	2.	start the mysql database
+	3.	edit mysql.proprties with the user and password to be used with mysql 
+	4.	ant createdb
+
+
+To Run .ear mode:
+=======================
+    1.  In a command terminal window in the quickstart folder type 'ant deploy'.
+    2.  Assuming that your appserver is running tomcat on port 8080, Browse to http://localhost:8080/hibernateaction/list.jsp
+    3.  Watch the events in the JBoss appserver console.
+
+Project file descriptions:
+==========================
+	jbossesb.xml:
+	The JMS gateway and ESB configuration file. It is listening for new rows in the gateway table.
+
+	create.sql:
+	Will create the database and tables.
+
+	lib:
+	Additional jars needed. For example jar for database drivers
+

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/WEB-INF/web.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+         version="2.4">
+
+    <display-name>Helloworld Hibernate Action</display-name>
+
+    <description>Demonstration of Hibernate Listener.</description>
+
+    <welcome-file-list>
+	<welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+
+</web-app>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/application.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/application.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/resources/application.xml	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://java.sun.com/xml/ns/javaee"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
+             version="5">
+
+   <display-name>helloworld_hibernate_action</display-name>
+
+   <module>
+      <web>
+         <web-uri>Quickstart_helloworld_hibernate_action.war</web-uri>
+         <context-root>/hibernateaction</context-root>
+      </web>
+   </module>
+
+   <module>
+	<java>Quickstart_helloworld_hibernate_action.jar</java>
+   </module>
+
+   <module>
+	<java>Quickstart_helloworld_hibernate_action.esb</java>
+   </module>
+
+   <module>
+	<java>mysql-connector-java-3.1.12-bin.jar</java>
+   </module>
+
+</application>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/action.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/action.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/action.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,15 @@
+<html>
+<body>
+<%
+	String product = request.getParameter("product");
+	String quantString = request.getParameter("quantity");
+	String priceString = request.getParameter("price");
+
+	int quantity = Integer.parseInt(quantString);
+	float price = Float.parseFloat(priceString);
+%>
+Product: <%=product%><p>
+Quantity: <%=quantity%><p>
+Price: <%=price%><p>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/delete.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/delete.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/delete.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,23 @@
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.hibernate.Session" %>
+<%@ page import="org.hibernate.Transaction" %>
+<%@ page import="org.jboss.soa.esb.samples.quickstart.hibernateaction.*" %>
+<%
+	long id = Long.parseLong(request.getParameter("id"));
+	Transaction tx = null;
+	Session sess = SessionFactorySingleton.getInstance().getCurrentSession();
+	try {
+		tx = sess.beginTransaction();
+		Object order = sess.load (Order.class, new Long(id));
+		sess.delete(order);
+		tx.commit();
+	} catch (Exception e) {
+		e.printStackTrace();
+		if (tx != null && tx.isActive()) {
+			tx.rollback();
+		}	
+	}
+	response.sendRedirect(request.getContextPath() + "/list.jsp");	
+		
+%>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/edit.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/edit.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/edit.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,52 @@
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.hibernate.Session" %>
+<%@ page import="org.hibernate.Transaction" %>
+<%@ page import="org.jboss.soa.esb.samples.quickstart.hibernateaction.*" %>
+<html>
+<head>
+<title>Hibernate Listener Example</title>
+<link rel="shortcut icon" href="http://www.jboss.com/favicon.ico"/>
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/custom.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/global.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/headings.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/layout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/navigation.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/pagelayout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/tables.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/print.css" type="text/css" media="print">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/common.css" type="text/css" media="all">
+</head>
+<%
+	long id = Long.parseLong(request.getParameter("id"));
+	Order order = null;
+	Transaction tx = null;
+	Session sess = SessionFactorySingleton.getInstance().getCurrentSession();
+
+	try {
+		tx = sess.beginTransaction();
+		order = (Order) sess.load (Order.class, new Long(id));
+		tx.commit();
+	} catch (Exception e) {
+		e.printStackTrace();
+	}
+%>
+
+<body>
+	<form id="orderRequest" action="insert.jsp" method="post">
+	<table width="100%" border="0" cellpadding="10" cellspacing="3">
+		<tr><td>Product</td><td><input type="text" 
+			value="<%=order.getProduct()%>"
+			name="product" id="product"/></td></tr>
+		<tr><td>Quantity</td><td><input type="text" 
+			value="<%=order.getQuantity()%>" 
+			name="quantity" id="quantity"/></td></tr>
+		<tr><td>Price</td><td><input type="text" 
+			value="<%=order.getPrice()%>" 
+			name="price" id="price"/></td></tr>
+		<tr><td><input type="submit" value="submit"></td></tr>
+	</table>
+	</form>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/index.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/index.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/index.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>Hibernate Listener Example</title>
+<link rel="shortcut icon" href="http://www.jboss.com/favicon.ico"/>
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/custom.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/global.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/headings.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/layout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/navigation.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/pagelayout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/tables.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/print.css" type="text/css" media="print">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/common.css" type="text/css" media="all">
+</head>
+<body>
+	<form id="orderRequest" action="insert.jsp" method="post">
+	<table width="100%" border="0" cellpadding="10" cellspacing="3">
+		<tr><td>Product</td><td><input type="text" value="Widgets"
+			name="product" id="product"/></td></tr>
+		<tr><td>Quantity</td><td><input type="text" value="2" 
+			name="quantity" id="quantity"/></td></tr>
+		<tr><td>Price</td><td><input type="text" value="2.40" 
+			name="price" id="price"/></td></tr>
+		<tr><td><input type="submit" value="submit"></td></tr>
+	</table>
+	</form>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/insert.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/insert.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/insert.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,38 @@
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.hibernate.Session" %>
+<%@ page import="org.hibernate.Transaction" %>
+<%@ page import="org.jboss.soa.esb.samples.quickstart.hibernateaction.*" %>
+<html>
+<body>
+<%
+	String product = request.getParameter("product");
+	String quantString = request.getParameter("quantity");
+	String priceString = request.getParameter("price");
+
+	int quantity = Integer.parseInt(quantString);
+	float price = Float.parseFloat(priceString);
+
+	Order insOrder = new Order(product, new Integer(quantity),
+		new Float(price));
+	Transaction tx = null;
+	Session sess = SessionFactorySingleton.getInstance().openSession();
+	try {
+		tx = sess.beginTransaction();
+		sess.save(insOrder);
+		tx.commit();
+		sess.flush();
+	} catch (Exception e) {
+		e.printStackTrace();
+		if (tx != null && tx.isActive()) {
+			tx.rollback();
+		}
+	}	
+
+	response.sendRedirect(request.getContextPath() + "/list.jsp");	
+%>
+Product: <%=product%><p>
+Quantity: <%=quantity%><p>
+Price: <%=price%><p>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/list.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/list.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/list.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,59 @@
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.hibernate.Session" %>
+<%@ page import="org.hibernate.Transaction" %>
+<%@ page import="org.jboss.soa.esb.samples.quickstart.hibernateaction.*" %>
+
+<html>
+<head>
+<title>Hibernate Listener Example</title>
+<link rel="shortcut icon" href="http://www.jboss.com/favicon.ico"/>
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/custom.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/global.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/headings.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/layout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/navigation.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/pagelayout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/tables.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/print.css" type="text/css" media="print">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/common.css" type="text/css" media="all">
+</head>
+<body>
+	<form id="orderRequest" action="/processorder" method="post">
+	<table width="100%" border="0" cellpadding="10" cellspacing="3">
+		<tr>
+			<td>Product</td>
+			<td>Quantity</td>
+			<td>Price</td>
+			<td>Action</td>
+		</tr>
+		<%
+		Transaction tx = null;
+		Session sess = SessionFactorySingleton.getInstance().openSession();
+	
+		try {
+			tx = sess.beginTransaction();
+			List records = sess.createQuery("select o from Order as o").list();
+			for (Iterator iter = records.iterator(); iter.hasNext();) {
+				Order order = (Order) iter.next();
+				if (order != null) {
+			%>
+		<tr>	
+			<td><%=order.getProduct()%></td>
+			<td><%=order.getQuantity()%></td>
+			<td><%=order.getPrice()%></td>
+			<td><a href="<%=request.getContextPath() + "/edit.jsp"%>?id=<%=order.getId()%>">Edit</a> | 
+				<a href="<%=request.getContextPath() + "/delete.jsp"%>?id=<%=order.getId()%>">Delete</a></td>
+		</tr>
+			<%
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();	
+		}
+		%>
+		<tr><td colspan="3"><a href="<%=request.getContextPath() + "/index.jsp"%>">Return to Entry Page</a></td>
+	</table>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/update.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/update.jsp	                        (rev 0)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_hibernate_action/view/update.jsp	2007-06-08 04:35:05 UTC (rev 12398)
@@ -0,0 +1,37 @@
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.hibernate.Session" %>
+<%@ page import="org.hibernate.Transaction" %>
+<%@ page import="org.jboss.soa.esb.samples.quickstart.hibernateaction.*" %>
+<%
+	String product = request.getParameter("product");
+	String quantString = request.getParameter("quantity");
+	String priceString = request.getParameter("price");
+
+	int quantity = Integer.parseInt(quantString);
+	float price = Float.parseFloat(priceString);
+
+	Transaction tx = null;
+	Session sess = SessionFactorySingleton.getInstance().getCurrentSession();
+	try {
+		tx = sess.beginTransaction();
+		Query q = sess.createQuery("update Order "
+			+ "set product = :product, "
+			+ "set quantity = :quantity, "
+			+ "set price = :price");
+		q.setString("product", product);
+		q.setInteger("quantity", new Integer(quantity));
+		q.setLong("price", new Long(price));
+		q.executeUpdate();
+		tx.commit();
+	} catch (Exception e) {
+		e.printStackTrace();
+		if (tx != null && tx.isActive()) {
+			tx.rollback();
+		}
+	} finally {
+		sess.close();
+	}
+
+	response.sendRedirect(request.getContextPath() + "/list.jsp");	
+%>




More information about the jboss-svn-commits mailing list