From ae3b7610f1ed59ab60b6a4edcec9bc047dcdf5c4 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 30 Jan 2013 10:37:07 +0100 Subject: [PATCH] jira-integration: Modify bootstraps in order to set JiraConfiguration properly * Renamed PersonalTimesheetsTypeOfWorkHoursBootstrap to ConfigurationTypeOfWorkHoursBootstrapa in order to set up TypeOfWorkHours for both personal timesheets and Jira connector. * Modified ConfigurationBootstrap to ensure that the JiraConfiguration is created properly. * Removed unneeded code in ConfigurationModel. FEA: ItEr77S16JiraAndTimConnectorContributionIntegration --- .../entities/ConfigurationBootstrap.java | 37 ++++++++++--------- ...onfigurationTypeOfWorkHoursBootstrap.java} | 11 ++++-- ...onfigurationTypeOfWorkHoursBootstrap.java} | 4 +- .../web/common/ConfigurationModel.java | 14 ------- .../TypeOfWorkHoursServiceTest.java | 6 +-- 5 files changed, 31 insertions(+), 41 deletions(-) rename libreplan-business/src/main/java/org/libreplan/business/common/entities/{PersonalTimesheetsTypeOfWorkHoursBootstrap.java => ConfigurationTypeOfWorkHoursBootstrap.java} (87%) rename libreplan-business/src/main/java/org/libreplan/business/common/entities/{IPersonalTimesheetsTypeOfWorkHoursBootstrap.java => IConfigurationTypeOfWorkHoursBootstrap.java} (87%) diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationBootstrap.java index 618c3531d..7f9f41c0b 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationBootstrap.java @@ -67,27 +67,28 @@ public class ConfigurationBootstrap implements IConfigurationBootstrap { public void loadRequiredData() { loadRequiredDataSequences(); - List list = configurationDAO.list(Configuration.class); - if (list.isEmpty()) { - Configuration configuration = Configuration.create(); + Configuration configuration = configurationDAO.getConfiguration(); + if (configuration == null) { + configuration = Configuration.create(); configuration.setDefaultCalendar(getDefaultCalendar()); configuration.setCompanyCode(COMPANY_CODE); - LDAPConfiguration ldapConfiguration = configuration - .getLdapConfiguration(); - if (null == configuration.getLdapConfiguration()) { - ldapConfiguration = LDAPConfiguration.create(); - } - configuration.setLdapConfiguration(ldapConfiguration); - - JiraConfiguration jiraConfiguration = configuration - .getJiraConfiguration(); - if (null == configuration.getJiraConfiguration()) { - jiraConfiguration = JiraConfiguration.create(); - } - configuration.setJiraConfiguration(jiraConfiguration); - - configurationDAO.save(configuration); } + + LDAPConfiguration ldapConfiguration = configuration + .getLdapConfiguration(); + if (ldapConfiguration == null) { + ldapConfiguration = LDAPConfiguration.create(); + } + configuration.setLdapConfiguration(ldapConfiguration); + + JiraConfiguration jiraConfiguration = configuration + .getJiraConfiguration(); + if (jiraConfiguration == null) { + jiraConfiguration = JiraConfiguration.create(); + } + configuration.setJiraConfiguration(jiraConfiguration); + + configurationDAO.save(configuration); } public void loadRequiredDataSequences() { diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsTypeOfWorkHoursBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationTypeOfWorkHoursBootstrap.java similarity index 87% rename from libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsTypeOfWorkHoursBootstrap.java rename to libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationTypeOfWorkHoursBootstrap.java index 4b338a165..90cfee44b 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/PersonalTimesheetsTypeOfWorkHoursBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/ConfigurationTypeOfWorkHoursBootstrap.java @@ -32,8 +32,9 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; /** - * Fills the attribute {@link Configuration#personalTimesheetsTypeOfWorkHours} - * with a default value.
+ * Fills the attributes {@link Configuration#personalTimesheetsTypeOfWorkHours} + * and {@link JiraConfiguration#jiraConnectorTypeOfWorkHours} with a default + * values.
* * If possible it uses the "Default" {@link TypeOfWorkHours}, but if it doesn't * exist, it uses the first {@link TypeOfWorkHours} found.
@@ -47,8 +48,8 @@ import org.springframework.transaction.annotation.Transactional; @Component @Scope("singleton") @BootstrapOrder(1) -public class PersonalTimesheetsTypeOfWorkHoursBootstrap implements - IPersonalTimesheetsTypeOfWorkHoursBootstrap { +public class ConfigurationTypeOfWorkHoursBootstrap implements + IConfigurationTypeOfWorkHoursBootstrap { @Autowired private IConfigurationDAO configurationDAO; @@ -74,6 +75,8 @@ public class PersonalTimesheetsTypeOfWorkHoursBootstrap implements } configuration.setPersonalTimesheetsTypeOfWorkHours(typeOfWorkHours); + configuration.getJiraConfiguration().setJiraConnectorTypeOfWorkHours( + typeOfWorkHours); configurationDAO.save(configuration); } diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/entities/IPersonalTimesheetsTypeOfWorkHoursBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/common/entities/IConfigurationTypeOfWorkHoursBootstrap.java similarity index 87% rename from libreplan-business/src/main/java/org/libreplan/business/common/entities/IPersonalTimesheetsTypeOfWorkHoursBootstrap.java rename to libreplan-business/src/main/java/org/libreplan/business/common/entities/IConfigurationTypeOfWorkHoursBootstrap.java index 163ac00ee..3fccfb7b5 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/entities/IPersonalTimesheetsTypeOfWorkHoursBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/entities/IConfigurationTypeOfWorkHoursBootstrap.java @@ -22,11 +22,11 @@ package org.libreplan.business.common.entities; import org.libreplan.business.IDataBootstrap; /** - * Contract for {@link PersonalTimesheetsTypeOfWorkHoursBootstrap}. + * Contract for {@link ConfigurationTypeOfWorkHoursBootstrap}. * * @author Manuel Rego Casasnovas */ -public interface IPersonalTimesheetsTypeOfWorkHoursBootstrap extends +public interface IConfigurationTypeOfWorkHoursBootstrap extends IDataBootstrap { void loadRequiredData(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java index d2af8bac8..bb0fd97b1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/ConfigurationModel.java @@ -107,8 +107,6 @@ public class ConfigurationModel implements IConfigurationModel { public void init() { this.configuration = getCurrentConfiguration(); initEntitySequences(); - initLdapConfiguration(); - initJiraConfiguration(); } private void initEntitySequences() { @@ -122,18 +120,6 @@ public class ConfigurationModel implements IConfigurationModel { } } - private void initLdapConfiguration() { - if (null == configuration.getLdapConfiguration()) { - configuration.setLdapConfiguration(LDAPConfiguration.create()); - } - } - - private void initJiraConfiguration() { - if (null == configuration.getJiraConfiguration()) { - configuration.setJiraConfiguration(JiraConfiguration.create()); - } - } - private Configuration getCurrentConfiguration() { Configuration configuration = configurationDAO.getConfiguration(); if (configuration == null) { diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/typeofworkhours/TypeOfWorkHoursServiceTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/typeofworkhours/TypeOfWorkHoursServiceTest.java index 869d1ac1f..1c51d95ff 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/typeofworkhours/TypeOfWorkHoursServiceTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/typeofworkhours/TypeOfWorkHoursServiceTest.java @@ -40,7 +40,7 @@ import org.junit.runner.RunWith; import org.libreplan.business.common.IAdHocTransactionService; import org.libreplan.business.common.IOnTransaction; import org.libreplan.business.common.entities.IConfigurationBootstrap; -import org.libreplan.business.common.entities.IPersonalTimesheetsTypeOfWorkHoursBootstrap; +import org.libreplan.business.common.entities.IConfigurationTypeOfWorkHoursBootstrap; import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.costcategories.daos.ITypeOfWorkHoursDAO; import org.libreplan.business.costcategories.entities.ITypeOfWorkHoursBootstrap; @@ -86,7 +86,7 @@ public class TypeOfWorkHoursServiceTest { private ITypeOfWorkHoursBootstrap typeOfWorkHoursBootstrap; @Autowired - private IPersonalTimesheetsTypeOfWorkHoursBootstrap personalTimesheetsTypeOfWorkHoursBootstrap; + private IConfigurationTypeOfWorkHoursBootstrap configurationTypeOfWorkHoursBootstrap; @Before public void loadRequiredData() { @@ -96,7 +96,7 @@ public class TypeOfWorkHoursServiceTest { public Void execute() { configurationBootstrap.loadRequiredData(); typeOfWorkHoursBootstrap.loadRequiredData(); - personalTimesheetsTypeOfWorkHoursBootstrap.loadRequiredData(); + configurationTypeOfWorkHoursBootstrap.loadRequiredData(); return null; } });