gump-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stef...@apache.org
Subject svn commit: rev 56861 - in gump/dynagump: . src/java src/java/org src/java/org/apache src/java/org/apache/gump/dynagump src/java/org/apache/gump/dynagump/model src/java/org/apache/gump/dynagump/model/base src/org src/sql webapp/WEB-INF webapp/WEB-INF/classes
Date Sun, 07 Nov 2004 20:09:50 GMT
Author: stefano
Date: Sun Nov  7 12:09:49 2004
New Revision: 56861

Added:
   gump/dynagump/.classpath
   gump/dynagump/.hibernateSynchronizer
   gump/dynagump/.project
   gump/dynagump/src/java/
   gump/dynagump/src/java/Builds.hbm
   gump/dynagump/src/java/Hosts.hbm
   gump/dynagump/src/java/Results.hbm
   gump/dynagump/src/java/Runs.hbm
   gump/dynagump/src/java/Workspaces.hbm
   gump/dynagump/src/java/hibernate.cfg.xml
   gump/dynagump/src/java/org/
      - copied from rev 56748, gump/dynagump/src/org/
   gump/dynagump/src/java/org/apache/
      - copied from rev 56860, gump/dynagump/src/org/apache/
   gump/dynagump/src/java/org/apache/gump/dynagump/model/
   gump/dynagump/src/java/org/apache/gump/dynagump/model/base/
   gump/dynagump/src/java/org/apache/gump/dynagump/model/base/_BaseRootDAO.java
   gump/dynagump/src/sql/
   gump/dynagump/src/sql/mysql.dump
Removed:
   gump/dynagump/src/org/
Modified:
   gump/dynagump/   (props changed)
   gump/dynagump/build.properties
   gump/dynagump/build.xml
   gump/dynagump/src/java/org/apache/gump/dynagump/DynaServlet.java
   gump/dynagump/src/java/org/apache/gump/dynagump/PageServlet.java
   gump/dynagump/webapp/WEB-INF/   (props changed)
   gump/dynagump/webapp/WEB-INF/classes/   (props changed)
Log:
finishing the commit about database integration


Added: gump/dynagump/.classpath
==============================================================================
--- (empty file)
+++ gump/dynagump/.classpath	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/velocity-1.4.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/log4j-1.2.8.jar"/>
+	<classpathentry kind="lib" path="tools/jetty/lib/servlet-2.3.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/commons-pool-1.2.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/commons-dbcp-1.2.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/commons-collections-3.1.jar"/>
+	<classpathentry sourcepath="/Users/stefano/Desktop/hibernate-2.1/src" kind="lib" path="webapp/WEB-INF/lib/hibernate2.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/odmg-3.0.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/ehcache-0.9.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/dom4j-1.4.jar"/>
+	<classpathentry kind="lib" path="webapp/WEB-INF/lib/cglib-full-2.0.2.jar"/>
+	<classpathentry kind="output" path="webapp/WEB-INF/classes"/>
+</classpath>

Added: gump/dynagump/.hibernateSynchronizer
==============================================================================
--- (empty file)
+++ gump/dynagump/.hibernateSynchronizer	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,21 @@
+BasePackageName=base
+DAOPackageName=dao
+UseCustomRootDAO=false
+package=org.apache.gump.dynagump.model
+username=root
+databaseUrl=jdbc:mysql://localhost/gump
+ConfigurationFile=/DynaGump/src/hibernate.cfg.xml
+EnumExclude=
+EnumInclude=
+driver=com.mysql.jdbc.Driver
+BasePackageStyle=Relative
+BOEnabled=true
+BaseDAOUseBasePackage=true
+BaseDAOPackageName=base
+GenerationEnabled=true
+BaseDAOException=net.sf.hibernate.HibernateException
+BaseDAOPackageStyle=Same
+DAOPackageStyle=Relative
+CustomRootDAOClass=
+ContextObject=
+DAOEnabled=true

Added: gump/dynagump/.project
==============================================================================
--- (empty file)
+++ gump/dynagump/.project	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>GumpCharts</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Modified: gump/dynagump/build.properties
==============================================================================
--- gump/dynagump/build.properties	(original)
+++ gump/dynagump/build.properties	Sun Nov  7 12:09:49 2004
@@ -14,7 +14,7 @@
 year=2004
 
 # Locations ---------------------------------------------------
-src = src
+src = src/java
 docs = docs
 legal = legal
 lib = webapp/WEB-INF/lib

Modified: gump/dynagump/build.xml
==============================================================================
--- gump/dynagump/build.xml	(original)
+++ gump/dynagump/build.xml	Sun Nov  7 12:09:49 2004
@@ -71,6 +71,14 @@
             </fileset>
         </copy>
     </target>
+
+    <target name="fixcrlf" depends="init" decription="Cleans up the CRLF problems">
+      <fixcrlf srcdir="${src}"
+        eol="lf" 
+        eof="remove"
+        includes="**/*.java"
+      />
+    </target>
     
     <!--+
         | Cleans up

