You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by aj...@apache.org on 2005/08/22 04:33:50 UTC

svn commit: r234419 [3/10] - in /gump/branches/Gump3/presentation: ./ META-INF/ WEB-INF/ WEB-INF/class/ WEB-INF/class/org/ WEB-INF/class/org/apache/ WEB-INF/class/org/apache/gump/ WEB-INF/class/org/apache/gump/dynagump/ WEB-INF/class/org/apache/gump/dy...

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+   <class name="org.apache.gump.dynagump.presentation.database.hibernate.RunsHib" table="runs">
+        <id name="id" column="id" />
+
+        <property name="startTime" column="start_time"/>
+        <property name="endTime" column="end_time"/>
+        <many-to-one name="workspaceId" column="workspace_id" class="org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib"/>
+
+        <property name="name" column="name"/>
+
+    </class>
+ 
+
+
+
+</hibernate-mapping>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+
+  
+   <class name="org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib" table="workspaces">
+        <id name="id" column="id" />
+
+        <property name="name" column="name"/>
+        <property name="host" column="host"/>
+        <property name="description" column="description"/>
+
+    </class>
+
+</hibernate-mapping>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/resources/application
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/resources/application?rev=234419&view=auto
==============================================================================
    (empty)

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Build.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Build.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Build.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryObject.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryObject.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryObject.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryVO.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryVO.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/HistoryVO.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Host.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Host.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Host.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectBuildVO.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectBuildVO.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectBuildVO.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectVO.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectVO.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/ProjectVO.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Run.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Run.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/Run.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/RunStatusVO.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/RunStatusVO.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/RunStatusVO.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/StatusVO.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/StatusVO.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/StatusVO.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/WorkSpace.class
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/WorkSpace.class?rev=234419&view=auto
==============================================================================
Binary file - no diff available.

