From 06d85df9f48c414153e7b6f025152f6b67370458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 16 Mar 2010 18:53:33 +0100 Subject: [PATCH] ItEr51S04ValidacionEProbasFuncionaisItEr50S04: Adding OptimistLockingFailureException handling. It has been added to models accessible through menu * WorkReportTypeModel * WorkReportModel * AdvanceTypeModel * CriterionsModel_V2 * BaseCalendarModel * LabelTypeModel * CostCategoryModel * TypeOfWorkHoursModel * ConfigurationModel * QualityFormModel * ProfileModel * UserModel * ExternalCompanyModel --- .../java/org/navalplanner/web/advance/AdvanceTypeModel.java | 2 ++ .../java/org/navalplanner/web/calendars/BaseCalendarModel.java | 2 ++ .../java/org/navalplanner/web/common/ConfigurationModel.java | 2 ++ .../org/navalplanner/web/costcategories/CostCategoryModel.java | 2 ++ .../navalplanner/web/costcategories/TypeOfWorkHoursModel.java | 2 ++ .../web/externalcompanies/ExternalCompanyModel.java | 2 ++ .../main/java/org/navalplanner/web/labels/LabelTypeModel.java | 2 ++ .../org/navalplanner/web/qualityforms/QualityFormModel.java | 2 ++ .../web/resources/criterion/CriterionsModel_V2.java | 2 ++ .../src/main/java/org/navalplanner/web/users/ProfileModel.java | 2 ++ .../src/main/java/org/navalplanner/web/users/UserModel.java | 2 ++ .../java/org/navalplanner/web/workreports/WorkReportModel.java | 2 ++ .../org/navalplanner/web/workreports/WorkReportTypeModel.java | 2 ++ 13 files changed, 26 insertions(+) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/advance/AdvanceTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/advance/AdvanceTypeModel.java index 256d78066..afe938959 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/advance/AdvanceTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/advance/AdvanceTypeModel.java @@ -30,6 +30,7 @@ import org.navalplanner.business.advance.daos.IAdvanceTypeDAO; import org.navalplanner.business.advance.entities.AdvanceType; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -43,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional; @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/advance/advanceTypes.zul") public class AdvanceTypeModel implements IAdvanceTypeModel { private AdvanceType advanceType; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java index 069e410c2..7ba092c56 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java @@ -44,6 +44,7 @@ import org.navalplanner.business.common.daos.IConfigurationDAO; import org.navalplanner.business.common.entities.Configuration; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.config.BeanDefinition; @@ -60,6 +61,7 @@ import org.springframework.transaction.annotation.Transactional; @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) @Qualifier("main") +@OnConcurrentModification(goToPage = "/calendars/calendars.zul") public class BaseCalendarModel implements IBaseCalendarModel { /** diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java index e8be15b10..d5c8eee5d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java @@ -37,6 +37,7 @@ import org.navalplanner.business.common.entities.OrderSequence; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.i18n.I18nHelper; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -49,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/common/configuration.zul") public class ConfigurationModel implements IConfigurationModel { /** diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java index 29b6d3c69..757dba176 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java @@ -30,6 +30,7 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.costcategories.daos.ICostCategoryDAO; import org.navalplanner.business.costcategories.entities.CostCategory; import org.navalplanner.business.costcategories.entities.HourCost; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -43,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/costcategories/costCategory.zul") public class CostCategoryModel implements ICostCategoryModel { private CostCategory costCategory; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursModel.java index c7d923dff..eef12486f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/TypeOfWorkHoursModel.java @@ -26,6 +26,7 @@ import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.costcategories.daos.ITypeOfWorkHoursDAO; import org.navalplanner.business.costcategories.entities.TypeOfWorkHours; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -39,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/costcategories/typeOfWorkHours.zul") public class TypeOfWorkHoursModel implements ITypeOfWorkHoursModel { private TypeOfWorkHours typeOfWorkHours; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java index 2c87b2c3d..21dabbc22 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java @@ -27,6 +27,7 @@ import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO; import org.navalplanner.business.externalcompanies.entities.ExternalCompany; import org.navalplanner.business.users.entities.User; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -40,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/externalcompanies/externalcompanies.zul") public class ExternalCompanyModel implements IExternalCompanyModel { @Autowired diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/labels/LabelTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/labels/LabelTypeModel.java index a369f7565..081d1f4c8 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/labels/LabelTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/labels/LabelTypeModel.java @@ -33,6 +33,7 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.labels.daos.ILabelTypeDAO; import org.navalplanner.business.labels.entities.Label; import org.navalplanner.business.labels.entities.LabelType; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -45,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/labels/labelTypes.zul") public class LabelTypeModel implements ILabelTypeModel { @Autowired diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java index 81c3cef57..24f64b3ef 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java @@ -29,6 +29,7 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.qualityforms.daos.IQualityFormDAO; import org.navalplanner.business.qualityforms.entities.QualityForm; import org.navalplanner.business.qualityforms.entities.QualityFormItem; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -40,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/qualityforms/qualityForms.zul") public class QualityFormModel implements IQualityFormModel { @Autowired diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java index 36723db84..1867e2cee 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java @@ -39,6 +39,7 @@ import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.entities.ICriterionType; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.Worker; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -51,6 +52,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Component("criterionsModel_V2") @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/resources/criterions/criterions-V2.zul") public class CriterionsModel_V2 implements ICriterionsModel_V2 { private static final Log log = LogFactory.getLog(CriterionsModel.class); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ProfileModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ProfileModel.java index 5c32f0fc8..1435586f6 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ProfileModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/ProfileModel.java @@ -28,6 +28,7 @@ import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.users.daos.IProfileDAO; import org.navalplanner.business.users.entities.Profile; import org.navalplanner.business.users.entities.UserRole; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -41,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/users/profiles.zul") public class ProfileModel implements IProfileModel { private Profile profile; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java index 2867bce5f..70d2614fc 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/users/UserModel.java @@ -30,6 +30,7 @@ import org.navalplanner.business.users.daos.IUserDAO; import org.navalplanner.business.users.entities.Profile; import org.navalplanner.business.users.entities.User; import org.navalplanner.business.users.entities.UserRole; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.navalplanner.web.users.services.IDBPasswordEncoderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -44,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/users/users.zul") public class UserModel implements IUserModel { @Autowired diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java index c58543626..ab4fe41b0 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportModel.java @@ -46,6 +46,7 @@ import org.navalplanner.business.workreports.entities.WorkReportLine; import org.navalplanner.business.workreports.entities.WorkReportType; import org.navalplanner.business.workreports.valueobjects.DescriptionField; import org.navalplanner.business.workreports.valueobjects.DescriptionValue; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -60,6 +61,7 @@ import org.zkoss.ganttz.IPredicate; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/workreports/workReport.zul") public class WorkReportModel implements IWorkReportModel { @Autowired diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java index fb91ca1fc..0d5b013bf 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportTypeModel.java @@ -43,6 +43,7 @@ import org.navalplanner.business.workreports.entities.WorkReport; import org.navalplanner.business.workreports.entities.WorkReportLabelTypeAssigment; import org.navalplanner.business.workreports.entities.WorkReportType; import org.navalplanner.business.workreports.valueobjects.DescriptionField; +import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -57,6 +58,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Scope(BeanDefinition.SCOPE_PROTOTYPE) +@OnConcurrentModification(goToPage = "/workreports/workReportTypes.zul") public class WorkReportTypeModel implements IWorkReportTypeModel { @Autowired