Added: gump/dynagump/src/java/Builds.hbm
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/Builds.hbm	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
+
+<hibernate-mapping package="org.apache.gump.dynagump.model">
+	<class name="Builds" table="builds">
+		<id
+			column="id"
+			name="Id"
+			type="string"
+		>
+			<generator class="vm" />
+		</id>
+		<property
+			column="log"
+			name="Log"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="end_time"
+			length="19"
+			name="EndTime"
+			not-null="true"
+			type="timestamp"
+		 />
+		<property
+			column="result"
+			length="1"
+			name="Result"
+			not-null="true"
+			type="integer"
+		 />
+		<property
+			column="run"
+			length="64"
+			name="Run"
+			not-null="true"
+			type="string"
+		 />
+		<property
+			column="project"
+			length="16"
+			name="Project"
+			not-null="true"
+			type="string"
+		 />
+		<property
+			column="cause"
+			length="16"
+			name="Cause"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="start_time"
+			length="19"
+			name="StartTime"
+			not-null="true"
+			type="timestamp"
+		 />
+	</class>
+</hibernate-mapping>

Added: gump/dynagump/src/java/Hosts.hbm
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/Hosts.hbm	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
+
+<hibernate-mapping package="org.apache.gump.dynagump.model">
+	<class name="Hosts" table="hosts">
+		<id
+			column="address"
+			name="Address"
+			type="string"
+		>
+			<generator class="vm" />
+		</id>
+		<property
+			column="cpu_number"
+			length="2"
+			name="CpuNumber"
+			not-null="true"
+			type="integer"
+		 />
+		<property
+			column="OS"
+			length="16"
+			name="Os"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="cpu_arch"
+			length="8"
+			name="CpuArch"
+			not-null="true"
+			type="string"
+		 />
+		<property
+			column="description"
+			name="Description"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="disk_Gb"
+			length="8"
+			name="DiskGb"
+			not-null="false"
+			type="integer"
+		 />
+		<property
+			column="OS_version"
+			length="8"
+			name="OsVersion"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="memory_Mb"
+			length="8"
+			name="MemoryMb"
+			not-null="false"
+			type="integer"
+		 />
+		<property
+			column="cpu_speed_Mhz"
+			length="8"
+			name="CpuSpeedMhz"
+			not-null="false"
+			type="integer"
+		 />
+	</class>
+</hibernate-mapping>

Added: gump/dynagump/src/java/Results.hbm
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/Results.hbm	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
+
+<hibernate-mapping package="org.apache.gump.dynagump.model">
+	<class name="Results" table="results">
+		<id
+			column="id"
+			name="Id"
+			type="integer"
+		>
+			<generator class="vm" />
+		</id>
+		<property
+			column="description"
+			name="Description"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="name"
+			length="16"
+			name="Name"
+			not-null="true"
+			type="string"
+		 />
+	</class>
+</hibernate-mapping>

Added: gump/dynagump/src/java/Runs.hbm
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/Runs.hbm	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
+
+<hibernate-mapping package="org.apache.gump.dynagump.model">
+	<class name="Runs" table="runs">
+		<id
+			column="id"
+			name="Id"
+			type="string"
+		>
+			<generator class="vm" />
+		</id>
+		<property
+			column="end_time"
+			length="19"
+			name="EndTime"
+			not-null="true"
+			type="timestamp"
+		 />
+		<property
+			column="workspace"
+			length="48"
+			name="Workspace"
+			not-null="true"
+			type="string"
+		 />
+		<property
+			column="start_time"
+			length="19"
+			name="StartTime"
+			not-null="true"
+			type="timestamp"
+		 />
+	</class>
+</hibernate-mapping>

Added: gump/dynagump/src/java/Workspaces.hbm
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/Workspaces.hbm	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+	"-//Hibernate/Hibernate Mapping DTD//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
+
+<hibernate-mapping package="org.apache.gump.dynagump.model">
+	<class name="Workspaces" table="workspaces">
+		<id
+			column="id"
+			name="Id"
+			type="string"
+		>
+			<generator class="vm" />
+		</id>
+		<property
+			column="host"
+			length="32"
+			name="Host"
+			not-null="true"
+			type="string"
+		 />
+		<property
+			column="description"
+			name="Description"
+			not-null="false"
+			type="string"
+		 />
+		<property
+			column="name"
+			length="16"
+			name="Name"
+			not-null="true"
+			type="string"
+		 />
+	</class>
+</hibernate-mapping>