Propchange: gump/branches/Gump3/presentation/WEB-INF/classes/org/apache/gump/dynagump/presentation/valueObjects/WorkSpace.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: gump/branches/Gump3/presentation/WEB-INF/src/hibernate.cfg.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/hibernate.cfg.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/hibernate.cfg.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/hibernate.cfg.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE hibernate-configuration PUBLIC
+        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+
+    <session-factory>
+
+        <!-- Database connection settings -->
+        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
+        <property name="connection.url">jdbc:mysql://localhost/gump</property>
+        <property name="connection.username">root</property>
+        <property name="connection.password"></property>
+
+        <!-- JDBC connection pool (use the built-in) -->
+        <property name="connection.pool_size">1</property>
+
+        <!-- SQL dialect -->
+        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
+
+        <!-- Echo all executed SQL to stdout -->
+        <property name="show_sql">true</property>
+
+        <!-- Drop and re-create the database schema on startup 
+        <property name="hbm2ddl.auto">create</property>-->
+
+
+
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.hbm.xml"/>        
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.hbm.xml"/>
+        <mapping resource="org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml"/>
+    </session-factory>
+
+</hibernate-configuration>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/ModuleController.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/ModuleController.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/ModuleController.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/ModuleController.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,89 @@
+package org.apache.gump.dynagump.presentation;
+/**
+ * @author hodden
+ * 
+ * Facade Controller against the database and data layer.
+ * The controller is static to decrese the amount of running objects. 
+ */
+import java.sql.SQLException;
+import java.util.List;
+
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.database.DBHandler;
+import org.apache.gump.dynagump.presentation.database.controller.DBController;
+import org.apache.gump.dynagump.presentation.valueObjects.Build;
+import org.apache.gump.dynagump.presentation.valueObjects.Host;
+import org.apache.gump.dynagump.presentation.valueObjects.Run;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+
+public class ModuleController {
+	
+	private static ModuleController ref;	
+	private DBController db;
+	
+	/**
+	 * Constructor intitates a db connection.
+	 * 
+	 * @throws CouldNotFindDBException
+	 */
+	private ModuleController() throws CouldNotFindDBException{
+		db = DBHandler.getController();
+	}
+	/**
+	 * static method to get the ModuleController Object.
+	 * 
+	 * @return reference to a ModuleController Object
+	 * @throws CouldNotFindDBException
+	 */
+	public static ModuleController getController() throws CouldNotFindDBException{
+		if(ref==null){
+			ref = new ModuleController();
+		}
+		return ref;
+	}
+	/**
+	 * Returns a list of all the Hosts from the db in a Host Object
+	 * @return list of Host Objects
+	 * @throws SQLException
+	 */
+	public List<Host> getHosts()throws SQLException{		
+		List<Host> li = db.getHosts();
+		db.setWorkspace(li);
+		return li;
+	}
+	/**
+	 * Returns a list of runs from a given workspace
+	 * @param workspace - name of the workspace (String)
+	 * @return A list of Run objects
+	 * @throws SQLException
+	 */
+	public List<Run> getRuns(String workspace)throws SQLException{		
+		return db.getRuns(workspace);
+	}
+	/**
+	 * Returns a Runstatus object from the run with the given id.
+	 * @param id - Run id
+	 * @return A RunStatus Value Object
+	 * @throws CouldNotFindDBException
+	 * @throws SQLException
+	 */
+	public RunStatusVO getRunStatus(String id) throws CouldNotFindDBException, SQLException{
+		RunStatusVO r = new RunStatusVO();
+		DBController db  = DBHandler.getController();
+		db.getBuilds(r, id);
+		db.setDependencies(r);
+		return r;
+	}
+	/**
+	 * Adds a history object with history to the package of its past states and statistics.
+	 * @param b The build object
+	 * @throws SQLException
+	 * @throws CouldNotFindDBException
+	 */
+	public void addProjectHistory(Build b) throws SQLException,CouldNotFindDBException{
+		if(b.getHistory() == null){
+			DBController db  = DBHandler.getController();
+			db.addHistory(b);
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/StatusEvaluator.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/StatusEvaluator.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/StatusEvaluator.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/StatusEvaluator.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,39 @@
+package org.apache.gump.dynagump.presentation;
+
+import java.sql.SQLException;
+
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.database.DBHandler;
+import org.apache.gump.dynagump.presentation.database.controller.DBController;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+/**
+ * 
+ * @author hodden
+ * 
+ * Controller for the Status evaluator. Evaluates and calculates the information retrieved from the database before presenting it for the user on a jsp.
+ *
+ */
+public class StatusEvaluator {
+
+	/**
+	 * Constructor
+	 *
+	 */
+	public StatusEvaluator(){
+		
+	}
+	/**
+	 * Calculates and evaluates the information from the db of the build for the given run by id.
+	 * @param id - repsresenting the run id (String)
+	 * @return Run Status Value Object
+	 * @throws SQLException
+	 * @throws CouldNotFindDBException
+	 */
+	public RunStatusVO getStatus(String id)throws SQLException, CouldNotFindDBException{
+		RunStatusVO r = new RunStatusVO();
+		DBController db  = DBHandler.getController();
+		db.getBuilds(r, id);
+		db.setDependencies(r);
+		return r;
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/BuildsAction.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/BuildsAction.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/BuildsAction.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/BuildsAction.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,58 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.ModuleController;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.valueObjects.Host;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+/**
+ * Action to get the workspaces from the database
+ * @author hodden
+ *
+ */
+//TODO Change the name to workspaceAction
+public class BuildsAction extends Action {
+
+	private static Log log = LogFactory.getLog(BuildsAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			ModuleController mc = ModuleController.getController();
+			List<Host> li = mc.getHosts();
+			request.getSession().setAttribute("workspaces", li);
+		}catch(SQLException sqle){
+			log.error(sqle.getMessage());
+			errorMsg = sqle.getMessage();
+			forward = false;
+		}catch(CouldNotFindDBException cnfdbe){
+			log.error(cnfdbe.getMessage());
+			errorMsg = cnfdbe.getMessage();
+			forward = false;
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ListProjectBuilds.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ListProjectBuilds.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ListProjectBuilds.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ListProjectBuilds.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,64 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.database.DBHandler;
+import org.apache.gump.dynagump.presentation.database.controller.DBController;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public class ListProjectBuilds extends Action {
+	private static Log log = LogFactory.getLog(ProjectStatusAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			String id = request.getParameter("id");
+			if(id == null || id.equals("")){
+				id = (String)request.getSession().getAttribute("projectId");
+			}
+			if(id == null){
+				throw new RuntimeException("No Run project slected!\n You have to select a project in order to see all its builds");
+			}
+			DBController db = DBHandler.getController();
+			List builds = db.getProjectBuildsList(id);
+			request.getSession().setAttribute("projects", builds);
+		}catch(SQLException sqle){
+			log.error(sqle.getMessage());
+			sqle.getStackTrace();
+			errorMsg = sqle.getMessage();
+			forward = false;			
+		}catch(CouldNotFindDBException cnfdbe){
+			log.error(cnfdbe.getMessage());
+			cnfdbe.getStackTrace();
+			errorMsg = cnfdbe.getMessage();
+			forward = false;			
+		}catch(RuntimeException e){
+			log.error(e.getMessage());
+			e.getStackTrace();
+			errorMsg = e.getMessage();
+			forward = false;		
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectListAction.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectListAction.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectListAction.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectListAction.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,58 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.database.DBHandler;
+import org.apache.gump.dynagump.presentation.database.controller.DBController;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public class ProjectListAction extends Action {
+
+	private static Log log = LogFactory.getLog(ProjectStatusAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			DBController db = DBHandler.getController();
+			List projects = db.getProjects();
+			request.getSession().setAttribute("projects", projects);
+		}catch(SQLException sqle){
+			log.error(sqle.getMessage());
+			sqle.getStackTrace();
+			errorMsg = sqle.getMessage();
+			forward = false;			
+		}catch(CouldNotFindDBException cnfdbe){
+			log.error(cnfdbe.getMessage());
+			cnfdbe.getStackTrace();
+			errorMsg = cnfdbe.getMessage();
+			forward = false;			
+		}catch(RuntimeException e){
+			log.error(e.getMessage());
+			e.getStackTrace();
+			errorMsg = e.getMessage();
+			forward = false;		
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectStatusAction.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectStatusAction.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectStatusAction.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ProjectStatusAction.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,75 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.ModuleController;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.valueObjects.Build;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+/**
+ * Action to list the projects indivdual statistics such as number of failures, success, duration of state and so on.
+ * @author hodden
+ *
+ */
+public class ProjectStatusAction extends Action {
+	
+	private static Log log = LogFactory.getLog(ProjectStatusAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			String id = request.getParameter("id");
+			if(id == null || id.equals("")){
+				throw new RuntimeException("No Project Selected!\n You have to select a project from the status page (select: workspace/run/project).");
+			}
+			
+			RunStatusVO rs = (RunStatusVO)request.getSession().getAttribute("runsStatus");
+			Build build = rs.getBuild(id);
+			ModuleController mc = ModuleController.getController();
+			mc.addProjectHistory(build);
+			request.getSession().setAttribute("project", build);
+
+		}catch (CouldNotFindDBException cnfe){
+			log.error(cnfe.getMessage());
+			cnfe.getStackTrace();
+			errorMsg = cnfe.getMessage();
+			forward = false;			
+		}catch (SQLException sqle){
+			log.error(sqle.getMessage());
+			sqle.getStackTrace();
+			errorMsg = sqle.getMessage();
+			forward = false;			
+		}catch (NullPointerException nullE){
+			log.error(nullE.getMessage());
+			nullE.getStackTrace();
+			errorMsg = nullE.getMessage();
+			forward = false;			
+		}catch(RuntimeException e){
+			log.error(e.getMessage());
+			e.getStackTrace();
+			errorMsg = e.getMessage();
+			forward = false;		
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ShowRunsAction.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ShowRunsAction.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ShowRunsAction.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/ShowRunsAction.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,66 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.ModuleController;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+/**
+ * Action to get the runs for a given workspace from the database.
+ * The list of runs are stored in the session Object and later retrieved by the jsp page.
+ * @author hodden
+ *
+ */
+public class ShowRunsAction extends Action {
+
+	private static Log log = LogFactory.getLog(ShowRunsAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+		
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			String workspace = request.getParameter("workspace");
+			if(workspace == null || workspace.equals("")){
+				workspace = (String)request.getSession().getAttribute("currentWorkspace");
+			}
+			if(workspace == null){
+				throw new Exception("No workspace Selected!\n You have to select a workspace to see that workspace's runs.");
+			}
+			ModuleController mc = ModuleController.getController();			
+			request.getSession().setAttribute("runs", mc.getRuns(workspace));
+			request.getSession().setAttribute("currentWorkspace", workspace);
+		}catch(SQLException sqle){
+			log.error(sqle.getMessage());
+			errorMsg = sqle.getMessage();
+			forward = false;
+			
+		}catch(CouldNotFindDBException cnfdbe){
+			log.error(cnfdbe.getMessage());
+			errorMsg = cnfdbe.getMessage();
+			forward = false;
+		}catch(Exception e){
+			log.error(e.getMessage());
+			errorMsg = e.getMessage();
+			forward = false;			
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/StatusRunAction.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/StatusRunAction.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/StatusRunAction.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/actions/StatusRunAction.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,70 @@
+package org.apache.gump.dynagump.presentation.actions;
+
+import java.sql.SQLException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.gump.dynagump.presentation.ModuleController;
+import org.apache.gump.dynagump.presentation.database.CouldNotFindDBException;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+/**
+ * Action class to get the information of all the build for a given run.
+ * @author hodden
+ *
+ */
+public class StatusRunAction extends Action {
+	
+	private static Log log = LogFactory.getLog(StatusRunAction.class);
+	
+	public ActionForward execute(ActionMapping mapping,ActionForm form,
+			HttpServletRequest request,HttpServletResponse response){
+		
+		boolean forward = true;
+		String errorMsg = null;
+		
+		try{
+			String id = request.getParameter("id");
+			if(id == null || id.equals("")){
+				id = (String)request.getSession().getAttribute("currentRun");
+			}
+			if(id == null){
+				throw new RuntimeException("No Run Selected!\n You have to select a workspace and a build to see that the builds for that workspace.");
+			}
+			
+			ModuleController mc = ModuleController.getController();
+			RunStatusVO rs = mc.getRunStatus(id);
+			request.getSession().setAttribute("runsStatus", rs);
+			request.getSession().setAttribute("currentRun", id);
+		}catch(SQLException sqle){
+			log.error(sqle.getMessage());
+			errorMsg = sqle.getMessage();
+			forward = false;
+			
+		}catch(CouldNotFindDBException cnfdbe){
+			log.error(cnfdbe.getMessage());
+			errorMsg = cnfdbe.getMessage();
+			forward = false;
+		}catch(RuntimeException e){
+			log.error(e.getMessage());
+			e.getStackTrace();
+			errorMsg = e.getMessage();
+			forward = false;			
+		}
+		
+		if(forward == true){
+			return mapping.findForward("success");
+		}
+		else{
+			request.getSession().setAttribute("errorMsg",errorMsg);
+			return mapping.findForward("errorPriv");
+		}
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/CouldNotFindDBException.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/CouldNotFindDBException.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/CouldNotFindDBException.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/CouldNotFindDBException.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,38 @@
+package org.apache.gump.dynagump.presentation.database;
+/**
+ * Exception generated when the database couldn't be initiated
+ * @author hodden
+ *
+ */
+public class CouldNotFindDBException extends Exception {
+
+	
+	
+	private Exception nestedException;
+	
+	public CouldNotFindDBException(){
+		super();
+	}
+	public CouldNotFindDBException(String s){
+		super(s);
+	}
+	public CouldNotFindDBException(Throwable t){
+		super(t);
+	}
+	public CouldNotFindDBException(String s, Throwable t){
+		super(s,t);
+	}
+	public CouldNotFindDBException(String message, Exception e){
+		super(message);
+		this.nestedException = e;
+		
+	}
+	public String getMessage(){
+		String tempStr = super.getMessage();
+		if(nestedException != null){
+			tempStr += "\n\n *** Nested Exception *** \n"+nestedException.getMessage();
+		}
+		return tempStr;
+	}
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/DBHandler.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/DBHandler.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/DBHandler.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/DBHandler.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,32 @@
+package org.apache.gump.dynagump.presentation.database;
+
+import org.apache.gump.dynagump.presentation.database.controller.DBController;
+/**
+ * DBHandler Controller for the dabase settings.
+ * 
+ * @author hodden
+ *
+ */
+//TODO expand to a more dynamic way of configuration ex: xml, textfile.
+public class DBHandler {
+
+	private static String db = "Hibernate"; //"MySQL";
+/*	private static HashMap<String, DBController> dbs = load();
+	
+	private static HashMap<String, DBController> load(){
+		dbs = new HashMap<String, DBController>();
+		dbs.put("MySQL", new MySqlController());
+		return dbs;
+	}*/
+	public static DBController getController() throws CouldNotFindDBException{		
+		try{
+			return (DBController) Class.forName("org.apache.gump.dynagump.presentation.database.controller."+db+"Controller").newInstance();
+		}catch(ClassNotFoundException cnfe){
+			throw new CouldNotFindDBException("Could not initiate Database :"+db, cnfe);
+		}catch(IllegalAccessException iae){
+			throw new CouldNotFindDBException("Could not initiate Database :"+db, iae);
+		}catch(InstantiationException ie){
+			throw new CouldNotFindDBException("Could not initiate Database :"+db, ie);
+		}		
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/DBController.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/DBController.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/DBController.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/DBController.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,69 @@
+package org.apache.gump.dynagump.presentation.database.controller;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import org.apache.gump.dynagump.presentation.valueObjects.Build;
+import org.apache.gump.dynagump.presentation.valueObjects.Host;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectBuildVO;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectVO;
+import org.apache.gump.dynagump.presentation.valueObjects.Run;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+/**
+ * Interface for the Database specific classes to connect to the database.
+ * @author hodden
+ *
+ */
+public interface DBController {
+
+	/**
+	 * Returns the information of hosts and workspaces. See the value object host for more information
+	 * @return List of Host Objects
+	 * @throws SQLException
+	 */
+	public List<Host> getHosts()throws SQLException;
+	
+	public void setWorkspace(List<Host> li)throws SQLException;
+	/**
+	 * Get the runs for a given workspace from the database.
+	 * @param workspace - The given workspace represented by a String
+	 * @return A list of Run Objects.
+	 * @throws SQLException
+	 */
+	public List<Run> getRuns(String workspace)throws SQLException;
+	/**
+	 * Takes a RunStatusVO (RunStatus Value Object) and fills it with information from the database of the builds and package information.
+	 * @param r - RunStatusVO
+	 * @param id - the id of the run 
+	 * @throws SQLException
+	 */
+	public void getBuilds(RunStatusVO r, String id)throws SQLException;
+	/**
+	 * Set dependencies for the packages in the RunStatusVO
+	 * @param r - The Run Status Value Object.
+	 * @throws SQLException
+	 */
+	public void setDependencies(RunStatusVO r)throws SQLException;
+	
+	/**
+	 * Method to add a History object to the Build object containing the build objects history.
+	 * @param b
+	 * @throws SQLException
+	 */
+	public void addHistory(Build b)throws SQLException;
+	
+	/**
+	 * Get a list of all the projects from the database.
+	 * 
+	 * @return a list of projectVO objects.
+	 * @throws SQLException
+	 */
+	public List<ProjectVO> getProjects()throws SQLException;
+	
+	/**
+	 * Returns a list with all the builds and there dependencies
+	 * @return A list a project build value objects
+	 * @throws SQLException
+	 */
+	public List<ProjectBuildVO> getProjectBuildsList(String projectID) throws SQLException;
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/HibernateController.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/HibernateController.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/HibernateController.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/HibernateController.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,183 @@
+package org.apache.gump.dynagump.presentation.database.controller;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.gump.dynagump.presentation.database.hibernate.BuildHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.DependenciesHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.HibernateUtil;
+import org.apache.gump.dynagump.presentation.database.hibernate.HostsHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.ProjectHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.ProjectVersionIdHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.RunsHib;
+import org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib;
+import org.apache.gump.dynagump.presentation.valueObjects.Build;
+import org.apache.gump.dynagump.presentation.valueObjects.HistoryVO;
+import org.apache.gump.dynagump.presentation.valueObjects.Host;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectBuildVO;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectVO;
+import org.apache.gump.dynagump.presentation.valueObjects.Run;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+import org.apache.gump.dynagump.presentation.valueObjects.WorkSpace;
+import org.hibernate.Session;
+
+public class HibernateController implements DBController {
+
+	
+	
+	public HibernateController(){
+		
+	}
+	public List<Host> getHosts()throws SQLException{
+		List<Host> li = new LinkedList<Host>();
+		Session session = HibernateUtil.currentSession();
+		Iterator it = session.createQuery("from HostsHib").list().iterator();
+		Host hostVO;
+		while(it.hasNext()){
+			HostsHib host = (HostsHib) it.next();
+			Iterator wit = host.getWorkspace().iterator();
+			hostVO = new Host(host.getAddress(), host.getDescription(),host.getCpuArch(), host.getCpuNumber(), host.getCpuSpeed(),host.getMemoryMb(),host.getDiskGB(),host.getName());
+			int i= 0;
+
+			while(wit.hasNext()){
+	
+
+				WorkspaceHib wh = (WorkspaceHib)wit.next();
+				hostVO.addWorkspace(new WorkSpace(wh.getId(),wh.getName(),wh.getHost(),wh.getDescription()));
+			}
+			li.add(hostVO);
+		}
+		return li;
+	}	
+	
+	public void setWorkspace(List<Host> li)throws SQLException{		
+	}
+	public List<Run> getRuns(String workspace)throws SQLException{
+		List<Run> li = new LinkedList<Run>();
+		Session session = HibernateUtil.currentSession();		
+		Iterator<RunsHib> it = session.createQuery("from RunsHib where workspaceId='"+workspace+"'").list().iterator();
+		RunsHib tempRun;
+		while(it.hasNext()){
+			tempRun = it.next();
+			li.add(new Run(tempRun.getId(),tempRun.getStartTime(),tempRun.getEndTime(),tempRun.getWorkspaceId().getId(),tempRun.getName()));
+		}
+		return li;
+	}
+	public void getBuilds(RunStatusVO r, String id)throws SQLException{
+		
+		Session session = HibernateUtil.currentSession();		
+		Iterator<BuildHib> it = session.createQuery("from BuildHib where runId='"+id+"'").list().iterator();
+		while(it.hasNext()){
+			BuildHib bh = it.next();
+			ProjectHib ph = bh.getProjectId().getProject();
+			r.addBuild(new Build(
+						bh.getBuildId(), 
+						bh.getRunId().getId(), 
+						bh.getProjectId().getId(),
+						bh.getStartTime(),
+						bh.getEndTime(),
+						bh.getResult().getId(),
+						bh.getLog(),
+						bh.getResult().getName(),
+						ph.getName(),
+						ph.getId(),
+						ph.getDescription(),
+						ph.getModule().getName()
+						));
+		}		
+	}
+	public void setDependencies(RunStatusVO r)throws SQLException{
+		HashMap<String, Build> builds = r.getBuildsMap();
+		
+		Set<String> keys = builds.keySet();
+		Iterator<String> it = keys.iterator();
+		String key = null;
+		while(it.hasNext()){
+			
+			key = it.next();
+			
+			
+			Session session = HibernateUtil.currentSession();		
+			Iterator<DependenciesHib> depIt = session.createQuery("from DependenciesHib where dependant='"+builds.get(key).getProjectVersionId()+"'").list().iterator();
+			int i=0;
+/*			while(depIt.hasNext()){
+				System.out.println(i++);
+				String Bid = depIt.next().getBuild().getRunId();
+				System.out.println("id: "+Bid+" key: "+key+" build:"+ builds.get(Bid));
+				
+				builds.get(key).addDependees(builds.get(Bid));	
+			}*/
+			
+		}		
+		
+		
+	}
+	public void addHistory(Build b)throws SQLException{
+		Session session = HibernateUtil.currentSession();		
+		ProjectHib ph = (ProjectHib) session.load(org.apache.gump.dynagump.presentation.database.hibernate.ProjectHib.class, b.getProjectId());
+		HistoryVO history = new HistoryVO();	
+		Iterator<ProjectVersionIdHib> it = ph.getProjectVersion().iterator();
+		
+		while(it.hasNext()){
+
+			BuildHib bh = it.next().getBuild();			
+			history.addValues(bh.getResult().getId(),bh.getStartTime());
+			history.setValues();
+		}		
+		b.addHistory(history);
+	}
+	public List<ProjectVO> getProjects()throws SQLException{
+		List<ProjectVO> li = new LinkedList<ProjectVO>();
+		Session session = HibernateUtil.currentSession();		
+		Iterator<ProjectHib> phIt =  session.createQuery("from ProjectHib").list().iterator();
+		while(phIt.hasNext()){
+			ProjectHib ph = phIt.next();
+			li.add(new ProjectVO(
+					ph.getId(),
+					ph.getName(),
+					ph.getDescription(),
+					ph.getModule().getId(),
+					ph.getModule().getName()));
+		}
+		
+		return li;
+	}
+	public List<ProjectBuildVO> getProjectBuildsList(String projectID) throws SQLException{
+		List<ProjectBuildVO> li = new LinkedList<ProjectBuildVO>();
+		Session session = HibernateUtil.currentSession();
+		ProjectHib ph = (ProjectHib) session.load(org.apache.gump.dynagump.presentation.database.hibernate.ProjectHib.class, projectID);
+		Iterator<ProjectVersionIdHib> it = ph.getProjectVersion().iterator();
+		while(it.hasNext()){
+		ProjectBuildVO tempVO = null;
+		ProjectVersionIdHib pvih = it.next();
+		BuildHib buildhib = pvih.getBuild();
+		
+			tempVO = new ProjectBuildVO();
+			tempVO.setId(buildhib.getBuildId());
+			tempVO.setName(ph.getName());
+			tempVO.setDescription(ph.getDescription());
+			tempVO.setModule_id(ph.getModule().getId());
+			tempVO.setModule_name(ph.getModule().getName());
+			tempVO.setBuild_id(buildhib.getBuildId());
+			tempVO.setRun_id(buildhib.getRunId().getId());
+			tempVO.setRun_name(buildhib.getRunId().getName());
+			tempVO.setResult(buildhib.getResult().getId());
+			
+			tempVO.setResultString(buildhib.getResult().getName());
+			tempVO.setEnd_time(buildhib.getEndTime());
+			tempVO.setStart_time(buildhib.getStartTime());
+			tempVO.setWorkspace_id(buildhib.getRunId().getWorkspaceId().getId());
+			tempVO.setWorkspace_name(buildhib.getRunId().getWorkspaceId().getName());
+			tempVO.setProjectVersionID(pvih.getId());
+			li.add(tempVO);
+		}
+		
+		
+		return li;
+	}
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/MySQLController.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/MySQLController.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/MySQLController.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/controller/MySQLController.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,207 @@
+package org.apache.gump.dynagump.presentation.database.controller;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.gump.dynagump.presentation.valueObjects.Build;
+import org.apache.gump.dynagump.presentation.valueObjects.HistoryVO;
+import org.apache.gump.dynagump.presentation.valueObjects.Host;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectBuildVO;
+import org.apache.gump.dynagump.presentation.valueObjects.ProjectVO;
+import org.apache.gump.dynagump.presentation.valueObjects.Run;
+import org.apache.gump.dynagump.presentation.valueObjects.RunStatusVO;
+
+
+public class MySQLController implements DBController {
+
+	private Connection con;
+	private Statement stm;
+	
+	public MySQLController()throws ClassNotFoundException, SQLException{
+		 
+		 
+		 // Load the JDBC driver
+		 String driverName = "com.mysql.jdbc.Driver"; // MySQL MM JDBC driver
+		 Class.forName("com.mysql.jdbc.Driver"); 
+		    
+		        // Create a connection to the database
+		 String serverName = "localhost";
+		 String mydatabase = "gump";
+		 String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
+		 String username = "root";
+		 String password = "";
+		 con = DriverManager.getConnection(url, username, password);
+		 stm = con.createStatement();
+	}
+	public List<Host> getHosts()throws SQLException{
+		//TODO A more Effective query, do both host and workspace in one request.
+		
+		List<Host> li = new LinkedList<Host>();
+		
+		Statement smt = con.createStatement();
+		ResultSet rs = smt.executeQuery("select * from hosts");
+		while(rs.next()){
+			li.add(new Host(rs));
+		}		
+		rs.close();		
+		return li;
+		
+	}
+	public void setWorkspace(List<Host> li)throws SQLException{
+		
+		ResultSet rs = null;
+		for(int i=0; i < li.size(); i++){
+			rs = stm.executeQuery("select * from workspaces WHERE host='"+li.get(i).getAddress()+"'");
+			li.get(i).setWorkspaces(rs);
+			rs.close();
+		}
+		
+	}
+	public List<Run> getRuns(String workspace)throws SQLException{
+		ResultSet rs = stm.executeQuery("Select * From runs Where workspace_id='"+workspace+"'");
+		LinkedList<Run> li = new LinkedList<Run>();
+		while(rs.next()){
+			li.add(new Run(rs));
+			
+		}
+		rs.close();
+		return li;
+	}
+	public void getBuilds(RunStatusVO r, String id) throws SQLException{
+		
+		ResultSet rs = stm.executeQuery("SELECT builds.*, results.name AS result_name, projects.id AS project_id, projects.*, "
+									   +"modules.description AS module_description, modules.name AS module_name FROM builds "
+									   +"LEFT JOIN results ON builds.result=results.id "
+									   +"LEFT JOIN project_versions ON builds.project_version_id=project_versions.id "
+									   +"LEFT JOIN projects ON project_versions.project_id=projects.id "
+									   +"LEFT JOIN modules ON projects.module_id = modules.id "
+									   +"WHERE builds.run_id='"+id+"'");
+		while(rs.next()){
+			r.addBuild(new Build(rs));
+			
+		}
+		rs.close();
+	}
+	public void setDependencies(RunStatusVO r)throws SQLException{
+		HashMap<String, Build> builds = r.getBuildsMap();
+		
+		Set<String> keys = builds.keySet();
+		Iterator<String> it = keys.iterator();
+		String key = null;
+		while(it.hasNext()){
+			
+			key = it.next();
+			
+			ResultSet rs = stm.executeQuery("SELECT project_dependencies.dependee, builds.id FROM project_dependencies LEFT JOIN builds ON project_dependencies.dependee=builds.project_version_id WHERE dependant='"+builds.get(key).getProjectVersionId()+"'");
+			while(rs.next()){
+				
+				builds.get(key).addDependees(builds.get(rs.getString("id")));	
+			}
+			rs.close();
+		}		
+	}
+	public void addHistory(Build b) throws SQLException{
+		String query =  "SELECT builds.start_time AS start, builds.end_time AS end, builds.result AS result " 
+		+"FROM projects " 
+		+"LEFT JOIN project_versions ON projects.id=project_versions.project_id "
+		+"LEFT JOIN builds ON project_versions.id=builds.project_version_id "
+		+"WHERE projects.id='"+b.getProjectId()+"' ORDER BY start DESC ";
+		
+		ResultSet rs = stm.executeQuery(query);
+		HistoryVO history = new HistoryVO();
+		while(rs.next()){
+			history.addValues(rs.getInt("result"),rs.getString("start"));			
+		}
+		history.setValues();
+		b.addHistory(history);
+		rs.close();
+	}
+	public List<ProjectVO> getProjects() throws SQLException{
+		List<ProjectVO> li = new LinkedList<ProjectVO>();
+		String query ="SELECT projects.*, modules.name AS module_name FROM projects "
+					 +"LEFT JOIN modules ON modules.id = projects.module_id";
+		ResultSet rs = stm.executeQuery(query);
+		
+		while(rs.next()){
+			li.add(new ProjectVO(
+					rs.getString("id"),
+					rs.getString("name"),
+					rs.getString("description"),
+					rs.getString("module_id"),
+					rs.getString("module_name")));
+		}
+		rs.close();
+		return li;
+	}
+	public List<ProjectBuildVO> getProjectBuildsList(String projectID) throws SQLException{
+		List<ProjectBuildVO> li = new LinkedList<ProjectBuildVO>();
+		String query = "SELECT projects.*, builds.id AS build_id, builds.run_id, results.name AS result_name, builds.result, builds.start_time, builds.end_time, runs.workspace_id, runs.name AS run_name, workspaces.name AS workspace_name, modules.name AS module_name,project_versions.id AS project_versions_id "
+					  +"FROM projects "
+					  +"LEFT JOIN project_versions ON project_versions.project_id=projects.id " 
+					  +"LEFT JOIN builds ON project_versions.id=builds.project_version_id "
+					  +"LEFT JOIN runs ON builds.run_id=runs.id "
+					  +"LEFT JOIN workspaces ON runs.workspace_id=workspaces.id "
+					  +"LEFT JOIN modules ON projects.module_id = modules.id "
+					  +"LEFT JOIN results ON builds.result=results.id "
+					  +"WHERE projects.id='"+projectID+"'";
+
+		ResultSet rs = stm.executeQuery(query);
+		ProjectBuildVO tempVO = null;
+		while(rs.next()){
+			tempVO = new ProjectBuildVO();
+			tempVO.setId(rs.getString("id"));
+			tempVO.setName(rs.getString("name"));
+			tempVO.setDescription(rs.getString("description"));
+			tempVO.setModule_id(rs.getString("module_id"));
+			tempVO.setModule_name(rs.getString("module_name"));
+			tempVO.setBuild_id(rs.getString("build_id"));
+			tempVO.setRun_id(rs.getString("run_id"));
+			tempVO.setRun_name(rs.getString("run_name"));
+			tempVO.setResult(rs.getInt("result"));
+			
+			tempVO.setResultString(rs.getString("result_name"));
+			tempVO.setEnd_time(rs.getString("end_time"));
+			tempVO.setStart_time(rs.getString("start_time"));
+			tempVO.setWorkspace_id(rs.getString("workspace_id"));
+			tempVO.setWorkspace_name(rs.getString("workspace_name"));
+			tempVO.setProjectVersionID(rs.getString("project_versions_id"));
+			li.add(tempVO);
+		}
+		rs.close();
+		for(int i=0; i<li.size(); i++){
+			tempVO = li.get(i);
+			tempVO.setDependees(this.dependees(tempVO.getProjectVersionID()));
+			tempVO.setDependant(this.dependant(tempVO.getProjectVersionID()));
+		}
+		return li;
+	}
+	private List<String> dependees(String s) throws SQLException{
+		List<String> li = new LinkedList<String>();
+		String query = "SELECT * FROM `project_dependencies` WHERE  dependant ='"+s+"'";
+		ResultSet rs = stm.executeQuery(query);
+		while(rs.next()){
+			li.add(rs.getString("dependee"));
+		}
+		rs.close();
+		return li;
+	}
+	private List<String> dependant(String s) throws SQLException{
+		List<String> li = new LinkedList<String>();
+		String query = "SELECT * FROM `project_dependencies` WHERE  dependee ='"+s+"'";
+		ResultSet rs = stm.executeQuery(query);
+		while(rs.next()){
+			li.add(rs.getString("dependant"));
+		}
+		rs.close();
+		return li;
+	}
+
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+	<class name="org.apache.gump.dynagump.presentation.database.hibernate.BuildHib" table="builds">
+    	<id name="buildId" column="id"/>
+	    <many-to-one name="runId" column="run_id" class="org.apache.gump.dynagump.presentation.database.hibernate.RunsHib"/>
+
+
+	    <property name="startTime" column="start_time"/>
+    	<property name="endTime" column="end_time"/>
+    	
+ 		<many-to-one name="result" column="result" class="org.apache.gump.dynagump.presentation.database.hibernate.ResultHib"/>
+	    <property name="log" column="log"/>
+ 	    <many-to-one name="ProjectId" column="project_version_id" not-null="true"/>
+
+	</class>
+
+	
+</hibernate-mapping>

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/BuildHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,69 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import java.util.Set;
+
+public class BuildHib {
+	private String buildId;
+	private RunsHib runId;
+	private String startTime;
+	private String endTime;
+	private ResultHib result;
+	private String log;
+	private ProjectVersionIdHib projectId;
+	private ProjectHib project;
+	
+
+
+	
+	public ResultHib getResult() {
+		return result;
+	}
+	public void setResult(ResultHib result) {
+		this.result = result;
+	}
+	public ProjectHib getProject() {
+		return project;
+	}
+	public void setProject(ProjectHib project) {
+		this.project = project;
+	}
+	public ProjectVersionIdHib getProjectId() {
+		return projectId;
+	}
+	public void setProjectId(ProjectVersionIdHib projectId) {
+		this.projectId = projectId;
+	}
+	public String getEndTime() {
+		return endTime;
+	}
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+
+	public String getBuildId() {
+		return buildId;
+	}
+	public void setBuildId(String buildId) {
+		this.buildId = buildId;
+	}
+	public String getLog() {
+		return log;
+	}
+	public void setLog(String log) {
+		this.log = log;
+	}
+
+
+	public RunsHib getRunId() {
+		return runId;
+	}
+	public void setRunId(RunsHib runId) {
+		this.runId = runId;
+	}
+	public String getStartTime() {
+		return startTime;
+	}
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+
+    <class name="org.apache.gump.dynagump.presentation.database.hibernate.DependenciesHib" table="project_dependencies">
+        <id name="dependant" column="dependant" /> 
+
+        <many-to-one name="build" column="dependee" not-null="true"/>
+	</class>
+</hibernate-mapping>
+

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/DependenciesHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,30 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+public class DependenciesHib {
+
+	private String dependee;
+	private String dependant;
+	private BuildHib build;
+	
+	public String getDependant() {
+		return dependant;
+	}
+	public void setDependant(String dependant) {
+		this.dependant = dependant;
+	}
+	public String getDependee() {
+		return dependee;
+	}
+	public void setDependee(String dependee) {
+		this.dependee = dependee;
+	}
+	public BuildHib getBuild() {
+		return build;
+	}
+	public void setBuild(BuildHib build) {
+		this.build = build;
+	}
+	
+	
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HibernateUtil.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HibernateUtil.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HibernateUtil.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HibernateUtil.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,42 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+
+public class HibernateUtil {
+
+    public static final SessionFactory sessionFactory;
+
+    static {
+        try {
+            // Create the SessionFactory from hibernate.cfg.xml
+            sessionFactory = new Configuration().configure().buildSessionFactory();
+        } catch (Throwable ex) {
+            // Make sure you log the exception, as it might be swallowed
+            System.err.println("Initial SessionFactory creation failed." + ex);
+            throw new ExceptionInInitializerError(ex);
+        }
+    }
+
+    public static final ThreadLocal session = new ThreadLocal();
+
+    public static Session currentSession() throws HibernateException {
+        Session s = (Session) session.get();
+        // Open a new Session, if this thread has none yet
+        if (s == null) {
+            s = sessionFactory.openSession();
+            // Store it in the ThreadLocal variable
+            session.set(s);
+        }
+        return s;
+    }
+
+    public static void closeSession() throws HibernateException {
+        Session s = (Session) session.get();
+        if (s != null)
+            s.close();
+        session.set(null);
+    }
+}
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+
+    <class name="org.apache.gump.dynagump.presentation.database.hibernate.HostsHib" table="hosts">
+        <id name="address" column="address" />
+ 
+        <property name="description" column="description"/>
+        <property name="cpuArch" column="cpu_arch"/>
+        <property name="cpuNumber" column="cpu_number"/>
+        <property name="cpuSpeed" column=" cpu_speed_Mhz"/>
+        <property name="memoryMb" column="memory_Mb"/>
+        <property name="diskGB" column="disk_Gb" not-null="false"/>
+        <property name="name" column="name"/>
+        <set name="workspace" inverse="true">
+            <key column="host"/>
+            <one-to-many class="org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib"/>
+        </set>
+    </class>
+ 
+
+</hibernate-mapping>
+

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/HostsHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,78 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import java.util.Set;
+
+
+
+
+
+public class HostsHib {
+
+	private String address;
+	private String description;
+	private String cpuArch;
+	private int cpuNumber;
+	private int cpuSpeed;
+	private int memoryMb;
+	private int diskGB;
+	private String name;
+	private Set workspace;
+	
+	
+	public Set getWorkspace() {
+		return workspace;
+	}
+	public void setWorkspace(Set workspace) {
+		this.workspace = workspace;
+	}
+	public String getAddress() {
+		return address;
+	}
+	public void setAddress(String address) {
+		this.address = address;
+	}
+	public String getCpuArch() {
+		return cpuArch;
+	}
+	public void setCpuArch(String cpuArch) {
+		this.cpuArch = cpuArch;
+	}
+	public int getCpuNumber() {
+		return cpuNumber;
+	}
+	public void setCpuNumber(int cpuNumber) {
+		this.cpuNumber = cpuNumber;
+	}
+	public int getCpuSpeed() {
+		return cpuSpeed;
+	}
+	public void setCpuSpeed(int cpuSpeed) {
+		this.cpuSpeed = cpuSpeed;
+	}
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public int getDiskGB() {
+		return diskGB;
+	}
+	public void setDiskGB(int diskGB) {
+		this.diskGB = diskGB;
+	}
+	public int getMemoryMb() {
+		return memoryMb;
+	}
+	public void setMemoryMb(int memoryMb) {
+		this.memoryMb = memoryMb;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+		
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+	<class name="org.apache.gump.dynagump.presentation.database.hibernate.ModuleHib" table="modules">
+    	<id name="id" column="id"/>
+	    <property name="name" column="name"/>
+	    <property name="description" column="description"/>
+<!--         <set name="project" inverse="true" >
+            <key column="module_id" />
+            <one-to-many class="org.apache.gump.dynagump.presentation.database.hibernate.ProjectHib" />
+        </set>  -->
+
+	</class>
+
+	
+</hibernate-mapping>

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ModuleHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,39 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import java.util.Set;
+
+public class ModuleHib {
+
+	private String id;
+	private String description;
+	private String name;
+	private Set project;
+	
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Set getProject() {
+		return project;
+	}
+	public void setProject(Set project) {
+		this.project = project;
+	}
+	
+	
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+
+
+	<class name="org.apache.gump.dynagump.presentation.database.hibernate.ProjectHib" table="projects">
+    	<id name="id" column="id" />
+    	<property name="name" column="name"/>
+    	<property name="description" column="description"/>
+    	<many-to-one name="module" column="module_id" not-null="true"/>
+        <set name="projectVersion" inverse="true" >
+            <key column="project_id" />
+            <one-to-many class="org.apache.gump.dynagump.presentation.database.hibernate.ProjectVersionIdHib" />
+        </set>
+	</class>
+	
+</hibernate-mapping>

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,47 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import java.util.Set;
+
+public class ProjectHib {
+
+	private String id;
+	private String name;
+	private String description;
+	private ModuleHib module;
+	private Set projectVersion;
+				
+	
+
+	public ModuleHib getModule() {
+		return module;
+	}
+	public void setModule(ModuleHib module) {
+		this.module = module;
+	}
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Set getProjectVersion() {
+		return projectVersion;
+	}
+	public void setProjectVersion(Set projectVersion) {
+		this.projectVersion = projectVersion;
+	}
+
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+
+
+	<class name="org.apache.gump.dynagump.presentation.database.hibernate.ProjectVersionIdHib" table="project_versions">
+    	<id name="id" column="id"/>
+	    <many-to-one name="project" column="project_id" not-null="true"/>
+	    <one-to-one name="build" class="org.apache.gump.dynagump.presentation.database.hibernate.BuildHib" property-ref="ProjectId"/>
+	</class>
+	
+</hibernate-mapping>

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ProjectVersionIdHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,29 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+public class ProjectVersionIdHib {
+
+	private String id;
+	private ProjectHib project;
+	private BuildHib build;
+	
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public ProjectHib getProject() {
+		return project;
+	}
+	public void setProject(ProjectHib project) {
+		this.project = project;
+	}
+	public BuildHib getBuild() {
+		return build;
+	}
+	public void setBuild(BuildHib build) {
+		this.build = build;
+	}
+	
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+   <class name="org.apache.gump.dynagump.presentation.database.hibernate.ResultHib" table="results">
+        <id name="id" column="id" />
+
+        <property name="name" column="name"/>
+        <property name="description" column="description"/>
+
+    </class>
+ 
+
+
+
+</hibernate-mapping>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/ResultHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,40 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+import java.util.Set;
+
+public class ResultHib {
+	
+	private Integer id;
+	private String name;
+	private String description;
+	private Set builds;
+	
+	
+
+	public Set getBuilds() {
+		return builds;
+	}
+	public void setBuilds(Set builds) {
+		this.builds = builds;
+	}
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+   <class name="org.apache.gump.dynagump.presentation.database.hibernate.RunsHib" table="runs">
+        <id name="id" column="id" />
+
+        <property name="startTime" column="start_time"/>
+        <property name="endTime" column="end_time"/>
+        <many-to-one name="workspaceId" column="workspace_id" class="org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib"/>
+
+        <property name="name" column="name"/>
+
+    </class>
+ 
+
+
+
+</hibernate-mapping>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/RunsHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,42 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+public class RunsHib {
+	
+	private String id;
+	private String startTime;
+	private String endTime;
+	private WorkspaceHib workspaceId;
+	private String name;
+	
+	public String getEndTime() {
+		return endTime;
+	}
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getStartTime() {
+		return startTime;
+	}
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+	public WorkspaceHib getWorkspaceId() {
+		return workspaceId;
+	}
+	public void setWorkspaceId(WorkspaceHib workspaceId) {
+		this.workspaceId = workspaceId;
+	}
+
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.hbm.xml Sun Aug 21 19:31:37 2005
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+
+  
+   <class name="org.apache.gump.dynagump.presentation.database.hibernate.WorkspaceHib" table="workspaces">
+        <id name="id" column="id" />
+
+        <property name="name" column="name"/>
+        <property name="host" column="host"/>
+        <property name="description" column="description"/>
+
+    </class>
+
+</hibernate-mapping>
\ No newline at end of file

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.java
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.java?rev=234419&view=auto
==============================================================================
--- gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.java (added)
+++ gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/database/hibernate/WorkspaceHib.java Sun Aug 21 19:31:37 2005
@@ -0,0 +1,36 @@
+package org.apache.gump.dynagump.presentation.database.hibernate;
+
+public class WorkspaceHib {
+
+	private String id;
+	private String name;
+	private String host;
+	private String description;
+	
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public String getHost() {
+		return host;
+	}
+	public void setHost(String host) {
+		this.host = host;
+	}
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	
+}

Added: gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/resources/application
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/presentation/WEB-INF/src/org/apache/gump/dynagump/presentation/resources/application?rev=234419&view=auto
==============================================================================
    (empty)