From 47da4948bfc74cb5f9abc763cf54865dd16b028d Mon Sep 17 00:00:00 2001 From: Fernando Bellas Permuy Date: Mon, 4 May 2009 19:44:34 +0200 Subject: [PATCH] ItEr07S06ArquitecturaServidorItEr06S04: pom.xml files improved and JavaDoc for navalplanner-business. Relocated dependencies in Maven central repository haven been updated (pom.xml files), style of inclusion of dependencies has been improved (pom.xml files), profile-based approach (root pom.xml) has been improved (bug fixed for supporting multiple databases, PostgreSQL has been set as the default database, and addition of HSQLDB), README.txt updated, and JavDoc for navalplanner-business code. --- README.txt | 46 ++--- navalplanner-business/pom.xml | 6 +- .../business/BusinessGlobalNames.java | 6 + .../business/common/daos/IGenericDao.java | 10 ++ .../common/daos/impl/GenericDaoHibernate.java | 24 ++- .../impl/GenericDaoHibernateTemplate.java | 22 ++- .../DuplicateInstanceException.java | 7 + .../common/exceptions/InstanceException.java | 7 + .../exceptions/InstanceNotFoundException.java | 7 + .../business/resources/daos/IResourceDao.java | 6 + .../resources/daos/IResourceGroupDao.java | 6 + .../business/resources/daos/IWorkerDao.java | 6 + .../resources/daos/ResourcesDaoRegistry.java | 11 +- .../daos/impl/ResourceDaoHibernate.java | 6 + .../daos/impl/ResourceGroupDaoHibernate.java | 6 + .../daos/impl/WorkerDaoHibernate.java | 6 + .../business/resources/entities/Resource.java | 7 + .../resources/entities/ResourceGroup.java | 7 + .../business/resources/entities/Worker.java | 6 + .../resources/services/ResourceService.java | 19 +- .../services/impl/ResourceServiceImpl.java | 7 + .../business/test/BusinessGlobalNames.java | 6 + .../services/ResourceServiceTest.java | 7 + navalplanner-gantt-zk/pom.xml | 15 +- navalplanner-webapp/pom.xml | 36 ++-- pom.xml | 163 ++++++++++-------- 26 files changed, 297 insertions(+), 158 deletions(-) diff --git a/README.txt b/README.txt index 2fb946c4c..b83c7e02a 100644 --- a/README.txt +++ b/README.txt @@ -1,25 +1,19 @@ -* DB creation - ----------- +* Database creation + ----------------- - + Start MySQL: - - Unix: mysqld --default-table-type=InnoDB - - Windows: mysqld-nt --default-table-type=InnoDB(Windows). - - + Create DB "navaldev" (for development): - - mysqladmin -u root create navaldev - - + Create user "naval" with password "naval": - - mysql -u root - GRANT ALL PRIVILEGES ON navaldev.* to naval@localhost IDENTIFIED BY 'naval'; + + Current databases supported: PostgreSQL (default), MySQL, and + HQLDB (In-Process/Standalone Mode). + + + For PostgreSQL and MySQL: + + - Create a database with name "navaldev" (for development). + - Create a database with name "navaldevtest" (for the test fase in + development). + - Create user "naval" with password "naval" with necessary privileges for + accessing (creating tables, selecting data from tables, etc.) the + previous databases. - + Create another DB with name "navaldevtest" (for testing). The user created - above will need to access this new DB. - - - mysqladmin -u root create navaldevtest - - mysql -u root - GRANT ALL PRIVILEGES ON navaldevtest.* to naval@localhost IDENTIFIED BY 'naval'; - - + PostgreSQL -> DB name=navaldev, user=naval, password=naval. + * For HSQLDB. There is nothing to do. * Compilation ----------- @@ -43,12 +37,18 @@ + To install the web application in a web container, use the WAR file: navalplanner-webapp/target/navalplanner-webapp.war - + NOTE: For PostgreSQL: mvn -Pdev,postgresql install + + NOTES: + + - Use "-Pdev,mysql" with "mvn" command if using MySQL. + e.g. mvn -Pdev,mysql install + + - Use "-Pdev,hsqldb" with "mvn" command if using HSQLDB. + e.g. mvn -Pdev,hsqldb install * Profiles -------- Check section in the root pom.xml to see the profile-based approach used in the project. The default profiles (the one assumed by the above - instructions) are "dev" and "mysql" (meaning "use MySQL assuming a development - environment"). + instructions) are "dev" and "postgresql" (meaning "use PostgreSQL assuming a + development environment"). diff --git a/navalplanner-business/pom.xml b/navalplanner-business/pom.xml index 36adf8373..607464a77 100644 --- a/navalplanner-business/pom.xml +++ b/navalplanner-business/pom.xml @@ -13,18 +13,22 @@ Naval Planner Business Module + ${jdbcDriver.groupId} ${jdbcDriver.artifactId} - + + org.hibernate hibernate + junit junit + org.springframework spring diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/BusinessGlobalNames.java b/navalplanner-business/src/main/java/org/navalplanner/business/BusinessGlobalNames.java index 23a51fe51..23c1e062e 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/BusinessGlobalNames.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/BusinessGlobalNames.java @@ -1,5 +1,11 @@ package org.navalplanner.business; +/** + * A class containing constants for global names. + * + * @author Fernando Bellas Permuy + * + */ public class BusinessGlobalNames { public final static String BUSINESS_SPRING_CONFIG_FILE = diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java index 0358356f6..7cbac99cc 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/IGenericDao.java @@ -4,6 +4,16 @@ import java.io.Serializable; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; +/** + * The interface all DAOs (Data Access Objects) must implement. In general, + * a DAO must be implemented for each persistent entity. Concrete DAOs may + * provide (and usually will provide) additional methods. + * + * @author Fernando Bellas Permuy + * + * @param Entity class + * @param Primary key class + */ public interface IGenericDao { /** diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java index ae739f70a..d232a8d36 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernate.java @@ -16,16 +16,22 @@ import org.springframework.dao.DataAccessException; import org.springframework.orm.hibernate3.SessionFactoryUtils; /** - * All Hibernate DAOs must extend directly from this class. This constraint is - * imposed by the constructor of this class that must infer the type of the - * entity from the concrete DAO declaration. + * An implementation of IGenericDao based on Hibernate's native + * API. Concrete DAOs must extend directly from this class. This constraint is + * imposed by the constructor of this class that must infer the type of the + * entity from the declaration of the concrete DAO.

* - * The class autowires a SessionFactory bean and allows to implement DAOs with - * the Hibernate's native API. Subclasses access Hibernate's Session by calling - * on getSession() method. Operations must be implemented by catching - * HibernateException and rethrowing it by using - * convertHibernateAccessException() method. See source code of this class - * for an example. + * This class autowires a SessionFactory bean and allows to + * implement DAOs with Hibernate's native API. Subclasses access Hibernate's + * Session by calling on getSession() method. + * Operations must be implemented by catching HibernateException + * and rethrowing it by using convertHibernateAccessException() + * method. See source code of this class for an example. + * + * @author Fernando Bellas Permuy + * + * @param Entity class + * @param Primary key class */ public class GenericDaoHibernate implements IGenericDao { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java index 325ef5114..362c6351a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/daos/impl/GenericDaoHibernateTemplate.java @@ -14,16 +14,24 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.HibernateTemplate; -// FIXME: This class is not currently used. I prefer GenericDaoHibernate. +// FIXME: This class is not currently used. I prefer GenericDaoHibernate, since +// it represents a non-intrusive use of Spring. /** - * All Hibernate DAOs must extend directly from this class. This constraint is - * imposed by the constructor of this class that must infer the type of the - * entity from the concrete DAO declaration. + * An implementation of IGenericDao based on Spring's + * HibernateTemplate. Concrete DAOs must extend directly from + * this class. This constraint is imposed by the constructor of this class that + * must infer the type of the entity from the concrete DAO declaration.

* - * The class autowires a SessionFactory bean and allows to implement Spring's - * HibernateTemplate-based DAOs. Subclasses access HibernateTemplate by calling - * on getHibernateTemplate() method. + * This class autowires a SessionFactory bean and allows to + * implement Spring's HibernateTemplate-based DAOs. Subclasses access + * HibernateTemplate by calling on + * getHibernateTemplate() method. + * + * @author Fernando Bellas Permuy + * + * @param Entity class + * @param Primary key class */ public class GenericDaoHibernateTemplate implements IGenericDao { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/DuplicateInstanceException.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/DuplicateInstanceException.java index 1b17cf0c3..cf0b12c89 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/DuplicateInstanceException.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/DuplicateInstanceException.java @@ -1,5 +1,12 @@ package org.navalplanner.business.common.exceptions; +/** + * An exception for modeling an attempt to create a persistent instance with + * the same key than another existent instance. + * + * @author Fernando Bellas Permuy + * + */ @SuppressWarnings("serial") public class DuplicateInstanceException extends InstanceException { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceException.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceException.java index f6ac58d27..61b0b4dfc 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceException.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceException.java @@ -1,5 +1,12 @@ package org.navalplanner.business.common.exceptions; +/** + * An exception for modeling a problem with an instance of a persistent entity. + * It contains a message, the key of the instance, and its class name. + * + * @author Fernando Bellas Permuy + * + */ @SuppressWarnings("serial") public abstract class InstanceException extends Exception { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceNotFoundException.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceNotFoundException.java index 3b4dfb01e..110c6baa8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceNotFoundException.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/exceptions/InstanceNotFoundException.java @@ -1,5 +1,12 @@ package org.navalplanner.business.common.exceptions; +/** + * An exception for modeling that no persistent instance can be located from + * a given key. + * + * @author Fernando Bellas Permuy + * + */ @SuppressWarnings("serial") public class InstanceNotFoundException extends InstanceException { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceDao.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceDao.java index 685ed5291..c81e29ca5 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceDao.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceDao.java @@ -3,4 +3,10 @@ package org.navalplanner.business.resources.daos; import org.navalplanner.business.common.daos.IGenericDao; import org.navalplanner.business.resources.entities.Resource; +/** + * DAO interface for the Resource entity. + * + * @author Fernando Bellas Permuy + * + */ public interface IResourceDao extends IGenericDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceGroupDao.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceGroupDao.java index a8cd13472..790bae027 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceGroupDao.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourceGroupDao.java @@ -3,4 +3,10 @@ package org.navalplanner.business.resources.daos; import org.navalplanner.business.common.daos.IGenericDao; import org.navalplanner.business.resources.entities.ResourceGroup; +/** + * DAO interface for the ResourceGroup entity. + * + * @author Fernando Bellas Permuy + * + */ public interface IResourceGroupDao extends IGenericDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDao.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDao.java index 56327f8a5..ecd8e2900 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDao.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDao.java @@ -3,4 +3,10 @@ package org.navalplanner.business.resources.daos; import org.navalplanner.business.common.daos.IGenericDao; import org.navalplanner.business.resources.entities.Worker; +/** + * DAO interface for the Worker entity. + * + * @author Fernando Bellas Permuy + * + */ public interface IWorkerDao extends IGenericDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesDaoRegistry.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesDaoRegistry.java index 34a66e0d8..ce1c7e36f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesDaoRegistry.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesDaoRegistry.java @@ -7,10 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; // (I think it is not necessary). /** - * Classes in which dependency injection (DI) is not directly supported by - * Spring (e.g. entities) must use ResourcesDaoRegistry to access - * resource DAOs. For the rest of classes (e.g. services, tests, etc.) Spring - * DI will be a more convenient option. + * A registry of resource DAOs. Classes in which dependency injection (DI) is + * not directly supported by Spring (e.g. entities) must use this class to + * access resource DAOs. For the rest of classes (e.g. services, tests, etc.), + * Spring DI is a more convenient option. + * + * @author Fernando Bellas Permuy + * */ public final class ResourcesDaoRegistry { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceDaoHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceDaoHibernate.java index d49b1c4fb..201a27e3d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceDaoHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceDaoHibernate.java @@ -4,5 +4,11 @@ import org.navalplanner.business.common.daos.impl.GenericDaoHibernate; import org.navalplanner.business.resources.daos.IResourceDao; import org.navalplanner.business.resources.entities.Resource; +/** + * Hibernate DAO for the Resource entity. + * + * @author Fernando Bellas Permuy + * + */ public class ResourceDaoHibernate extends GenericDaoHibernate implements IResourceDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceGroupDaoHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceGroupDaoHibernate.java index c978da021..e297c8763 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceGroupDaoHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/ResourceGroupDaoHibernate.java @@ -4,6 +4,12 @@ import org.navalplanner.business.common.daos.impl.GenericDaoHibernate; import org.navalplanner.business.resources.daos.IResourceGroupDao; import org.navalplanner.business.resources.entities.ResourceGroup; +/** + * Hibernate DAO for the ResourceGroup entity. + * + * @author Fernando Bellas Permuy + * + */ public class ResourceGroupDaoHibernate extends GenericDaoHibernate implements IResourceGroupDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/WorkerDaoHibernate.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/WorkerDaoHibernate.java index 789c783ef..563a766ad 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/WorkerDaoHibernate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/impl/WorkerDaoHibernate.java @@ -4,5 +4,11 @@ import org.navalplanner.business.common.daos.impl.GenericDaoHibernate; import org.navalplanner.business.resources.daos.IWorkerDao; import org.navalplanner.business.resources.entities.Worker; +/** + * Hibernate DAO for the Worker entity. + * + * @author Fernando Bellas Permuy + * + */ public class WorkerDaoHibernate extends GenericDaoHibernate implements IWorkerDao {} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java index a799159d0..711a8de70 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java @@ -10,6 +10,13 @@ import org.navalplanner.business.resources.daos.ResourcesDaoRegistry; // child another simple resource, general methods like getChilds() do not make // sense for simple entities, etc.). In consequence, I prefer the modeling // option shown below. + +/** + * This class acts as the base class for all resources. + * + * @author Fernando Bellas Permuy + * + */ public abstract class Resource { private Long id; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceGroup.java index 11d32ca87..3c874bbab 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceGroup.java @@ -6,6 +6,13 @@ import java.util.Set; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.resources.daos.ResourcesDaoRegistry; +/** + * This class models a resource group. A resource group represents a resource + * containing other resources. + * + * @author Fernando Bellas Permuy + * + */ public class ResourceGroup extends Resource { private Set resources = new HashSet(); diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java index 7d945c75b..078ad2284 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java @@ -1,5 +1,11 @@ package org.navalplanner.business.resources.entities; +/** + * This class models a worker. + * + * @author Fernando Bellas Permuy + * + */ public class Worker extends Resource { private String firstName; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/ResourceService.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/ResourceService.java index 3efdb51d5..4d74c8c45 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/ResourceService.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/ResourceService.java @@ -3,14 +3,12 @@ package org.navalplanner.business.resources.services; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.resources.entities.Resource; -// FIXME: Define validation approach for creating and updating entities. - -// FIXME: Originally we though the interface in a less generic way (e.g. -// createWorker, createResourceGroup, etc.). Now it is completely generic. - -// FIXME: The interface must be oriented to detached objects (e.g. -// removeResource(resource) instead of removeResource(resourceId))??? - It -// depends on final requirements. +/** + * Interface for the resource management service. + * + * @author Fernando Bellas Permuy + * + */ public interface ResourceService { /** @@ -30,11 +28,6 @@ public interface ResourceService { public void addResourceToResourceGroup(Long resourceId, Long resourceGroupId) throws InstanceNotFoundException; -// FIXME: Is the following signature better than the previous one??? - I prefer -// the previous one. -// public void addResourceToResourceGroup(Long resourceId, Long resourceGroupId) -// throws ResourceNotFoundException, ResourceGroupNotFoundException; - public int getResourceDailyCapacity(Long resourceId) throws InstanceNotFoundException; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/ResourceServiceImpl.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/ResourceServiceImpl.java index 48aeefc4f..5731d8fb2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/ResourceServiceImpl.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/ResourceServiceImpl.java @@ -9,6 +9,13 @@ import org.navalplanner.business.resources.services.ResourceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; +/** + * Implementation of the resource management service. Resource DAOs are + * autowired. + * + * @author Fernando Bellas Permuy + * + */ @Transactional public class ResourceServiceImpl implements ResourceService { diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/BusinessGlobalNames.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/BusinessGlobalNames.java index 61dda759e..b3c1961cb 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/BusinessGlobalNames.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/BusinessGlobalNames.java @@ -1,5 +1,11 @@ package org.navalplanner.business.test; +/** + * A class containing constants for global names. + * + * @author Fernando Bellas Permuy + * + */ public class BusinessGlobalNames { public final static String BUSINESS_SPRING_CONFIG_TEST_FILE = diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/services/ResourceServiceTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/services/ResourceServiceTest.java index 29f99711a..ba4e4776a 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/services/ResourceServiceTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/services/ResourceServiceTest.java @@ -19,6 +19,13 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; +/** + * A class for testing ResourceService. The service and the + * resource DAOs are autowired. + * + * @author Fernando Bellas Permuy + * + */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={BUSINESS_SPRING_CONFIG_FILE, BUSINESS_SPRING_CONFIG_TEST_FILE}) diff --git a/navalplanner-gantt-zk/pom.xml b/navalplanner-gantt-zk/pom.xml index 163eb9d0c..9b0fb66a8 100644 --- a/navalplanner-gantt-zk/pom.xml +++ b/navalplanner-gantt-zk/pom.xml @@ -13,6 +13,11 @@ Naval Planner ZK Components Module + + + commons-logging + commons-logging + org.zkoss.zk @@ -26,14 +31,10 @@ org.zkoss.zk zk - + - commons-logging - commons-logging - - - jgrapht - jgrapht + org.jgrapht + jgrapht-jdk1.5 diff --git a/navalplanner-webapp/pom.xml b/navalplanner-webapp/pom.xml index c6c4f1da6..be6bed60c 100644 --- a/navalplanner-webapp/pom.xml +++ b/navalplanner-webapp/pom.xml @@ -17,6 +17,21 @@ + + + org.springframework + spring + + + + org.beanshell + bsh + + + + commons-fileupload + commons-fileupload + org.zkoss.zk @@ -29,7 +44,7 @@ org.zkoss.zk zk - + org.navalplanner @@ -40,25 +55,6 @@ org.navalplanner navalplanner-business - - - org.springframework - spring - - - - bsh - bsh - - - - commons-fileupload - commons-fileupload - - - org.navalplanner - navalplanner-business - diff --git a/pom.xml b/pom.xml index a5c684454..163c8623b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,9 +19,9 @@ + valid for most profiles. Specific profiles can overwrite values when + necessary. + --> naval @@ -35,8 +35,8 @@ - + @@ -82,9 +81,8 @@ true - - jdbc:mysql://localhost/navaldev - ${dataSource.url}test + + dev true true @@ -97,39 +95,22 @@ prod - - - jdbc:mysql://localhost/navalprod - ${dataSource.url}test + + prod false false false update - - - + + + - mysql + postgresql true - - - mysql - mysql-connector-java - 5.0.5 - com.mysql.jdbc.Driver - - org.hibernate.dialect.MySQLDialect - - - - - postgresql postgresql @@ -137,17 +118,49 @@ 8.3-603.jdbc4 org.postgresql.Driver - - jdbc:postgresql://localhost/navaldev + jdbc:postgresql://localhost/naval${navalplanner.mode} + ${dataSource.url}test org.hibernate.dialect.PostgreSQLDialect - - - - + + + + mysql + + + mysql + mysql-connector-java + 5.0.5 + com.mysql.jdbc.Driver + + jdbc:mysql://localhost/naval${navalplanner.mode} + ${dataSource.url}test + + org.hibernate.dialect.MySQLDialect + + + + + + hsqldb + + + hsqldb + hsqldb + 1.8.0.7 + org.hsqldb.jdbcDriver + + sa + + jdbc:hsqldb:${java.io.tmpdir}/naval${navalplanner.mode};shutdown=true + jdbc:hsqldb:${java.io.tmpdir}/naval${navalplanner.mode}test;shutdown=true + + org.hibernate.dialect.HSQLDialect + + + @@ -187,7 +200,27 @@ spring-test 2.5.6 test - + + + + commons-logging + commons-logging + 1.0.4 + + + + org.beanshell + bsh + 2.0b4 + runtime + + + + commons-fileupload + commons-fileupload + 1.2.1 + runtime + org.zkoss.zk @@ -204,11 +237,11 @@ zk 3.6.0.1 - + - commons-logging - commons-logging - 1.0.4 + org.jgrapht + jgrapht-jdk1.5 + 0.7.3 @@ -216,30 +249,12 @@ navalplanner-gantt-zk 1.0.0 - + + org.navalplanner navalplanner-business 1.0.0 - - - bsh - bsh - 2.0b4 - runtime - - - - commons-fileupload - commons-fileupload - 1.2.1 - runtime - - - jgrapht - jgrapht - 0.7.3 -