Added: gump/dynagump/src/java/hibernate.cfg.xml
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/hibernate.cfg.xml	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE hibernate-configuration
+    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
+    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
+
+<hibernate-configuration>
+	<session-factory>
+		<!-- local connection properties -->
+		<property name="hibernate.connection.url">
+			jdbc:mysql://localhost/gump
+		</property>
+		<property name="hibernate.connection.driver_class">
+			com.mysql.jdbc.Driver
+		</property>
+		<property name="hibernate.connection.username">root</property>
+		<property name="hibernate.connection.password" />
+		<!-- property name="hibernate.connection.pool_size"></property -->
+		<!-- dialect for MySQL -->
+		<property name="dialect">
+			net.sf.hibernate.dialect.MySQLDialect
+		</property>
+		<property name="hibernate.show_sql">false</property>
+		<property name="hibernate.use_outer_join">true</property>
+		<property name="hibernate.transaction.factory_class">
+			net.sf.hibernate.transaction.JTATransactionFactory
+		</property>
+		<property name="jta.UserTransaction">
+			java:comp/UserTransaction
+		</property>
+		<mapping resource="Runs.hbm" />
+		<mapping resource="Builds.hbm" />
+		<mapping resource="Hosts.hbm" />
+		<mapping resource="Results.hbm" />
+		<mapping resource="Workspaces.hbm" />
+	</session-factory>
+</hibernate-configuration>

Modified: gump/dynagump/src/java/org/apache/gump/dynagump/DynaServlet.java
==============================================================================
--- gump/dynagump/src/org/apache/gump/dynagump/DynaServlet.java	(original)
+++ gump/dynagump/src/java/org/apache/gump/dynagump/DynaServlet.java	Sun Nov  7 12:09:49 2004
@@ -11,6 +11,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.gump.dynagump.model.dao._RootDAO;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 
@@ -33,14 +34,16 @@
         try {
 			this.config = config;
 			this.context = config.getServletContext();
-			
-			PropertyConfigurator.configure(context.getRealPath("WEB-INF/log4j.properties"));     
  
-			
-			this.props = new Properties();
-			
-			InputStream pis = context.getResource(context.getInitParameter("properties")).openStream();
-			this.props.load(pis);
-			pis.close();						
+
+            InputStream pis = context.getResource("WEB-INF/dynagump.properties").openStream();
+            this.props = new Properties();
+            this.props.load(pis);
+            pis.close();
+            
+			PropertyConfigurator.configure(this.props);
+
+            _RootDAO.initialize();
+
         } catch (Exception e) {
             logger.error("Error initializing DynaGump.", e);
         }       

Modified: gump/dynagump/src/java/org/apache/gump/dynagump/PageServlet.java
==============================================================================
--- gump/dynagump/src/org/apache/gump/dynagump/PageServlet.java	(original)
+++ gump/dynagump/src/java/org/apache/gump/dynagump/PageServlet.java	Sun Nov  7 12:09:49 2004
@@ -1,8 +1,6 @@
 package org.apache.gump.dynagump;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import javax.servlet.ServletConfig;
@@ -10,6 +8,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import net.sf.hibernate.Session;
+import net.sf.hibernate.Transaction;
+
+import org.apache.gump.dynagump.model.dao.HostsDAO;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.exception.ResourceNotFoundException;
@@ -17,31 +19,8 @@
 
 public class PageServlet extends DynaServlet {
 
-    VelocityEngine ve;
-    
-    public class Project implements Comparable {
-        String name;
-        int value;
-        
-        public Project(String name, int value) {
-            this.name = name;
-            this.value = value;
-        }
+    protected VelocityEngine ve;
         
-        public String getName() {
-            return this.name;
-        }
-        
-        public int getValue() {
-            return this.value;
-        }
-        
-        public int compareTo(Object o) {
-            return ((Project) o).getValue() - this.value;
-            
-        }
-    }
-    
     public void init(ServletConfig config) throws ServletException {
         super.init(config);
 
@@ -52,10 +31,10 @@
 			ve.addProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, context.getRealPath("/"));
 			ve.addProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, new Boolean(false));
 			ve.addProperty(RuntimeConstants.VM_LIBRARY_AUTORELOAD, new Boolean(true));
-			ve.init();            
+			ve.init();
         } catch (Exception e) {
             logger.error("Error initializing the PageServlet.", e);
-        }       
+        }      
     }
 
     public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
IOException {
@@ -66,29 +45,31 @@
         int start = uri.lastIndexOf('/') + 1;
         int end = uri.lastIndexOf('.');
         String template = uri.substring(start, end);
-        
-        List fixes = new ArrayList();
-        for (int i = 0; i < 10; i++) {
-            fixes.add(new Project("project-" + i, (int) (i*100*Math.random())));
-        }
-        Collections.sort(fixes);
-        
+
         VelocityContext vcContext = new VelocityContext();
         vcContext.put("message", template);
-        vcContext.put("fixes", fixes);
-        
-		long endTime = System.currentTimeMillis();
 
-		logger.info("Time to process template: " + format(endTime - startTime));
+        Session session = null;
+        Transaction transaction = null;
+        
+        try {
+            HostsDAO dao = new HostsDAO();
+            List hosts = dao.findAll();
 
-		res.setContentType("text/html; charset=UTF-8");		
+            vcContext.put("hosts", hosts);
+            
+            res.setContentType("text/html; charset=UTF-8");		
 		
-		try {
 		    ve.mergeTemplate(template + ".vt", vcContext, res.getWriter());
+            
         } catch (ResourceNotFoundException e) {
             res.sendError(HttpServletResponse.SC_NOT_FOUND);
-		} catch (Exception e) {
-		    logger.error("Error executing the request. ", e);
-		}
+        } catch (Exception e) {
+            res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            logger.error("Error executing the request. ", e);
+        }
+        
+        long endTime = System.currentTimeMillis();
+        if (logger.isInfoEnabled()) logger.info("Time to process servlet: " + format(endTime
- startTime));
 	}
 }

Added: gump/dynagump/src/java/org/apache/gump/dynagump/model/base/_BaseRootDAO.java
==============================================================================
--- (empty file)
+++ gump/dynagump/src/java/org/apache/gump/dynagump/model/base/_BaseRootDAO.java	Sun Nov 
7 12:09:49 2004
@@ -0,0 +1,736 @@
+package org.apache.gump.dynagump.model.base;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import net.sf.hibernate.Criteria;
+import net.sf.hibernate.HibernateException;
+import net.sf.hibernate.Query;
+import net.sf.hibernate.Session;
+import net.sf.hibernate.Transaction;
+import net.sf.hibernate.SessionFactory;
+
+import net.sf.hibernate.cfg.Configuration;
+import net.sf.hibernate.expression.Expression;
+import net.sf.hibernate.expression.Order;
+import net.sf.hibernate.type.Type;
+
+/**
+ * This class has been automatically generated by Hibernate Synchronizer.
+ * For more information or documentation, visit The Hibernate Synchronizer page
+ * at http://www.binamics.com/hibernatesync or contact Joe Hudson at joe@binamics.com.
+ */
+public abstract class _BaseRootDAO {
+
+	protected static Map sessionFactoryMap = new HashMap();
+	protected static ThreadLocal threadedSessions = new ThreadLocal();
+
+	/**
+	 * Configure the session factory by reading hibernate config file
+	 */
+	public static void initialize () throws HibernateException {
+		initialize((String) null);
+	}
+	
+	/**
+	 * Configure the session factory by reading hibernate config file
+	 * @param configFileName the name of the configuration file
+	 */
+	public static void initialize (String configFileName) throws HibernateException {
+		if (null == configFileName && sessionFactoryMap.size() > 0) return;
+		else if (null != sessionFactoryMap.get(configFileName)) return;
+		else {
+			Configuration cfg = new Configuration();
+			if (null == configFileName)
+				cfg.configure();
+			else
+				cfg.configure(configFileName);
+			setSessionFactory(configFileName, cfg.buildSessionFactory());
+		}
+	}
+
+	/**
+	 * Set the session factory
+	 */
+	protected static void setSessionFactory (SessionFactory sessionFactory) {
+		setSessionFactory((String) null, sessionFactory);
+	}
+
+	/**
+	 * Set the session factory
+	 */
+	protected static void setSessionFactory (String configFileName, SessionFactory sessionFactory)
{
+		sessionFactoryMap.put(configFileName, sessionFactory);
+	}
+
+	/**
+	 * Return the SessionFactory that is to be used by these DAOs.  Change this
+	 * and implement your own strategy if you, for example, want to pull the SessionFactory
+	 * from the JNDI tree.
+	 */
+	protected SessionFactory getSessionFactory() throws HibernateException {
+		return getSessionFactory (getConfigurationFileName());
+	}
+
+	private static SessionFactory getSessionFactory(String configFile) throws HibernateException
{
+		if (sessionFactoryMap.size() == 1) return (SessionFactory) sessionFactoryMap.values().toArray()[0];
+		else {
+    		SessionFactory sessionFactory = (SessionFactory) sessionFactoryMap.get(configFile);
+    		if (null == sessionFactory)
+    			if (null == configFile)
+    				throw new RuntimeException("The session factory has not been initialized.");
+    			else
+    				throw new RuntimeException("The session factory for '" + configFile + "' has not
been initialized.");
+    		else
+    			return sessionFactory;
+		}
+	}
+
+	/**
+	 * Return a new Session object that must be closed when the work has been completed.
+	 * @return the active Session
+	 */
+	protected Session getSession() throws HibernateException {
+		return createSession();
+	}
+
+	/**
+	 * Return a new Session object that must be closed when the work has been completed.
+	 * @return the active Session
+	 */
+	public static Session createSession() throws HibernateException {
+		return createSession(null);
+	}
+
+	/**
+	 * Return a new Session object that must be closed when the work has been completed.
+	 * @param configFile the config file must match the meta attribute "config-file" in the
hibernate mapping file
+	 * @return the active Session
+	 */
+	public static Session createSession(String configFile) throws HibernateException {
+		java.util.Stack sessionStack = (java.util.Stack) threadedSessions.get();
+		Session session = null;
+		if (null == sessionStack) {
+			sessionStack = new java.util.Stack();
+			threadedSessions.set(sessionStack);
+		}
+		if (sessionStack.size() > 0) {
+			Object[] arr = (Object[]) sessionStack.peek();
+			String cf = (String) arr[0];
+			if (null == cf) {
+				session = (Session) arr[1];
+			}
+			else if (null != cf && null != configFile) {
+				if (cf.equals(configFile)) session = (Session) arr[1];
+			}
+			if (null == session) {
+				session = getSessionFactory(configFile).openSession();
+				arr = new Object[2];
+				arr[0] = configFile;
+				arr[1] = session;
+				sessionStack.push(arr);
+			}
+		}
+		else {
+			session = getSessionFactory(configFile).openSession();
+			Object[] arr = new Object[2];
+			arr = new Object[2];
+			arr[0] = configFile;
+			arr[1] = session;
+			sessionStack.push(arr);
+		}
+		return session;
+	}
+	
+	/**
+	 * Return the name of the configuration file to be used with this DAO or null if default
+	 */
+	public String getConfigurationFileName () {
+		return null;
+	}
+
+	/**
+	 * Return the specific Object class that will be used for class-specific
+	 * implementation of this DAO.
+	 * @return the reference Class
+	 */
+	protected abstract Class getReferenceClass();
+
+	/**
+	 * Close the session
+	 */
+	public void closeSession () throws HibernateException {
+		java.util.Stack sessionStack = (java.util.Stack) threadedSessions.get();
+		if (null != sessionStack) {
+			Object[] arr = (Object[]) sessionStack.peek();
+			String cf = (String) arr[0];
+			if (null == cf) {
+				Session session = (Session) arr[1];
+				session.close();
+				sessionStack.pop();
+			}
+			else {
+				String configurationFile = getConfigurationFileName();
+				if (null != configurationFile && configurationFile.equals(cf)) {
+					Session session = (Session) arr[1];
+					session.close();
+					sessionStack.pop();
+				}
+			}
+		}
+	}
+
+	/**
+	 * Begin the transaction related to the session
+	 */
+	public Transaction beginTransaction(Session s) throws HibernateException {
+		return s.beginTransaction();
+	}
+
+	/**
+	 * Commit the given transaction
+	 */
+	public void commitTransaction(Transaction t) throws HibernateException {
+		t.commit();
+	}
+
+	/**
+	 * Execute a query. 
+	 * @param query a query expressed in Hibernate's query language
+	 * @return a distinct list of instances (or arrays of instances)
+	 */
+	public java.util.List find(String query) throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return find(query, s);
+		} finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Perform a find but use the session given instead of creating a new one.
+	 * @param query a query expressed in Hibernate's query language
+	 * @s the Session to use
+	 */
+	public java.util.List find(String query, Session s) throws HibernateException {
+		return s.find(query);
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with no filter.
+	 */
+	public java.util.List findAll () throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+    		return findAll(s);
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with no filter.
+	 * Use the session given.
+	 * @param s the Session
+	 */
+	public java.util.List findAll (Session s) throws HibernateException {
+   		return findAll(s, getDefaultOrderProperty());
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with no filter.
+	 */
+	public java.util.List findAll (String orderProperty) throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return findAll(s, orderProperty);
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with no filter.
+	 * Use the session given.
+	 * @param s the Session
+	 */
+	public java.util.List findAll (Session s, String orderProperty) throws HibernateException
{
+		Criteria crit = createCriteria(s);
+		if (null != orderProperty) crit.addOrder(Order.asc(orderProperty));
+		return crit.list();
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with a filter.
+	 * Use the session given.
+	 * @param propName the name of the property to use for filtering
+	 * @param filter the value of the filter
+	 */
+	protected java.util.List findFiltered (String propName, Object filter) throws HibernateException
{
+		return findFiltered(propName, filter, getDefaultOrderProperty());
+	}
+
+	/**
+	 * Return all objects related to the implementation of this DAO with a filter.
+	 * Use the session given.
+	 * @param propName the name of the property to use for filtering
+	 * @param filter the value of the filter
+	 * @param orderProperty the name of the property used for ordering
+	 */
+	protected java.util.List findFiltered (String propName, Object filter, String orderProperty)
throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return findFiltered(s, propName, filter, getDefaultOrderProperty());
+		}
+		finally {
+			closeSession();
+		}
+	}
+	
+	/**
+	 * Return all objects related to the implementation of this DAO with a filter.
+	 * Use the session given.
+	 * @param s the Session
+	 * @param propName the name of the property to use for filtering
+	 * @param filter the value of the filter
+	 * @param orderProperty the name of the property used for ordering
+	 */
+	protected java.util.List findFiltered (Session s, String propName, Object filter, String
orderProperty) throws HibernateException {
+		Criteria crit = createCriteria(s);
+		crit.add(Expression.eq(propName, filter));
+		if (null != orderProperty) crit.addOrder(Order.asc(orderProperty));
+		return crit.list();
+	}
+	
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * @param name the name of a query defined externally 
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name) throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return getNamedQuery(name, s);
+		} finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * Use the session given.
+	 * @param name the name of a query defined externally 
+	 * @param s the Session
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name, Session s) throws HibernateException {
+		Query q = s.getNamedQuery(name);
+		return q.list();
+	}
+
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * Use the parameters given.
+	 * @param name the name of a query defined externally 
+	 * @param params the parameter array
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name, Serializable[] params)
+		throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return getNamedQuery(name, params, s);
+		} finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * Use the parameters given and the Session given.
+	 * @param name the name of a query defined externally 
+	 * @param params the parameter array
+	 * @s the Session
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name, Serializable[] params, Session s)
+		throws HibernateException {
+		Query q = s.getNamedQuery(name);
+		if (null != params) {
+			for (int i = 0; i < params.length; i++) {
+				setParameterValue(q, i, params[i]);
+			}
+		}
+		return q.list();
+	}
+
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * Use the parameters given.
+	 * @param name the name of a query defined externally 
+	 * @param params the parameter Map
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name, Map params)
+		throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return getNamedQuery(name, params, s);
+		} finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Obtain an instance of Query for a named query string defined in the mapping file.
+	 * Use the parameters given and the Session given.
+	 * @param name the name of a query defined externally 
+	 * @param params the parameter Map
+	 * @s the Session
+	 * @return Query
+	 */
+	public java.util.List getNamedQuery(String name, Map params, Session s)
+		throws HibernateException {
+		Query q = s.getNamedQuery(name);
+		if (null != params) {
+			for (Iterator i=params.entrySet().iterator(); i.hasNext(); ) {
+				Map.Entry entry = (Map.Entry) i.next();
+				setParameterValue(q, (String) entry.getKey(), entry.getValue());
+			}
+		}
+		return q.list();
+	}
+
+	/**
+	 * Execute a query.
+	 * @param query a query expressed in Hibernate's query language
+	 * @return a distinct list of instances (or arrays of instances)
+	 */
+	public java.util.List find(String query, Object obj, Type type) throws HibernateException
{
+		Session s = null;
+		try {
+			s = getSession();
+			return find(query, obj, type, s);
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Perform a find but use the session given instead of creating a new one.
+	 * @param query a query expressed in Hibernate's query language
+	 * @s the Session to use
+	 */
+	public java.util.List find(String query, Object obj, Type type, Session s) throws HibernateException
{
+		return s.find(query, obj, type);
+	}
+
+	/**
+	 * Execute a query.
+	 * @param query a query expressed in Hibernate's query language
+	 * @return a distinct list of instances (or arrays of instances)
+	 */
+	public java.util.List find(String query, Object[] obj, Type[] type) throws HibernateException
{
+		Session s = null;
+		try {
+			s = getSession();
+			return find(query, obj, type, s);
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Perform a find but use the session given instead of creating a new one.
+	 * @param query a query expressed in Hibernate's query language
+	 * @s the Session to use
+	 */
+	public java.util.List find(String query, Object[] obj, Type[] type, Session s) throws HibernateException
{
+		return s.find(query, obj, type);
+	}
+
+	/**
+	 * Return a Criteria object that relates to the DAO's table.
+	 * A session will be created if an open one is not located.  This session must be closed!
+	 */
+	protected Criteria createCriteria () throws HibernateException {
+		Session s = getSession();
+		return createCriteria(s);
+	}
+
+	/**
+	 * Return a Criteria object that relates to the DAO's table
+	 */
+	 protected Criteria createCriteria (Session s) throws HibernateException {
+	 	return s.createCriteria(getReferenceClass());
+	 }
+
+	/**
+	 * Return the property of the class you would like to use for default ordering
+	 * @return the property name
+	 */
+	public String getDefaultOrderProperty () {
+		return null;
+	}
+
+	/**
+	 * Convenience method to set paramers in the query given based on the actual object type
in passed in as the value.
+	 * You may need to add more functionaly to this as desired (or not use this at all).
+	 * @param query the Query to set
+	 * @param position the ordinal position of the current parameter within the query
+	 * @param value the object to set as the parameter
+	 */
+	protected void setParameterValue(Query query, int position, Object value) {
+		if (null == value) {
+			return;
+		} else if (value instanceof Boolean) {
+			query.setBoolean(position, ((Boolean) value).booleanValue());
+		} else if (value instanceof String) {
+			query.setString(position, (String) value);
+		} else if (value instanceof Integer) {
+			query.setInteger(position, ((Integer) value).intValue());
+		} else if (value instanceof Long) {
+			query.setLong(position, ((Long) value).longValue());
+		} else if (value instanceof Float) {
+			query.setFloat(position, ((Float) value).floatValue());
+		} else if (value instanceof Double) {
+			query.setDouble(position, ((Double) value).doubleValue());
+		} else if (value instanceof BigDecimal) {
+			query.setBigDecimal(position, (BigDecimal) value);
+		} else if (value instanceof Byte) {
+			query.setByte(position, ((Byte) value).byteValue());
+		} else if (value instanceof Calendar) {
+			query.setCalendar(position, (Calendar) value);
+		} else if (value instanceof Character) {
+			query.setCharacter(position, ((Character) value).charValue());
+		} else if (value instanceof Timestamp) {
+			query.setTimestamp(position, (Timestamp) value);
+		} else if (value instanceof Date) {
+			query.setDate(position, (Date) value);
+		} else if (value instanceof Short) {
+			query.setShort(position, ((Short) value).shortValue());
+		}
+	}
+
+	/**
+	 * Convenience method to set paramers in the query given based on the actual object type
in passed in as the value.
+	 * You may need to add more functionaly to this as desired (or not use this at all).
+	 * @param query the Query to set
+	 * @param key the key name
+	 * @param value the object to set as the parameter
+	 */
+	protected void setParameterValue(Query query, String key, Object value) {
+		if (null == key || null == value) {
+			return;
+		} else if (value instanceof Boolean) {
+			query.setBoolean(key, ((Boolean) value).booleanValue());
+		} else if (value instanceof String) {
+			query.setString(key, (String) value);
+		} else if (value instanceof Integer) {
+			query.setInteger(key, ((Integer) value).intValue());
+		} else if (value instanceof Long) {
+			query.setLong(key, ((Long) value).longValue());
+		} else if (value instanceof Float) {
+			query.setFloat(key, ((Float) value).floatValue());
+		} else if (value instanceof Double) {
+			query.setDouble(key, ((Double) value).doubleValue());
+		} else if (value instanceof BigDecimal) {
+			query.setBigDecimal(key, (BigDecimal) value);
+		} else if (value instanceof Byte) {
+			query.setByte(key, ((Byte) value).byteValue());
+		} else if (value instanceof Calendar) {
+			query.setCalendar(key, (Calendar) value);
+		} else if (value instanceof Character) {
+			query.setCharacter(key, ((Character) value).charValue());
+		} else if (value instanceof Timestamp) {
+			query.setTimestamp(key, (Timestamp) value);
+		} else if (value instanceof Date) {
+			query.setDate(key, (Date) value);
+		} else if (value instanceof Short) {
+			query.setShort(key, ((Short) value).shortValue());
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Load object matching the given key and return it.
+	 */
+	protected Object load(Class refClass, Serializable key) throws HibernateException {
+		Session s = null;
+		try {
+			s = getSession();
+			return load(refClass, key, s);
+		} finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Load object matching the given key and return it.
+	 */
+	protected Object load(Class refClass, Serializable key, Session s) throws HibernateException
{
+		return s.load(refClass, key);
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Persist the given transient instance, first assigning a generated identifier. 
+	 * (Or using the current value of the identifier property if the assigned generator is used.)

+	 */
+	protected Serializable save(Object obj) throws HibernateException {
+		Transaction t = null;
+		Session s = null;
+		try {
+			s = getSession();
+			t = beginTransaction(s);
+			Serializable rtn = save(obj, s);
+			commitTransaction(t);
+			return rtn;
+		}
+		catch (HibernateException e) {
+			if (null != t) t.rollback();
+            throw e;
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Persist the given transient instance, first assigning a generated identifier. 
+	 * (Or using the current value of the identifier property if the assigned generator is used.)

+	 */
+	protected Serializable save(Object obj, Session s) throws HibernateException {
+		return s.save(obj);
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Either save() or update() the given instance, depending upon the value of its
+	 * identifier property.
+	 */
+	protected void saveOrUpdate(Object obj) throws HibernateException {
+		Transaction t = null;
+		Session s = null;
+		try {
+			s = getSession();
+			t = beginTransaction(s);
+			saveOrUpdate(obj, s);
+			commitTransaction(t);
+		}
+		catch (HibernateException e) {
+			if (null != t) t.rollback();
+            throw e;
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Either save() or update() the given instance, depending upon the value of its
+	 * identifier property.
+	 */
+	protected void saveOrUpdate(Object obj, Session s) throws HibernateException {
+		s.saveOrUpdate(obj);
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Update the persistent state associated with the given identifier. An exception is thrown
if there is a persistent
+	 * instance with the same identifier in the current session.
+	 * @param obj a transient instance containing updated state
+	 */
+	protected void update(Object obj) throws HibernateException {
+		Transaction t = null;
+		Session s = null;
+		try {
+			s = getSession();
+			t = beginTransaction(s);
+			update(obj, s);
+			commitTransaction(t);
+		}
+		catch (HibernateException e) {
+			if (null != t) t.rollback();
+            throw e;
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Update the persistent state associated with the given identifier. An exception is thrown
if there is a persistent
+	 * instance with the same identifier in the current session.
+	 * @param obj a transient instance containing updated state
+	 * @param s the Session
+	 */
+	protected void update(Object obj, Session s) throws HibernateException {
+		s.update(obj);
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Remove a persistent instance from the datastore. The argument may be an instance associated
with the receiving
+	 * Session or a transient instance with an identifier associated with existing persistent
state. 
+	 */
+	protected void delete(Object obj) throws HibernateException {
+		Transaction t = null;
+		Session s = null;
+		try {
+			s = getSession();
+			t = beginTransaction(s);
+			delete(obj, s);
+			commitTransaction(t);
+		}
+		catch (HibernateException e) {
+			if (null != t) t.rollback();
+            throw e;
+		}
+		finally {
+			closeSession();
+		}
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Remove a persistent instance from the datastore. The argument may be an instance associated
with the receiving
+	 * Session or a transient instance with an identifier associated with existing persistent
state. 
+	 */
+	protected void delete(Object obj, Session s) throws HibernateException {
+		s.delete(obj);
+	}
+
+	/**
+	 * Used by the base DAO classes but here for your modification
+	 * Re-read the state of the given instance from the underlying database. It is inadvisable
to use this to implement
+	 * long-running sessions that span many business tasks. This method is, however, useful
in certain special circumstances.
+	 */
+	protected void refresh(Object obj, Session s) throws HibernateException {
+		s.refresh(obj);
+	}
+
+
+}
\ No newline at end of file

Added: gump/dynagump/src/sql/mysql.dump
==============================================================================
--- (empty file)
+++ gump/dynagump/src/sql/mysql.dump	Sun Nov  7 12:09:49 2004
@@ -0,0 +1,147 @@
+-- MySQL dump 10.8
+--
+-- Host: localhost    Database: gump
+-- ------------------------------------------------------
+-- Server version	4.1.7-standard
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */;
+
+--
+-- Table structure for table `builds`
+--
+
+DROP TABLE IF EXISTS `builds`;
+CREATE TABLE `builds` (
+  `id` varchar(96) NOT NULL default '',
+  `run` varchar(64) NOT NULL default '',
+  `project` varchar(16) NOT NULL default '',
+  `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
+  `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
+  `result` int(1) NOT NULL default '0',
+  `log` text,
+  `cause` varchar(16) default NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `builds`
+--
+
+
+/*!40000 ALTER TABLE `builds` DISABLE KEYS */;
+LOCK TABLES `builds` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `builds` ENABLE KEYS */;
+
+--
+-- Table structure for table `hosts`
+--
+
+DROP TABLE IF EXISTS `hosts`;
+CREATE TABLE `hosts` (
+  `address` varchar(32) NOT NULL default '',
+  `description` text,
+  `cpu_arch` varchar(8) NOT NULL default 'x86',
+  `cpu_number` int(2) unsigned NOT NULL default '1',
+  `cpu_speed_Mhz` int(8) unsigned default NULL,
+  `OS` varchar(16) default NULL,
+  `memory_Mb` int(8) unsigned default NULL,
+  `disk_Gb` int(8) unsigned default NULL,
+  `OS_version` varchar(8) default NULL,
+  PRIMARY KEY  (`address`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `hosts`
+--
+
+
+/*!40000 ALTER TABLE `hosts` DISABLE KEYS */;
+LOCK TABLES `hosts` WRITE;
+INSERT INTO `hosts` VALUES ('brutus.apache.org','The main ASF host for Gump.','x86',4,2800,'Debian
GNU/Linux',2048,64,'2.4.27-1');
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `hosts` ENABLE KEYS */;
+
+--
+-- Table structure for table `results`
+--
+
+DROP TABLE IF EXISTS `results`;
+CREATE TABLE `results` (
+  `id` int(1) NOT NULL default '0',
+  `name` varchar(16) NOT NULL default '',
+  `description` text,
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `results`
+--
+
+
+/*!40000 ALTER TABLE `results` DISABLE KEYS */;
+LOCK TABLES `results` WRITE;
+INSERT INTO `results` VALUES (0,'success','This is the status of a successful project build'),(1,'failure','This
is the status of a failed project build'),(2,'stalled','This is the status of a project that
cannot build due to unsatisfied dependencies');
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `results` ENABLE KEYS */;
+
+--
+-- Table structure for table `runs`
+--
+
+DROP TABLE IF EXISTS `runs`;
+CREATE TABLE `runs` (
+  `id` varchar(64) NOT NULL default '',
+  `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
+  `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
+  `workspace` varchar(48) NOT NULL default '',
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `runs`
+--
+
+
+/*!40000 ALTER TABLE `runs` DISABLE KEYS */;
+LOCK TABLES `runs` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `runs` ENABLE KEYS */;
+
+--
+-- Table structure for table `workspaces`
+--
+
+DROP TABLE IF EXISTS `workspaces`;
+CREATE TABLE `workspaces` (
+  `id` varchar(48) NOT NULL default '0',
+  `name` varchar(16) NOT NULL default '',
+  `description` text,
+  `host` varchar(32) NOT NULL default '',
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `workspaces`
+--
+
+
+/*!40000 ALTER TABLE `workspaces` DISABLE KEYS */;
+LOCK TABLES `workspaces` WRITE;
+INSERT INTO `workspaces` VALUES ('brutus.apache.org:main','main','This is the principal Gump
workspace on Brutus and uses the 1.4.x series of the Sun JVM','brutus.apache.org'),('brutus.apache.org:jdk1.5','jdk1.5','This
workspace runs using Sun Java 1.5.x','brutus.apache.org'),('brutus.apache.org:kaffe','kaffe','This
workspace uses the GNU Kaffe JVM','brutus.apache.org'),('brutus.apache.org:test','test','This
workspace is used to test the latest and greatest Gump code (checked out from the trunk) and
uses a Java 1.4.x JVM','brutus.apache.org');
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `workspaces` ENABLE KEYS */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+

Mime
View raw message