Pollen-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
February 2010
- 5 participants
- 39 discussions
r2892 - in trunk/pollen-business/src: main/java/org/chorem/pollen/business/services test/java/org/chorem/pollen/business/services
by fdesbois@users.chorem.org 26 Feb '10
by fdesbois@users.chorem.org 26 Feb '10
26 Feb '10
Author: fdesbois
Date: 2010-02-26 19:01:14 +0100 (Fri, 26 Feb 2010)
New Revision: 2892
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
Log:
delete useless methods (used nowhere)
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java 2010-02-26 17:37:14 UTC (rev 2891)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java 2010-02-26 18:01:14 UTC (rev 2892)
@@ -45,19 +45,6 @@
public String createVotingList(VotingListDTO votingList);
/**
- * Création des groupes de votant du sondage
- *
- * @param votingLists les dtos listes
- * @param pollId l'identifiant du sondage
- * @param transaction la transaction du sondage
- * @return les groupes créés
- * @deprecated useless method : used nowhere
- */
- @Deprecated
- public List<VotingList> createVotingLists(List<VotingListDTO> votingLists,
- String pollId, TopiaContext transaction);
-
- /**
* Mise à jour d'une liste de votant
*
* @param votingList la liste
@@ -66,46 +53,6 @@
public boolean updateVotingList(VotingListDTO votingList);
/**
- * Suppression d'une liste de votant
- *
- * @param votingListId l'identifiant de la liste
- * @return true si la liste a été mise à jours
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public boolean deleteVotingList(String votingListId);
-
- /**
- * Recherche d'une liste par son identifiant
- *
- * @param votingListId l'identifiant de la liste
- * @return la liste
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public VotingListDTO findVotingListById(String votingListId);
-
- /**
- * Recherche d une liste de votant à partir du nom
- *
- * @param name le nom de la liste
- * @return les listes
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public List<VotingListDTO> findVotingListByName(String name);
-
- /**
- * Recherche des listes à partir d'un filtre
- *
- * @param properties filtre sur les champs de la table VotingList
- * @return les listes de votants
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public List<VotingListDTO> selectVotingList(Map<String, Object> properties);
-
- /**
* Création d'une liste de favoris
*
* @param personList la liste
@@ -114,19 +61,6 @@
public String createPersonList(PersonListDTO personList);
/**
- * Création d'une liste de favoris pour un user
- *
- * @param lists les dtos personList
- * @param userId l'identifiant de l'utilisateur
- * @param transaction la transaction du sondage
- * @return true si toutes les listes ont été créés
- * @deprecated useless method : used nowhere
- */
- @Deprecated
- public boolean createPersonLists(List<PersonListDTO> lists, String userId,
- TopiaContext transaction);
-
- /**
* Create an {@code account} in a {@code personList}.
*
* @param personList where the account will be added
@@ -168,30 +102,10 @@
public PersonListDTO findPersonListById(String personListId);
/**
- * Recherche des listes de favoris à partir du nom
- *
- * @param name le nom de la liste
- * @return les listes
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public List<PersonListDTO> findPersonListByName(String name);
-
- /**
* Recherche des listes de favoris d'un utilisateur.
*
* @param userId Le créateur de la liste
* @return les listes
*/
public List<PersonListDTO> findPersonListByUser(String userId);
-
- /**
- * Recherche des listes à partir d'un filtre
- *
- * @param properties filtre sur les champs de la table personList
- * @return les listes de votants
- * @deprecated useless method : used only in tests
- */
- @Deprecated
- public List<PersonListDTO> selectPersonList(Map<String, Object> properties);
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-26 17:37:14 UTC (rev 2891)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-26 18:01:14 UTC (rev 2892)
@@ -114,49 +114,6 @@
}
@Override
- public List<VotingList> createVotingLists(List<VotingListDTO> votingLists,
- String pollId, TopiaContext transaction) {
- if (votingLists.isEmpty() || pollId.length() == 0) {
- return null;
- }
-
- List<VotingList> result = null;
- try {
- votingListDAO = PollenModelDAOHelper.getVotingListDAO(transaction);
-
- votingListConverter.setTransaction(transaction);
-
- result = new ArrayList<VotingList>();
- for (VotingListDTO votingList : votingLists) {
- VotingList votingListEntity = votingListDAO.create();
- votingList.setPollId(pollId);
- votingListConverter.populateVotingListEntity(votingList,
- votingListEntity);
-
- // Création des pollAccount de la liste si nécessaire
- // FIXME do not call a Service from an other one
- ServicePollAccount spa = new ServicePollAccountImpl();
- //spa.createPollAccounts(votingList.getPollAccountDTOs(), trans);
- for (PollAccountDTO account : votingList.getPollAccountDTOs()) {
- if (spa.findPollAccountById(account.getId()) == null) {
- account.setId(spa.createPollAccount(account));
- }
- }
-
- // Création des PersonToList
- votingListConverter.populatePersonVotingList(votingList,
- votingListEntity);
- result.add(votingListEntity);
- }
-
- return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- }
- }
-
- @Override
public boolean updateVotingList(VotingListDTO votingList) {
TopiaContext transaction = null;
try {
@@ -186,138 +143,6 @@
}
@Override
- public boolean deleteVotingList(String votingListId) {
- TopiaContext transaction = null;
- try {
- transaction = rootContext.beginTransaction();
-
- votingListDAO = PollenModelDAOHelper.getVotingListDAO(transaction);
-
- VotingList entity = votingListDAO.findByTopiaId(votingListId);
-
- votingListDAO.delete(entity);
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity deleted: " + votingListId);
- }
-
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public VotingListDTO findVotingListById(String votingListId) {
- TopiaContext transaction = null;
- VotingListDTO result = null;
- try {
- transaction = rootContext.beginTransaction();
-
- votingListDAO = PollenModelDAOHelper.getVotingListDAO(transaction);
-
- VotingList votingListEntity = votingListDAO
- .findByTopiaId(votingListId);
-
- if (votingListEntity != null) {
- votingListConverter.setTransaction(transaction);
- result = votingListConverter
- .createVotingListDTO(votingListEntity);
- }
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity found: "
- + ((result == null) ? "null" : result.getId()));
- }
-
- return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public List<VotingListDTO> findVotingListByName(String name) {
- TopiaContext transaction = null;
- List<VotingListDTO> results = null;
- List<VotingList> votingListEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- votingListDAO = PollenModelDAOHelper.getVotingListDAO(transaction);
-
- votingListEntities = votingListDAO.findAllByName(name);
-
- votingListConverter.setTransaction(transaction);
- results = votingListConverter
- .createVotingListDTOs(votingListEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public List<VotingListDTO> selectVotingList(Map<String, Object> properties) {
- TopiaContext transaction = null;
- List<VotingListDTO> results = null;
- List<VotingList> votingListEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- votingListDAO = PollenModelDAOHelper.getVotingListDAO(transaction);
-
- if (properties == null) {
- votingListEntities = votingListDAO.findAll();
- if (log.isWarnEnabled()) {
- log
- .warn("Attention : toutes les listes ont été sélectionnés !");
- }
- } else {
- votingListEntities = votingListDAO
- .findAllByProperties(properties);
- }
- votingListConverter.setTransaction(transaction);
- results = votingListConverter
- .createVotingListDTOs(votingListEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
public String createPersonList(PersonListDTO personList) {
TopiaContext transaction = null;
String topiaId = "";
@@ -357,41 +182,6 @@
}
@Override
- public boolean createPersonLists(List<PersonListDTO> personLists,
- String userId, TopiaContext transaction) {
- if (personLists.isEmpty() || userId.length() == 0) {
- return false;
- }
-
- try {
- personListDAO = PollenModelDAOHelper.getPersonListDAO(transaction);
-
- personListConverter.setTransaction(transaction);
- for (PersonListDTO personList : personLists) {
- PersonList entity = personListDAO.create();
-
- // Création des comptes de la liste
- // FIXME do not call a Service from an other one
- ServicePollAccount spa = new ServicePollAccountImpl();
- for (PollAccountDTO account : personList.getPollAccounts()) {
- account.setPersonListId(entity.getTopiaId());
- }
- entity.setPollAccount(spa.createPollAccounts(personList
- .getPollAccounts(), transaction));
-
- personList.setUserId(userId);
- personListConverter
- .populatePersonListEntity(personList, entity);
- }
-
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
- }
- }
-
- @Override
public void createAccountInPersonList(PersonListDTO personList, PollAccountDTO account) {
TopiaContext transaction = null;
try {
@@ -564,38 +354,6 @@
}
@Override
- public List<PersonListDTO> findPersonListByName(String name) {
- TopiaContext transaction = null;
- List<PersonListDTO> results = null;
- List<PersonList> personListEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- personListDAO = PollenModelDAOHelper.getPersonListDAO(transaction);
-
- personListEntities = personListDAO.findAllByName(name);
-
- personListConverter.setTransaction(transaction);
- results = personListConverter
- .createPersonListDTOs(personListEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
public List<PersonListDTO> findPersonListByUser(String userId) {
TopiaContext transaction = null;
List<PersonListDTO> results = null;
@@ -629,44 +387,4 @@
ContextUtil.doFinally(transaction);
}
}
-
- @Override
- public List<PersonListDTO> selectPersonList(Map<String, Object> properties) {
- TopiaContext transaction = null;
- List<PersonListDTO> results = null;
- List<PersonList> personListEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- personListDAO = PollenModelDAOHelper.getPersonListDAO(transaction);
-
- if (properties == null) {
- personListEntities = personListDAO.findAll();
- if (log.isWarnEnabled()) {
- log
- .warn("Attention : toutes les listes ont été sélectionnés !");
- }
- } else {
- personListEntities = personListDAO
- .findAllByProperties(properties);
- }
- personListConverter.setTransaction(transaction);
- results = personListConverter
- .createPersonListDTOs(personListEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java 2010-02-26 17:37:14 UTC (rev 2891)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java 2010-02-26 18:01:14 UTC (rev 2892)
@@ -84,25 +84,4 @@
* @return un compte
*/
public PollAccountDTO findPollAccountByAccountId(String pollAccountId);
-
- /**
- * Récupération des comptes d'un utilisateur.
- *
- * @param userId l'identifiant de l'utilisateur
- * @return la liste des comptes de l'utilisateur
- * @deprecated useless method : used nowhere
- */
- @Deprecated
- public List<PollAccountDTO> findPollAccountsByUser(String userId);
-
- /**
- * Recherche des comptes à partir d'un filtre.
- *
- * @param properties filtre sur les champs de la table pollAccount
- * @return les comptes
- * @deprecated useless method : used nowhere
- */
- @Deprecated
- public List<PollAccountDTO> selectPollAccounts(
- Map<String, Object> properties);
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-26 17:37:14 UTC (rev 2891)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-26 18:01:14 UTC (rev 2892)
@@ -250,79 +250,4 @@
ContextUtil.doFinally(transaction);
}
}
-
- @Override
- public List<PollAccountDTO> findPollAccountsByUser(String userId) {
- TopiaContext transaction = null;
- List<PollAccountDTO> results = null;
- List<PollAccount> pollAccountEntities = null;
- UserAccountDAO userDAO = null;
- try {
- transaction = rootContext.beginTransaction();
-
- userDAO = PollenModelDAOHelper.getUserAccountDAO(transaction);
- UserAccount user = userDAO.findByTopiaId(userId);
-
- pollAccountEntities = new ArrayList<PollAccount>();
- pollAccountEntities.addAll(user.getPollAccount());
-
- converter.setTransaction(transaction);
- results = converter.createPollAccountDTOs(pollAccountEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public List<PollAccountDTO> selectPollAccounts(
- Map<String, Object> properties) {
- TopiaContext transaction = null;
- List<PollAccountDTO> results = null;
- List<PollAccount> pollAccountEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- pollAccountDAO = PollenModelDAOHelper
- .getPollAccountDAO(transaction);
-
- if (properties == null) {
- pollAccountEntities = pollAccountDAO.findAll();
- if (log.isWarnEnabled()) {
- log
- .warn("Attention : tous les comptes ont été sélectionnés !");
- }
- } else {
- pollAccountEntities = pollAccountDAO
- .findAllByProperties(properties);
- }
- converter.setTransaction(transaction);
- results = converter.createPollAccountDTOs(pollAccountEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
}
\ No newline at end of file
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-26 17:37:14 UTC (rev 2891)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-26 18:01:14 UTC (rev 2892)
@@ -105,57 +105,6 @@
}
/**
- * Test of deleteVotingList method, of class ServiceListImpl.
- */
- @Test
- public void testDeleteVotingList() {
- VotingListDTO dto = new VotingListDTO();
- dto.setName("Test_DeleteVotingList");
- String votingListId = instance.createVotingList(dto);
- dto.setId(votingListId);
- boolean result = instance.deleteVotingList(votingListId);
- assertTrue(result);
- }
-
- /**
- * Test of findVotingListById method, of class ServiceListImpl.
- */
- @Test
- public void testFindVotingListById() {
- VotingListDTO dto = new VotingListDTO();
- dto.setName("test_findVotingListById");
- String votingListId = instance.createVotingList(dto);
- VotingListDTO result = instance.findVotingListById(votingListId);
- String resultId = result.getId();
- assertEquals(votingListId, resultId);
- }
-
- /**
- * Test of findVotingListByName method, of class ServiceListImpl.
- */
- @Test
- public void testFindVotingListByName() {
- VotingListDTO dto = new VotingListDTO();
- dto.setName("Test_findVotingListByName");
- String votingListId = instance.createVotingList(dto);
- List<VotingListDTO> result = instance
- .findVotingListByName("Test_findVotingListByName");
- assertEquals(result.size(), 1);
- }
-
- /**
- * Test of selectVotingList method, of class ServiceListImpl.
- */
- @Test
- public void testSelectVotingList() {
- VotingListDTO dto = new VotingListDTO();
- dto.setName("test_selectVotingList");
- String votingListId = instance.createVotingList(dto);
- List<VotingListDTO> result = instance.selectVotingList(null);
- assertTrue(result.size() > 0);
- }
-
- /**
* Test of createPersonList method, of class ServiceListImpl.
*/
@Test
@@ -291,29 +240,4 @@
String resultId = result.getId();
assertEquals(personListId, resultId);
}
-
- /**
- * Test of findPersonListByName method, of class ServiceListImpl.
- */
- @Test
- public void testFindPersonListByName() {
- PersonListDTO dto = new PersonListDTO();
- dto.setName("test_findPersonListByName");
- String personListId = instance.createPersonList(dto);
- List<PersonListDTO> result = instance
- .findPersonListByName("test_findPersonListByName");
- assertEquals(result.size(), 1);
- }
-
- /**
- * Test of selectPersonlist method, of class ServiceListImpl.
- */
- @Test
- public void testSelectPersonlist() {
- PersonListDTO dto = new PersonListDTO();
- dto.setName("test_selectPersonList");
- String personListId = instance.createPersonList(dto);
- List<PersonListDTO> result = instance.selectPersonList(null);
- assertTrue(result.size() > 0);
- }
}
\ No newline at end of file
1
0
r2891 - trunk/pollen-business/src/main/java/org/chorem/pollen/business
by fdesbois@users.chorem.org 26 Feb '10
by fdesbois@users.chorem.org 26 Feb '10
26 Feb '10
Author: fdesbois
Date: 2010-02-26 18:37:14 +0100 (Fri, 26 Feb 2010)
New Revision: 2891
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
Log:
ups :)
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-26 17:32:17 UTC (rev 2890)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-26 17:37:14 UTC (rev 2891)
@@ -43,7 +43,6 @@
}
public String getKey() {
- PollenProperty.EMAIL_HOST.getValue();
return key;
}
1
0
Author: fdesbois
Date: 2010-02-26 18:32:17 +0100 (Fri, 26 Feb 2010)
New Revision: 2890
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPersonListConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PersonListDTO.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java
trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml
trunk/pollen-ui/src/main/webapp/user/UserLists.tml
Log:
- Refactor account usage in personList -> createAccountInPersonList and deleteAccountFromPersonList :
easier usage in ui module.
- other improves
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -43,6 +43,7 @@
}
public String getKey() {
+ PollenProperty.EMAIL_HOST.getValue();
return key;
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPersonListConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPersonListConverter.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPersonListConverter.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -71,7 +71,7 @@
}
if (ePersonList.getPollAccount().size() > 0) {
DataPollAccountConverter converter = new DataPollAccountConverter();
- personListDTO.setPollAccountDTOs(converter
+ personListDTO.setPollAccounts(converter
.createPollAccountDTOs(ePersonList.getPollAccount()));
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PersonListDTO.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PersonListDTO.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PersonListDTO.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -18,6 +18,7 @@
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
/**
@@ -35,7 +36,7 @@
private String name = "";
- private List<PollAccountDTO> pollAccountDTOs = new ArrayList<PollAccountDTO>();
+ private List<PollAccountDTO> persons = new ArrayList<PollAccountDTO>();
public PersonListDTO() {
@@ -76,12 +77,34 @@
this.name = name;
}
- public List<PollAccountDTO> getPollAccountDTOs() {
- return pollAccountDTOs;
+ public List<PollAccountDTO> getPollAccounts() {
+ return persons;
}
- public void setPollAccountDTOs(List<PollAccountDTO> pollAccountDTOs) {
- this.pollAccountDTOs = pollAccountDTOs;
+ public void setPollAccounts(List<PollAccountDTO> persons) {
+ this.persons = persons;
}
+ public boolean addPollAccount(PollAccountDTO account) {
+ if (persons == null) {
+ persons = new ArrayList<PollAccountDTO>();
+ }
+ return persons.add(account);
+ }
+
+ public boolean removePollAccount(String accountId) {
+ if (persons == null) {
+ return false;
+ }
+ Iterator<PollAccountDTO> it = persons.iterator();
+ while (it.hasNext()) {
+ PollAccountDTO account = it.next();
+ if (accountId.equals(account.getId())) {
+ it.remove();
+ return true;
+ }
+ }
+ return false;
+ }
+
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceList.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -20,6 +20,7 @@
import java.util.Map;
import org.chorem.pollen.business.dto.PersonListDTO;
+import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.dto.VotingListDTO;
import org.chorem.pollen.business.persistence.VotingList;
import org.nuiton.topia.TopiaContext;
@@ -126,14 +127,23 @@
TopiaContext transaction);
/**
- * Mise à jour d'une liste de favoris
+ * Create an {@code account} in a {@code personList}.
*
- * @param personlistDTO la liste
- * @return true si la liste a été mise à jours
+ * @param personList where the account will be added
+ * @param account to create
*/
- public boolean updatePersonList(PersonListDTO personlistDTO);
+ void createAccountInPersonList(PersonListDTO personList,
+ PollAccountDTO account);
/**
+ * Delete an account using its {@code accountId} from a {@code personList}.
+ *
+ * @param personList where the account will be removed
+ * @param accountId topiaId of the account to delete
+ */
+ void deleteAccountFromPersonList(PersonListDTO personList, String accountId);
+
+ /**
* Suppression d'une liste de favoris
*
* @param personListId l'identifiant de la liste
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -22,8 +22,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.PollenContext;
+import org.chorem.pollen.business.PollenConverter;
import org.chorem.pollen.business.converters.DataPersonListConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
import org.chorem.pollen.business.dto.PersonListDTO;
@@ -31,6 +31,8 @@
import org.chorem.pollen.business.dto.VotingListDTO;
import org.chorem.pollen.business.persistence.PersonList;
import org.chorem.pollen.business.persistence.PersonListDAO;
+import org.chorem.pollen.business.persistence.PollAccount;
+import org.chorem.pollen.business.persistence.PollAccountDAO;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.persistence.UserAccountDAO;
@@ -38,6 +40,7 @@
import org.chorem.pollen.business.persistence.VotingListDAO;
import org.chorem.pollen.business.utils.ContextUtil;
import org.nuiton.topia.TopiaContext;
+import static org.nuiton.i18n.I18n._;
/**
* Implémentation du service de gestion des listes.
@@ -59,6 +62,9 @@
public ServiceListImpl() {
rootContext = PollenContext.getRootContext();
+
+ PollenConverter.preparePollAccountConverters();
+ PollenConverter.prepareVotingListConverters();
}
@Override
@@ -327,11 +333,11 @@
// Création des comptes de la liste
// FIXME do not call a Service from an other one
ServicePollAccount spa = new ServicePollAccountImpl();
- for (PollAccountDTO account : personList.getPollAccountDTOs()) {
+ for (PollAccountDTO account : personList.getPollAccounts()) {
account.setPersonListId(entity.getTopiaId());
}
entity.setPollAccount(spa.createPollAccounts(personList
- .getPollAccountDTOs(), transaction));
+ .getPollAccounts(), transaction));
topiaId = entity.getTopiaId();
@@ -367,11 +373,11 @@
// Création des comptes de la liste
// FIXME do not call a Service from an other one
ServicePollAccount spa = new ServicePollAccountImpl();
- for (PollAccountDTO account : personList.getPollAccountDTOs()) {
+ for (PollAccountDTO account : personList.getPollAccounts()) {
account.setPersonListId(entity.getTopiaId());
}
entity.setPollAccount(spa.createPollAccounts(personList
- .getPollAccountDTOs(), transaction));
+ .getPollAccounts(), transaction));
personList.setUserId(userId);
personListConverter
@@ -386,50 +392,78 @@
}
@Override
- public boolean updatePersonList(PersonListDTO personList) {
+ public void createAccountInPersonList(PersonListDTO personList, PollAccountDTO account) {
TopiaContext transaction = null;
try {
transaction = rootContext.beginTransaction();
personListDAO = PollenModelDAOHelper.getPersonListDAO(transaction);
- PersonList entity = personListDAO.findByTopiaId(personList.getId());
+ PersonList eList = personListDAO.findByTopiaId(personList.getId());
- personListConverter.setTransaction(transaction);
- personListConverter.populatePersonListEntity(personList, entity);
+ PollAccountDAO accountDAO =
+ PollenModelDAOHelper.getPollAccountDAO(transaction);
- personListDAO.update(entity);
+ // Create new pollAccount
+ String accountUID = PollenContext.createPollenUrlId();
+ PollAccount eAccount = accountDAO.create(accountUID);
+ PollenConverter.convert(account, eAccount);
- // mise à jour ou création des comptes
- // FIXME do not call a Service from an other one
- ServicePollAccount spa = new ServicePollAccountImpl();
- for (PollAccountDTO pollAccountDTO : personList
- .getPollAccountDTOs()) {
- pollAccountDTO.setPersonListId(entity.getTopiaId());
- boolean updated = spa.updatePollAccount(pollAccountDTO);
- if (!updated) {
- pollAccountDTO.setId(spa.createPollAccount(pollAccountDTO));
- }
+ // Add the account into the list
+ eList.addPollAccount(eAccount);
- if (log.isDebugEnabled()) {
- log.debug("PollAccount " + pollAccountDTO.getVotingId()
- + " (" + pollAccountDTO.getId() + ") updated: "
- + updated);
- }
- }
+ transaction.commitTransaction();
+ // Update change in dtos
+ account.setId(eAccount.getTopiaId());
+ account.setAccountId(eAccount.getAccountId());
+ personList.addPollAccount(account);
+
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.serviceList.createAccountForPersonList",
+ personList.getName(), account.getVotingId()),
+ transaction
+ );
+ } finally {
+ PollenContext.doFinally(transaction);
+ }
+ }
+
+ @Override
+ public void deleteAccountFromPersonList(PersonListDTO personList, String accountId) {
+ TopiaContext transaction = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ // Find the account
+ PollAccountDAO accountDAO =
+ PollenModelDAOHelper.getPollAccountDAO(transaction);
+ PollAccount eAccount = accountDAO.findByTopiaId(accountId);
+
+ personListDAO = PollenModelDAOHelper.getPersonListDAO(transaction);
+
+ PersonList eList = personListDAO.findByTopiaId(personList.getId());
+
+ // The remove will delete the comment because no poll will be
+ // attached to him (delete-orphan)
+ eList.removePollAccount(eAccount);
+
+ accountDAO.delete(eAccount);
+
transaction.commitTransaction();
- if (log.isDebugEnabled()) {
- log.debug("Entity updated: " + personList.getId());
- }
+ // Update change in dto
+ personList.removePollAccount(accountId);
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.serviceList.deleteAccountFromPersonList",
+ accountId, personList.getName(), personList.getId()),
+ transaction
+ );
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccount.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -42,19 +42,6 @@
public String createPollAccount(PollAccountDTO pollAccount);
/**
- * Creation d'un compte utilisateur.
- *
- * @param votingId l'identifiant du votant
- * @param email l'email du votant
- * @param userId l'identifiant de l'utilisateur
- * @return le topiaId du compte créé
- * @deprecated useless method : not used in UI
- */
- @Deprecated
- public PollAccount createPollAccount(String votingId, String email,
- String userId);
-
- /**
* Creation des comptes utilisateur.
*
* @param pollAccounts les comptes à creer
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -90,43 +90,6 @@
}
@Override
- public PollAccount createPollAccount(String votingId, String email,
- String userId) {
- TopiaContext transaction = null;
- String topiaId;
- PollAccount pollAccountEntity = null;
- try {
- transaction = rootContext.beginTransaction();
-
- pollAccountDAO = PollenModelDAOHelper
- .getPollAccountDAO(transaction);
-
- // Identifiant du compte
- String id = ContextUtil.createPollenUrlId();
- pollAccountEntity = pollAccountDAO.create(PollAccount.ACCOUNT_ID, id);
-
- converter.setTransaction(transaction);
- converter.populatePollAccountEntity(votingId, email, userId,
- pollAccountEntity);
-
- topiaId = pollAccountEntity.getTopiaId();
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity created: " + topiaId);
- }
-
- return pollAccountEntity;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
public List<PollAccount> createPollAccounts(
List<PollAccountDTO> pollAccounts, TopiaContext transaction) {
if (pollAccounts.isEmpty()) {
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-26 17:32:17 UTC (rev 2890)
@@ -4,6 +4,8 @@
pollen.error.context.rollback=
pollen.error.context.start=
pollen.error.context.stop=
+pollen.error.serviceList.createAccountForPersonList=
+pollen.error.serviceList.deleteAccountFromPersonList=
pollen.error.servicePoll.addComment=
pollen.error.servicePoll.createPoll=
pollen.error.servicePoll.delete=
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-26 17:32:17 UTC (rev 2890)
@@ -4,6 +4,8 @@
pollen.error.context.rollback=Erreur lors de l'annulation de la transaction
pollen.error.context.start=Erreur lors du d\u00E9marrage de l'application
pollen.error.context.stop=Erreur lors de l'arr\u00EAt de l'application
+pollen.error.serviceList.createAccountForPersonList=
+pollen.error.serviceList.deleteAccountFromPersonList=
pollen.error.servicePoll.addComment=Impossible d'ajouter un nouveau commentaire cr\u00E9\u00E9 par %1$s pour le sondage %2$s (%3$s)
pollen.error.servicePoll.createPoll=Impossible d'enregistrer le sondage %1$s cr\u00E9\u00E9 par %2$s
pollen.error.servicePoll.deleteComment=Impossible de supprimer le commentaire ayant pour identifiant "%1$s", appartenenant au sondage %2$s (%3$s)
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -16,7 +16,6 @@
package org.chorem.pollen.business.services;
-import org.chorem.pollen.business.PollenBusinessException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -24,12 +23,19 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.TestData;
import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.PersonListDTO;
+import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.dto.VotingListDTO;
-import org.chorem.pollen.business.utils.ContextUtil;
+import org.chorem.pollen.business.persistence.PersonList;
+import org.chorem.pollen.business.persistence.PersonListDAO;
+import org.chorem.pollen.business.persistence.PollAccount;
+import org.chorem.pollen.business.persistence.PollAccountDAO;
+import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.junit.After;
import org.junit.AfterClass;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -162,19 +168,105 @@
/**
* Test of updatePersonList method, of class ServiceListImpl.
+ * @throws Exception
*/
@Test
- public void testUpdatePersonList() {
+ public void testCreateAccountInPersonList() throws Exception {
+ // temp stop, must refactor all tests from this class
+ TestManager.stop();
+ TestManager.start("createAccountInPersonList");
+ instance = new ServiceListImpl();
+
+ /** PREPARE DATA **/
PersonListDTO dto = new PersonListDTO();
- dto.setName("test_UpdatePersonList");
- String personListId = instance.createPersonList(dto);
+ dto.setName("list");
+ final String personListId = instance.createPersonList(dto);
dto.setId(personListId);
- dto.setName("new name");
- boolean result = instance.updatePersonList(dto);
- assertTrue(result);
+
+ final PollAccountDTO account = new PollAccountDTO();
+ account.setVotingId("Jack Pot");
+ account.setEmail("jackpot(a)pompedup.fr");
+
+ /** EXEC METHOD **/
+ instance.createAccountInPersonList(dto, account);
+ Assert.assertNotNull(account.getAccountId());
+ Assert.assertNotNull(account.getId());
+ Assert.assertEquals(1, dto.getPollAccounts().size());
+
+ TestData test = new TestData() {
+
+ @Override
+ protected void test() throws Exception {
+ PollAccountDAO dao =
+ PollenModelDAOHelper.getPollAccountDAO(transaction);
+
+ PollAccount eAccount = dao.findByTopiaId(account.getId());
+ Assert.assertNotNull(eAccount);
+ Assert.assertNotNull(eAccount.getPersonList());
+ Assert.assertEquals(personListId,
+ eAccount.getPersonList().getTopiaId());
+ }
+
+ };
+
+ test.execute();
+
+ // temp stop, must refactor all tests from this class
+ TestManager.stop();
}
+
/**
+ * Test of updatePersonList method, of class ServiceListImpl.
+ */
+ @Test
+ public void testDeleteAccountFromPersonList() throws Exception {
+ // temp stop, must refactor all tests from this class
+ TestManager.stop();
+ TestManager.start("deleteAccountFromPersonList");
+ instance = new ServiceListImpl();
+
+ /** PREPARE DATA **/
+ PersonListDTO dto = new PersonListDTO();
+ dto.setName("list");
+ final String personListId = instance.createPersonList(dto);
+ dto.setId(personListId);
+
+ final PollAccountDTO account = new PollAccountDTO();
+ account.setVotingId("Jack Pot");
+ account.setEmail("jackpot(a)pompedup.fr");
+
+ instance.createAccountInPersonList(dto, account);
+
+ /** EXEC METHOD **/
+ instance.deleteAccountFromPersonList(dto, account.getId());
+
+ TestData test = new TestData() {
+
+ @Override
+ protected void test() throws Exception {
+ PollAccountDAO dao =
+ PollenModelDAOHelper.getPollAccountDAO(transaction);
+
+ PollAccount eAccount = dao.findByTopiaId(account.getId());
+ Assert.assertNull(eAccount);
+
+ PersonListDAO listDAO =
+ PollenModelDAOHelper.getPersonListDAO(transaction);
+
+ PersonList ePersonList = listDAO.findByTopiaId(personListId);
+ Assert.assertEquals(0, ePersonList.getPollAccount().size());
+ }
+
+ };
+
+ test.execute();
+
+ // temp stop, must refactor all tests from this class
+ TestManager.stop();
+ }
+
+ /**
* Test of deletePersonList method, of class ServiceListImpl.
*/
@Test
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -25,6 +25,7 @@
import java.util.Map;
import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.Link;
@@ -34,7 +35,6 @@
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.Log;
-import org.apache.tapestry5.annotations.Mixins;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
@@ -48,7 +48,6 @@
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.upload.services.UploadSymbols;
-import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
@@ -118,9 +117,6 @@
/** Mixin de selection de liste de favoris */
@SuppressWarnings("unused")
- @Component(parameters = { "event=change",
- "onCompleteCallback=literal:onCompleteZoneUpdate" })
- @Mixins( { "ck/OnEvent" })
private Select listSelect;
@InjectComponent
@@ -1008,21 +1004,22 @@
* est créé. Il sera retourné à la fonction JavaScript onCompleteCallback
* pour mettre à jour la zone.
*
+ * @param value
* @return un JSONObject contenant l'url de l'évènement mettant à jour la
* zone.
*/
public JSONObject onChangeFromListSelect(String value) {
- if (!"".equals(value)) {
+ if (StringUtils.isNotEmpty(value)) {
personList = serviceList.findPersonListById(value);
// Copie des personnes de la liste de favoris dans la liste de votants
- for (PollAccountDTO account : personList.getPollAccountDTOs()) {
+ for (PollAccountDTO account : personList.getPollAccounts()) {
account.setId("");
account.setPersonListId("");
}
votingLists.get(currentList).setPollAccountDTOs(
- personList.getPollAccountDTOs());
+ personList.getPollAccounts());
}
return createParamsForCallback();
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2010-02-26 17:32:17 UTC (rev 2890)
@@ -208,7 +208,7 @@
accountsFile.getFileName()));
return this;
}
- newList.getPollAccountDTOs().addAll(accounts);
+ newList.getPollAccounts().addAll(accounts);
}
// Import LDAP des comptes
@@ -220,7 +220,7 @@
accountsUrl));
return this;
}
- newList.getPollAccountDTOs().addAll(accounts);
+ newList.getPollAccounts().addAll(accounts);
}
// Création de la nouvelle liste
@@ -263,17 +263,20 @@
* Méthode appelée à la création d'un compte.
*/
Object onSuccessFromCreateAccountForm() {
- for (PollAccountDTO dto : selectedList.getPollAccountDTOs()) {
+ // TODO : use onValidateForm method : test return block, may be
+ // a problem between failure and success
+ for (PollAccountDTO dto : selectedList.getPollAccounts()) {
if (dto.getVotingId().equals(newAccount.getVotingId())) {
createAccountForm.recordError(messages.format("accountExists",
newAccount.getVotingId()));
}
}
if (!createAccountForm.getHasErrors()) {
- newAccount.setPersonListId(selectedList.getId());
- selectedList.getPollAccountDTOs().add(newAccount);
- serviceList.updatePersonList(selectedList);
- selectedList = serviceList.findPersonListById(selectedList.getId());
+// newAccount.setPersonListId(selectedList.getId());
+// selectedList.getPollAccounts().add(newAccount);
+// serviceList.updatePersonList(selectedList);
+// selectedList = serviceList.findPersonListById(selectedList.getId());
+ serviceList.createAccountInPersonList(selectedList, account);
}
return listsZone.getBody();
}
@@ -282,16 +285,17 @@
* Méthode appelée à la suppression d'un compte.
*/
Object onActionFromDeleteAccount(String accountId) {
- Iterator<PollAccountDTO> it = selectedList.getPollAccountDTOs()
- .iterator();
- while (it.hasNext()) {
- if (accountId.equals(it.next().getId())) {
- it.remove();
- }
- }
- serviceList.updatePersonList(selectedList);
- servicePollAccount.deletePollAccount(accountId);
- selectedList = serviceList.findPersonListById(selectedList.getId());
+// Iterator<PollAccountDTO> it = selectedList.getPollAccounts()
+// .iterator();
+// while (it.hasNext()) {
+// if (accountId.equals(it.next().getId())) {
+// it.remove();
+// }
+// }
+// serviceList.updatePersonList(selectedList);
+// servicePollAccount.deletePollAccount(accountId);
+// selectedList = serviceList.findPersonListById(selectedList.getId());
+ serviceList.deleteAccountFromPersonList(selectedList, accountId);
return listsZone.getBody();
}
Modified: trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml
===================================================================
--- trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml 2010-02-26 17:32:17 UTC (rev 2890)
@@ -171,7 +171,8 @@
<t:if test="personListsExists">
<div>
<t:label for="listSelect" />:
- <t:select t:id="listSelect" t:model="personLists" t:encoder="personLists" t:value="personList"></t:select>
+ <t:select t:id="listSelect" t:model="personLists" t:encoder="personLists" t:value="personList"
+ t:mixins="ck/onEvent" t:event="change" t:onCompleteCallback="literal:onCompleteZoneUpdate"></t:select>
<span t:type="ck/Tooltip" title="${message:help}" value="${message:listSelect-help}" effect="appear">
<img src="${asset:context:img/help.png}" alt="${message:help}"/>
</span>
Modified: trunk/pollen-ui/src/main/webapp/user/UserLists.tml
===================================================================
--- trunk/pollen-ui/src/main/webapp/user/UserLists.tml 2010-02-26 17:24:00 UTC (rev 2889)
+++ trunk/pollen-ui/src/main/webapp/user/UserLists.tml 2010-02-26 17:32:17 UTC (rev 2890)
@@ -27,7 +27,7 @@
<!-- Affichage de la liste -->
- <t:grid t:source="selectedList.pollAccountDTOs" t:row="account" model="listModel"
+ <t:grid t:source="selectedList.pollAccounts" t:row="account" model="listModel"
t:rowsPerPage="10" t:pagerPosition="bottom" t:rowClass="prop:evenodd.next" t:inPlace="true">
<p:functionsCell>
<t:actionlink t:id="deleteAccount" context="account.id" t:zone="listsZone">
1
0
Author: echatellier
Date: 2010-02-26 18:24:00 +0100 (Fri, 26 Feb 2010)
New Revision: 2889
Modified:
trunk/README.txt
Log:
Bad commit of unused tomcat link
Modified: trunk/README.txt
===================================================================
--- trunk/README.txt 2010-02-26 17:19:09 UTC (rev 2888)
+++ trunk/README.txt 2010-02-26 17:24:00 UTC (rev 2889)
@@ -65,12 +65,8 @@
Pour cela, lancez pollen avec la commande suivante :
-::
-
java -jar pollen-x.x.x.war
Ensuite, ouvrez un navigateur à l'adresse : http://localhost:8080
-Vous pouvez aussi utiliser des options de lancement : http://winstone.sourceforge.net/#commandLine
-
-.. _Tomcat: http://tomcat.apache.org/
\ No newline at end of file
+Vous pouvez aussi utiliser des options de lancement : http://winstone.sourceforge.net/#commandLine
\ No newline at end of file
1
0
Author: echatellier
Date: 2010-02-26 18:19:09 +0100 (Fri, 26 Feb 2010)
New Revision: 2888
Modified:
trunk/README.txt
Log:
Ajout de la doc du mode embarqu?\195?\169 dans le README.txt ?\195?\169galement
Modified: trunk/README.txt
===================================================================
--- trunk/README.txt 2010-02-26 13:32:46 UTC (rev 2887)
+++ trunk/README.txt 2010-02-26 17:19:09 UTC (rev 2888)
@@ -56,3 +56,21 @@
(identifiant "admin", mot de passe "pollen"). Par mesure de sécurité il est
important de supprimer cet utilisateur après avoir créer un autre compte
administrateur.
+
+Conteneur embarqué
+------------------
+
+Depuis pollen-1.1.1, il est possible de le lancer avec un conteneur embarqué
+seulement en disposant du fichier war.
+
+Pour cela, lancez pollen avec la commande suivante :
+
+::
+
+ java -jar pollen-x.x.x.war
+
+Ensuite, ouvrez un navigateur à l'adresse : http://localhost:8080
+
+Vous pouvez aussi utiliser des options de lancement : http://winstone.sourceforge.net/#commandLine
+
+.. _Tomcat: http://tomcat.apache.org/
\ No newline at end of file
1
0
r2887 - in trunk: pollen-business/src/main/java/org/chorem/pollen/business pollen-business/src/main/java/org/chorem/pollen/business/dto pollen-business/src/main/java/org/chorem/pollen/business/services pollen-business/src/test/java/org/chorem/pollen/business/services pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll pollen-ui/src/main/webapp/poll
by fdesbois@users.chorem.org 26 Feb '10
by fdesbois@users.chorem.org 26 Feb '10
26 Feb '10
Author: fdesbois
Date: 2010-02-26 14:32:46 +0100 (Fri, 26 Feb 2010)
New Revision: 2887
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml
Log:
- Remove method findByPollId in servicePoll --> refactor UI / business (dto update after creation)
- Add creatorName attribute in PollDTO to avoid conflict with creatorId in creation
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -174,6 +174,7 @@
PollAccount creator = entity.getCreator();
UserAccount user = creator.getUserAccount();
dto.setCreatorId(creator.getTopiaId());
+ dto.setCreatorName(creator.getVotingId());
dto.setCreatorEmail(creator.getEmail());
if (creator.getUserAccount() != null) {
dto.setUserId(user.getTopiaId());
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -73,10 +73,13 @@
private String userId = "";
- // Carefull, not TopiaId but pollAccount.votingId = creator name depends
- // on case : for saving, it's the votingId, for display it's the topiaId
+ /** topiaId of the creator (pollAccount) **/
private String creatorId = "";
+ /** name of the creator (pollAccount.votingId) **/
+ private String creatorName;
+
+ /** email of the creator **/
private String creatorEmail = "";
private List<CommentDTO> comments = new ArrayList<CommentDTO>();
@@ -303,6 +306,14 @@
this.creatorId = creatorId;
}
+ public String getCreatorName() {
+ return creatorName;
+ }
+
+ public void setCreatorName(String creatorName) {
+ this.creatorName = creatorName;
+ }
+
public String getCreatorEmail() {
return creatorEmail;
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -55,16 +55,6 @@
public boolean deletePoll(String pollId);
/**
- * Récupération d'un sondage à partir de son identifiant ToPIA
- *
- * @param pollId identifiant topia du sondage
- * @return le sondage
- * @deprecated use {@link #findPollByPollId } with the correct id instead
- */
- @Deprecated
- public PollDTO findPollById(String pollId);
-
- /**
* Récupération d'un sondage à partir de son identifiant.
*
* @param pollId identifiant du sondage (différent du topiaId)
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -99,7 +99,8 @@
pollDAO = PollenModelDAOHelper.getPollDAO(transaction);
// Create with a new pollId generated for links
- Poll entity = pollDAO.create(PollenContext.createPollenUrlId());
+ String pollId = PollenContext.createPollenUrlId();
+ Poll entity = pollDAO.create(pollId);
PollenConverter.convert(pollDTO, entity);
// ** Manage the poll creator
@@ -136,6 +137,12 @@
}
result = entity.getTopiaId();
+
+ // Update dto : need creator and id update
+ // WARN : Update for choices, preventRules and
+ // votingLists is not needed in this case
+ PollenConverter.convert(entity, pollDTO);
+
} catch (Exception eee) {
PollenContext.doCatch(eee,
_("pollen.error.servicePoll.createPoll",
@@ -150,7 +157,7 @@
/**
* Prepare pollAccount as creator for {@code poll} save. If userId is
* defined, the pollAccount will be searched in database testing all fields
- * (user, creatorId as votingId and email). If no result is found or no
+ * (user, creatorName as votingId and email). If no result is found or no
* userId, a new pollAccount is created.
*
* @param transaction current TopiaContext
@@ -169,7 +176,7 @@
// Prepare properties for find or create
Map<String, Object> accountProperties = new HashMap<String, Object>();
accountProperties.put(PollAccount.USER_ACCOUNT, user);
- accountProperties.put(PollAccount.VOTING_ID, poll.getCreatorId());
+ accountProperties.put(PollAccount.VOTING_ID, poll.getCreatorName());
accountProperties.put(PollAccount.EMAIL, poll.getCreatorEmail());
PollAccountDAO accountDAO =
@@ -304,52 +311,7 @@
}
}
- /**
- * This method must be deleted after ui refactor in PollCreation page.
- * Only used for CreationValidation page that not need complete poll data.
- * Only main and creator params will be load in dto using
- * {@link ConverterHelper#convert(Poll, PollDTO) }
- *
- * @param id topiaId of the poll
- * @return the PollDTO corresponding
- */
@Override
- public PollDTO findPollById(String id) {
- TopiaContext transaction = null;
- PollDTO result = null;
- try {
- transaction = rootContext.beginTransaction();
-
- pollDAO = PollenModelDAOHelper.getPollDAO(transaction);
-
- Poll pollEntity = pollDAO.findByTopiaId(id);
-
- if (pollEntity != null) {
- result = PollenConverter.convert(pollEntity, new PollDTO());
- }
-
-// if (pollEntity != null) {
-// converter.setTransaction(transaction);
-// result = converter.createPollDTO(pollEntity);
-// }
-
- //transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity found: "
- + ((result == null) ? "null" : result.getId()));
- }
-
- return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- PollenContext.doFinally(transaction);
- }
- }
-
- @Override
public PollDTO findPollByPollId(String pollId) {
TopiaContext transaction = null;
PollDTO result = null;
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -93,7 +93,7 @@
dto.setBeginChoiceDate(new Date());
dto.setBeginDate(new Date());
dto.setChoiceType(ChoiceType.TEXT);
- dto.setCreatorId("erwan");
+ dto.setCreatorName("erwan");
dto.setDescription("Test_createPoll");
dto.setEndDate(new Date());
dto.setAnonymous(false);
@@ -187,27 +187,6 @@
}
/**
- * Test of findPollById method, of class ServicePollImpl.
- */
- @Test
- public void testFindPollById() throws Exception {
- TestManager.start("testFindPollById");
- instance = new ServicePollImpl();
-
- String pollId = "";
- PollDTO dto = new PollDTO();
- dto.setDescription("Test_findPollById");
- dto.setTitle("Test_findPollById");
- dto.setAnonymous(false);
- dto.setPollType(PollType.FREE);
- dto.setChoiceType(ChoiceType.TEXT);
- dto.setVoteCounting(VoteCountingType.NORMAL);
- pollId = instance.createPoll(dto);
- PollDTO result = instance.findPollById(pollId);
- assertEquals(pollId, result.getId());
- }
-
- /**
* Test of findPollByPollId method, of class ServicePollImpl.
*/
@Test
@@ -224,7 +203,7 @@
dto.setChoiceType(ChoiceType.TEXT);
dto.setVoteCounting(VoteCountingType.NORMAL);
pollId = instance.createPoll(dto);
- String pollUID = instance.findPollById(pollId).getPollId();
+ String pollUID = dto.getPollId();
log.debug("pollUID : " + pollUID);
PollDTO result = instance.findPollByPollId(pollUID);
log.debug("title : " + result.getTitle());
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-26 13:32:46 UTC (rev 2887)
@@ -796,9 +796,11 @@
private void createPoll() {
// Création du sondage
- poll.setId(servicePoll.createPoll(poll));
+ servicePoll.createPoll(poll);
- if (poll.getId() != null) {
+ // FD-20100226 : Can't be null, an exception will be thrown if a
+ // problem comes from createPoll
+ //if (poll.getId() != null) {
// Création des images
if (poll.getChoiceType() == ChoiceType.IMAGE) {
@@ -806,13 +808,15 @@
ImageUtil.saveImages(imgTypeChoices, dir);
}
- // Mise à jour du sondage
- poll = servicePoll.findPollById(poll.getId());
+ // FD-20100226 : not necessary, the service will update
+ // automatically the poll when it was created
+ // Mise à jour du sondage :
+ //poll = servicePoll.findPollById(poll.getId());
// Mise à jour du flux Atom et envoi d'un mail de confirmation
addFeedEntry();
sendMailNotification();
- }
+ //}
}
/** Ajout d'une entrée dans le flux de syndication */
@@ -1178,7 +1182,7 @@
// Initialisation du sondage
poll = new PollDTO();
if (userExists) {
- poll.setCreatorId(user.getLogin());
+ poll.setCreatorName(user.getLogin());
poll.setCreatorEmail(user.getEmail());
}
@@ -1215,10 +1219,11 @@
poll = PollHelper.getPoll(oldPoll);
// Initialisation du créateur du sondage
- PollAccountDTO creator = servicePollAccount.findPollAccountById(oldPoll
- .getCreatorId());
- poll.setCreatorId(creator.getVotingId());
- poll.setCreatorEmail(creator.getEmail());
+// PollAccountDTO creator = servicePollAccount.findPollAccountById(oldPoll
+// .getCreatorId());
+ //poll.setCreatorId(oldPoll.getCreatorId());
+ poll.setCreatorName(oldPoll.getCreatorName());
+ poll.setCreatorEmail(oldPoll.getCreatorEmail());
// Initialisation des règles de notification
notificationPreventRule = PollHelper
Modified: trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml
===================================================================
--- trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml 2010-02-25 15:17:00 UTC (rev 2886)
+++ trunk/pollen-ui/src/main/webapp/poll/PollCreation.tml 2010-02-26 13:32:46 UTC (rev 2887)
@@ -15,7 +15,7 @@
<legend>${stepLegend}</legend>
<div>
<t:label for="votingId" />
- <t:textfield t:id="votingId" t:value="poll.creatorid" t:validate="required,minlength=2"/>
+ <t:textfield t:id="votingId" t:value="poll.creatorName" t:validate="required,minlength=2"/>
</div>
<div>
<t:label for="email" />
1
0
r2886 - in trunk/pollen-business/src: main/java/org/chorem/pollen/business main/java/org/chorem/pollen/business/services test/java/org/chorem/pollen/business test/java/org/chorem/pollen/business/services
by fdesbois@users.chorem.org 25 Feb '10
by fdesbois@users.chorem.org 25 Feb '10
25 Feb '10
Author: fdesbois
Date: 2010-02-25 16:17:00 +0100 (Thu, 25 Feb 2010)
New Revision: 2886
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
Log:
- Add currentDate in PollenContext for tests
- Refactor old query to use TopiaQuery :D
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java 2010-02-25 13:13:26 UTC (rev 2885)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java 2010-02-25 15:17:00 UTC (rev 2886)
@@ -20,21 +20,20 @@
protected PollenExceptionType type;
public PollenBusinessException(PollenExceptionType type) {
- super(type.toString());
+ super(type.getMessage());
}
public enum PollenExceptionType {
LOAD_CONFIGURATION(_("pollen.exception.load_configuration"));
- private String name;
+ private String message;
- PollenExceptionType(String name) {
- this.name = name;
+ PollenExceptionType(String message) {
+ this.message = message;
}
- @Override
- public String toString() {
- return name;
+ public String getMessage() {
+ return message;
}
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java 2010-02-25 13:13:26 UTC (rev 2885)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java 2010-02-25 15:17:00 UTC (rev 2886)
@@ -1,11 +1,11 @@
package org.chorem.pollen.business;
+import java.util.Date;
import java.util.Properties;
import java.util.UUID;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.PollenBusinessException.PollenExceptionType;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.services.ServiceUserImpl;
import org.nuiton.i18n.I18n;
@@ -37,6 +37,8 @@
private static ApplicationConfig configuration;
+ private static Date currentDate;
+
/**
* Default configuration file will be loaded using
* {@link org.nuiton.util.ApplicationConfig }.
@@ -254,4 +256,15 @@
return UUID.randomUUID().toString().replaceAll("-", "");
}
+ public static void setCurrentDate(Date currentDate) {
+ PollenContext.currentDate = currentDate;
+ }
+
+ public static Date getCurrentDate() {
+ if (currentDate == null) {
+ currentDate = new Date();
+ }
+ return currentDate;
+ }
+
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 13:13:26 UTC (rev 2885)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 15:17:00 UTC (rev 2886)
@@ -17,6 +17,7 @@
package org.chorem.pollen.business.services;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -25,8 +26,6 @@
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.PollenBusinessException;
-import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.PollenConverter;
import org.chorem.pollen.business.converters.DataPollConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
@@ -58,6 +57,8 @@
import org.chorem.pollen.business.PollenContext;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.topia.framework.TopiaQuery.Op;
import static org.nuiton.i18n.I18n._;
/**
@@ -576,27 +577,43 @@
public List<PollDTO> findRunningPolls(boolean withEndDate) {
TopiaContext transaction = null;
List<PollDTO> results = null;
- List<Poll> pollEntities = null;
try {
transaction = rootContext.beginTransaction();
- // requête de sélection des sondages
+ PollDAO dao = PollenModelDAOHelper.getPollDAO(transaction);
+
+ String beginDate = Poll.BEGIN_DATE;
+ String endDate = Poll.END_DATE;
+ Date currentDate = PollenContext.getCurrentDate();
+
+ TopiaQuery query = dao.createQuery().
+ addNullOr(beginDate, Op.LT, currentDate);
+
if (withEndDate) {
- pollEntities = transaction
- .find("from "
- + Poll.class.getName()
- + " as poll where (poll.endDate is not null and poll.endDate > current_timestamp())"
- + " and (poll.beginDate is null or poll.beginDate < current_timestamp())");
+ query.add(endDate, Op.GT, currentDate);
} else {
- pollEntities = transaction
- .find("from "
- + Poll.class.getName()
- + " as poll where (poll.endDate is null or poll.endDate > current_timestamp())"
- + " and (poll.beginDate is null or poll.beginDate < current_timestamp())");
+ query.addNullOr(endDate, Op.GT, currentDate);
}
+ List<Poll> entities = dao.findAllByQuery(query);
+
+ // requête de sélection des sondages
+// if (withEndDate) {
+// pollEntities = transaction
+// .find("from "
+// + Poll.class.getName()
+// + " as poll where (poll.endDate is not null and poll.endDate > current_timestamp())"
+// + " and (poll.beginDate is null or poll.beginDate < current_timestamp())");
+// } else {
+// pollEntities = transaction
+// .find("from "
+// + Poll.class.getName()
+// + " as poll where (poll.endDate is null or poll.endDate > current_timestamp())"
+// + " and (poll.beginDate is null or poll.beginDate < current_timestamp())");
+// }
+
converter.setTransaction(transaction);
- results = converter.createPollDTOs(pollEntities);
+ results = converter.createPollDTOs(entities);
transaction.commitTransaction();
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java 2010-02-25 13:13:26 UTC (rev 2885)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java 2010-02-25 15:17:00 UTC (rev 2886)
@@ -3,6 +3,8 @@
import java.io.IOException;
import java.io.InputStream;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -43,6 +45,10 @@
PollenContext.loadConfiguration(config);
PollenContext.start();
+
+ // Set currentDate to 23/02/2010 for tests
+ Calendar calendar = new GregorianCalendar(2010, 1, 23, 0, 0, 0);
+ PollenContext.setCurrentDate(calendar.getTime());
}
public static void stop() throws IOException {
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-25 13:13:26 UTC (rev 2885)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-25 15:17:00 UTC (rev 2886)
@@ -17,7 +17,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.dto.CommentDTO;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -27,6 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.TestData;
import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
@@ -38,7 +38,6 @@
import org.chorem.pollen.business.persistence.CommentDAO;
import org.chorem.pollen.business.persistence.Poll;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
-import org.chorem.pollen.business.utils.ContextUtil;
import org.chorem.pollen.common.ChoiceType;
import org.chorem.pollen.common.PollType;
import org.chorem.pollen.common.VoteCountingType;
@@ -48,7 +47,6 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.nuiton.topia.TopiaContext;
/**
* Tests du service de gestion des sondages.
@@ -331,7 +329,7 @@
TestManager.start("testFindRunningPolls");
instance = new ServicePollImpl();
- Date now = new Date();
+ Date now = PollenContext.getCurrentDate();
// sondage en cours sans date de fin
PollDTO poll1 = new PollDTO();
1
0
Author: fdesbois
Date: 2010-02-25 14:13:26 +0100 (Thu, 25 Feb 2010)
New Revision: 2885
Added:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java
Removed:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/
trunk/pollen-business/src/test/java/org/chorem/pollen/business/utils/
Modified:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java
trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java
Log:
- Change ConverterHelper to PollenConverter : will be the only converter helper needed, the package converters will be deleted
- Improve messages and refactor deprecated
Copied: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java (from rev 2883, trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java)
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java (rev 0)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -0,0 +1,277 @@
+
+package org.chorem.pollen.business;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.dto.ChoiceDTO;
+import org.chorem.pollen.business.dto.CommentDTO;
+import org.chorem.pollen.business.dto.PollAccountDTO;
+import org.chorem.pollen.business.dto.PollDTO;
+import org.chorem.pollen.business.dto.PreventRuleDTO;
+import org.chorem.pollen.business.dto.VoteDTO;
+import org.chorem.pollen.business.dto.VotingListDTO;
+import org.chorem.pollen.business.persistence.Choice;
+import org.chorem.pollen.business.persistence.Comment;
+import org.chorem.pollen.business.persistence.Poll;
+import org.chorem.pollen.business.persistence.PollAccount;
+import org.chorem.pollen.business.persistence.PreventRule;
+import org.chorem.pollen.business.persistence.UserAccount;
+import org.chorem.pollen.business.persistence.Vote;
+import org.chorem.pollen.business.persistence.VoteToChoice;
+import org.chorem.pollen.business.persistence.VotingList;
+import org.chorem.pollen.common.ChoiceType;
+import org.chorem.pollen.common.PollType;
+import org.chorem.pollen.common.VoteCountingType;
+import org.chorem.pollen.votecounting.business.NumberMethod;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.beans.BinderBuilder;
+import org.nuiton.util.beans.BinderProvider;
+
+/**
+ * ConverterFactory
+ *
+ * Created: 22 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class PollenConverter {
+
+ private static final Log log = LogFactory.getLog(PollenConverter.class);
+
+ private static BinderBuilder builder = new BinderBuilder();
+
+ private static final void prepare(Class<? extends TopiaEntity> entityClass, Class<?> dtoClass, String... properties) {
+ // Binder DTO -> Entity
+ builder.createBinderModel(dtoClass, entityClass).
+ addSimpleProperties(properties);
+
+ BinderProvider.registerBinder(builder);
+
+ // Binder Entity -> DTO
+ builder.createBinderModel(entityClass, dtoClass).
+ addSimpleProperties(properties);
+ //builder.addProperty(TopiaEntity.TOPIA_ID, "id");
+
+ BinderProvider.registerBinder(builder);
+ }
+
+ public static void preparePollConverters() {
+ String[] properties = new String[] {
+ Poll.TITLE,
+ Poll.DESCRIPTION,
+ Poll.BEGIN_CHOICE_DATE,
+ Poll.END_CHOICE_DATE,
+ Poll.BEGIN_DATE,
+ Poll.END_DATE,
+ Poll.CLOSED,
+ Poll.ANONYMOUS,
+ Poll.ANONYMOUS_VOTE_ALLOWED,
+ Poll.PUBLIC_RESULTS,
+ Poll.CONTINUOUS_RESULTS,
+ Poll.CHOICE_ADD_ALLOWED,
+ Poll.MAX_CHOICE_NB
+ };
+
+ prepare(Poll.class, PollDTO.class, properties);
+ }
+
+ public static void prepareChoiceConverters() {
+ String[] properties = new String[] {
+ Choice.NAME,
+ Choice.DESCRIPTION,
+ Choice.VALIDATE
+ };
+
+ prepare(Choice.class, ChoiceDTO.class, properties);
+ }
+
+ public static void prepareVotingListConverters() {
+ String[] properties = new String[] {
+ VotingList.NAME,
+ VotingList.WEIGHT
+ };
+
+ prepare(VotingList.class, VotingListDTO.class, properties);
+ }
+
+ public static void preparePollAccountConverters() {
+ String[] properties = new String[] {
+ PollAccount.VOTING_ID,
+ PollAccount.EMAIL
+ };
+
+ prepare(PollAccount.class, PollAccountDTO.class, properties);
+ }
+
+ public static void preparePreventRuleConverters() {
+ String[] properties = new String[] {
+ PreventRule.ACTIVE,
+ PreventRule.METHOD,
+ PreventRule.ONE_TIME,
+ PreventRule.REPEATED,
+ PreventRule.SCOPE,
+ PreventRule.SENSIBILITY
+ };
+
+ prepare(PreventRule.class, PreventRuleDTO.class, properties);
+ }
+
+ public static void prepareVoteConverters() {
+ String[] properties = new String[] {
+ Vote.WEIGHT,
+ Vote.COMMENT,
+ Vote.ANONYMOUS
+ };
+
+ prepare(Vote.class, VoteDTO.class, properties);
+ }
+
+ public static void prepareCommentConverters() {
+ String[] properties = new String[] {
+ Comment.TEXT,
+ Comment.POST_DATE,
+ Comment.AUTHOR
+ };
+
+ prepare(Comment.class, CommentDTO.class, properties);
+ }
+
+ public static Choice convert(ChoiceDTO dto, Choice entity) {
+ BinderProvider.getBinder(ChoiceDTO.class, Choice.class).copy(dto, entity);
+ return entity;
+ }
+
+ public static ChoiceDTO convert(Choice entity, ChoiceDTO dto) {
+ BinderProvider.getBinder(Choice.class, ChoiceDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ String name = entity.getName();
+ dto.setHidden(name != null
+ && name.startsWith(NumberMethod.HIDDEN_PREFIX));
+ dto.setPollId(entity.getPoll().getTopiaId());
+ return dto;
+ }
+
+ public static Poll convert(PollDTO dto, Poll entity) {
+ BinderProvider.getBinder(PollDTO.class, Poll.class).copy(dto, entity);
+ entity.setChoiceType(dto.getChoiceType().name());
+ entity.setPollType(dto.getPollType().name());
+ entity.setVoteCounting(dto.getVoteCounting().name());
+ return entity;
+ }
+
+ public static PollDTO convert(Poll entity, PollDTO dto) {
+ BinderProvider.getBinder(Poll.class, PollDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ dto.setPollId(entity.getPollId());
+ dto.setChoiceType(ChoiceType.valueOf(entity.getChoiceType()));
+ dto.setPollType(PollType.valueOf(entity.getPollType()));
+ dto.setVoteCounting(VoteCountingType.valueOf(entity.getVoteCounting()));
+
+ PollAccount creator = entity.getCreator();
+ UserAccount user = creator.getUserAccount();
+ dto.setCreatorId(creator.getTopiaId());
+ dto.setCreatorEmail(creator.getEmail());
+ if (creator.getUserAccount() != null) {
+ dto.setUserId(user.getTopiaId());
+ }
+ return dto;
+ }
+
+ public static VotingList convert(VotingListDTO dto, VotingList entity) {
+ BinderProvider.getBinder(VotingListDTO.class, VotingList.class).copy(dto, entity);
+ return entity;
+ }
+
+ public static VotingListDTO convert(VotingList entity, VotingListDTO dto) {
+ BinderProvider.getBinder(VotingList.class, VotingListDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ return dto;
+ }
+
+ public static PollAccount convert(PollAccountDTO dto, PollAccount entity) {
+ BinderProvider.getBinder(PollAccountDTO.class, PollAccount.class).copy(dto, entity);
+ return entity;
+ }
+
+ public static PollAccountDTO convert(PollAccount entity, PollAccountDTO dto) {
+ BinderProvider.getBinder(PollAccount.class, PollAccountDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ dto.setAccountId(entity.getAccountId());
+ return dto;
+ }
+
+ public static PreventRule convert(PreventRuleDTO dto, PreventRule entity) {
+ BinderProvider.getBinder(PreventRuleDTO.class, PreventRule.class).copy(dto, entity);
+ return entity;
+ }
+
+ public static PreventRuleDTO convert(PreventRule entity, PreventRuleDTO dto) {
+ BinderProvider.getBinder(PreventRule.class, PreventRuleDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ Poll poll = entity.getPoll();
+ dto.setPollId(poll.getTopiaId());
+ return dto;
+ }
+
+ public static Vote convert(VoteDTO dto, Vote entity) {
+ BinderProvider.getBinder(VoteDTO.class, Vote.class).copy(dto, entity);
+ return entity;
+ }
+
+ /**
+ * Convert a Vote entity to a VoteDTO.
+ * Add pollId in the DTO corresponding to the poll topiaId owner of the
+ * vote. Add choices (ChoiceDTO) for vote values.
+ * The user linked with the vote may be a votingList (group voteCounting)
+ * or a pollAccount (other voteCounting type).
+ *
+ * @param entity Vote
+ * @param dto VoteDTO
+ * @return VoteDTO
+ */
+ public static VoteDTO convert(Vote entity, VoteDTO dto) {
+ BinderProvider.getBinder(Vote.class, VoteDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ Poll poll = entity.getPoll();
+ dto.setPollId(poll.getTopiaId());
+
+ // Set reference only if not anonymous
+ //if (!entity.getAnonymous()) {
+ PollAccount account = entity.getPollAccount();
+ VotingList list = entity.getVotingList();
+ // vote for a list
+ if (list != null) {
+ dto.setVotingListId(list.getTopiaId());
+ // vote for a person (pollAccount)
+ } else if (account != null) {
+ dto.setPollAccountId(account.getTopiaId());
+ }
+ //}
+
+ // Choices for voteValues
+ for (VoteToChoice choice : entity.getChoiceVoteToChoice()) {
+ ChoiceDTO choiceDTO =
+ convert(choice.getChoice(), new ChoiceDTO());
+ choiceDTO.setValue(choice.getVoteValue());
+ dto.addChoice(choiceDTO);
+ }
+ return dto;
+ }
+
+ public static Comment convert(CommentDTO dto, Comment entity) {
+ BinderProvider.getBinder(CommentDTO.class, Comment.class).copy(dto, entity);
+ return entity;
+ }
+
+ public static CommentDTO convert(Comment entity, CommentDTO dto) {
+ BinderProvider.getBinder(Comment.class, CommentDTO.class).copy(entity, dto);
+ dto.setId(entity.getTopiaId());
+ return dto;
+ }
+
+
+}
Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: svn:mergeinfo
+
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -13,7 +13,7 @@
* par : $Author$
*/
public enum PollenProperty {
- /** version of the application (maven version) **/
+ /** version of the application **/
APP_VERSION("version"),
/** url of the server **/
SERVER_URL("siteUrl"),
Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -1,277 +0,0 @@
-
-package org.chorem.pollen.business.converters;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.dto.ChoiceDTO;
-import org.chorem.pollen.business.dto.CommentDTO;
-import org.chorem.pollen.business.dto.PollAccountDTO;
-import org.chorem.pollen.business.dto.PollDTO;
-import org.chorem.pollen.business.dto.PreventRuleDTO;
-import org.chorem.pollen.business.dto.VoteDTO;
-import org.chorem.pollen.business.dto.VotingListDTO;
-import org.chorem.pollen.business.persistence.Choice;
-import org.chorem.pollen.business.persistence.Comment;
-import org.chorem.pollen.business.persistence.Poll;
-import org.chorem.pollen.business.persistence.PollAccount;
-import org.chorem.pollen.business.persistence.PreventRule;
-import org.chorem.pollen.business.persistence.UserAccount;
-import org.chorem.pollen.business.persistence.Vote;
-import org.chorem.pollen.business.persistence.VoteToChoice;
-import org.chorem.pollen.business.persistence.VotingList;
-import org.chorem.pollen.common.ChoiceType;
-import org.chorem.pollen.common.PollType;
-import org.chorem.pollen.common.VoteCountingType;
-import org.chorem.pollen.votecounting.business.NumberMethod;
-import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.util.beans.BinderBuilder;
-import org.nuiton.util.beans.BinderProvider;
-
-/**
- * ConverterFactory
- *
- * Created: 22 févr. 2010
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-public class ConverterHelper {
-
- private static final Log log = LogFactory.getLog(ConverterHelper.class);
-
- private static BinderBuilder builder = new BinderBuilder();
-
- private static final void prepare(Class<? extends TopiaEntity> entityClass, Class<?> dtoClass, String... properties) {
- // Binder DTO -> Entity
- builder.createBinderModel(dtoClass, entityClass).
- addSimpleProperties(properties);
-
- BinderProvider.registerBinder(builder);
-
- // Binder Entity -> DTO
- builder.createBinderModel(entityClass, dtoClass).
- addSimpleProperties(properties);
- //builder.addProperty(TopiaEntity.TOPIA_ID, "id");
-
- BinderProvider.registerBinder(builder);
- }
-
- public static void preparePollConverters() {
- String[] properties = new String[] {
- Poll.TITLE,
- Poll.DESCRIPTION,
- Poll.BEGIN_CHOICE_DATE,
- Poll.END_CHOICE_DATE,
- Poll.BEGIN_DATE,
- Poll.END_DATE,
- Poll.CLOSED,
- Poll.ANONYMOUS,
- Poll.ANONYMOUS_VOTE_ALLOWED,
- Poll.PUBLIC_RESULTS,
- Poll.CONTINUOUS_RESULTS,
- Poll.CHOICE_ADD_ALLOWED,
- Poll.MAX_CHOICE_NB
- };
-
- prepare(Poll.class, PollDTO.class, properties);
- }
-
- public static void prepareChoiceConverters() {
- String[] properties = new String[] {
- Choice.NAME,
- Choice.DESCRIPTION,
- Choice.VALIDATE
- };
-
- prepare(Choice.class, ChoiceDTO.class, properties);
- }
-
- public static void prepareVotingListConverters() {
- String[] properties = new String[] {
- VotingList.NAME,
- VotingList.WEIGHT
- };
-
- prepare(VotingList.class, VotingListDTO.class, properties);
- }
-
- public static void preparePollAccountConverters() {
- String[] properties = new String[] {
- PollAccount.VOTING_ID,
- PollAccount.EMAIL
- };
-
- prepare(PollAccount.class, PollAccountDTO.class, properties);
- }
-
- public static void preparePreventRuleConverters() {
- String[] properties = new String[] {
- PreventRule.ACTIVE,
- PreventRule.METHOD,
- PreventRule.ONE_TIME,
- PreventRule.REPEATED,
- PreventRule.SCOPE,
- PreventRule.SENSIBILITY
- };
-
- prepare(PreventRule.class, PreventRuleDTO.class, properties);
- }
-
- public static void prepareVoteConverters() {
- String[] properties = new String[] {
- Vote.WEIGHT,
- Vote.COMMENT,
- Vote.ANONYMOUS
- };
-
- prepare(Vote.class, VoteDTO.class, properties);
- }
-
- public static void prepareCommentConverters() {
- String[] properties = new String[] {
- Comment.TEXT,
- Comment.POST_DATE,
- Comment.AUTHOR
- };
-
- prepare(Comment.class, CommentDTO.class, properties);
- }
-
- public static Choice convert(ChoiceDTO dto, Choice entity) {
- BinderProvider.getBinder(ChoiceDTO.class, Choice.class).copy(dto, entity);
- return entity;
- }
-
- public static ChoiceDTO convert(Choice entity, ChoiceDTO dto) {
- BinderProvider.getBinder(Choice.class, ChoiceDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- String name = entity.getName();
- dto.setHidden(name != null
- && name.startsWith(NumberMethod.HIDDEN_PREFIX));
- dto.setPollId(entity.getPoll().getTopiaId());
- return dto;
- }
-
- public static Poll convert(PollDTO dto, Poll entity) {
- BinderProvider.getBinder(PollDTO.class, Poll.class).copy(dto, entity);
- entity.setChoiceType(dto.getChoiceType().name());
- entity.setPollType(dto.getPollType().name());
- entity.setVoteCounting(dto.getVoteCounting().name());
- return entity;
- }
-
- public static PollDTO convert(Poll entity, PollDTO dto) {
- BinderProvider.getBinder(Poll.class, PollDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- dto.setPollId(entity.getPollId());
- dto.setChoiceType(ChoiceType.valueOf(entity.getChoiceType()));
- dto.setPollType(PollType.valueOf(entity.getPollType()));
- dto.setVoteCounting(VoteCountingType.valueOf(entity.getVoteCounting()));
-
- PollAccount creator = entity.getCreator();
- UserAccount user = creator.getUserAccount();
- dto.setCreatorId(creator.getTopiaId());
- dto.setCreatorEmail(creator.getEmail());
- if (creator.getUserAccount() != null) {
- dto.setUserId(user.getTopiaId());
- }
- return dto;
- }
-
- public static VotingList convert(VotingListDTO dto, VotingList entity) {
- BinderProvider.getBinder(VotingListDTO.class, VotingList.class).copy(dto, entity);
- return entity;
- }
-
- public static VotingListDTO convert(VotingList entity, VotingListDTO dto) {
- BinderProvider.getBinder(VotingList.class, VotingListDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- return dto;
- }
-
- public static PollAccount convert(PollAccountDTO dto, PollAccount entity) {
- BinderProvider.getBinder(PollAccountDTO.class, PollAccount.class).copy(dto, entity);
- return entity;
- }
-
- public static PollAccountDTO convert(PollAccount entity, PollAccountDTO dto) {
- BinderProvider.getBinder(PollAccount.class, PollAccountDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- dto.setAccountId(entity.getAccountId());
- return dto;
- }
-
- public static PreventRule convert(PreventRuleDTO dto, PreventRule entity) {
- BinderProvider.getBinder(PreventRuleDTO.class, PreventRule.class).copy(dto, entity);
- return entity;
- }
-
- public static PreventRuleDTO convert(PreventRule entity, PreventRuleDTO dto) {
- BinderProvider.getBinder(PreventRule.class, PreventRuleDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- Poll poll = entity.getPoll();
- dto.setPollId(poll.getTopiaId());
- return dto;
- }
-
- public static Vote convert(VoteDTO dto, Vote entity) {
- BinderProvider.getBinder(VoteDTO.class, Vote.class).copy(dto, entity);
- return entity;
- }
-
- /**
- * Convert a Vote entity to a VoteDTO.
- * Add pollId in the DTO corresponding to the poll topiaId owner of the
- * vote. Add choices (ChoiceDTO) for vote values.
- * The user linked with the vote may be a votingList (group voteCounting)
- * or a pollAccount (other voteCounting type).
- *
- * @param entity Vote
- * @param dto VoteDTO
- * @return VoteDTO
- */
- public static VoteDTO convert(Vote entity, VoteDTO dto) {
- BinderProvider.getBinder(Vote.class, VoteDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- Poll poll = entity.getPoll();
- dto.setPollId(poll.getTopiaId());
-
- // Set reference only if not anonymous
- //if (!entity.getAnonymous()) {
- PollAccount account = entity.getPollAccount();
- VotingList list = entity.getVotingList();
- // vote for a list
- if (list != null) {
- dto.setVotingListId(list.getTopiaId());
- // vote for a person (pollAccount)
- } else if (account != null) {
- dto.setPollAccountId(account.getTopiaId());
- }
- //}
-
- // Choices for voteValues
- for (VoteToChoice choice : entity.getChoiceVoteToChoice()) {
- ChoiceDTO choiceDTO =
- convert(choice.getChoice(), new ChoiceDTO());
- choiceDTO.setValue(choice.getVoteValue());
- dto.addChoice(choiceDTO);
- }
- return dto;
- }
-
- public static Comment convert(CommentDTO dto, Comment entity) {
- BinderProvider.getBinder(CommentDTO.class, Comment.class).copy(dto, entity);
- return entity;
- }
-
- public static CommentDTO convert(Comment entity, CommentDTO dto) {
- BinderProvider.getBinder(Comment.class, CommentDTO.class).copy(entity, dto);
- dto.setId(entity.getTopiaId());
- return dto;
- }
-
-
-}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -16,6 +16,7 @@
package org.chorem.pollen.business.converters;
+import org.chorem.pollen.business.PollenConverter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -61,7 +62,7 @@
*/
@Deprecated
public PollDTO createPollDTO(Poll ePoll) {
- PollDTO pollDTO = ConverterHelper.convert(ePoll, new PollDTO());
+ PollDTO pollDTO = PollenConverter.convert(ePoll, new PollDTO());
// pollDTO.setId(ePoll.getTopiaId());
// pollDTO.setPollId(ePoll.getPollId());
@@ -95,7 +96,7 @@
}
for (Comment comment : ePoll.getComment()) {
CommentDTO dto =
- ConverterHelper.convert(comment, new CommentDTO());
+ PollenConverter.convert(comment, new CommentDTO());
pollDTO.addComment(dto);
}
// if (ePoll.getComment().size() > 0) {
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -27,7 +27,7 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.PollenContext;
-import org.chorem.pollen.business.converters.ConverterHelper;
+import org.chorem.pollen.business.PollenConverter;
import org.chorem.pollen.business.converters.DataPollConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
import org.chorem.pollen.business.dto.ChoiceDTO;
@@ -79,13 +79,13 @@
public ServicePollImpl() {
rootContext = PollenContext.getRootContext();
- ConverterHelper.preparePollConverters();
- ConverterHelper.prepareChoiceConverters();
- ConverterHelper.prepareVotingListConverters();
- ConverterHelper.preparePollAccountConverters();
- ConverterHelper.preparePreventRuleConverters();
- ConverterHelper.prepareVoteConverters();
- ConverterHelper.prepareCommentConverters();
+ PollenConverter.preparePollConverters();
+ PollenConverter.prepareChoiceConverters();
+ PollenConverter.prepareVotingListConverters();
+ PollenConverter.preparePollAccountConverters();
+ PollenConverter.preparePreventRuleConverters();
+ PollenConverter.prepareVoteConverters();
+ PollenConverter.prepareCommentConverters();
}
@Override
@@ -99,7 +99,7 @@
// Create with a new pollId generated for links
Poll entity = pollDAO.create(PollenContext.createPollenUrlId());
- ConverterHelper.convert(pollDTO, entity);
+ PollenConverter.convert(pollDTO, entity);
// ** Manage the poll creator
PollAccount creator = prepareCreator(transaction, pollDTO);
@@ -109,7 +109,7 @@
ChoiceDAO choiceDAO = PollenModelDAOHelper.getChoiceDAO(transaction);
for (ChoiceDTO choiceDTO : pollDTO.getChoiceDTOs()) {
Choice choice =
- ConverterHelper.convert(choiceDTO, choiceDAO.create());
+ PollenConverter.convert(choiceDTO, choiceDAO.create());
choice.setPoll(entity);
}
@@ -124,7 +124,7 @@
PollenModelDAOHelper.getPreventRuleDAO(transaction);
for (PreventRuleDTO ruleDTO : pollDTO.getPreventRuleDTOs()) {
PreventRule rule =
- ConverterHelper.convert(ruleDTO, ruleDAO.create());
+ PollenConverter.convert(ruleDTO, ruleDAO.create());
rule.setPoll(entity);
}
@@ -204,7 +204,7 @@
VotingListDAO dao = PollenModelDAOHelper.getVotingListDAO(transaction);
VotingList votingList =
- ConverterHelper.convert(listDTO, dao.create());
+ PollenConverter.convert(listDTO, dao.create());
PollAccountDAO pollAccountDAO =
PollenModelDAOHelper.getPollAccountDAO(transaction);
@@ -218,7 +218,7 @@
if (account == null) {
String accountId = PollenContext.createPollenUrlId();
account = pollAccountDAO.create(accountId);
- ConverterHelper.convert(accountDTO, account);
+ PollenConverter.convert(accountDTO, account);
}
// Create association between VotingList and PollAccount
@@ -241,14 +241,14 @@
Poll pollEntity = pollDAO.findByTopiaId(pollDTO.getId());
- ConverterHelper.convert(pollDTO, pollEntity);
+ PollenConverter.convert(pollDTO, pollEntity);
ChoiceDAO choiceDAO = PollenModelDAOHelper.getChoiceDAO(transaction);
// ** Update choices (no add, no remove)
for (ChoiceDTO choiceDTO : pollDTO.getChoiceDTOs()) {
Choice choice = choiceDAO.findByTopiaId(choiceDTO.getId());
- ConverterHelper.convert(choiceDTO, choice);
+ PollenConverter.convert(choiceDTO, choice);
choice.update();
}
@@ -295,7 +295,8 @@
return true;
} catch (Exception eee) {
PollenContext.doCatch(eee,
- _("pollen.error.servicePoll.delete", pollId), transaction);
+ _("pollen.error.servicePoll.deletePoll", pollId),
+ transaction);
return false;
} finally {
PollenContext.doFinally(transaction);
@@ -323,7 +324,7 @@
Poll pollEntity = pollDAO.findByTopiaId(id);
if (pollEntity != null) {
- result = ConverterHelper.convert(pollEntity, new PollDTO());
+ result = PollenConverter.convert(pollEntity, new PollDTO());
}
// if (pollEntity != null) {
@@ -359,33 +360,33 @@
Poll pollEntity = pollDAO.findByPollId(pollId);
if (pollEntity != null) {
- result = ConverterHelper.convert(pollEntity, new PollDTO());
+ result = PollenConverter.convert(pollEntity, new PollDTO());
// Load choices
for (Choice choice : pollEntity.getChoice()) {
ChoiceDTO dto =
- ConverterHelper.convert(choice, new ChoiceDTO());
+ PollenConverter.convert(choice, new ChoiceDTO());
result.addChoice(dto);
}
// Load votes
for (Vote vote : pollEntity.getVote()) {
VoteDTO dto =
- ConverterHelper.convert(vote, new VoteDTO());
+ PollenConverter.convert(vote, new VoteDTO());
result.addVote(dto);
}
// Load comments
for (Comment comment : pollEntity.getComment()) {
CommentDTO dto =
- ConverterHelper.convert(comment, new CommentDTO());
+ PollenConverter.convert(comment, new CommentDTO());
result.addComment(dto);
}
// Load preventRules
for (PreventRule rule : pollEntity.getPreventRule()) {
PreventRuleDTO dto =
- ConverterHelper.convert(rule, new PreventRuleDTO());
+ PollenConverter.convert(rule, new PreventRuleDTO());
result.addPreventRule(dto);
}
@@ -661,7 +662,7 @@
// Create the new comment
CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction);
Comment eComment =
- ConverterHelper.convert(comment, dao.create());
+ PollenConverter.convert(comment, dao.create());
// Get the poll entity corresponding
Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction).
@@ -701,6 +702,8 @@
Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction).
findByTopiaId(poll.getId());
+ // The remove will delete the comment because no poll will be
+ // attached to him (delete-orphan)
ePoll.removeComment(eComment);
transaction.commitTransaction();
@@ -710,7 +713,8 @@
} catch (Exception eee) {
PollenContext.doCatch(eee,
- _("pollen.error.servicePoll.deleteComment"), transaction);
+ _("pollen.error.servicePoll.deleteComment", commentId,
+ poll.getTitle(), poll.getId()), transaction);
} finally {
PollenContext.doFinally(transaction);
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -28,7 +28,10 @@
*
* @author rannou
* @version $Id$
+ * @deprecated use {@link org.chorem.pollen.business.PollenContext } to manage
+ * configuration using {@link org.nuiton.util.ApplicationConfig }
*/
+@Deprecated
public class PropertiesLoader {
/** log. */
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-25 13:13:26 UTC (rev 2885)
@@ -8,6 +8,7 @@
pollen.error.servicePoll.createPoll=
pollen.error.servicePoll.delete=
pollen.error.servicePoll.deleteComment=
+pollen.error.servicePoll.deletePoll=
pollen.error.servicePoll.getAllPolls=
pollen.error.servicePoll.getPoll=
pollen.error.servicePoll.updatePoll=
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-25 13:13:26 UTC (rev 2885)
@@ -6,9 +6,8 @@
pollen.error.context.stop=Erreur lors de l'arr\u00EAt de l'application
pollen.error.servicePoll.addComment=Impossible d'ajouter un nouveau commentaire cr\u00E9\u00E9 par %1$s pour le sondage %2$s (%3$s)
pollen.error.servicePoll.createPoll=Impossible d'enregistrer le sondage %1$s cr\u00E9\u00E9 par %2$s
-pollen.error.servicePoll.delete=
-pollen.error.servicePoll.deleteComment=
-pollen.error.servicePoll.deletePoll=Impossible de supprimer le sondage ayant pour identifiant ToPIA \: %1$s
+pollen.error.servicePoll.deleteComment=Impossible de supprimer le commentaire ayant pour identifiant "%1$s", appartenenant au sondage %2$s (%3$s)
+pollen.error.servicePoll.deletePoll=Impossible de supprimer le sondage ayant pour identifiant "%1$s"
pollen.error.servicePoll.getAllPolls=
pollen.error.servicePoll.getPoll=
pollen.error.servicePoll.updatePoll=Impossible de mettre \u00E0 jour le sondage %1$s (%2$s)
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -31,7 +31,6 @@
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Response;
-import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.ui.base.ContextLink;
import org.slf4j.Logger;
@@ -82,7 +81,13 @@
writer.end();
}
- /** Affichage du fichier */
+ /**
+ * Affichage du fichier
+ *
+ * @param href
+ * @param type
+ * @return StreamResponse
+ */
public StreamResponse onFileLink(final String href, final String type) {
// security : src containing .. are filtered, to not access to full system
@@ -111,14 +116,17 @@
this.contentType = contentType;
}
+ @Override
public String getContentType() {
return contentType;
}
+ @Override
public InputStream getStream() throws IOException {
return stream;
}
+ @Override
public void prepareResponse(Response arg0) {
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2010-02-25 12:07:51 UTC (rev 2884)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2010-02-25 13:13:26 UTC (rev 2885)
@@ -11,7 +11,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.utils.ContextUtil;
/**
* Filtre permettant de capturer les exceptions. Ce filtre capture les
@@ -47,14 +46,14 @@
// capture des exceptions
try {
chain.doFilter(request, response);
- } catch (Exception e) {
+ } catch (Exception eee) {
if (log.isDebugEnabled()) {
- log.debug("Exception capturée", e);
+ log.debug("Exception capturée", eee);
}
// si la connexion est fermée, reconnexion et affichage d'un message
- ContextUtil.getInstance().buildContext();
+ //ContextUtil.getInstance().buildContext();
}
}
1
0
Author: fdesbois
Date: 2010-02-25 13:07:51 +0100 (Thu, 25 Feb 2010)
New Revision: 2884
Added:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
trunk/pollen-business/src/main/resources/pollen.properties
trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java
Removed:
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/Configuration.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ConfigurationImpl.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenShutdown.java
trunk/pollen-ui/src/main/resources/pollen.properties
Modified:
trunk/pollen-business/pom.xml
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceAuthImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceChoiceImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePreventRuleImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceUserImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceVoteImpl.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java
trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceAuthImplTest.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceChoiceImplTest.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePreventRuleImplTest.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceUserImplTest.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ImageContextLink.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/UsersAdmin.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ImageDisplay.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollModification.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/Register.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/BackgroundWorkerImpl.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PropertiesFileSymbolProvider.java
Log:
- Move pollen.properties from UI to Business
- Add PollenContext to replace ContextUtil deprecated
- Add PollenProperty enum to easily get existing properties in configuration file
- Refactor UI to use PollenContext to get properties
- Refactor services to use PollenContext to get root context
- Add TestManager to start and stop tests (use different configuration than default one)
Modified: trunk/pollen-business/pom.xml
===================================================================
--- trunk/pollen-business/pom.xml 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/pom.xml 2010-02-25 12:07:51 UTC (rev 2884)
@@ -137,19 +137,6 @@
<goal>parserJava</goal>
<goal>gen</goal>
</goals>
- <!-- restrict parsing beacause this is expensive -->
- <!-- if you want to parse more, add your package in includes -->
- <configuration>
- <treateDefaultEntry>false</treateDefaultEntry>
- <entries>
- <entry>
- <basedir>${maven.src.dir}/main/java</basedir>
- <includes>
- <include>org/nuiton/topia/framework/*.java</include>
- </includes>
- </entry>
- </entries>
- </configuration>
</execution>
</executions>
</plugin>
Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java (rev 0)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,41 @@
+
+package org.chorem.pollen.business;
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * PollenBusinessException
+ *
+ * Created: 24 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class PollenBusinessException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ protected PollenExceptionType type;
+
+ public PollenBusinessException(PollenExceptionType type) {
+ super(type.toString());
+ }
+
+ public enum PollenExceptionType {
+ LOAD_CONFIGURATION(_("pollen.exception.load_configuration"));
+
+ private String name;
+
+ PollenExceptionType(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ }
+}
Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java (rev 0)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,257 @@
+
+package org.chorem.pollen.business;
+
+import java.util.Properties;
+import java.util.UUID;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException.PollenExceptionType;
+import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
+import org.chorem.pollen.business.services.ServiceUserImpl;
+import org.nuiton.i18n.I18n;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaContextFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.TopiaNotFoundException;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * PollenContext
+ *
+ * Created: 24 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class PollenContext {
+
+ /** log. */
+ private static final Log log = LogFactory.getLog(PollenContext.class);
+
+ public static final String DEFAULT_FILENAME = "pollen.properties";
+
+ private static ApplicationConfig configuration;
+
+ /**
+ * Default configuration file will be loaded using
+ * {@link org.nuiton.util.ApplicationConfig }.
+ * Then the other configuration initialization will be done in
+ * {@link #loadConfiguration(ApplicationConfig)} method.
+ */
+ private static void loadDefaultConfiguration() {
+ try {
+ if (log.isInfoEnabled()) {
+ log.info("load default configuration from " +
+ PollenContext.DEFAULT_FILENAME);
+ }
+ ApplicationConfig conf = new ApplicationConfig();
+ conf.setConfigFileName(PollenContext.DEFAULT_FILENAME);
+ conf.parse(new String[]{});
+
+ conf.printConfig();
+
+ loadConfiguration(conf);
+ } catch (ArgumentsParserException eee) {
+ doCatch(eee,
+ _("pollen.error.context.parse", PollenContext.DEFAULT_FILENAME));
+ }
+ }
+
+ /**
+ * Load the application configuration :
+ * <pre>
+ * - Add entities implementation classes for Topia-persistence
+ * - Add model version for Topia-migration-service
+ * </pre>
+ *
+ * @param conf ApplicationConfig
+ */
+ public static void loadConfiguration(ApplicationConfig conf) {
+ configuration = conf;
+ configuration.setOption("topia.persistence.classes",
+ PollenModelDAOHelper.getImplementationClassesAsString());
+ configuration.setOption("topia.service.migration.version",
+ PollenModelDAOHelper.getModelVersion());
+ }
+
+ /**
+ * Start of the application. The application configuration will be loaded
+ * automatically if needed using {@link #loadDefaultConfiguration }. Also
+ * you can manually load the configuration using
+ * {@link #loadConfiguration(ApplicationConfig)}
+ * This start does :
+ * <pre>
+ * - Initialize i18n for error messages
+ * - Create default admin if needed (this will load the topiaRootContext).
+ * </pre>
+ *
+ */
+ public static void start() {
+ try {
+ I18n.init();
+
+ ServiceUserImpl serviceUser = new ServiceUserImpl();
+ serviceUser.createDefaultAdmin(
+ PollenProperty.ADMIN_LOGIN.getValue(),
+ PollenProperty.ADMIN_PASSWORD.getValue(),
+ PollenProperty.ADMIN_EMAIL.getValue()
+ );
+
+ if (log.isInfoEnabled()) {
+ log.info("pollen is started !");
+ }
+
+ } catch (Exception eee) {
+ doCatch(eee, _("pollen.error.context.start"));
+ }
+ }
+
+ /**
+ * Stop the application. Close the Topia rootContext.
+ */
+ public static void stop() {
+ try {
+ getRootContext().closeContext();
+ } catch (Exception eee) {
+ doCatch(eee, _("pollen.error.context.stop"));
+ }
+ }
+
+ /**
+ * Get a property from the configuration.
+ *
+ * @param property PollenProperty
+ * @return value of this property
+ * @
+ */
+ public static String getProperty(PollenProperty property) {
+ return getConfiguration().getOption(property.getKey());
+ }
+
+ /**
+ * Get a property from the configuration.
+ *
+ * @param key of the property
+ * @return value of this property
+ * @
+ */
+ public static String getProperty(String key) {
+ return getConfiguration().getOption(key);
+ }
+
+ /**
+ * Get all properties from the configuration
+ *
+ * @return the Properties of the application
+ * @
+ */
+ public static Properties getProperties() {
+ return getConfiguration().getOptions();
+ }
+
+ /**
+ * Get the configuration of the application.
+ *
+ * @return the ApplicationConfig
+ * @
+ */
+ public static ApplicationConfig getConfiguration() {
+ if (configuration == null) {
+ loadDefaultConfiguration();
+ }
+ return configuration;
+ }
+
+ /**
+ * Get the Topia rootContext.
+ *
+ * @return the main TopiaContext needed to begin new transaction
+ * @
+ */
+ public static TopiaContext getRootContext() {
+ try {
+ return TopiaContextFactory.getContext(getProperties());
+ } catch (TopiaNotFoundException eee) {
+ doCatch(eee, _("pollen.error.context.getRootContext"));
+ }
+ return null;
+ }
+
+ /**
+ * Manage exceptions. The {@code exception} will be embedded in a
+ * PollenException with the {@code message} provided.
+ * Used in catch statement in services.
+ *
+ * @param eee the exception to manage
+ * @param message the message to add to the new PollenException
+ * @throws PollenException which contains the exception as the cause
+ */
+ public static void doCatch(Exception eee, String message) throws PollenException {
+ doCatch(eee, message, null);
+ }
+
+ /**
+ * Manage exceptions. The {@code exception} will be embedded in a
+ * PollenException with the {@code message} provided. Also, the current
+ * {@code transaction} will be rollback.
+ * Used in catch statement in services.
+ *
+ * @param eee the exception to manage
+ * @param message the message to add to the new PollenException
+ * @param transaction the current TopiaContext
+ * @throws PollenException
+ */
+ public static void doCatch(Exception eee, String message, TopiaContext transaction) throws PollenException {
+ if (log.isErrorEnabled()) {
+ log.error(message, eee);
+ }
+
+ // rollback de la transaction courante
+ if (transaction != null) {
+ try {
+ transaction.rollbackTransaction();
+ } catch (TopiaException ex) {
+ if (log.isErrorEnabled()) {
+ log.error(_("pollen.error.context.rollback"), ex);
+ }
+ }
+ }
+ // PollenBusinessException must be managed (catch and throw) when needed
+// if (! (eee instanceof PollenBusinessException)) {
+ throw new PollenException(message, eee);
+// }
+ }
+
+ /**
+ * Close current TopiaContext.
+ * Used in finally statement in services.
+ *
+ * @param transaction current TopiaContext
+ */
+ public static void doFinally(TopiaContext transaction) {
+ if (transaction != null) {
+ try {
+ transaction.closeContext();
+ } catch (TopiaException eee) {
+ if (log.isErrorEnabled()) {
+ log.error(_("pollen.error.context.close"), eee);
+ }
+ }
+ }
+ }
+
+ /**
+ * Create an id to easily managed polls using urls.
+ *
+ * @return a fresh generated String
+ */
+ public static String createPollenUrlId() {
+ return UUID.randomUUID().toString().replaceAll("-", "");
+ }
+
+}
Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenContext.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java (rev 0)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,56 @@
+
+package org.chorem.pollen.business;
+
+/**
+ * PollenProp
+ *
+ * Created: 25 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public enum PollenProperty {
+ /** version of the application (maven version) **/
+ APP_VERSION("version"),
+ /** url of the server **/
+ SERVER_URL("siteUrl"),
+ /** login for default admin **/
+ ADMIN_LOGIN("adminLogin"),
+ /** password for default admin **/
+ ADMIN_PASSWORD("adminPassword"),
+ /** email for default admin **/
+ ADMIN_EMAIL("adminEmail"),
+ /** email for contact link **/
+ CONTACT_EMAIL(ADMIN_EMAIL.getKey()),
+ /** host for email sending configuration **/
+ EMAIL_HOST("email_host"),
+ /** port for email sending configuration **/
+ EMAIL_PORT("email_port"),
+ /** from for email sending configuration **/
+ EMAIL_FROM("email_from"),
+ /** path for feed directory **/
+ FEED_DIR("feedDir"),
+ /** path for uploaded images directory **/
+ IMG_DIR("upImgDir");
+
+ String key;
+
+ PollenProperty(String key) {
+ this.key = key;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public String getValue() {
+ return PollenContext.getProperty(this);
+ }
+
+ public boolean hasValue() {
+ return !getValue().equals("");
+ }
+}
Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -22,6 +22,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.CommentDTO;
import org.chorem.pollen.business.dto.PollDTO;
@@ -140,7 +141,7 @@
*/
@Deprecated
public void persistChoices(PollDTO pollDTO, Poll ePoll)
- throws TopiaException {
+ throws TopiaException, PollenBusinessException {
// mise à jour ou création des choix
ServiceChoice sChoice = new ServiceChoiceImpl();
@@ -181,7 +182,7 @@
* @param ePoll l'entité sondage
*/
public void persistPreventRules(PollDTO pollDTO, Poll ePoll)
- throws TopiaException {
+ throws TopiaException, PollenBusinessException {
// mise à jour ou création des règles de notification
ServicePreventRule sPreventRule = new ServicePreventRuleImpl();
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceAuthImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceAuthImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceAuthImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -18,6 +18,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataUserConverter;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
@@ -34,7 +36,8 @@
* @version $Id$
*/
public class ServiceAuthImpl implements ServiceAuth {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+
+ private TopiaContext rootContext;
private UserAccountDAO userDAO = null;
private DataUserConverter converter = new DataUserConverter();
@@ -42,6 +45,7 @@
private static final Log log = LogFactory.getLog(ServiceAuthImpl.class);
public ServiceAuthImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceChoiceImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceChoiceImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceChoiceImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -23,6 +23,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataChoiceConverter;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.persistence.Choice;
@@ -30,7 +32,6 @@
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.utils.ContextUtil;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
/**
* Gestion des choix d'un sondage.
@@ -38,9 +39,9 @@
* @author enema
* @version $Id$
*/
-public class ServiceChoiceImpl implements
- org.chorem.pollen.business.services.ServiceChoice {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+public class ServiceChoiceImpl implements ServiceChoice {
+
+ private TopiaContext rootContext;
private ChoiceDAO choiceDAO = null;
private DataChoiceConverter converter = new DataChoiceConverter();
@@ -48,6 +49,7 @@
private static final Log log = LogFactory.getLog(ServiceChoiceImpl.class);
public ServiceChoiceImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceListImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -22,6 +22,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataPersonListConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
import org.chorem.pollen.business.dto.PersonListDTO;
@@ -45,7 +47,8 @@
* @version $Id$
*/
public class ServiceListImpl implements ServiceList {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+
+ private TopiaContext rootContext;
private VotingListDAO votingListDAO = null;
private PersonListDAO personListDAO = null;
private DataVotingListConverter votingListConverter = new DataVotingListConverter();
@@ -55,6 +58,7 @@
private static final Log log = LogFactory.getLog(ServiceListImpl.class);
public ServiceListImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -59,13 +59,15 @@
*
* @param pollId identifiant topia du sondage
* @return le sondage
+ * @deprecated use {@link #findPollByPollId } with the correct id instead
*/
+ @Deprecated
public PollDTO findPollById(String pollId);
/**
* Récupération d'un sondage à partir de son identifiant.
*
- * @param pollId identifiant du sondage
+ * @param pollId identifiant du sondage (différent du topiaId)
* @return le sondage
*/
public PollDTO findPollByPollId(String pollId);
@@ -122,18 +124,18 @@
public List<PollDTO> selectPolls(Map<String, Object> properties);
/**
- * Ajout d'un vote à un sondage
+ * Create a comment for the poll.
*
- * @param pollId identifiant topia du sondage
- * @param voteId l'identiiant topiaId du vote
- * @return true si le vote a été ajouté
- * @deprecated useless method : used nowhere
+ * @param poll owner of the comment
+ * @param comment to create
*/
- @Deprecated
- public boolean addVoteToPoll(String pollId, String voteId);
-
-
public void createComment(PollDTO poll, CommentDTO comment);
+ /**
+ * Delete a comment from a poll.
+ *
+ * @param poll owner of the comment
+ * @param commentId id of the comment to delete
+ */
public void deleteComment(PollDTO poll, String commentId);
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollAccountImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -23,6 +23,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataPollAccountConverter;
import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.persistence.PollAccount;
@@ -41,7 +43,8 @@
* @version $Id$
*/
public class ServicePollAccountImpl implements ServicePollAccount {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+
+ private TopiaContext rootContext;
private PollAccountDAO pollAccountDAO = null;
private DataPollAccountConverter converter = new DataPollAccountConverter();
@@ -50,6 +53,7 @@
.getLog(ServicePollAccountImpl.class);
public ServicePollAccountImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -25,6 +25,8 @@
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.ConverterHelper;
import org.chorem.pollen.business.converters.DataPollConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
@@ -50,10 +52,10 @@
import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.persistence.UserAccountDAO;
import org.chorem.pollen.business.persistence.Vote;
-import org.chorem.pollen.business.persistence.VoteDAO;
import org.chorem.pollen.business.persistence.VotingList;
import org.chorem.pollen.business.persistence.VotingListDAO;
import org.chorem.pollen.business.utils.ContextUtil;
+import org.chorem.pollen.business.PollenContext;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import static org.nuiton.i18n.I18n._;
@@ -66,14 +68,17 @@
* @version $Id$
*/
public class ServicePollImpl implements ServicePoll {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+
+ private TopiaContext rootContext;
private PollDAO pollDAO = null;
private DataPollConverter converter = new DataPollConverter();
/** log. */
private static final Log log = LogFactory.getLog(ServicePollImpl.class);
- public ServicePollImpl() {
+ public ServicePollImpl() {
+ rootContext = PollenContext.getRootContext();
+
ConverterHelper.preparePollConverters();
ConverterHelper.prepareChoiceConverters();
ConverterHelper.prepareVotingListConverters();
@@ -93,7 +98,7 @@
pollDAO = PollenModelDAOHelper.getPollDAO(transaction);
// Create with a new pollId generated for links
- Poll entity = pollDAO.create(ContextUtil.createPollenUrlId());
+ Poll entity = pollDAO.create(PollenContext.createPollenUrlId());
ConverterHelper.convert(pollDTO, entity);
// ** Manage the poll creator
@@ -131,11 +136,11 @@
result = entity.getTopiaId();
} catch (Exception eee) {
- ContextUtil.doCatch(eee, transaction,
+ PollenContext.doCatch(eee,
_("pollen.error.servicePoll.createPoll",
- pollDTO.getTitle(), pollDTO.getCreatorId()));
+ pollDTO.getTitle(), pollDTO.getCreatorId()), transaction);
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
return result;
}
@@ -177,7 +182,7 @@
// Create new account if account properties changed or no user found
if (creator == null) {
accountProperties.put(
- PollAccount.ACCOUNT_ID, ContextUtil.createPollenUrlId());
+ PollAccount.ACCOUNT_ID, PollenContext.createPollenUrlId());
creator = accountDAO.create(accountProperties);
}
return creator;
@@ -211,7 +216,7 @@
// Create a new PollAccount if not already exists
if (account == null) {
- String accountId = ContextUtil.createPollenUrlId();
+ String accountId = PollenContext.createPollenUrlId();
account = pollAccountDAO.create(accountId);
ConverterHelper.convert(accountDTO, account);
}
@@ -260,13 +265,13 @@
}
return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction,
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
_("pollen.error.servicePoll.updatePoll",
- pollDTO.getTitle(), pollDTO.getPollId()));
+ pollDTO.getTitle(), pollDTO.getPollId()), transaction);
return false;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -288,11 +293,12 @@
}
return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.servicePoll.delete", pollId), transaction);
return false;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -337,7 +343,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -353,9 +359,6 @@
Poll pollEntity = pollDAO.findByPollId(pollId);
if (pollEntity != null) {
-// converter.setTransaction(transaction);
-// result = converter.createPollDTO(pollEntity);
-
result = ConverterHelper.convert(pollEntity, new PollDTO());
// Load choices
@@ -386,24 +389,7 @@
result.addPreventRule(dto);
}
-// if (ePoll.getChoice().size() > 0) {
-// pollDTO.setChoiceDTOs(choiceConverter.createChoiceDTOs(ePoll
-// .getChoice()));
-// }
-// if (pollEntity.getVote().size() > 0) {
-// DataVoteConverter voteConverter = new DataVoteConverter();
-// result.setVoteDTOs(voteConverter.createVoteDTOs(pollEntity.getVote()));
-// }
-// if (pollEntity.getComment().size() > 0) {
-// DataCommentConverter commentConverter = new DataCommentConverter();
-// result.setCommentDTOs(commentConverter.createCommentDTOs(pollEntity
-// .getComment()));
-// }
-// if (pollEntity.getPreventRule().size() > 0) {
-// DataPreventRuleConverter preventRuleConverter = new DataPreventRuleConverter();
-// result.setPreventRuleDTOs(preventRuleConverter
-// .createPreventRuleDTOs(pollEntity.getPreventRule()));
-// }
+ // TODO Refactor this
if (pollEntity.getVotingList().size() > 0) {
DataVotingListConverter votingListConverter = new DataVotingListConverter();
result.setVotingListDTOs(votingListConverter
@@ -419,11 +405,12 @@
}
return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.servicePoll.getPoll", pollId), transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -454,7 +441,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -489,7 +476,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -527,7 +514,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -580,7 +567,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -622,7 +609,7 @@
ContextUtil.doCatch(e, transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -656,48 +643,16 @@
}
return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.servicePoll.getAllPolls"), transaction);
return null;
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@Override
- public boolean addVoteToPoll(String pollId, String voteId) {
- TopiaContext transaction = null;
- try {
- transaction = rootContext.beginTransaction();
-
- pollDAO = PollenModelDAOHelper.getPollDAO(transaction);
- Poll pollEntity = pollDAO.findByTopiaId(pollId);
- VoteDAO voteDAO = PollenModelDAOHelper.getVoteDAO(transaction);
- Vote voteEntity = voteDAO.findByTopiaId(voteId);
-
- if (log.isDebugEnabled()) {
- log.debug(pollEntity + " " + voteEntity);
- }
-
- pollEntity.addVote(voteEntity);
- pollEntity.update();
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity updated: " + pollId);
- }
-
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
public void createComment(PollDTO poll, CommentDTO comment) {
TopiaContext transaction = null;
try {
@@ -722,10 +677,13 @@
poll.addComment(comment);
} catch (Exception eee) {
- ContextUtil.doCatch(eee, transaction,
- _("pollen.error.servicePoll.addComment"));
+ PollenContext.doCatch(eee,
+ _("pollen.error.servicePoll.addComment",
+ comment.getAuthor(), poll.getTitle(), poll.getId()),
+ transaction
+ );
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
@@ -745,19 +703,16 @@
ePoll.removeComment(eComment);
- // test if the comment is deleted, must be because of the composition
- // (delete-orphan)
-
transaction.commitTransaction();
// Update change in dto
poll.removeComment(commentId);
} catch (Exception eee) {
- ContextUtil.doCatch(eee, transaction,
- _("pollen.error.servicePoll.addComment"));
+ PollenContext.doCatch(eee,
+ _("pollen.error.servicePoll.deleteComment"), transaction);
} finally {
- ContextUtil.doFinally(transaction);
+ PollenContext.doFinally(transaction);
}
}
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePreventRuleImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePreventRuleImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePreventRuleImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -22,6 +22,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataPreventRuleConverter;
import org.chorem.pollen.business.dto.PreventRuleDTO;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
@@ -36,9 +38,9 @@
* @author rannou
* @version $Id$
*/
-public class ServicePreventRuleImpl implements
- org.chorem.pollen.business.services.ServicePreventRule {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+public class ServicePreventRuleImpl implements ServicePreventRule {
+
+ private TopiaContext rootContext;
private PreventRuleDAO preventRuleDAO = null;
private DataPreventRuleConverter converter = new DataPreventRuleConverter();
@@ -47,6 +49,7 @@
.getLog(ServicePreventRuleImpl.class);
public ServicePreventRuleImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -23,6 +23,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataResultConverter;
import org.chorem.pollen.business.converters.DataVoteCountingConverter;
import org.chorem.pollen.business.dto.ResultDTO;
@@ -43,6 +45,7 @@
import org.chorem.pollen.votecounting.services.ServiceVoteCounting;
import org.chorem.pollen.votecounting.services.ServiceVoteCountingImpl;
import org.nuiton.topia.TopiaContext;
+import static org.nuiton.i18n.I18n._;
/**
* Implémentation du service de gestion des résultats.
@@ -52,12 +55,14 @@
* @version $Id$
*/
public class ServiceResultsImpl implements ServiceResults {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+ private TopiaContext rootContext;
+
/** log. */
private static final Log log = LogFactory.getLog(ServiceResultsImpl.class);
public ServiceResultsImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
@@ -267,24 +272,32 @@
public String importPoll(String filePath, UserDTO user) {
String topiaId = "";
- // Import du sondage
- ServiceExport serviceExport = new ServiceExportImpl();
- PollExportDTO pollExportDTO = serviceExport.executeImport(filePath);
+ try {
- // Transformation du sondage
- // FIXME do not call a Service from an other one
- ServicePoll servicePoll = new ServicePollImpl();
- org.chorem.pollen.business.dto.PollDTO poll = DataVoteCountingConverter
- .createPollDTO(pollExportDTO.getPoll());
+ // Import du sondage
+ ServiceExport serviceExport = new ServiceExportImpl();
+ PollExportDTO pollExportDTO = serviceExport.executeImport(filePath);
- // Enregistrement du sondage
- if (user != null) {
- poll.setUserId(user.getId());
- }
- topiaId = servicePoll.createPoll(poll);
+ // Transformation du sondage
+ // FIXME do not call a Service from an other one
+ ServicePoll servicePoll;
+ servicePoll = new ServicePollImpl();
+ org.chorem.pollen.business.dto.PollDTO poll = DataVoteCountingConverter
+ .createPollDTO(pollExportDTO.getPoll());
- if (log.isInfoEnabled()) {
- log.info("Poll imported: " + topiaId);
+ // Enregistrement du sondage
+ if (user != null) {
+ poll.setUserId(user.getId());
+ }
+ topiaId = servicePoll.createPoll(poll);
+
+ if (log.isInfoEnabled()) {
+ log.info("Poll imported: " + topiaId);
+ }
+
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.serviceResults.importPoll"));
}
return topiaId;
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceUserImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceUserImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceUserImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -21,13 +21,17 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataUserConverter;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.persistence.UserAccountDAO;
import org.chorem.pollen.business.utils.ContextUtil;
+import org.chorem.pollen.business.utils.MD5;
import org.nuiton.topia.TopiaContext;
+import static org.nuiton.i18n.I18n._;
/**
* Implémentation du service de gestion des utilisateurs.
@@ -37,7 +41,7 @@
* @version $Id$
*/
public class ServiceUserImpl implements ServiceUser {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+ private TopiaContext rootContext;
private UserAccountDAO userDAO = null;
private DataUserConverter converter = new DataUserConverter();
@@ -45,6 +49,7 @@
private static final Log log = LogFactory.getLog(ServiceUserImpl.class);
public ServiceUserImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
@@ -306,4 +311,35 @@
}
return userExists;
}
+
+ public void createDefaultAdmin(String login, String password, String email) {
+ TopiaContext transaction = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ UserAccountDAO dao =
+ PollenModelDAOHelper.getUserAccountDAO(transaction);
+
+ if (dao.findAllByAdministrator(true).size() == 0) {
+ UserAccount userEntity = dao.create();
+ userEntity.setLogin(login);
+ String encodedPassword = MD5.encode(password);
+ userEntity.setPassword(encodedPassword);
+ userEntity.setEmail(email);
+ userEntity.setAdministrator(true);
+
+ if (log.isInfoEnabled()) {
+ log.info("Utilisateur " + userEntity.getLogin() + " créé.");
+ }
+
+ transaction.commitTransaction();
+ }
+ } catch (Exception eee) {
+ PollenContext.doCatch(eee,
+ _("pollen.error.serviceUser.createDefaultAdmin",
+ login, email), transaction);
+ } finally {
+ PollenContext.doFinally(transaction);
+ }
+ }
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceVoteImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceVoteImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceVoteImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -21,6 +21,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.converters.DataPollAccountConverter;
import org.chorem.pollen.business.converters.DataVoteConverter;
import org.chorem.pollen.business.dto.PollAccountDTO;
@@ -40,7 +42,8 @@
* @version $Id$
*/
public class ServiceVoteImpl implements ServiceVote {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
+
+ private TopiaContext rootContext;
private VoteDAO voteDAO = null;
private DataVoteConverter converter = new DataVoteConverter();
@@ -48,6 +51,7 @@
private static final Log log = LogFactory.getLog(ServiceVoteImpl.class);
public ServiceVoteImpl() {
+ rootContext = PollenContext.getRootContext();
}
@Override
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -25,10 +25,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
import org.chorem.pollen.business.PollenException;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.persistence.UserAccountDAO;
+import org.chorem.pollen.business.services.ServiceUserImpl;
import org.hibernate.exception.SQLGrammarException;
import org.nuiton.i18n.I18n;
import org.nuiton.topia.TopiaContext;
@@ -43,8 +46,14 @@
*
* @author rannou
* @version $Id$
+ * @deprecated use class {@link org.chorem.pollen.business.PollenContext}
*/
+@Deprecated
public class ContextUtil {
+
+ /** log. */
+ private static final Log log = LogFactory.getLog(ContextUtil.class);
+
/**
* Instance de la classe (patron singleton)
*/
@@ -58,32 +67,34 @@
/**
* Propriétés de la base de données.
*/
+ @Deprecated
private Properties conf;
-
- /** log. */
- private static final Log log = LogFactory.getLog(ContextUtil.class);
-
/**
* Retourne le contexte global.
*
* @return le contexte global
+ * @
+ * @deprecated use {@link #getRootContext } instead
*/
- public TopiaContext getContext() {
- return context;
+ @Deprecated
+ public TopiaContext getContext() {
+ return PollenContext.getRootContext();
}
/**
* Retourne la configuration de la base de données.
*
* @return la configuration
+ * @
*/
- public Properties getConf() {
- return conf;
+ public Properties getConf() {
+ return PollenContext.getProperties();
}
-
/**
* Construction du contexte global
+ * @deprecated use directly {@link #getRootContext} method
*/
+ @Deprecated
public void buildContext() {
if (context == null || context.isClosed()) {
try {
@@ -102,7 +113,9 @@
/**
* Fermeture du contexte global
+ * @deprecated not necessary, the close will be done in PollenRunner
*/
+ @Deprecated
public void closeContext() {
if (context != null && !context.isClosed()) {
try {
@@ -123,7 +136,9 @@
* Retourne l'instance unique de la classe (patron singleton)
*
* @return L'instance de la classe
+ * @deprecated ContextUtil methods are static
*/
+ @Deprecated
public static ContextUtil getInstance() {
if (instance == null) {
instance = new ContextUtil();
@@ -137,7 +152,10 @@
* Usefull to use un different war in embedded war context.
*
* @return properties filename found in JNDI (or a default one)
+ * @deprecated not usefull anymore, the default properties file is loaded
+ * even if the application is embedded.
*/
+ @Deprecated
protected String getPropertiesFileName() {
String filename = null;
@@ -173,14 +191,15 @@
*/
private ContextUtil() {
- String propertiesFilename = getPropertiesFileName();
+// String propertiesFilename = getPropertiesFileName();
+ String propertiesFilename = "pollen.properties";
// Chargement du fichier de configuration
conf = PropertiesLoader.loadPropertiesFile(propertiesFilename);
- conf.setProperty("topia.persistence.classes", PollenModelDAOHelper
- .getImplementationClassesAsString());
- conf.setProperty("topia.service.migration.version", PollenModelDAOHelper
- .getModelVersion());
+ conf.setProperty("topia.persistence.classes",
+ PollenModelDAOHelper.getImplementationClassesAsString());
+ conf.setProperty("topia.service.migration.version",
+ PollenModelDAOHelper.getModelVersion());
I18n.init();
@@ -210,7 +229,11 @@
* Chargement des valeurs initiales dans la base de données.
*
* @throws TopiaException
+ * @deprecated use
+ * {@link ServiceUserImpl#createDefaultAdmin(String, String, String) }
+ * method to create the default admin
*/
+ @Deprecated
protected void initDB() throws TopiaException {
TopiaContext transaction = null;
transaction = context.beginTransaction();
@@ -291,6 +314,14 @@
}
}
+ /**
+ *
+ * @param e
+ * @param transaction
+ * @throws PollenException
+ * @deprecated must defined a message using {@link PollenContext#doCatch(Exception, TopiaContext, String) }
+ */
+ @Deprecated
public static void doCatch(Exception e, TopiaContext transaction) throws PollenException {
doCatch(e, transaction, "Échec lors du déroulement de la transaction");
}
@@ -302,7 +333,9 @@
* @param message
* @param transaction la transaction courante
* @throws PollenException
+ * @deprecated must defined a message using {@link PollenContext#doCatch(Exception, TopiaContext, String) }
*/
+ @Deprecated
public static void doCatch(Exception eee, TopiaContext transaction, String message) throws PollenException {
if (log.isErrorEnabled()) {
log.error(message, eee);
@@ -328,7 +361,9 @@
* Méthode exécutée dans tous les cas pour libérer la transaction.
*
* @param transaction transaction en cours
+ * @deprecated must defined a message using {@link PollenContext#doFinally(TopiaContext) }
*/
+ @Deprecated
public static void doFinally(TopiaContext transaction) {
if (transaction != null) {
try {
@@ -341,6 +376,11 @@
}
}
+ /**
+ * @return generated string for urlId
+ * @deprecated must defined a message using {@link PollenContext#createPollenUrlId() }
+ */
+ @Deprecated
public static String createPollenUrlId() {
return UUID.randomUUID().toString().replaceAll("-", "");
}
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1 +1,16 @@
+pollen.error.context.close=
+pollen.error.context.getRootContext=
+pollen.error.context.parse=
+pollen.error.context.rollback=
+pollen.error.context.start=
+pollen.error.context.stop=
+pollen.error.servicePoll.addComment=
pollen.error.servicePoll.createPoll=
+pollen.error.servicePoll.delete=
+pollen.error.servicePoll.deleteComment=
+pollen.error.servicePoll.getAllPolls=
+pollen.error.servicePoll.getPoll=
+pollen.error.servicePoll.updatePoll=
+pollen.error.serviceResults.importPoll=
+pollen.error.serviceUser.createDefaultAdmin=
+pollen.exception.load_configuration=
Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties
===================================================================
--- trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,2 +1,17 @@
+pollen.error.context.close=Erreur lors de la fermeture de la transaction
+pollen.error.context.getRootContext=Erreur lors de la r\u00E9cup\u00E9ration du contexte principale
+pollen.error.context.parse=Erreur lors du parse du fichier de configuration %1$s
+pollen.error.context.rollback=Erreur lors de l'annulation de la transaction
+pollen.error.context.start=Erreur lors du d\u00E9marrage de l'application
+pollen.error.context.stop=Erreur lors de l'arr\u00EAt de l'application
+pollen.error.servicePoll.addComment=Impossible d'ajouter un nouveau commentaire cr\u00E9\u00E9 par %1$s pour le sondage %2$s (%3$s)
pollen.error.servicePoll.createPoll=Impossible d'enregistrer le sondage %1$s cr\u00E9\u00E9 par %2$s
+pollen.error.servicePoll.delete=
+pollen.error.servicePoll.deleteComment=
+pollen.error.servicePoll.deletePoll=Impossible de supprimer le sondage ayant pour identifiant ToPIA \: %1$s
+pollen.error.servicePoll.getAllPolls=
+pollen.error.servicePoll.getPoll=
pollen.error.servicePoll.updatePoll=Impossible de mettre \u00E0 jour le sondage %1$s (%2$s)
+pollen.error.serviceResults.importPoll=
+pollen.error.serviceUser.createDefaultAdmin=Impossible de cr\u00E9er l'administrateur par d\u00E9faut \: %1$s (%2$s)
+pollen.exception.load_configuration=La configuration n'a pas \u00E9t\u00E9 charg\u00E9e correctement \! Veuillez v\u00E9rifier le d\u00E9marrage de l'application.
Copied: trunk/pollen-business/src/main/resources/pollen.properties (from rev 2876, trunk/pollen-ui/src/main/resources/pollen.properties)
===================================================================
--- trunk/pollen-business/src/main/resources/pollen.properties (rev 0)
+++ trunk/pollen-business/src/main/resources/pollen.properties 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,52 @@
+## Configuration de la base de donn\u00C3\u00A9es
+#hibernate.hbm2ddl.auto=update
+hibernate.show_sql=false
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+hibernate.connection.username=sa
+hibernate.connection.password=
+hibernate.connection.driver_class=org.h2.Driver
+hibernate.connection.url=jdbc:h2:file:~/.pollen/pollendb
+
+#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
+#hibernate.connection.username=pollen
+#hibernate.connection.password=pollen
+#hibernate.connection.driver_class=org.postgresql.Driver
+#hibernate.connection.url=jdbc:postgresql://intranet/pollen
+#hibernate.default_schema=public
+
+## Configuration de topia-migration
+topia.service.migration=org.nuiton.topia.migration.TopiaMigrationServiceImpl
+topia.service.migration.callbackhandlers=org.chorem.pollen.business.migration.PollenMigrationCallbackHandler
+topia.service.migration.mappingsdir=oldmappings
+topia.service.migration.modelnames=pollen
+
+## Initialisation de la base de donn\u00C3\u00A9es
+#choiceType=DATE,IMAGE,TEXT
+#pollType=RESTRICTED,FREE,GROUP
+#voteCounting=NORMAL,PERCENTAGE,CONDORCET,NUMBER
+
+## Utilisateur par d\u00C3\u00A9faut
+adminLogin=admin
+adminPassword=pollen
+adminEmail=admin(a)domain.com
+
+## R\u00C3\u00A9pertoire des images transf\u00C3\u00A9r\u00C3\u00A9es
+upImgDir=.pollen/uploadedImages
+
+## Taille maximal des images transf\u00C3\u00A9r\u00C3\u00A9es (en octets)
+upload.filesize-max=1048576
+upload.requestsize-max=10485760
+
+## Configuration de l'envoi d'emails automatiques
+email_host=smtp.free.fr
+email_port=25
+email_from=bot(a)pollen.org
+
+## R\u00C3\u00A9pertoire des flux de syndication (Atom)
+feedDir=.pollen/feeds
+
+## Adresse du site (utilis\u00C3\u00A9e pour les emails de rappel)
+siteUrl=
+
+## Version de l'application
+version=${project.version}
\ No newline at end of file
Property changes on: trunk/pollen-business/src/main/resources/pollen.properties
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -21,7 +21,7 @@
public void execute() throws Exception {
transaction = null;
try {
- transaction = ContextUtil.getInstance().getContext().beginTransaction();
+ transaction = PollenContext.getRootContext().beginTransaction();
test();
Added: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java (rev 0)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,52 @@
+
+package org.chorem.pollen.business;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Ignore;
+import org.nuiton.util.ApplicationConfig;
+
+/**
+ * TestManager
+ *
+ * Created: 24 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+@Ignore
+public class TestManager {
+
+ private static final Log log = LogFactory.getLog(TestManager.class);
+
+ public static void start(String dbname) throws IOException {
+ log.info("## START ## : " + dbname);
+
+ InputStream input = TestManager.class.
+ getResourceAsStream("/pollen.properties");
+
+ Properties options = new Properties();
+ options.load(input);
+
+ ApplicationConfig config = new ApplicationConfig();
+ config.setOptions(options);
+ config.setOption(
+ "hibernate.connection.url",
+ "jdbc:h2:file:target/surefire-data/" + dbname
+ );
+
+ PollenContext.loadConfiguration(config);
+ PollenContext.start();
+ }
+
+ public static void stop() throws IOException {
+ PollenContext.stop();
+ }
+
+}
Property changes on: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestManager.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceAuthImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceAuthImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceAuthImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,8 @@
package org.chorem.pollen.business.services;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.TestManager;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -40,16 +42,16 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
+ TestManager.start("ServiceAuthImplTest");
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
+ TestManager.stop();
}
@Before
- public void setUp() {
+ public void setUp() {
instance = new ServiceAuthImpl();
}
@@ -61,7 +63,7 @@
* Test of isLoginRight method, of class ServiceAuthImpl.
*/
@Test
- public void testIsLoginRight() {
+ public void testIsLoginRight() {
String login = "login_isLoginRight";
String password = "password_isLoginRight";
boolean result1 = instance.isLoginRight(login, password);
@@ -79,7 +81,7 @@
* Test of getUser method, of class ServiceAuthImpl.
*/
@Test
- public void testGetUser() {
+ public void testGetUser() {
String login = "login_getUser";
String password = "password_getUser";
UserDTO result1 = instance.getUser(login, password);
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceChoiceImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceChoiceImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceChoiceImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,7 @@
package org.chorem.pollen.business.services;
+import org.chorem.pollen.business.PollenBusinessException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -23,8 +24,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
-import org.chorem.pollen.business.services.ServiceChoiceImpl;
import org.chorem.pollen.business.utils.ContextUtil;
import org.junit.After;
import org.junit.AfterClass;
@@ -50,16 +51,16 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
+ TestManager.start("ServiceChoiceImplTest");
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
+ TestManager.stop();
}
@Before
- public void setUp() {
+ public void setUp() {
instance = new ServiceChoiceImpl();
}
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceListImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,7 @@
package org.chorem.pollen.business.services;
+import org.chorem.pollen.business.PollenBusinessException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -23,9 +24,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.PersonListDTO;
import org.chorem.pollen.business.dto.VotingListDTO;
-import org.chorem.pollen.business.services.ServiceListImpl;
import org.chorem.pollen.business.utils.ContextUtil;
import org.junit.After;
import org.junit.AfterClass;
@@ -51,16 +52,16 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
+ TestManager.start("ServiceListImplTest");
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
+ TestManager.stop();
}
@Before
- public void setUp() {
+ public void setUp() {
instance = new ServiceListImpl();
}
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -15,7 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
package org.chorem.pollen.business.services;
+import java.io.IOException;
import java.util.ArrayList;
+import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.business.dto.CommentDTO;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -26,6 +28,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.business.TestData;
+import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.dto.PollDTO;
@@ -55,7 +58,7 @@
*/
public class ServicePollImplTest {
- private static ServicePollImpl instance;
+ private ServicePollImpl instance;
/** log. */
private static final Log log = LogFactory.getLog(ServicePollImplTest.class);
@@ -64,13 +67,10 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
- instance = new ServicePollImpl();
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
}
@Before
@@ -78,7 +78,8 @@
}
@After
- public void tearDown() {
+ public void tearDown() throws IOException {
+ TestManager.stop();
}
/**
@@ -87,7 +88,9 @@
*/
@Test
public void testCreatePoll() throws Exception {
- log.info("## START ##");
+ TestManager.start("testCreatePoll");
+ instance = new ServicePollImpl();
+
PollDTO dto = new PollDTO();
dto.setBeginChoiceDate(new Date());
dto.setBeginDate(new Date());
@@ -117,42 +120,38 @@
dto.setChoiceDTOs(choices);
- String result = instance.createPoll(dto);
+ final String result = instance.createPoll(dto);
if (log.isDebugEnabled()) {
log.debug("result: " + result);
}
Assert.assertNotNull(result);
- TopiaContext transaction = null;
- try {
- transaction = ContextUtil.getInstance().getContext().beginTransaction();
+ TestData test = new TestData() {
- Poll entity = PollenModelDAOHelper.getPollDAO(transaction).findByTopiaId(result);
- Assert.assertNotNull(entity);
+ @Override
+ protected void test() throws Exception {
+ Poll entity = PollenModelDAOHelper.getPollDAO(transaction).
+ findByTopiaId(result);
+ Assert.assertNotNull(entity);
- Assert.assertEquals(3, entity.getChoice().size());
- Assert.assertNotNull(entity.getCreator());
- Assert.assertEquals("erwan", entity.getCreator().getVotingId());
- Assert.assertNotNull(entity.getCreator().getAccountId());
+ Assert.assertEquals(3, entity.getChoice().size());
+ Assert.assertNotNull(entity.getCreator());
+ Assert.assertEquals("erwan", entity.getCreator().getVotingId());
+ Assert.assertNotNull(entity.getCreator().getAccountId());
+ }
+ };
- } catch (Exception eee) {
- if (transaction != null) {
- transaction.rollbackTransaction();
- }
- throw eee;
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
+ test.execute();
}
/**
* Test of updatePoll method, of class ServicePollImpl.
*/
@Test
- public void testUpdatePoll() {
- log.info("## START ##");
+ public void testUpdatePoll() throws Exception {
+ TestManager.start("testUpdatePoll");
+ instance = new ServicePollImpl();
+
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_updatePoll");
@@ -173,8 +172,10 @@
* Test of deletePoll method, of class ServicePollImpl.
*/
@Test
- public void testDeletePoll() {
- log.info("## START ##");
+ public void testDeletePoll() throws Exception {
+ TestManager.start("testDeletePoll");
+ instance = new ServicePollImpl();
+
PollDTO dto = new PollDTO();
dto.setDescription("Test_deletePoll");
dto.setCreatorId("erwan");
@@ -191,8 +192,10 @@
* Test of findPollById method, of class ServicePollImpl.
*/
@Test
- public void testFindPollById() {
- log.info("## START ##");
+ public void testFindPollById() throws Exception {
+ TestManager.start("testFindPollById");
+ instance = new ServicePollImpl();
+
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollById");
@@ -210,8 +213,10 @@
* Test of findPollByPollId method, of class ServicePollImpl.
*/
@Test
- public void testFindPollByPollId() {
- log.info("## START ##");
+ public void testFindPollByPollId() throws Exception {
+ TestManager.start("testFindPollByPollId");
+ instance = new ServicePollImpl();
+
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollByPollId");
@@ -233,8 +238,10 @@
* Test of findPollsByName method, of class ServicePollImpl.
*/
@Test
- public void testFindPollsByName() {
- log.info("## START ##");
+ public void testFindPollsByName() throws Exception {
+ TestManager.start("testFindPollsByName");
+ instance = new ServicePollImpl();
+
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollsByName");
dto.setCreatorId("erwan");
@@ -252,8 +259,10 @@
* Test of findPollsByUser method, of class ServicePollImpl.
*/
@Test
- public void testFindPollsByUser() {
- log.info("## START ##");
+ public void testFindPollsByUser() throws Exception {
+ TestManager.start("testFindPollsByUser");
+ instance = new ServicePollImpl();
+
// création de l'utilisateur
UserDTO user = new UserDTO();
user.setLogin("login_findPollsByUser");
@@ -279,8 +288,10 @@
* Test of findParticipatedPolls method, of class ServicePollImpl.
*/
@Test
- public void testFindParticipatedPolls() {
- log.info("## START ##");
+ public void testFindParticipatedPolls() throws Exception {
+ TestManager.start("testFindParticipatedPolls");
+ instance = new ServicePollImpl();
+
// création de l'utilisateur
UserDTO user = new UserDTO();
user.setLogin("login_findParticipatedPolls");
@@ -316,8 +327,10 @@
* Test of findRunningPolls method, of class ServicePollImpl.
*/
@Test
- public void testFindRunningPolls() {
- log.info("## START ##");
+ public void testFindRunningPolls() throws Exception {
+ TestManager.start("testFindRunningPolls");
+ instance = new ServicePollImpl();
+
Date now = new Date();
// sondage en cours sans date de fin
@@ -365,8 +378,10 @@
* Test of selectPolls method, of class ServicePollImpl.
*/
@Test
- public void testSelectPolls() {
- log.info("## START ##");
+ public void testSelectPolls() throws Exception {
+ TestManager.start("testSelectPolls");
+ instance = new ServicePollImpl();
+
PollDTO dto = new PollDTO();
dto.setDescription("test selectPolls");
dto.setTitle("selectPolls");
@@ -400,7 +415,8 @@
*/
@Test
public void testCreateComment() throws Exception {
- log.info("## START ##");
+ TestManager.start("testCreateComment");
+ instance = new ServicePollImpl();
/** PREPARE DATA **/
PollDTO poll = new PollDTO();
@@ -444,7 +460,8 @@
*/
@Test
public void testDeleteComment() throws Exception {
- log.info("## START ##");
+ TestManager.start("testDeleteComment");
+ instance = new ServicePollImpl();
/** PREPARE DATA **/
PollDTO poll = new PollDTO();
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePreventRuleImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePreventRuleImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePreventRuleImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,8 @@
package org.chorem.pollen.business.services;
+import java.io.IOException;
+import org.chorem.pollen.business.PollenBusinessException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -23,8 +25,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.PreventRuleDTO;
-import org.chorem.pollen.business.services.ServicePreventRuleImpl;
import org.chorem.pollen.business.utils.ContextUtil;
import org.junit.After;
import org.junit.AfterClass;
@@ -51,16 +53,16 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
+ TestManager.start("ServicePreventRuleImplTest");
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
+ TestManager.stop();
}
@Before
- public void setUp() {
+ public void setUp() throws Exception {
instance = new ServicePreventRuleImpl();
}
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceUserImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceUserImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceUserImplTest.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,7 @@
package org.chorem.pollen.business.services;
+import org.chorem.pollen.business.PollenBusinessException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -23,6 +24,7 @@
import java.util.List;
+import org.chorem.pollen.business.TestManager;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.utils.ContextUtil;
import org.junit.After;
@@ -42,16 +44,16 @@
@BeforeClass
public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
+ TestManager.start("ServiceUserImplTest");
}
@AfterClass
public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
+ TestManager.stop();
}
@Before
- public void setUp() {
+ public void setUp() {
instance = new ServiceUserImpl();
}
@@ -134,7 +136,7 @@
* Test of updatePasswordUser method, of class ServiceUserImpl.
*/
@Test
- public void testUpdatePasswordUser() {
+ public void testUpdatePasswordUser() {
UserDTO user = new UserDTO();
user.setLogin("login_UpdatePasswordUser");
user.setId(instance.createUser(user, "password"));
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -2,6 +2,7 @@
package org.chorem.pollen.ui.base;
import java.io.File;
+import org.chorem.pollen.business.PollenBusinessException;
/**
* ContextLink
@@ -21,13 +22,15 @@
/**
* ContextPath for the link
* @return a String contextPath
+ * @
*/
- public String getContextPath();
+ public String getContextPath() ;
/**
* Get a file from context with name defined by filename.
* @param filename name of the file to get
* @return a File with absolutePath corresponding to contextPath + filename
+ * @
*/
- public File getFile(String filename);
+ public File getFile(String filename) ;
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -34,12 +34,13 @@
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.PersistentLocale;
import org.apache.tapestry5.services.Request;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.services.ServiceAuth;
import org.chorem.pollen.business.utils.MD5;
import org.chorem.pollen.ui.base.ContextLink;
import org.chorem.pollen.ui.data.Lien;
-import org.chorem.pollen.ui.services.Configuration;
/**
* Classe du Layout Component Border.
@@ -154,12 +155,6 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
/** Injection des services */
@Inject
private ServiceAuth serviceAuth;
@@ -225,8 +220,8 @@
* Version de l'application.
* @return current application version
*/
- public String getVersion() {
- return conf.getProperty(Configuration.PROP_APP_VERSION);
+ public String getVersion() {
+ return PollenProperty.APP_VERSION.getValue();
}
public int getCurrentYear() {
@@ -234,8 +229,8 @@
return current.get(Calendar.YEAR);
}
- public String getContactEmail() {
- return conf.getProperty(Configuration.PROP_CONTACT_EMAIL);
+ public String getContactEmail() {
+ return PollenProperty.CONTACT_EMAIL.getValue();
}
/**
@@ -249,8 +244,9 @@
* Vérifie que le fichier de flux de syndication existe.
*
* @return vrai si le fichier existe
+ * @
*/
- public boolean isFeedFileExisting() {
+ public boolean isFeedFileExisting() {
if (feedFilename == null) {
return false;
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,12 +1,10 @@
package org.chorem.pollen.ui.components;
-import org.chorem.pollen.ui.base.ContextLink;
import java.io.File;
-import org.chorem.pollen.ui.base.*;
-import org.apache.tapestry5.MarkupWriter;
-import org.apache.tapestry5.ioc.annotations.Inject;
-import org.chorem.pollen.ui.services.Configuration;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.ui.base.ContextLink;
+import org.chorem.pollen.business.PollenProperty;
/**
* FeedLink
@@ -21,16 +19,13 @@
*/
public class FeedContextLink implements ContextLink {
- @Inject
- private Configuration conf;
-
@Override
- public String getContextPath() {
- return conf.getProperty(Configuration.FEED_DIR);
+ public String getContextPath() {
+ return PollenProperty.FEED_DIR.getValue();
}
@Override
- public File getFile(String filename) {
+ public File getFile(String filename) {
return new File(getContextPath(), filename + ".xml");
}
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -16,6 +16,7 @@
package org.chorem.pollen.ui.components;
+import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.ui.base.ContextLink;
import java.io.File;
import java.io.FileInputStream;
@@ -84,7 +85,7 @@
}
/** Affichage du fichier */
- public StreamResponse onCreateLink(final String filename, String type) {
+ public StreamResponse onCreateLink(final String filename, String type) {
// security : src containing .. are filtered, to not access to full system
if (StringUtils.isEmpty(filename) || filename.contains("..")) {
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -31,6 +31,7 @@
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Response;
+import org.chorem.pollen.business.PollenBusinessException;
import org.chorem.pollen.ui.base.ContextLink;
import org.slf4j.Logger;
@@ -82,7 +83,7 @@
}
/** Affichage du fichier */
- public StreamResponse onFileLink(final String href, final String type) {
+ public StreamResponse onFileLink(final String href, final String type) {
// security : src containing .. are filtered, to not access to full system
if (StringUtils.isEmpty(href) || href.contains("..")) {
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -31,6 +31,7 @@
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Response;
+import org.chorem.pollen.business.PollenBusinessException;
import org.slf4j.Logger;
/**
@@ -123,7 +124,7 @@
/** Affichage de l'image */
public StreamResponse onImageLink(final String src, final int width,
- final int height, boolean thumb) {
+ final int height, boolean thumb) {
// security : src containing .. are filtered, to not access to full system
if (StringUtils.isEmpty(src) || src.contains("..")) {
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ImageContextLink.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ImageContextLink.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ImageContextLink.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -17,10 +17,12 @@
package org.chorem.pollen.ui.components;
import java.io.File;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.tapestry5.annotations.Parameter;
-import org.apache.tapestry5.ioc.annotations.Inject;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.ui.base.ContextLink;
-import org.chorem.pollen.ui.services.Configuration;
/**
* ImageContextLink
@@ -37,9 +39,6 @@
public static final String THUMB_PREFIX = "thumb_";
- @Inject
- private Configuration config;
-
/**
* Directory for files getting or saving from this context
* (ie. subdirectory where images are uploaded, main directory is defined by contextPath)
@@ -54,16 +53,16 @@
private boolean thumb;
@Override
- public String getContextPath() {
- return config.getProperty(Configuration.IMG_DIR);
+ public String getContextPath() {
+ return PollenProperty.IMG_DIR.getValue();
}
@Override
- public File getFile(String filename) {
+ public File getFile(String filename) {
return getFile(filename, thumb);
}
- public File getFile(String filename, boolean thumb) {
+ public File getFile(String filename, boolean thumb) {
if (thumb) {
filename = THUMB_PREFIX + filename;
}
@@ -73,8 +72,9 @@
/**
* Get the directory where are uploaded the images from the context.
* @return a File corresponding to the image directory
+ * @
*/
- public File getImageDir() {
+ public File getImageDir() {
File result = null;
if (dir != null && !dir.isEmpty()) {
result = new File(getContextPath(), dir);
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/UsersAdmin.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/UsersAdmin.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/UsersAdmin.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -31,6 +31,8 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.services.ServiceList;
@@ -38,7 +40,6 @@
import org.chorem.pollen.business.utils.MD5;
import org.chorem.pollen.ui.components.FeedBack;
import org.chorem.pollen.ui.data.Lien;
-import org.chorem.pollen.ui.services.Configuration;
import org.chorem.pollen.ui.utils.PasswordGenerator;
/**
@@ -109,12 +110,6 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
/** Injection des services */
@Inject
private ServiceUser serviceUser;
@@ -133,7 +128,7 @@
/**
* Méthode appelée lors de la soumission du formulaire.
*/
- public Object onSuccessFromUsersForm() {
+ public Object onSuccessFromUsersForm() {
for (UserDTO usr : accounts) {
if (serviceUser.findUserById(usr.getId()) != null) {
serviceUser.updateUser(usr);
@@ -205,11 +200,11 @@
}
/** Envoi du mail de notification */
- private void sendMailNotification(UserDTO newUser, String password) {
+ private void sendMailNotification(UserDTO newUser, String password) {
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
data.put("to", newUser.getEmail());
data.put("title", messages.format("registerEmail_subject", newUser
.getLogin()));
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ImageDisplay.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ImageDisplay.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ImageDisplay.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -29,7 +29,6 @@
import org.chorem.pollen.business.dto.PollDTO;
import org.chorem.pollen.ui.components.ImageContextLink;
import org.chorem.pollen.ui.data.Lien;
-import org.chorem.pollen.ui.services.Configuration;
/**
* Classe de la page de visualisation d'une image.
@@ -52,12 +51,6 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
/** Sondage */
@Persist
private PollDTO poll;
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollCreation.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -48,6 +48,8 @@
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.upload.services.UploadSymbols;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.PersonListDTO;
@@ -71,7 +73,6 @@
import org.chorem.pollen.ui.data.PollStep;
import org.chorem.pollen.ui.data.uio.DateChoiceUIO;
import org.chorem.pollen.ui.data.uio.ImageChoiceUIO;
-import org.chorem.pollen.ui.services.Configuration;
import org.chorem.pollen.ui.utils.FeedUtil;
import org.chorem.pollen.ui.utils.ImageUtil;
import org.chorem.pollen.ui.utils.UnitConverter;
@@ -338,13 +339,7 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
@Inject
- private Configuration conf;
-
- @Inject
private Logger logger;
/** Injection des services */
@@ -411,7 +406,7 @@
/**
* Méthode appelée lorsqu'on souhaite valider la création du sondage.
*/
- Object onSuccessFromChoicesCreationForm() {
+ Object onSuccessFromChoicesCreationForm() {
if (!addChoiceSelected) {
// Préparation et création du sondage
@@ -798,7 +793,7 @@
/**
* Création du sondage.
*/
- private void createPoll() {
+ private void createPoll() {
// Création du sondage
poll.setId(servicePoll.createPoll(poll));
@@ -821,7 +816,7 @@
}
/** Ajout d'une entrée dans le flux de syndication */
- private void addFeedEntry() {
+ private void addFeedEntry() {
PollAccountDTO creator = servicePollAccount.findPollAccountById(poll
.getCreatorId());
String voteURL = siteURL + "poll/VoteFor/" + poll.getPollId();
@@ -836,16 +831,16 @@
}
/** Envoi du mail de notification */
- private void sendMailNotification() {
+ private void sendMailNotification() {
PollAccountDTO creator = servicePollAccount.findPollAccountById(poll
.getCreatorId());
String voteURL = siteURL + "poll/VoteFor/" + poll.getPollId();
String modifURL = siteURL + "poll/Modification/" + poll.getPollId()
+ ":" + creator.getAccountId();
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
// Mail au créateur
if (poll.getCreatorEmail() != null) {
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollModification.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollModification.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollModification.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -38,6 +38,9 @@
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.chenillekit.tapestry.core.components.DateTimeField;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenContext;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.PollAccountDTO;
@@ -54,7 +57,6 @@
import org.chorem.pollen.ui.data.Lien;
import org.chorem.pollen.ui.data.PollAction;
import org.chorem.pollen.ui.data.PollStep;
-import org.chorem.pollen.ui.services.Configuration;
/**
* Classe de la page de modification d'un sondage.
@@ -193,12 +195,6 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
/** Injection des services */
@Inject
private ServicePoll servicePoll;
@@ -211,7 +207,7 @@
* Méthode appelée lorsqu'on souhaite accéder à l'étape suivante de la
* modification de sondage.
*/
- Object onSuccessFromPollCreationForm() {
+ Object onSuccessFromPollCreationForm() {
switch (step) {
case POLL:
step = PollStep.OPTIONS;
@@ -530,12 +526,12 @@
}
/** Envoi du mail de notification */
- private void sendMailNotification(List<PollAccountDTO> modifiedAccounts) {
+ private void sendMailNotification(List<PollAccountDTO> modifiedAccounts) {
String voteURL = siteURL + "poll/VoteFor/" + poll.getPollId();
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
// Mails aux votants
for (PollAccountDTO account : modifiedAccounts) {
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -55,7 +55,6 @@
import org.chorem.pollen.ui.components.FeedBack;
import org.chorem.pollen.ui.components.ImageContextLink;
import org.chorem.pollen.ui.data.Lien;
-import org.chorem.pollen.ui.services.Configuration;
import org.chorem.pollen.votecounting.business.NumberMethod;
import org.chorem.pollen.votecounting.dto.VoteCountingResultDTO;
import org.slf4j.Logger;
@@ -162,12 +161,6 @@
private Locale currentLocale;
/**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
- /**
* Logs.
*/
@Inject
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -47,6 +47,8 @@
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.upload.services.UploadedFile;
import org.chenillekit.tapestry.core.components.DateTimeField;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.CommentDTO;
@@ -75,7 +77,6 @@
import org.chorem.pollen.ui.data.PollAction;
import org.chorem.pollen.ui.data.uio.DateChoiceUIO;
import org.chorem.pollen.ui.data.uio.ImageChoiceUIO;
-import org.chorem.pollen.ui.services.Configuration;
import org.chorem.pollen.ui.utils.FeedUtil;
import org.chorem.pollen.ui.utils.ImageUtil;
import org.chorem.pollen.votecounting.business.NumberMethod;
@@ -152,12 +153,6 @@
private Messages messages;
/**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
- /**
* Sondage pour lequel l'utilisateur vote
*/
@Property
@@ -295,7 +290,7 @@
/** Méthode appelée après la soumission du vote. */
@Log
- Object onSuccessFromVoteForm() {
+ Object onSuccessFromVoteForm() {
if (initPollAccount()) {
List<ChoiceDTO> choiceDTOs = new ArrayList<ChoiceDTO>();
if (poll.getVoteCounting() == VoteCountingType.NORMAL) {
@@ -563,7 +558,7 @@
/** Ajout d'une entrée dans le flux de syndication */
private void addFeedEntry(PollAction pollAction, String titleStr,
- String contentStr) {
+ String contentStr) {
String voteURL = siteURL + "poll/VoteFor/" + poll.getPollId();
File feedFile = getFeedContext().getFile(poll.getPollId());
String title = null;
@@ -596,14 +591,14 @@
}
/** Envoi du mail de notification */
- private void sendMailNotification() {
+ private void sendMailNotification() {
String voteURL = siteURL + "poll/VoteFor/" + poll.getPollId();
String modifURL = siteURL + "poll/Modification/" + poll.getPollId()
+ ":" + MD5.encode(poll.getCreatorId());
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
// Mail au créateur
data.put("to", poll.getCreatorEmail());
@@ -709,7 +704,7 @@
* @return vrai si le fichier existe
*/
@Log
- public boolean isFeedFileExisting() {
+ public boolean isFeedFileExisting() {
File feedFile = getFeedContext().getFile(poll.getPollId());
if (log.isDebugEnabled()) {
log.debug("feed context path : " + getFeedContext().getContextPath());
@@ -815,7 +810,7 @@
}
/** Méthode appelée lors de l'ajout d'un choix. */
- Object onSuccessFromChoiceForm() {
+ Object onSuccessFromChoiceForm() {
String choiceName = null;
String choiceDesc = null;
if (isTextType()) {
@@ -876,7 +871,7 @@
}
/** Méthode appelée lors de l'ajout d'un commentaire. */
- Object onSuccessFromCommentForm() {
+ Object onSuccessFromCommentForm() {
//newComment.setPollId(poll.getId());
newComment.setPostDate(new Date());
servicePoll.createComment(poll, newComment);
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/Register.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/Register.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/Register.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -30,13 +30,14 @@
import org.apache.tapestry5.corelib.components.TextField;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.chorem.pollen.business.PollenBusinessException;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.services.ServiceAuth;
import org.chorem.pollen.business.services.ServiceUser;
import org.chorem.pollen.business.utils.MD5;
import org.chorem.pollen.ui.data.Lien;
-import org.chorem.pollen.ui.services.Configuration;
/**
* Classe de la page d'enregistrement d'un utilisateur.
@@ -96,12 +97,6 @@
@Inject
private Messages messages;
- /**
- * Service contenant la configuration de l'application.
- */
- @Inject
- private Configuration conf;
-
@Parameter(defaultPrefix = BindingConstants.MESSAGE, value = "title")
@Property
private String title;
@@ -121,7 +116,7 @@
*
* @return la page d'accueil
*/
- Object onSuccessFromRegisterForm() {
+ Object onSuccessFromRegisterForm() {
// L'utilisateur s'est pas trompé en répétant son mot de passe
if (!password1.equals(password2)) {
@@ -156,11 +151,11 @@
}
/** Envoi du mail de notification */
- private void sendMailNotification() {
+ private void sendMailNotification() {
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
data.put("to", newUser.getEmail());
data.put("title", messages.format("registerEmail_subject", newUser
.getLogin()));
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -136,17 +136,13 @@
@EagerLoad
public RegistryShutdownListener buildPollenShutdown(
@InjectService("RegistryShutdownHub") RegistryShutdownHub hub) {
- RegistryShutdownListener listener = new PollenShutdown();
+ RegistryShutdownListener listener = new PollenManager();
hub.addRegistryShutdownListener(listener);
return listener;
}
- /**
- * This is the Configuration service definition. It manage the file
- * properties.
- */
- public static Configuration buildConfiguration() {
- return new ConfigurationImpl(CONFIGURATION_FILE);
+ public static void contributeRegistryStartup(OrderedConfiguration<Runnable> configuration) {
+ configuration.add("PollenStartup", new PollenManager());
}
/**
@@ -155,11 +151,11 @@
*/
@EagerLoad
public static BackgroundWorker buildBackgroundWorker(
- ComponentSource componentSource, Configuration configuration,
+ ComponentSource componentSource,
ServicePoll servicePoll) {
Messages messages = componentSource.getPage("LocalMessages")
.getComponentResources().getMessages();
- return new BackgroundWorkerImpl(messages, configuration, servicePoll);
+ return new BackgroundWorkerImpl(messages, servicePoll);
}
/**
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/BackgroundWorkerImpl.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/BackgroundWorkerImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/BackgroundWorkerImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -26,6 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tapestry5.ioc.Messages;
+import org.chorem.pollen.business.PollenProperty;
import org.chorem.pollen.business.business.PreventRuleManager;
import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.dto.PollDTO;
@@ -53,19 +54,15 @@
/** Messages internationalisés **/
private final Messages messages;
- /** Service contenant la configuration de l'application. */
- private Configuration conf;
-
/** Injection du service de gestion de sondages. */
private ServicePoll servicePoll;
/**
* Constructeur exécuté au lancement de l'application.
*/
- public BackgroundWorkerImpl(Messages messages, Configuration conf,
+ public BackgroundWorkerImpl(Messages messages,
ServicePoll servicePoll) {
this.messages = messages;
- this.conf = conf;
this.servicePoll = servicePoll;
timer = new Timer();
@@ -76,9 +73,8 @@
* Lancement des tâches en arrière-plan.
*/
public void executeTasks() {
- if ("".equals(conf.getProperty("siteUrl"))) {
- log
- .warn("No property siteUrl. Reminder emails would not contain it");
+ if (!PollenProperty.SERVER_URL.hasValue()) {
+ log.warn("No property siteUrl. Reminder emails would not contain it");
}
// Exécution de la tâche toutes les 10 min
@@ -129,12 +125,12 @@
* @param poll sondage concerné
*/
private void sendMailNotification(PollDTO poll, Long timeValue) {
- String voteURL = conf.getProperty("siteUrl") + "/poll/VoteFor/"
+ String voteURL = PollenProperty.SERVER_URL.getValue() + "/poll/VoteFor/"
+ poll.getPollId();
Map<String, String> data = new HashMap<String, String>();
- data.put("host", conf.getProperty("email_host"));
- data.put("port", conf.getProperty("email_port"));
- data.put("from", conf.getProperty("email_from"));
+ data.put("host", PollenProperty.EMAIL_HOST.getValue());
+ data.put("port", PollenProperty.EMAIL_PORT.getValue());
+ data.put("from", PollenProperty.EMAIL_FROM.getValue());
// Mails aux votants
for (PreventRuleDTO rule : poll.getPreventRuleDTOs()) {
Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/Configuration.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/Configuration.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/Configuration.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,64 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.ui.services;
-
-import java.util.Properties;
-
-/**
- * Service de gestion de la configuration de l'application. Ce service lit la
- * configuration dans un fichier properties.
- *
- * @author rannou
- * @version $Id$
- */
-public interface Configuration {
-
- public static final String FEED_DIR = "feedDir";
- public static final String IMG_DIR = "upImgDir";
- public static final String PROP_APP_VERSION = "version";
- public static final String PROP_CONTACT_EMAIL = "adminEmail";
-
- /**
- * Retourne les propriétés.
- *
- * @return les propriétés.
- */
- public Properties getConf();
-
- /**
- * Change les propriétés.
- *
- * @param conf les propriétés.
- */
- public void setConf(Properties conf);
-
- /**
- * Retourne une propriété.
- *
- * @param key la clé de la propriété.
- * @return la propriété.
- */
- public String getProperty(String key);
-
- /**
- * Change une propriété.
- *
- * @param key la clé de la propriété.
- * @param value la valeur de la propriété.
- */
- public void setProperty(String key, String value);
-}
Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ConfigurationImpl.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ConfigurationImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ConfigurationImpl.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,62 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.ui.services;
-
-import java.util.Properties;
-
-import org.chorem.pollen.business.utils.PropertiesLoader;
-
-/**
- * Implémentation du service de gestion de la configuration de l'application. Ce
- * service lit la configuration dans un fichier properties.
- *
- * @author rannou
- * @version $Id$
- */
-public class ConfigurationImpl implements Configuration {
-
- /** Propriétés de l'application. */
- private Properties conf;
-
- public ConfigurationImpl(Properties conf) {
- this.conf = conf;
- }
-
- public ConfigurationImpl(String filename) {
- conf = PropertiesLoader.loadPropertiesFile(filename);
- }
-
- @Override
- public Properties getConf() {
- return conf;
- }
-
- @Override
- public void setConf(Properties conf) {
- this.conf = conf;
- }
-
- @Override
- public String getProperty(String key) {
- return conf.getProperty(key);
- }
-
- @Override
- public void setProperty(String key, String value) {
- conf.setProperty(key, value);
- }
-}
Added: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java (rev 0)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -0,0 +1,53 @@
+/* *##% Pollen
+ * Copyright (C) 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
+
+package org.chorem.pollen.ui.services;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.tapestry5.ioc.services.RegistryShutdownListener;
+import org.chorem.pollen.business.PollenContext;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+
+/**
+ * Service de gestion de l'arrêt du serveur. Ce service exécute une action à la
+ * fermeture du registre Tapestry.
+ *
+ * @author rannou
+ * @version $Id$
+ */
+public class PollenManager implements RegistryShutdownListener, Runnable {
+
+ private static final Log log = LogFactory.getLog(PollenManager.class);
+
+ @Override
+ public void run() {
+ if (log.isInfoEnabled()) {
+ log.info("Start Pollen");
+ }
+ PollenContext.start();
+ }
+
+ @Override
+ public void registryDidShutdown() {
+ if (log.isInfoEnabled()) {
+ log.info("Stop Pollen");
+ }
+ PollenContext.stop();
+ }
+
+}
Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Deleted: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenShutdown.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenShutdown.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenShutdown.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,36 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.ui.services;
-
-import org.apache.tapestry5.ioc.services.RegistryShutdownListener;
-import org.chorem.pollen.business.utils.ContextUtil;
-
-/**
- * Service de gestion de l'arrêt du serveur. Ce service exécute une action à la
- * fermeture du registre Tapestry.
- *
- * @author rannou
- * @version $Id$
- */
-public class PollenShutdown implements RegistryShutdownListener {
-
- @Override
- public void registryDidShutdown() {
- ContextUtil.getInstance().closeContext();
- }
-
-}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PropertiesFileSymbolProvider.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PropertiesFileSymbolProvider.java 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PropertiesFileSymbolProvider.java 2010-02-25 12:07:51 UTC (rev 2884)
@@ -10,7 +10,7 @@
import org.apache.tapestry5.ioc.services.SymbolProvider;
import org.apache.tapestry5.ioc.util.CaseInsensitiveMap;
-import org.chorem.pollen.business.utils.PropertiesLoader;
+import org.chorem.pollen.business.PollenContext;
import org.slf4j.Logger;
public class PropertiesFileSymbolProvider implements SymbolProvider {
@@ -59,7 +59,7 @@
* @param resourceName the name of the resource to load
*/
public PropertiesFileSymbolProvider(Logger logger, String resourceName) {
- Properties conf = PropertiesLoader.loadPropertiesFile(resourceName);
+ Properties conf = PollenContext.getProperties();
initializeProperties(conf);
}
Deleted: trunk/pollen-ui/src/main/resources/pollen.properties
===================================================================
--- trunk/pollen-ui/src/main/resources/pollen.properties 2010-02-24 16:19:22 UTC (rev 2883)
+++ trunk/pollen-ui/src/main/resources/pollen.properties 2010-02-25 12:07:51 UTC (rev 2884)
@@ -1,52 +0,0 @@
-## Configuration de la base de donn\u00C3\u00A9es
-#hibernate.hbm2ddl.auto=update
-hibernate.show_sql=false
-hibernate.dialect=org.hibernate.dialect.H2Dialect
-hibernate.connection.username=sa
-hibernate.connection.password=
-hibernate.connection.driver_class=org.h2.Driver
-hibernate.connection.url=jdbc:h2:file:~/.pollen/pollendb
-
-#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-#hibernate.connection.username=pollen
-#hibernate.connection.password=pollen
-#hibernate.connection.driver_class=org.postgresql.Driver
-#hibernate.connection.url=jdbc:postgresql://intranet/pollen
-#hibernate.default_schema=public
-
-## Configuration de topia-migration
-topia.service.migration=org.nuiton.topia.migration.TopiaMigrationServiceImpl
-topia.service.migration.callbackhandlers=org.chorem.pollen.business.migration.PollenMigrationCallbackHandler
-topia.service.migration.mappingsdir=oldmappings
-topia.service.migration.modelnames=pollen
-
-## Initialisation de la base de donn\u00C3\u00A9es
-choiceType=DATE,IMAGE,TEXT
-pollType=RESTRICTED,FREE,GROUP
-voteCounting=NORMAL,PERCENTAGE,CONDORCET,NUMBER
-
-## Utilisateur par d\u00C3\u00A9faut
-adminLogin=admin
-adminPassword=pollen
-adminEmail=admin(a)domain.com
-
-## R\u00C3\u00A9pertoire des images transf\u00C3\u00A9r\u00C3\u00A9es
-upImgDir=.pollen/uploadedImages
-
-## Taille maximal des images transf\u00C3\u00A9r\u00C3\u00A9es (en octets)
-upload.filesize-max=1048576
-upload.requestsize-max=10485760
-
-## Configuration de l'envoi d'emails automatiques
-email_host=smtp.free.fr
-email_port=25
-email_from=bot(a)pollen.org
-
-## R\u00C3\u00A9pertoire des flux de syndication (Atom)
-feedDir=.pollen/feeds
-
-## Adresse du site (utilis\u00C3\u00A9e pour les emails de rappel)
-siteUrl=
-
-## Version de l'application
-version=${project.version}
\ No newline at end of file
1
0
Author: fdesbois
Date: 2010-02-24 17:19:22 +0100 (Wed, 24 Feb 2010)
New Revision: 2883
Added:
trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java
Removed:
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataCommentConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceComment.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceCommentImpl.java
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceCommentImplTest.java
Modified:
trunk/pollen-business/pom.xml
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/CommentDTO.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml
trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml
trunk/pollen-business/src/main/xmi/pollen.zargo
trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java
trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java
trunk/pollen-ui/src/main/webapp/poll/VoteForPoll.tml
Log:
Refactor comment managment : delete ServiceComment and DataCommentConverter -> Comments are only manipulated by the poll. The model also changed, the link between comment and pollAccount is useless, only the author name is needed (new attribute in comment).
Modified: trunk/pollen-business/pom.xml
===================================================================
--- trunk/pollen-business/pom.xml 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/pom.xml 2010-02-24 16:19:22 UTC (rev 2883)
@@ -96,6 +96,7 @@
<executions>
<execution>
<phase>generate-sources</phase>
+ <id>generate-entities</id>
<!-- By default, generation from ObjectModel -->
<configuration>
<!-- Corresponding to extracted package from zargo file -->
@@ -105,6 +106,15 @@
<templates>
org.nuiton.topia.generator.TopiaMetaTransformer
</templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <phase>generate-sources</phase>
+ <id>copy-mapping-files</id>
+ <configuration>
<!-- Config for copyVersionFiles -->
<includes>**/*.objectmodel</includes>
<copyVersionDir>${project.basedir}/src/main/resources/oldmappings/pollen</copyVersionDir>
@@ -113,7 +123,6 @@
<overwrite>true</overwrite>
</configuration>
<goals>
- <goal>smart-generate</goal>
<goal>copyVersionFiles</goal>
</goals>
</execution>
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -133,7 +133,8 @@
public static void prepareCommentConverters() {
String[] properties = new String[] {
Comment.TEXT,
- Comment.POST_DATE
+ Comment.POST_DATE,
+ Comment.AUTHOR
};
prepare(Comment.class, CommentDTO.class, properties);
@@ -269,10 +270,6 @@
public static CommentDTO convert(Comment entity, CommentDTO dto) {
BinderProvider.getBinder(Comment.class, CommentDTO.class).copy(entity, dto);
dto.setId(entity.getTopiaId());
- Poll poll = entity.getPoll();
- dto.setPollId(poll.getTopiaId());
- PollAccount account = entity.getPollAccount();
- dto.setPollAccountId(account.getTopiaId());
return dto;
}
Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataCommentConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataCommentConverter.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataCommentConverter.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -1,108 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.business.converters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.chorem.pollen.business.dto.CommentDTO;
-import org.chorem.pollen.business.persistence.Comment;
-import org.chorem.pollen.business.persistence.Poll;
-import org.chorem.pollen.business.persistence.PollAccount;
-import org.chorem.pollen.business.persistence.PollAccountDAO;
-import org.chorem.pollen.business.persistence.PollDAO;
-import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
-import org.nuiton.topia.TopiaException;
-
-/**
- * Gestion de la conversion des dtos Comment en entité et vice-versa.
- *
- * @author enema
- * @version $Id$
- */
-public class DataCommentConverter extends DataConverter {
-
- /**
- * Création d'un commentaire de sondage à partir d'un dto commentaire.
- *
- * @param commentDTO le dto choix
- * @param eComment l'entité choix
- */
- public void populateCommentEntity(CommentDTO commentDTO, Comment eComment)
- throws TopiaException {
- eComment.setText(commentDTO.getText());
- eComment.setPostDate(commentDTO.getPostDate());
-
- if (commentDTO.getPollId().length() > 0) {
- PollDAO pollDAO = PollenModelDAOHelper
- .getPollDAO(super.transaction);
- Poll pollEntity = pollDAO.findByTopiaId(commentDTO.getPollId());
- eComment.setPoll(pollEntity);
- }
- if (commentDTO.getPollAccountId().length() > 0) {
- PollAccountDAO pollAccountDAO = PollenModelDAOHelper
- .getPollAccountDAO(super.transaction);
- PollAccount pollAccountEntity = pollAccountDAO
- .findByTopiaId(commentDTO.getPollAccountId());
- eComment.setPollAccount(pollAccountEntity);
- }
- }
-
- /**
- * Créer un DTO à partir d'un objet comment.
- *
- * @param eComment l'objet comment à transformer
- * @return le commentDTO créé
- * @deprecated use {@link ConverterHelper}
- */
- @Deprecated
- public CommentDTO createCommentDTO(Comment eComment) {
- CommentDTO commentDTO = new CommentDTO();
- commentDTO.setId(eComment.getTopiaId());
- commentDTO.setText(eComment.getText());
- commentDTO.setPostDate(eComment.getPostDate());
-
- if (eComment.getPoll() != null) {
- commentDTO.setPollId(eComment.getPoll().getTopiaId());
- }
- if (eComment.getPollAccount() != null) {
- commentDTO
- .setPollAccountId(eComment.getPollAccount().getVotingId());
- }
-
- return commentDTO;
- }
-
- /**
- * Retourne une liste de dtos comment à partir d'une collection d'entités.
- *
- * @param cComments collection des entités comment
- * @return la liste des dtos comment
- * @deprecated use {@link ConverterHelper}
- */
- @Deprecated
- public List<CommentDTO> createCommentDTOs(Collection<Comment> cComments) {
- List<CommentDTO> results = new ArrayList<CommentDTO>();
- CommentDTO dto;
- for (Comment c : cComments) {
- dto = this.createCommentDTO(c);
- results.add(dto);
- }
- return results;
- }
-}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -23,13 +23,13 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.business.dto.ChoiceDTO;
+import org.chorem.pollen.business.dto.CommentDTO;
import org.chorem.pollen.business.dto.PollDTO;
import org.chorem.pollen.business.dto.PreventRuleDTO;
import org.chorem.pollen.business.persistence.Choice;
+import org.chorem.pollen.business.persistence.Comment;
import org.chorem.pollen.business.persistence.Poll;
-import org.chorem.pollen.business.persistence.PollAccount;
import org.chorem.pollen.business.persistence.PreventRule;
-import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.services.ServiceChoice;
import org.chorem.pollen.business.services.ServiceChoiceImpl;
import org.chorem.pollen.business.services.ServicePreventRule;
@@ -45,7 +45,6 @@
public class DataPollConverter extends DataConverter {
DataChoiceConverter choiceConverter = new DataChoiceConverter();
DataVoteConverter voteConverter = new DataVoteConverter();
- DataCommentConverter commentConverter = new DataCommentConverter();
DataPreventRuleConverter preventRuleConverter = new DataPreventRuleConverter();
DataVotingListConverter votingListConverter = new DataVotingListConverter();
@@ -93,10 +92,15 @@
if (ePoll.getVote().size() > 0) {
pollDTO.setVoteDTOs(voteConverter.createVoteDTOs(ePoll.getVote()));
}
- if (ePoll.getComment().size() > 0) {
- pollDTO.setCommentDTOs(commentConverter.createCommentDTOs(ePoll
- .getComment()));
+ for (Comment comment : ePoll.getComment()) {
+ CommentDTO dto =
+ ConverterHelper.convert(comment, new CommentDTO());
+ pollDTO.addComment(dto);
}
+// if (ePoll.getComment().size() > 0) {
+// pollDTO.setComments(commentConverter.createCommentDTOs(ePoll
+// .getComment()));
+// }
if (ePoll.getPreventRule().size() > 0) {
pollDTO.setPreventRuleDTOs(preventRuleConverter
.createPreventRuleDTOs(ePoll.getPreventRule()));
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -96,8 +96,7 @@
}
private static CommentDTO createPollCommentDTO(Comment comment) {
- CommentDTO commentDTO = new CommentDTO(comment.getPollAccount()
- .getVotingId(), comment.getText());
+ CommentDTO commentDTO = new CommentDTO(comment.getAuthor(), comment.getText());
return commentDTO;
}
@@ -186,7 +185,7 @@
bPollDTO.setVoteCounting(pollDTO.getVoteCounting());
for (CommentDTO comment : pollDTO.getComments()) {
- bPollDTO.getCommentDTOs().add(createPollCommentDTO(comment));
+ bPollDTO.getComments().add(createPollCommentDTO(comment));
}
for (PollChoiceDTO choice : pollDTO.getChoices()) {
bPollDTO.getChoiceDTOs().add(createPollChoiceDTO(choice));
@@ -198,12 +197,15 @@
private static org.chorem.pollen.business.dto.CommentDTO createPollCommentDTO(
CommentDTO commentDTO) {
- ServicePollAccount spa = new ServicePollAccountImpl();
- PollAccount account = spa.createPollAccount(commentDTO.getVotingID(),
- null, null);
+// ServicePollAccount spa = new ServicePollAccountImpl();
+// PollAccount account = spa.createPollAccount(commentDTO.getVotingID(),
+// null, null);
+// org.chorem.pollen.business.dto.CommentDTO bCommentDTO = new org.chorem.pollen.business.dto.CommentDTO(
+// commentDTO.getText(), null, account.getTopiaId());
- org.chorem.pollen.business.dto.CommentDTO bCommentDTO = new org.chorem.pollen.business.dto.CommentDTO(
- commentDTO.getText(), null, account.getTopiaId());
+ org.chorem.pollen.business.dto.CommentDTO bCommentDTO = new org.chorem.pollen.business.dto.CommentDTO();
+ bCommentDTO.setText(commentDTO.getText());
+ bCommentDTO.setAuthor(commentDTO.getVotingID());
return bCommentDTO;
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/CommentDTO.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/CommentDTO.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/CommentDTO.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -29,42 +29,17 @@
public class CommentDTO implements Serializable {
/** main id (topiaId) **/
- private String id = "";
+ private String id;
/** content of the comment **/
- private String text = "";
+ private String text;
/** date where the comment were created **/
- private Date postDate = null;
+ private Date postDate;
- /**
- * topiaId of the poll owner of this comment
- * FIXME-FD20100224 Is it really needed ??
- **/
- private String pollId = "";
+ /** author of the comment **/
+ private String author;
- /**
- * topiaId of the pollAccount which has created this comment
- * FIXME-FD20100224 What is needed in pollAccount ? if only votingId,
- * may be this will be refactored.
- **/
- private String pollAccountId = "";
-
- public CommentDTO() {
-
- }
-
- public CommentDTO(String id) {
- this.id = id;
- }
-
- public CommentDTO(String text, String pollId, String pollAccountId) {
- super();
- this.text = text;
- this.pollId = pollId;
- this.pollAccountId = pollAccountId;
- }
-
public String getId() {
return id;
}
@@ -89,20 +64,12 @@
this.postDate = postDate;
}
- public String getPollId() {
- return pollId;
+ public String getAuthor() {
+ return author;
}
- public void setPollId(String pollId) {
- this.pollId = pollId;
+ public void setAuthor(String author) {
+ this.author = author;
}
- public String getPollAccountId() {
- return pollAccountId;
- }
-
- public void setPollAccountId(String pollAccountId) {
- this.pollAccountId = pollAccountId;
- }
-
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/dto/PollDTO.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -19,6 +19,7 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import org.chorem.pollen.common.ChoiceType;
@@ -78,7 +79,7 @@
private String creatorEmail = "";
- private List<CommentDTO> commentDTOs = new ArrayList<CommentDTO>();
+ private List<CommentDTO> comments = new ArrayList<CommentDTO>();
private List<VotingListDTO> votingListDTOs = new ArrayList<VotingListDTO>();
@@ -310,21 +311,36 @@
this.creatorEmail = creatorEmail;
}
- public List<CommentDTO> getCommentDTOs() {
- return commentDTOs;
+ public List<CommentDTO> getComments() {
+ return comments;
}
- public void setCommentDTOs(List<CommentDTO> commentDTOs) {
- this.commentDTOs = commentDTOs;
+ public void setComments(List<CommentDTO> commentDTOs) {
+ this.comments = commentDTOs;
}
- public void addComment(CommentDTO comment) {
- if (commentDTOs == null) {
- commentDTOs = new ArrayList<CommentDTO>();
+ public boolean addComment(CommentDTO comment) {
+ if (comments == null) {
+ comments = new ArrayList<CommentDTO>();
}
- commentDTOs.add(comment);
+ return comments.add(comment);
}
+ public boolean removeComment(String commentId) {
+ if (comments == null) {
+ return false;
+ }
+ Iterator<CommentDTO> it = comments.iterator();
+ while (it.hasNext()) {
+ CommentDTO comment = it.next();
+ if (commentId.equals(comment.getId())) {
+ it.remove();
+ return true;
+ }
+ }
+ return false;
+ }
+
public List<VotingListDTO> getVotingListDTOs() {
return votingListDTOs;
}
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -190,7 +190,12 @@
"update poll as p set choicetype1 = (select t.name from choicetype t where t.topiaId = p.choicetype);",
"alter table poll drop column choicetype;",
"alter table poll rename choicetype1 to choicetype;",
- "drop table choicetype;"
+ "drop table choicetype;",
+ // Remove link between comment and pollAccount : only name
+ // is needed
+ "alter table comment add author varchar;",
+ "update comment as c set author = (select a.votingId from pollaccount a where a.topiaId = c.pollaccount);",
+ "alter table comment drop column pollaccount;"
};
} else if (dialect instanceof H2Dialect) {
sqls = new String[] {
@@ -215,7 +220,18 @@
"update poll as p set choicetype1 = (select t.name from choicetype t where t.topiaId = p.choicetype);",
"drop table choicetype;",
"alter table poll drop column choicetype;",
- "alter table poll alter column choicetype1 rename to choicetype;"
+ "alter table poll alter column choicetype1 rename to choicetype;",
+ // Remove link between comment and pollAccount : only name
+ // is needed
+ "alter table comment add author varchar;",
+ "update comment as c set author = (select a.votingId from pollaccount a where a.topiaId = c.pollaccount);",
+ "update comment set pollaccount = null;"
+ // FIXME-FD20100224
+ // org.h2.jdbc.JdbcSQLException: Column may be referenced
+ // by "PUBLIC.FK38A5EE5F65D3F731"; SQL statement:
+ // can't drop constraint because the name is generated by
+ // hibernate
+// "alter table comment drop column pollaccount;"
};
} else {
if (log.isErrorEnabled()) {
Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceComment.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceComment.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceComment.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -1,84 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.business.services;
-
-import java.util.List;
-import java.util.Map;
-
-import org.chorem.pollen.business.dto.CommentDTO;
-import org.chorem.pollen.business.persistence.Comment;
-import org.nuiton.topia.TopiaContext;
-
-/**
- * Interface de gestion des commentaires d'un sondage
- *
- * @author enema
- * @version $Id$
- */
-public interface ServiceComment {
-
- /**
- * Création d'un commentaire
- *
- * @param comment le commentaire
- * @return identifiant du commentaire créé
- */
- public String createComment(CommentDTO comment);
-
- /**
- * Création des commentaires d'un sondage
- *
- * @param comments les dtos commentaires
- * @param pollId l'identifiant du sondage
- * @param transaction la transaction du sondage
- * @return les commentaires créés
- */
- public List<Comment> createComments(List<CommentDTO> comments,
- String pollId, TopiaContext transaction);
-
- /**
- * Mise à jour d'un commentaire
- *
- * @param comment le commentaire
- * @return true si le commentaire a été mise à jours
- */
- public boolean updateComment(CommentDTO comment);
-
- /**
- * Suppression d'un commentaire
- *
- * @param commentId identifiant du commentaire
- * @return true si le commentaire a été supprimé
- */
- public boolean deleteComment(String commentId);
-
- /**
- * Récupération d'un commentaire à partir de son identifiant
- *
- * @param commentId identifiant du commentaire
- * @return le commentaire
- */
- public CommentDTO findCommentById(String commentId);
-
- /**
- * Recherche des commentaires d'un sondage à partir d'un filtre
- *
- * @param properties filtre sur les champs de la table commentaire
- * @return les commentaires
- */
- public List<CommentDTO> selectComments(Map<String, Object> properties);
-}
\ No newline at end of file
Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceCommentImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceCommentImpl.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceCommentImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -1,236 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.business.services;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.converters.DataCommentConverter;
-import org.chorem.pollen.business.dto.CommentDTO;
-import org.chorem.pollen.business.persistence.Comment;
-import org.chorem.pollen.business.persistence.CommentDAO;
-import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
-import org.chorem.pollen.business.utils.ContextUtil;
-import org.nuiton.topia.TopiaContext;
-
-/**
- * Implémentation du service de gestion des commentaires.
- *
- * @author enema
- * @author rannou
- * @version $Id$
- */
-public class ServiceCommentImpl implements ServiceComment {
- private TopiaContext rootContext = ContextUtil.getInstance().getContext();
- private CommentDAO commentDAO = null;
- private DataCommentConverter converter = new DataCommentConverter();
-
- /** log. */
- private static final Log log = LogFactory.getLog(ServiceCommentImpl.class);
-
- public ServiceCommentImpl() {
- }
-
- @Override
- public String createComment(CommentDTO comment) {
- TopiaContext transaction = null;
- String topiaId = "";
- try {
- transaction = rootContext.beginTransaction();
-
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
-
- Comment commentEntity = commentDAO.create();
- converter.setTransaction(transaction);
- converter.populateCommentEntity(comment, commentEntity);
-
- // FIXME do not call a Service from an other one
- ServicePollAccount spa = new ServicePollAccountImpl();
- commentEntity.setPollAccount(spa.createPollAccount(comment
- .getPollAccountId(), null, null));
-
- topiaId = commentEntity.getTopiaId();
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity created: " + topiaId);
- }
-
- return topiaId;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return "";
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public List<Comment> createComments(List<CommentDTO> comments,
- String pollId, TopiaContext transaction) {
- if (comments.isEmpty() || pollId.length() == 0) {
- return null;
- }
-
- List<Comment> result = null;
- try {
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
- converter.setTransaction(transaction);
-
- result = new ArrayList<Comment>();
- for (CommentDTO comment : comments) {
- Comment commentEntity = commentDAO.create();
- comment.setPollId(pollId);
- converter.populateCommentEntity(comment, commentEntity);
- result.add(commentEntity);
- }
-
- return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- }
- }
-
- @Override
- public boolean updateComment(CommentDTO comment) {
- TopiaContext transaction = null;
- try {
- transaction = rootContext.beginTransaction();
-
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
-
- Comment commentEntity = commentDAO.findByTopiaId(comment.getId());
-
- converter.setTransaction(transaction);
- converter.populateCommentEntity(comment, commentEntity);
-
- commentDAO.update(commentEntity);
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity updated: " + comment.getId());
- }
-
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public boolean deleteComment(String commentId) {
- TopiaContext transaction = null;
- try {
- transaction = rootContext.beginTransaction();
-
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
-
- Comment commentEntity = commentDAO.findByTopiaId(commentId);
-
- commentDAO.delete(commentEntity);
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity deleted: " + commentId);
- }
-
- return true;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return false;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public CommentDTO findCommentById(String commentId) {
- TopiaContext transaction = null;
- CommentDTO result = null;
- try {
- transaction = rootContext.beginTransaction();
-
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
-
- Comment commentEntity = commentDAO.findByTopiaId(commentId);
-
- if (commentEntity != null) {
- converter.setTransaction(transaction);
- result = converter.createCommentDTO(commentEntity);
- }
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entity found: "
- + ((result == null) ? "null" : result.getId()));
- }
-
- return result;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-
- @Override
- public List<CommentDTO> selectComments(Map<String, Object> properties) {
- TopiaContext transaction = null;
- List<CommentDTO> results = null;
- List<Comment> commentEntities = null;
- try {
- transaction = rootContext.beginTransaction();
-
- commentDAO = PollenModelDAOHelper.getCommentDAO(transaction);
-
- if (properties == null) {
- commentEntities = commentDAO.findAll();
- if (log.isWarnEnabled()) {
- log
- .warn("Attention : tous les commentaires ont été sélectionnés !");
- }
- } else {
- commentEntities = commentDAO.findAllByProperties(properties);
- }
- converter.setTransaction(transaction);
- results = converter.createCommentDTOs(commentEntities);
-
- transaction.commitTransaction();
-
- if (log.isDebugEnabled()) {
- log.debug("Entities found: "
- + ((results == null) ? "null" : results.size()));
- }
-
- return results;
- } catch (Exception e) {
- ContextUtil.doCatch(e, transaction);
- return null;
- } finally {
- ContextUtil.doFinally(transaction);
- }
- }
-}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePoll.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -19,6 +19,7 @@
import java.util.List;
import java.util.Map;
+import org.chorem.pollen.business.dto.CommentDTO;
import org.chorem.pollen.business.dto.PollDTO;
/**
@@ -130,4 +131,9 @@
*/
@Deprecated
public boolean addVoteToPoll(String pollId, String voteId);
+
+
+ public void createComment(PollDTO poll, CommentDTO comment);
+
+ public void deleteComment(PollDTO poll, String commentId);
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java
===================================================================
--- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -27,7 +27,6 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.business.converters.ConverterHelper;
import org.chorem.pollen.business.converters.DataPollConverter;
-import org.chorem.pollen.business.converters.DataPreventRuleConverter;
import org.chorem.pollen.business.converters.DataVotingListConverter;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.CommentDTO;
@@ -39,6 +38,7 @@
import org.chorem.pollen.business.persistence.Choice;
import org.chorem.pollen.business.persistence.ChoiceDAO;
import org.chorem.pollen.business.persistence.Comment;
+import org.chorem.pollen.business.persistence.CommentDAO;
import org.chorem.pollen.business.persistence.PersonToList;
import org.chorem.pollen.business.persistence.Poll;
import org.chorem.pollen.business.persistence.PollAccount;
@@ -79,6 +79,8 @@
ConverterHelper.prepareVotingListConverters();
ConverterHelper.preparePollAccountConverters();
ConverterHelper.preparePreventRuleConverters();
+ ConverterHelper.prepareVoteConverters();
+ ConverterHelper.prepareCommentConverters();
}
@Override
@@ -694,4 +696,68 @@
ContextUtil.doFinally(transaction);
}
}
+
+ @Override
+ public void createComment(PollDTO poll, CommentDTO comment) {
+ TopiaContext transaction = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ // Create the new comment
+ CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction);
+ Comment eComment =
+ ConverterHelper.convert(comment, dao.create());
+
+ // Get the poll entity corresponding
+ Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction).
+ findByTopiaId(poll.getId());
+
+ // Add the comment into the poll
+ ePoll.addComment(eComment);
+
+ transaction.commitTransaction();
+
+ // Update change in dtos
+ comment.setId(eComment.getTopiaId());
+ poll.addComment(comment);
+
+ } catch (Exception eee) {
+ ContextUtil.doCatch(eee, transaction,
+ _("pollen.error.servicePoll.addComment"));
+ } finally {
+ ContextUtil.doFinally(transaction);
+ }
+ }
+
+ @Override
+ public void deleteComment(PollDTO poll, String commentId) {
+ TopiaContext transaction = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ // Find the comment
+ CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction);
+ Comment eComment = dao.findByTopiaId(commentId);
+
+ // Get the poll entity corresponding
+ Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction).
+ findByTopiaId(poll.getId());
+
+ ePoll.removeComment(eComment);
+
+ // test if the comment is deleted, must be because of the composition
+ // (delete-orphan)
+
+ transaction.commitTransaction();
+
+ // Update change in dto
+ poll.removeComment(commentId);
+
+ } catch (Exception eee) {
+ ContextUtil.doCatch(eee, transaction,
+ _("pollen.error.servicePoll.addComment"));
+ } finally {
+ ContextUtil.doFinally(transaction);
+ }
+ }
}
\ No newline at end of file
Modified: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml
===================================================================
--- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml 2010-02-24 16:19:22 UTC (rev 2883)
@@ -7,7 +7,7 @@
<property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/>
<property name="text" type="text" access="field" column="text" node="text"/>
<property name="postDate" type="java.util.Date" access="field" column="postDate" node="postDate"/>
+ <property name="author" type="text" access="field" column="author" node="author"/>
<many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/>
- <many-to-one name="pollAccount" class="org.chorem.pollen.business.persistence.PollAccountImpl" column="pollAccount" node="pollAccount/@topiaId" embed-xml="false"/>
</class>
</hibernate-mapping>
Modified: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml
===================================================================
--- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml 2010-02-24 16:19:22 UTC (rev 2883)
@@ -18,10 +18,6 @@
<key column="creator"/>
<one-to-many class="org.chorem.pollen.business.persistence.PollImpl" node="topiaId" embed-xml="false"/>
</bag>
- <bag name="comment" inverse="true" lazy="true" node="comment" embed-xml="false">
- <key column="pollAccount"/>
- <one-to-many class="org.chorem.pollen.business.persistence.CommentImpl" node="topiaId" embed-xml="false"/>
- </bag>
<bag name="vote" inverse="true" lazy="true" node="vote" embed-xml="false">
<key column="pollAccount"/>
<one-to-many class="org.chorem.pollen.business.persistence.VoteImpl" node="topiaId" embed-xml="false"/>
Modified: trunk/pollen-business/src/main/xmi/pollen.zargo
===================================================================
--- trunk/pollen-business/src/main/xmi/pollen.zargo 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/main/xmi/pollen.zargo 2010-02-24 16:19:22 UTC (rev 2883)
@@ -1,99 +1,90 @@
-PKI_X<pollen.argo}Tˎ�0��W >�LFU�a�tѪUG�v9pW�1�4�����v2$�����uMe/��B1n��e�Tu'Z�a�T[�!�FB��CSW����)�����C�晼|!���ڞ�@���(<Q�0�M�V�5��
+PKO�X<pollen.argo}Tˎ�0��W >�LFU�a�tѪUG�v9pW�1�4�����v2$�����uMe/��B1n��e�Tu'Z�a�T[�!�FB��CSW����)�����C�晼|!���ڞ�@���(<Q�0�M�V�5��
�F�9F����??��@
�|�sը�D����A/4
-z��z�`�H�-.�-M�{G�S3*<"C}II�(�i��7��rQ#e3eRy�G�$�Rcޑ�R}���y�A��h�+����aT&U`����z�N��j��8���C�qw���;8b�Z7j�J!D{���y�^v`o;(��Z��+����s����vaF87�1ۜ[f3��C�Kʛ���*����eIJ(�Z���&��b�pږ�o����>쿽�E�h8����[�K`[ڹ��Av��PK-��\��筟�� �}���s�A��^z�2�u�RȞ��pF�X������|��b��wc�N���]�>�5������u/tB�L��O�������̎ۖ�<�PKptB�PKI_X<pollen_DC_Pollen.pgml�]k��6���_�۸�O��!J����3�Iv�LX,������j������m=�Eٴ�H�"ɶ-���U��S�⛿��}�W�y�|{����Q��$��r������/Ë�_��{�_������F�3~�o���㻟G�W���_!>����j��ߖ�fW��,y���L���j�t�ތ7�ɿכ��d^�W�����b�^�o���KF//������×&��_#?� ?>��/C��^{��.���r��������d����]���V�������?��������^�(��F�����������z����>�����&^����s�i}���<ǫq�k�����?�7����e�����ϫ���š8��������ϓd���^|�<���|�����wv?,Ɠ��]���<��_ƛx��������f��-�\eS��M�����^pl�?}�O7��^��s<�}ޤ�d� ��j`�qy�7�a�F���"�U���!m����K�R5��_�o�7��k���j��w���_1�� T��@1� c(�C����z����F���&�cS��H���q0`�Q��L�1�?��c���ϋd��;ߌ�������Ty3����SPq�����7���d�u��xɝb���_�����ͷ���O��7ߧߵ,�w?��g�&4�:���lǒj�!�A��!�5_��ƛ�$yYnJ�*����=���j���.��(܅9�;�<�S�9R�8Ffa��0�Қ�8
-���y��r��ܦ`��>ca6��1����7Oɗx��� MG�g1_��!����c�.���a.w�G��(#;����r��Y�Q�r�Y]������h�r�{�.Pz�����j*E�����q���xK~��^�~�g9+�nRw)pG��/Ɇ#�lZv��v�T�1����x��.?���Lf��T�ҏ��*�Q�b� 3�|�mhb�1Ĺ�S�a�5��7��Đ��\�&��lM>Q�):�:�BC51Ʉ�jbE��&�M�"Y� cpCC�&F�4��T4���4�r0�g�:�t]�}�41d[K�\��AN�����Ĥ0�12sD!��-�Q�4��4H�Q�@��=ƚ��� f��{f���s�(&SHS��B])��t�S�*�.���NW�G��!@S,B��ADe���K3����t�T�3Kw���z�5Y*bP�d�C�]ho�~��֛_8��p�z�2n:��½7E�ՠ
-)��N�O���9�{�>��6I�xY�yP�9�,����/g/�YkЦ�� �-�G$4��а A�����9>�A=�Ո����E��|��|�N�3p)��-��e[¹��%�zٖN������Y�f�/.��f`%�Q0� Sp#���d-�Y15���Q9Ð��kr��ːI �2�@��TFZޫ�a`�9�BJ����
-nm�X�a���cd܊��m˩�k9��4H�Q���rꕷg0��ƖLD������� �MDj�t8�9�c��*�K���Õo�f/���P�P I&}]?s�`Za��셌��T�+��>"�)��P��J�B�.�t�t!�����K�"�~�g����d>���#�c���q�GP�TQ�&Xz���s4@-����&@�z��t3������� ��G���&�ūZ�#-�L8)P�d���a�S�V��.�"�
-ֽ[���tz�X$_��.���P�9��S���d��)yYJ6���W��?#<X|�&x�ח��NSx?�<�o�5^�,6�0�/5T�φ-�� ����7�p�/9Y�����sV�|���+��������ϻt��|93U�~����k�ُߞH�H�������r[z^�wm�.��٨rj�b.�\�W̅a�jD������P�l��}�y�T�)U�qD���g,���,\��lK'��#�*�d�X1w��4���R1W0�j
-��X1G���0��a��)�P1'�T̑RŜH�%\u �z��'�a��Z���ح��'t�v*µU�C��99�q��"\qQ�v�Z�\i�٨(≊1���9b�jnK(�`�n�-Bў��Es
-��><����ő�ֱ��*wKg����o����fN��^5s�u�4ޤK��9�!穵�������W1�T�M^��6�cHI����nO�����n@C�`��]=�P��C5zS��B�Z����m��z����&}*�黭��Z=��+�Q���zv0�/���F��=�);�@�u=�C�Z'�:=��@��1k��1�G����V��6�p��ch_��t6���ʑ�[��z=�����nuz61:�n=�cX��*wc�{i���0�Q'��cjU�Q [ٵ��ѡIH^���\���~l̽;��8�6yYM��j��P�(>�M�B������%���3-һ�d��w�R�S���ħm�#|8��5I����?�����>�8�q�_���w��#7q�<�����2^ٛZ�%<�Ǜ�+>ǔ���qo�+��ԁ&�N����b3恌/�N�]-��&�7�8^� �A��rz�\&�r;�P�S�rvb
-Z4���1[��w�3�~� ��E�$H�#i!��0��ŏ��wu��w|H�)��^��蛳�xy�̊����������F7�W#�=�>]}����.��$�C8�Ѓ���D��ć���]z�J1��ea�@=%��қ��W�ؓ灘�N�%�Ѥ��lǓ@hcYZ�S����V�3怘��Rjb�%�:�cH5N1��e1�`�"W
-!]�mw��?�v�W#�]\����[�kmi��`Y�>.x�.��3�ͺ�����MF�a@X?*�'~�����ƞ`�iA?=Mm]Y~�R �
-yZpVO�Xҧ����h�i�[�9���la(�=��M+�03�wh��ùq+E��,�@���9}�d~�_>�v���Ԧ3�� ���8H�h/��?��f3�2���{l�2qu.��r��xW�L�;�V�:��<|b���2�A�2�MaW��<f��<��������l��&֞*�t;�ii8�f�z8�At��p������(���x��\�!w�y(�M�jrGt�tW��f����䮵�[_�`�h��һ�D���M4Bg�^[f�Nc�;�/eF��wW �9�`S��p�콛�ē~Mc����]�:�C�W��%hUuH����P���N�x�D^�6�b^�4R��$����ϩ�T��Z�I��fI� )ʻ��T�Y+PS�^�Z)�8]�)%jE3�
-27��"�H���H��Gg-�>>�L-*��ɡ$�,�:�t�Pm۪�cR �[���r���(��CQ��2�H)XS�%@��r��m�D]+Y+O�4U�4��^�㪵�n�ڎVD���H�K����TZU�����9�c�k��NGS�+ߣ-^���55{*τ:���J�����@��V!�î�5U���췊S�jk��RM��Eu{UU�źY��K�$Q9�=p��tW�쮝���A�9/�vpe�{U�_���X��BX8���
-�,�^�&�a�hf�.IH&hL�0�8Fc<C������)���J�!-ij���q�G����"dM%�M����aS�L�*��!Ȧ�2��Ɓ�q@���2��\#r��:�LB��%�t]&���t��S9�V%B�B�v!k6ڝ!ĵ%Y��ք�:�
-q�����8:�Y��A��
-ɢJ4�K�S����`�q:���'����yPa���)�q����
-���op8�{PIfQ��F(�4�s)�&z�1p��
-�������Zu�C_�m��[Ts�N�B��3.��[�jz�b]i~.\��`������;[�L��fWy�l�%�����#{i6A8(NB�����U��iڝ�#��Z�ߢ���ﵾ ��ja����~,��D��T���T�v�r�D\��L��bm�=�0���d����dϠ}�}�G��>�`z2�G��t��=2�����OF��@��N�m�G\'{A��Y�C��_�c��z�6���7c�6Ϩfi��� kq
-'su��{����*�*Q�JE�YY��j�*k{�'�wF�l@�v~'���.��j&��2GJ��3������$%]�t���BI�R�����t}X�_�Ͽ�,�� ��T� �r�6~Zr�����T�A.(�n��sn�D�;��U�CK����$�8ٺt�yQ��s���1���-������oJI��o�{�[tΒ�ΝS]�o�t4���-��.��j�����n���z=�VÚ.��t�H����x�W��g��9}�ūzĩq�`
-{��+Ǖ�la�}=�@��a���d3�RqN�5�c
-i��п,��Fhz�#������rܧx�9��O��r\Z.ǵ���X��{�������b�X�]����_f���#�i�0f�z$a�ǩ,���\�����^������\fFX:I��r�oMN���ӏ�lץt_��K�U�FP�|�R��H���q@�c��~�+��%)]
-#�>��0�u)=m��1�?�#iUK�P��p�s$µ�����.G8��Y��%mU�}�����Tt��b���vu���y}�5YCW|��s�Z�4�J_���W�k+�5t� v9������Ƌ��u�5���Xܵ��b���q!��FM7�|>�}�~~�};;��2�K R"Qڟϯ(�/'a�]D
-����}R��w
-¢�y�r�'f�[�����4�� �V���-�*( U�t�3���ezg��b
-�F{z�*�&T�T[�yȄ�.V�XE�#�qqáj
-��U�"VQ��q ol��*�N�
-Jb�J"��5��A�ҊT�]�JD7�]t�/�l1���x�J�n$�Pt;k�g�5��4
-�tT,�}��dn1��B���P��7���&�U��!��.�o�y��cbU���ʃ>*�
-��!p�z{�*���ī�9j����Zo(�XO���
-�k��S�7\5�Q�/�巧�e}�*��kC�hQ�͍�V:�����NQsRXV��$�fϢ�G�+��v�i������5s ���sT?���o��K�l+�V��q�
-\Bg;�n���7n�b���s҄i��;��=A
-��������� M�k MV��$Pc��ˁ�8�2l���'�J��v.Y��5��SF��>�?�l�>��}դo:��EΒ�f���V�u�Ή��������3���Y�g�vX��:ю�e}����8c�iG�R��M��K� �ؔ�E��?5�s���\!ua��y��qHi�knSoT���-�9m;�J>6�:E��V�u2:���kz��a��q�;L���o?EM���k��A�q�|�c�a>g�]���:���,����Dylp=
-�u�.^oFs:s���y�F��XDĿXK-:���m��S[0*����L� �;YA� ���#{=:$���q�l;��!�R�V�~�&��ځ��8�&���{��o��{����t�㈺�A�#]���k��<V��ch�=G܂0�7�\ nm�a���7�Yp+n�j�[��Seإi����g���-��8�v�sgC{g*�st�ٔ��A{ g+.��l��P�l�{*��|σ�����b��X���hV�/�&z��:���Ho�پ�)�T8��a����X|�h�z�����}�}�c�6��K^��n9;�0��R�Q{�L�e��rӷg)5,J{
-�ӹ���Q���=�Nߞ�ؐ#������
-9�Cv��ņ�^'�o�Pl�1�����NNcד�TU��1!u����0l�Α��N����4��IH!k��N9�;6���#�
-I���!��NG�H'�9�'����<����u:G:I��!
-I�ۧs��t�&���q���L9�T����,5W?�z�vN.��g�7g�j��Ar^���,L�l6���7&�MBБ���O�uH�Moϱل��� u�MX����Y���f|��Z���|�-�9r�˞Zf>���������9��l�VYE*��W����5��:��{N�����ɜ?����&s������bgoB�_�r32wбzv��]>�m&g�l�:9ېαӹ;�5�}:��M��4�v2:�:��t����������96й�ۦsΟR[��������0���ii^�Cm�?�Q �!��Qv��?]j�X�G�wQ�t��2���t�/�$�3�]��s?��_�M&�4Ȍ��ƨ�;Gj6�<����m��N���.�Z���>��٧Mk�=���б�F!����>��1l
-����y����=��P>wȬ*���9w�e;��f�y���l����,=�l�o]�s�\�V^y*��'r��ֺ���o�ǹ6��`��ȁ��9���iq���PK��A����PKI_X<pollen.todo�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��q�(��;�D�*���+G���*(�8z)%)J
-@% ���,.2���E���9e�)�E�%��� Y,B3PK4�[-m�PKI_X<pollen_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��q��ÙPK7Rp:BPKI_X<
-pollen.xmi�]m��8��>��5�U=S����KW&[ncoM�$��d��U�p������_������Ɉ��Il���G��s��ߟv�g�~�~�݉�n't�`�}�ח�ܸ����O�������'Q�]�K?���_��> ��"|�.���=p�"��n���_����7tgh�$e&��� �����LD���O�Y�s�o�0z?����
-������N����0J�{��6̰�r��W�� �e����-��M_��w��֨G~=��^XH�B�E�u�g?N_ }�?,������u.J3�x������~:��3H�w�~���o�u��Y�W�����EsLO0`��ݬ�o?�o��y�����P~�|ҋ�:a���}yd�����q����\S�sØ��|.
-�\�tۑ5� �Гux��07AxίGA�{_�+{ԧp��A�w3?������N�R����0���0LJ������c�xi�I��{O=vz��f�[$`���W�;�⦗۾�~�xo��^]�%۔<�A�DC���֒%�w����_���M� .H�����������Ǿt��-�����_7���6���
-�2����>�o�i�[|<QI�wݗ�/��p���}*J�L��Г�MiF�T�TB�ˉ��xޝ�@�X��F�i���������b�M�8�Sl�!re�7���9ݸځ8F��T*�|.��
-���nS6]�QQ�{�Zݕ��*�շ��^>�D��w~�#�t�w��3�/�J,هN�?C��NB(
-���"V����ϧ��u8�M[U�1��'M0GFNQP��d����^�0�!��!�C�L�ȷ z�5�b��@SLW:�i\v�y�g����l�F��p�?�R] �4��q��`��Ëv�cmaR}NU"�ތN*3��e�x:���M�jV����*O��S�({ٺ�
-���+�%�#�k���M٣�f����sed� ��T�nd_ޓuf�@O�S�s�D.�sՁN���z�$�&U�D�E�j�Ђ�{�b�/����c��wa�D�>�ߜ�ĺ��,N�
-n����uMhN6d�0�E��lb�g��S�d��H��3>$�'����p����pvWo�F��G�b����=5v�=B�8?Бm��� Fq| ����ܢ1}֩�;4�ι7���u�v������G��o�e0�4��lU�\����?C�[`������ �����e�B�N�VMѵu ���4�pQRy=��� ��=e���JT��A��
-���=Yj���D������@L��8SԴ�����T�J���J�橞�*6R)��(�8@�S�)���!��rO��ѕ�����&��o�o��6�e�ns_F.2���������}h�����@�5LRU��H��D��!����pK��Ko�Ë`pi���H��<r�gI�#
-��Z��\����n�4Y<�hz�k�
-J��K1H��h����Q��"�
-���\�W�B��4wy�r��i���#W��i����堮q�^z���9�R�Xtn��Ȕr���}^���&�fiz!�L^�V�f�P=���]M1ud��T1y
-"yS���|ԫtb�a�:r��\�;�u8'|ڇ��ܦ"�,(r�8i�㰃6�ViTb�}=���[("7�ʍn����ZA#��U\ML�h�o?�ޮ��+������t�W�nHI#!ȅ��i�z�ʽf:��ʍX���V;�ˋ" گ�̲2BK� O����H���Q]W�<�:t�a� _5�^�}�1��r��)F^s����
-`q�R)0�]g[���8e" �5Ndk|HwDqq`�k��l����w�eR���H���uə�R&��IRg�%�5�"x�
-ɹ���6�
-S�\//]&����5�K�KV�I�c�c����qހ����)COqT'��*�c ������s�� Q}3�=@���8����b�hN�L���SU��1�N���0�łT�8D�p(5`m��Xil�s§���KD">
- �+5�!���(ۢ-:J�[�]Ӏ�VdБn�h� ~<��x�D@,�ڃ䎤R�[����&��v�F<��r{���Ҥ(z}n�ɟ��'O�#�e��(�ŗ��G�рf,f�>��a4��5<�>RNȈ����<����6��=?�����B ����1rGr���I�1�%�
-�|��~x��YJ
-n�Zo,ȲG'/���~�IV�ϐE���+aÉ�Rr+"�`�&�@�F��ˮ-�c�>��U����H��0@{|�J
-nRh?�U1y6�<��^N���>�)��}l �ؓ��Ȥ�3��q�S|ۘ�mc��^!�Nx��<��E�vG��e��e���o5���B�/V�w�,�sTjp�4�S����ٮ�I�b蒤#k�,`��W��p$:d�]|#�wY��T8���]5�jx�gK�eT�(ls���VYȰl���r2�� O;(5`M�?{�uV�T{��>� ���I��z�.���Ն����"h�)�5�,5�<�3���A,�!����OJ
-X[;Z���T
-�d`P�g\ɪ���P�+Aqq>xr�i{�@t�lB�͖�tt(�!Ihkt,Ep��NL"��g;�4������|L��.4�$��D�d�+�!�H1��RN�� *�şr� �T��Zcd��G�o5tӅ����m�HO�ڸ���o!7�:��ۭA�
-�R֜�Tս���.g�8�'Z��H"،�}�}����6L��Tj�=@��Tj��Z�54�MN��$�`�0R���y��R��@c�c'�����4�%V�s���TjpC4p��O��,I0 �MG��V������~�����I:�G��t@,^y���� ��G��i�-����p#��b�@�7���u��ؤy��R�Jc�l��H�:d�lR��Xv��
-qA�t9N�����R�hO�H�j�]0��^\���cG����c:�0�r\:�D�*�� ��YjpC�g$����N�,]w��F>܌ϐH�#���C J
-n�.pK@�����qU
-BM:sc8���կa'� �22$�2(5�!n Z*��d~.�ۄ��]A@�*'�I��[�5Ey6�*ٮ �*T�e�)�8���z��B�I�9���\I�*�f�A�]M�l$fQj�Bp¬T�!U
-H �f"���� �o%���54E��#*)f%�[�ltBsc�+�o�<�̀H�C�"�+^��d\F1�F"�U���:��y������Cc�q����ǔ���tȐc"�<�`��l|�.�,�-�!����H�R�X��r6�Y�s=���Q�1?����6�w-dX?��X�&���RM(.�^��B�ˆ�@���BH}�V�;�X�O��ł�Ţ��v��v�)I���h�"@t�������}~+�L�8k$w9���p��O�
-������T�T��gj�6{�d�;��b�(��y6C�k��]h��8�8y��=T�^˦��`ϒGq���M��8"լ��\8a@'�c���N����s%���<�ی(s�-:�C�"F~���9�߲$��Fp{zf
-t�Hҵ3�,�ys�-`L�����IT��A��
-� H�8�����D�8�P-��Ɯs<���@R�.6�0K ����>�v�g���9�`l��%�{ju�ʝ�u<�Z��sACoR�V�^�����(h�_�`\'|J�s?a�v�#^\�͌���hӓ\�D��jC!�"�����ۛ���D��FDȔ��I�=e0��a�Ř�V�ٮ�дU4�y6(SЪ�i'�)p0�O�~����H"�d�C��UDx��Mg\���K���.{ڬ<a%No��SkȽ���d�c�1@�+� p+�ċ�ܚnG�Wٰg��F��ȕ����Ӯʂ�Mi�|�iX0E��k #/����U����'Ne��7=�A��G��VY�����mg��]s�Ӈu虊
-�<}X�dUAW6CR.@��qшkjU�@��<��v�l1��+x�<��܈��Zn�����r
-�zѫ#CιJֆdu�tmU6s
-�L�1]�q��=>��]4j��㱡����S�dž��i�*�NX/e�^(Y��kb]��8�Xk|+|��d9��ad�Ԇ�ݼ�DƦ��VoL(,��(���$�R�֚4�?�n�t�k���7�f�,؆+�G3ΔM�uT�;Z2���Nmq��W���q���ڪ�M���tK��r�l���0��7��M�!M8"����UȰ�p����U%[Ul�ɨd+�ߘ�xcb5�2���;Y�����j����s�8�X{|<'�܈+b-1�5t�4͜idCMU �!�nn���ӷy��bؓ�G��y"U��E'���5߯�(]���~D?w��P�t�iP1
-hӸ��ڒ��ZW�3���s�75�Z�o>X��-7���Hhy�W�:&���o��Q\|�r����ˏ����qD������������EX9U��^�8R�W���0�N�t�5���6��������b@~��!������<���[z~�_(��R%]L�s�xRC��"�/�6k���a��o�ʫ�p5�����m���.��̋���K��;֎c����m�nA�y1�^8�>~��1y&j��x���k��Ǜמ��K�v�2�m�p����il9 m�B�a�� ���\��F���J����I�hOK ��Y�!?(vB1R�$pKv��pi�r��YQ;OB퐒+{��H���%#�9�7�Ӡ[o���7}Q�B�^>h��%/����*���^\����g�Y˭�n���A��t���6���~1:���PG�ߙkN3t ��~tAWSL Z�RtD�R�~�Z��3�R���h��f3��6�pu�Hv:�eod��¼:m)_Z
->
-��B�賨�E����YC��V���o���ʁ�b��ڱJi��-�\;V+�
+z��z�`�H�-.�-M�{G�S3*<"C}II�(�i��7��rQ#e3eRy�G�$�Rcޑ�R}���y�A��h�+����aT&U`����z�N��j��8���C�qw���;8b�Z7j�J!D{���y�^v`o;(��Z��+����s����vaF87�1ۜ[f3��C�Kʛ���*����eIJ(�Z���&��b�pږ�o����>쿽�E�h8����[�K`[ڹ��Av��PK-��\��筟�� �}���s�A��^z�2�u�RȞ��pF�X������|��b��wc�N���]�>�5������u/tB�L��O�������̎ۖ�<�PKptB�PKO�X<pollen_DC_Pollen.pgml�]k��6���_�۸�O��!J����_��d�d��b�P�j�ﺭ�3����/%�z�E��i���E�m[r7�J����w��e>�-W�x��]9�h1�'������>\���^����~��F�S~�o�����ϣ�䇫�zr��H?�D��r��N�-^N���4����&�p�_�V�p=�{�^n���2��̮~����y�Z�o���KF//}��������DŽ�o����OO��K�q��N�u밋�F�k�D�/����1�ϣ��w���w�e�y�}�a6u�W���oI��"�7#��r|�/���5\?��f����S8_E?���2���^�ϳ��{��5Z�ɯ]�/��������f������e����P��ni�MO����}��q<���/�>��Q�v���x����ŏ�p������w��ٗp�~������e4^���<*L�U6%���!������v����d��/p��;��l��N�ɾA�j`�q9�7�a�F���"�U���!m���VK�R6!�_�o67��WL;4�j��w���_2�� ���f �h
+�1���ߓ�30dՈ3���YG���@�8<a.0��=j��8F���?y�����yO�wg�p>��Hc[��c<�Ho&߽��o*�����j={��í��E�����2_����ߝ���e�����>��}`I�q������`B3��g_`:�����qP�0�@�:y6ތ��f�.�*E8rX��{�p��_^������]�s��sص*�9�{�
+s�.�q���n!<�a.�5�q~[�x�p��ܦ`��<��l��Qc�
+���5�^�/�:��A��~�|���CѸ���
+]����\�&#���QFv.����h-�(�c�˹gu9��K���˕�)�@��3]���9�
+���S����2ܒ�'����x�YL�<������A0����%^s���Mk�d���vq�����p6�.?���L�l0�b�~�Zy��
+�0�y�A܄&F�C�{ 7��X�}�*M ��k�؊��ɚ���c�2�� &dT+��51hb��ʦ��41B�qx�80�Ak��!A+�|&������h���!ӚX�<o��*̵�@G�&&�9��^�#B4hs������A��ݧ�hkbȴ&�2��3�W��E1�Z�@�
+���N�9UL�t�|4u��=��T1�"�(�C��2
+�U���F�ALD�C��9�u�k�Z}����1m`�ڻE�i�\��h���V��9�qC�=�{6E�ՠ
+)�ЖV��G;���3��&|�mϣpQ��W�9�,�,|�Z�b� �
+,ܯA��dHh�`��@BBÀ�^B#����u�7#��R`���0{��[����|G�`K�m �j�ޖ8�e[:y:Kgd4��X�:���lF�DC�L��d����g�aȹ������h����\�H<1����2��ު6��Hc�O�>�9�U��-=K91�q�4��#-
+ړSq�r�i�C���r��[�3�lcK&w�p�������&9:��ױ�����h�p�[*�X�^����$���_9gЭ0�R�BD�E�����iNy�����vAJ�C��To�o
+Ⱥx�PJ�����s<G���1O�S�8�FP�Œ�"�k�k �P�PG�I��j��t3���=D�%�cD~y�h��XG�hYxP 8�C
+4|<�W�D3���V��]`E:�{vj�7���|m�(:�C)gp]a���K�Y}����W�,�Fx��2�M�^_2�:L=��u�ȿ��h���a^��dP>��iu�1���ņ��W/9Y����Lq笼��U�8="�W졦�?>�MR��T_TA��NC�2�"�(����6�Q���#��a���\�wm�.�̙�rj�b.�\�W����fDi�����ڊ�{diR���m)�X�3�((���+戱�9рV�ݣ?��"U��@4��g�+�T1���0����@7T̥�WT̑RŜH�%�:�t�b�s�a�٪r�?1[7�F8��]�#ت�V�����!ҋp�Eq�E<�kUs�YfCQ�c����9b�jnK(|o�n�.Bў��Es���><����ő�ֱ�9��%����ʷT���fN��^�C%W�^ho�%RŜ��s����-7��>�_ӱ'�n���H�!%=���==&w3CzK6�!'e��^=�P�m�C+�&i{�"�|_-����jV�)�I�T,ӷ[���z�!�W<�Ck��`�e�A�i���
+=�I;�@�u=�c�\ŋ:=��@��1k��1�G����V��p��ch_��d6T�b��m=��@�a�.�~�[�ÀM��[O���èr7������1��Ck7�zL�J@+T��Vv��yth�W�x<KA�n?6��f�t�b�_o���c�\�?T<
+��q]��=����~�'Q�L����d��p����7�$��i��_���ye{i����ȿ�#z��8��߬���/��M<]���.�����Vz������c�_������Ba
+�@\+P�y3_�^y �K�W<A��Mp�ײ�B�zXLn�x]�`�j|
+�^�VLA����>�`㸻��~&ӯ�D�9�(�au$,$�ң�3��?��n������<3E��+3����;^^0�⪠��|EP��r�o���ݞU���Y{�;�_^�џ8�1��������.�V%���ʲ�Z���S���V�)[���@�`'˒�T���l˓@hcYZ�S����V�3怘��Rhb�%�:�cH5N1��e1�`�"W!]�mw�Ue��.�oF.ƻ�F+�n=���E3��e)"���Uq���lֵ���n2T�1`�(ݢ��a��W&{���y��4�ue��K�+�i�Y=�cI��%����ʷT�|зR�����\4�,���
+ܡ���ƭк���[Z�������ɶ��E�6�ɄM����A�D{���ߌf3�2���{L�2�:�ɪr��xW�L�;b���u,�y��J��e2��e2���P��<���<��0������l�}E�=U��v�� �p���� L�t��c?����Z�˜����̥rw��B���Q�;RE�Jw?�aZ��[K�Z���Ɖ�o-�;Kĭ��D÷��e���Q���!
+p������5�1ը�[���d�>Oj��4��yG�����;�]� ���UU��d�p���E���҉���fX�I�F�{1���i���<-(��%�`�k�r�#��B�F{���X��d@�J�J���@*Q+��h5��3�R��4��Z�}|d�ZP*SC��Y�:�t�Pm۪�S\ 0[���r���(��EQ��2�@*X��%@�Y��y{�4A�J��� L����Z���ѮZ�V��hE���t8�nM�P5�����:V��t�d:�:\����@*^�#�#�L��a����lBMj�F@��a�Ú��0=�Mq�[mMUP��2��n���p`c�X7��t)��$*������*~�ݵ��*}9���\���*�_��6RgW����Λ��ҳA����o��)�$>����ԣ�8!S����k�H�PI%����θ�#;��
+��"!B�TBфjۙ6�˄ ��/�h
+�1�!��@�8�0�����0��B&��uB!��� 3R0�L��Z�J!� ���3�qU
+�B\[�E�jM���Ω���fQ�a:�E!�Tܢ-rL�j�[�s��ǹ��8Q%�<Z���:�*=�QnpUz����5��L2��V�5�L�=�)Фh3��{�k�Z�#�BM��2��p�r
+u�Y?���z�r�J� �E!6��z�Љ�8�w�h�vA����f�����*ak�AӰ��ٕ^'���a�u#đmK� ��' o|
+��
+�����{P�غ�E�o�l|�+��=g2��I0��a۳���7])vE�b.�\/�Ge9Ϥ����\UzD�u[��G_�2����,UppdŅ�+8X��"1���ض��۞�$r�S��*d
+��;����E��f�!�y@�����PH'8ʡ���Ώ�����ͼ��/�l�3 r�� gnW�� �Z���O!�q���Y3��sOE�v2��K�8��t�~Ɠ�x&�Ɛ���ئ�?��I�N��T�
+�[p�M�8z�o�t4���-��N"�;%{Nq�j�z�jv5�V̈́'��"���U����_���s���m-��ՈS`��
+?)�KC�&n�n�xm�^�E;�g_M�a�Y56��N��>��"�4{i��W�v�g�},�x������
+R.�0���X@�O�ѭ����E�D,خ`N3Y����$x٘/������i�!�0[�tZ�������\�%KfFXh3z9���E����&�v)�JRz��X�j:�SJ����]O��z8o��R:-I�B�7q��Hץ�d�����@<D�j�i�#��"u,�p��zT�����ыpT����z�k::��2���G<x�C�}���ѷ�����D
+]�5���k�Е��4�5G�k+5t� v (�}lv�s���|��n�F@K���]�A�v�9.�g�[��~l����n��vvRY���^�I����5������M�>Y3������q�8�X���n��m�3�-��f�]M�n��k�P�JB-������L�̒�g�tÌ U���}2ᶋUL��p).��˦`�X�$��R$�Hxc��� V��W�U�$V �$��aˡ�bU�H�̊Tit#�E�����[k�g& Ubt#�x���Y>Yׄ*�8Q>����e��#�}����������U��鲿�b��o�6��Yܰ��UJC�.�JC�M�Sq�=`�]UZ�Q�jR
+5��`���m5�k�T�)��j���(�x��%ެl9��/��&��E�<��;��.����5'Y�e��J�k���#�{x�6�i�t�Q��z�x�6�9���i�7�eų��M+_����*���mZ7�z����[L�Y�#~��^��6|�/��&b�5� M�Hh�4`����9=�o������&���\2�á��j�&��}88��}����I.�t��%}ͺ9���t�
+}k9����g�پ�L��0��q��[���1���8c�i��R��M��K� �X�����?4�s����\��
+�9'�'�)
+�d-�ma℞b-�7�l��9U"���e��y}�):w�J��ѹ�kt�!��2�y:t�Ι�_~����1>�shG���y>t����tS��v6w���$^J����S�Q\O�"���b������qތ�c�I��Zj��̼os������r��XA��
+���U�
+rK[��l�G�`=�϶��,�m�N��oBk|������Ch�� aоh�ư����IG9����8��}�F+�c�v>pͶ�H�������-���2�К����n�
+Rm�a���Tvi��P��@�_�E{���l������<e�;�ԠCt6h��l�����c{�Φ��t6�=)����=>�y��u� �zE�)Фhh��(|���}/]�i5�Ю�����o��[�p��[�6�~$q=l�4���7|U�����@�Տ���]&�mEg�Mߞ�����{��a`�����9�
+9��Nߞ�ؐc>d���7]l���ur��ņ�!9�����4F�'���*�T܇�DŽ�]��;�}����������&t2�)d
+��)�x�ƊÕt)w7�s�{t�^��s��tN�'����<�3��q:�;I��!
+ ���s��t�$�����ιL:�4�q��,5W?�z�vN�y�>��9�VD���^� =�7��l��5����l�뀎�&�P�@�ox{��&���� ��M�j�p�,^�r=>w�i�f��m>���at�!��=fs��l�l�����J�H t�j�\���9�s2W�7O��@��o���?'�s�bg��C�_�r=2wбzf��]>�m&g+ٜ:9ېι=�swkf�t��7�������9w�s
+�7N��~ӹ��|�y:�t�������*��TqJ��]�?J���5<Զ�s'��Aj<�w�������K��+�h�#
+�X���!�*�N��X'��>�g��Y繟I�/ �:@d�Y'�6��HͲ��?�����v�u��r�v���.mZkw�mJB�"�(d�5L<2yď!l
+����y��0���=��P>wȬJ���9{�e;����y���l����=�L�o\ȳ�\�V^zJ��'r���ֺ���o���6��`HI���k�k�2����PK�ʜ5RŋPKO�X<pollen.todo�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��q�(��;�D�*���+G���*(�8z)%)J
+@% ���,.2���E���9e�)�E�%��� Y,B3PK4�[-m�PKO�X<pollen_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��q��ÙPK7Rp:BPKO�X<
+pollen.xmi�]k��8��>��5�U=S����ҕɖ��[S5I�&��~ κ��'��p�6F`��"1�;����+��{ӫw�����=�(��`���N\w38���샿�l�����z���Ͼ?�����]��.����G�Im��v���'��w��O����}v߿�;�@{&)3Q{P�Y���_f�
+w��Ͳ�[|���������n��`��$��u�~߇Q���a��C���G���,C���Oo9�o�����/�F=������B2�/گ�>�q��3�a�>��}.�sQ� �C�������/�A����G~ۯ��ʿZ�@��ǯ/�cz��C�f���9}۟�;淟Ņ�����^DXH� �$}��#ӦN��ݬg�2��\T�sQ�溤ێ��Q�����!p~=
+��2\٣>��������=t|�w�ʾ��.��7�aR����^��K;N"���{�ӫ�w0��"�-t���7������{�f��-٦��$��@���,A�;=}V����n��pA�@Ņ���릇$?��^o���~�������x�Y�ݗ�T��T�?��}�N����J¿��~ѯ���_�=�SQJge��8��$خ�bO�M�� D��((���Y�՜oa��|L/�^`/�٤��9���1^"WF{�8o-�Ӎ��c�8O�"��`� ���6e�u5��]�ٯ�Y}���SN�m�'?�O�{�;8����Ē}�$�3DK�$�� K{+�au����|��<a^��ܴU5S�x��qd�dU(O��q_�S�h�A��:��$�|���'�\��(f>
+4�t��a��ew��x�_����i�� ��3� ��I�����>��`�>&�&��T%r����2��Qv���.��)���fŠ9����4���?������������\�:��v�ߩޔ=�nv��?WF� �=�KU�F��=Yg��?58gM�r9W��j�I�jQ�M�^$��
+-���!�����{�?6��N����iK�+�i��4p���h@L��]״��d�A6C�\�h��&x;?5M&� ��t98��Cqqx<@ǯ��gw�f1n�
+{�-��_Qx�Sc7�#$�����s��ֺN(�`����?N��-�g���C�{��o^n��A�+~o��6[�OS��V�ȅы�>�3tQ���nOO a)m\�kY�,���l�][b>P<MS%eQ����������Q�Y̮Du�DI�`.ݓ�F
+-n$b��4��8�P-b����Uu|���U�5%U�4O�dU��J���F��1���B�LA���
+��{���X֟,4�C��@7���/�t��2r�).n����0��Ck�����a��
+�0D:�%��i�'�[��]z��^�K��fD�%�#�8�H��P������gtWv3����Dӓ\�TP�]b�Ar��E���?5�"w W ��b�b��b���������S�\�*��:�+���Ʃwx���TK�sѹɋ#S�}^:�y�th����(3yѡ��%�z�1�]M1udT1y
+"y��AP�҉�����%�s
+�����i�~r���"���1�\�A��Nr�HtZ}�QɅ�.n���l����+7�}��rgk��WVq51�����0�{�j��7#�.nF2�R\\I�!%�t� f��u�53(���\;+7b5�vV�/�$i�F3��-'<|c�UF�V��H��r�1֡�����8����9$��GH1�#�7Wl�ÔJ���:Ŧj┉�D��8� [�C�#���@X3@F�v+H>7] ��[I1��.9P�}�!��YcI~͵^a�Cr�����eÔ$��K����)D��f��R�o��qcl�2_;���v�3#e�)�����]�ud�bV�?���7HTnjl�D,.�oa�!v��_�'Q�^w�[U��1�N���0�łT�8D�p(5`m��Xil��O�M��D:�60L�|X��
+ٍ�E�m�QRܲd��"��t;e#a��)<��%b����=H�H*5��ZH}!V��A��b�t6��I�RjH����]��'Z�<)ψ����_.�IF2�����T4������D�H9 3����wv���K��(N>N:�H������ɥS'���,�l8�˔��sU�����69�u`�@�=:y��'?�3�LF���|�,zE�] N�z�[��5AZ6\]vm���Y��@�=�-�pD�����Pjp��@�р���w��s���$��9���G�Ğ|�d&��'�Ӟ�ac���x��B����k��T(w���ʗ J�����7:2>?�_��G�,9*5�IЀ)]�G�l��$T1tIґ�p
+��+
+{�8��.>��»,�*���i���Y5<ͳ%[�2j�(l�dGQ���a?�N�0�:��"�|�A�kz@���[�j�j\��g$v|;�ޣ�a��@����'��a
+j�9K�%O⌯��fuȪ'� y�R�֎d��(�&�u�,�W�*�e-�JP\�����m�^9(��q�%"�mH��Kܧx�7&�u���pA���TjpC>&�Cs�@n�q2�ꐉI�yrR���i����O9��T����1�r�#炷� ��B��N�[��
+� e�'Im?=��[ȍ|��y�vk�<Uj�����W�����G{�5�D��f4Ɲ�i��0%:R���y��Ԁ���kh���� I��� `�����ɥS'���K.����g���Xi��d�=L�7D��F�x��f�H���h:����]�p��o��@���xt
+APN��G�7���>*.No��5�����X;g">���T�CV�&��+d�p6P�d���\@"�!e�b�ŲK
+n�J����p�6��GK�=]. ��Ew�|�����;;�ȇ�X�م���I$:V���y}�R�J<#���lL pr`��]62��f|�D�)��=@�JPjpC\p�[������ǎ�zPj�37���_�&p�@,�!3�A�,�R�����H��2�M�K��V���$�0 �q˺�� �ͬJ�kB�E�
+��F�u�7�g��^ꄩ�P�C�!DN�7D%W��
+��p�tWS4�Y�CN��J<�J)!܌�@$��# �y(����� ��)�PQI1+�ƨغg�747V������Û��;d�+"���U��M�`�m$^E�X�#�@{��J
+nhC�phL;ζ&�1媸D22� �7.5�:4&�8`Ku�dc"�<ӸԀ5����eV������(�?����BQ��QG��ď�$��Iy��B� ����^�sِ�R�^@( ���*vg���)�;�XкX}>��.��.7%��r�
+AS���nt9&�;A��ʂA,�1����]���-��t�/i��"�3U��Z��^�8�v�T����#��Pjp�qH�0][���噞c��ާ��C�-��K$'��=���taD.�8t�����X�w}����m<KB��b)Vɪ݈����s�A��u��z�:p;�Kc�gΑ$F�G��o3�̭����\��6��������6���3�0h��Fr���e9���3����H�9̞D��DI�`�������?jM$��b8�h,9��0�H���f ���cT��G�n��pF%s�%1���rO��R����GR
+�v*h�MJ��jѫ#wru��5
+��.� ��a�'l�nq+���oz�k����ڐu�HA�ȵ�����&�m#Ѥ��r�W�ў2�QҰ�b�C�Z�lWIl�*�<�)h�δ���7A�@��þ7"� Ϗ>�Q����s���W�d�0ȴYy�J��X�-�V��贼�ēs�����"p+�ċ�ܚnG��[��a��F��ȕ����Ӯʂ�Mi�|���7��@f^p��k����O��HMz��Z�o`o\���r�0��ѫ#�����mv�<K��;.5p��`:I�Rѩǃ�T�4U�qCX/��{��f�Qղ�$��W�·�7�&��sFV��6*z�z����k��m_��h��HMz&9��pgk�xD�;���[�Y`�R\܌C�q���L����S[~���Gd�����^TO瘢B/�5UOV���zH�%؎j�b6Q�l�H7��M�!M8"���f�UȰ�y����U%[Ul�ɨd+d؊&:L��Q����7{'K��^���o�<G��������ˍ�"�RS]C�L�̙F6�T���B�悗�_���%C$�aO��G�����[ר�X�xe�@�%�I$k�¯���b<�,cTLCZ�4�.��d���+�W�ڿye/Cvq]�k��h>X��-7��z�$4�<J��b��HG����Q\<B9AU����T]��������r@��}ǻ>��{sV�m��1m;�U(p)��ӻ��vM��x��
+bx<�!�������O0�_�ͣ.��������]N(U�E��<7�'54ہ*R��j�F��Fq�����z W��m����,��2kͼ����1!�dm�c�8��[�߶�ĝ����۟�b�����g0�l�F}}�ym��]ڵ�T�l#���u�b�i��x�A�G��Bv�)b}�V"���|N2E{Zi<b�
+�d��X��� �[����H;���Ί�yj��\�i"=$�nB����~�oD�26��`]o���e�P�|�B �ۼ�>K�����Vzq1������f-�N��Cv�ӑ����';��nZ��G��,�3לf�P=��<����:�ܥ���F�����g�� e'�.��ft�m��l��0tV����yu�R*�>�|h=���gQ!>�5?XC��V���o���ʁ�b��ڱJi��-�\;V+�
�}
-�˪f�`@|T�>kͨ���F_9wat'r�
-�Ɍ�k�
-���^*֎�2��ۈ4�oê��ه�BcU|}�n�@��VۆU�mC�A[m��z���@���/�_~V�~��,�Q��%R1�Df��(S!?����i0�,�Q��iP^,�Q��% T�oê�h�Z�>SK�/0
-�i�ȩX<��.�ʏ�hK���R*?�
+�˪f�`@|T�>kͨ�ζ5�(��ޅѝ,8�*�'3�v�u*�g�:{�X;j���o#� �
+�z�g>
+�U����G�vY1 >*��
+�Vۆ
+�y���pY���G��;�_��9����x��,�Q��%R1�Df��(S!?����i0�,�Q��iP^,�Q��% T�oê�h�Z�>SK�/1
+�؉i�ȩX<��.�ʏ�lK���R*?�
�YA�~�/
-[F�r��(�I���[F�[
-~�۔V���PX��(4�M-�۔N�T,�*�;��F�欱�vѨ�>�U��A�~�e0�_nTL^���
-��y�kE�����0Y5zM*&��h����b�.Y��K�L�%z�=OL��.���(]J�G��e�h���H�v�#:Ğ~�{���xd��XQ�_��_Q��M�,*�ʭ�5p(���^yߚ
-OR�G�����x$�;�� ��H���P#*UE�fn��>�
-\���%�����b��
-�[�}%�.l
-
-in(��[�m|�mFEGAQ��,!�E�K�.JB-pa�h����0Lؽw�b`��:5%1�iMl�>�xp1P� [�ck%۸���I�ŀ��L��(X&T6� ��eB�d��.��ieyr����+��ࠠ�o���XT���b
-��+w
-�J��UY����,�((�Z�O��/%)l�z�g8(�
-���_
-���p��Ƀ�b����y�uMhN
-ٓ
-�P<}����K��#��$��ԒI~d��r�$�?�fd�KF#����I � �����k
-Y�Rk#���+\�`yfJ���N�r$�Ϟ�ѩ/�����2:�����؞7�]z=H~�2�$���{ ���zu2S��� ���� k#�f5���SS�Md#�2��Q62�i#�y>B�@�UStm�f��4�pQ�� wohb�(߳L z��B�A�4O�dU�Q�z���I�DF.�B������F{̝��H�w{���>��p� �A�������PK�\��tPKI_X<ptB�pollen.argoPKI_X<��A����Gpollen_DC_Pollen.pgmlPKI_X<4�[-m�(pollen.todoPKI_X<7Rp:B�pollen_profile.profilePKI_X<�\��t
-Lpollen.xmiPK1D5
\ No newline at end of file
+!#K�N��ϤB|����B��@��6����0=V�.
+
+nSK��6�S|*K��h��ҨМ5V�.ܧ��v1h��[��rˠb��n�0�p��V������ɪ�kR1yMF�]�%�w���]Ґfj-�+���T�N�Q�rY^�ҥT|T�\��f�Y�T���)��s�#V�#�VNJ
+o��Uo����w��ˢ"Tn]��C���P\,��ˀ��T�o�m�$�{�.i��ȌG��Ӽ"�4�ˀQ�*J�A�U���*p1PbS����×���7<n��>�9\�hs��)(����BnU��E�E�jv �.�^���b�$�v��(I����Kr7.6��SS����F�#ă����PL�j�m\��qa�����]m�z�Q�L�l.*˄F�2�]�����((q`W���AA��x�8(����_�.��;��)�*�Weu����࣠Dk�?���d�x�����m=�AAU<����pPP�G���L#��~��ˮk�@sRȞl��胼�.�\��y�%�ܥ�L��#��$��X�����
+�b��F��#g%�@�'A���S���ԥ�F��cW�$�<�̔؛����H~�=-�S_�ﳧet�#���=o$���z����eI0w��������L�2���G�~ ������Qϧ�@��Fe��ld2�F.�|��������:3̚�i���DA����0�Q�g;�t虊
+�Q�<ՓU�Fm��NO�$0ry"��LO�85�c���E"�ۛ������� ��?�}���PK��t���PKO�X<ptB�pollen.argoPKO�X<�ʜ5RŋGpollen_DC_Pollen.pgmlPKO�X<4�[-m��pollen.todoPKO�X<7Rp:B�pollen_profile.profilePKO�X<��t���
+pollen.xmiPK1�4
\ No newline at end of file
Added: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java (rev 0)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -0,0 +1,41 @@
+package org.chorem.pollen.business;
+
+import org.chorem.pollen.business.utils.ContextUtil;
+import org.nuiton.topia.TopiaContext;
+
+/**
+ * TestData
+ *
+ * Created: 24 févr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public abstract class TestData {
+
+ protected TopiaContext transaction;
+
+ public void execute() throws Exception {
+ transaction = null;
+ try {
+ transaction = ContextUtil.getInstance().getContext().beginTransaction();
+
+ test();
+
+ } catch (Exception eee) {
+ if (transaction != null) {
+ transaction.rollbackTransaction();
+ }
+ throw eee;
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+ }
+
+ protected abstract void test() throws Exception;
+}
Property changes on: trunk/pollen-business/src/test/java/org/chorem/pollen/business/TestData.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Deleted: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceCommentImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceCommentImplTest.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServiceCommentImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -1,152 +0,0 @@
-/* *##% Pollen
- * Copyright (C) 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
-package org.chorem.pollen.business.services;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.dto.CommentDTO;
-import org.chorem.pollen.business.services.ServiceCommentImpl;
-import org.chorem.pollen.business.utils.ContextUtil;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Tests du service de gestion de commentaires.
- *
- * @author enema
- * @version $Id$
- */
-public class ServiceCommentImplTest {
- private ServiceCommentImpl instance;
-
- /** log. */
- private static final Log log = LogFactory
- .getLog(ServiceCommentImplTest.class);
-
- public ServiceCommentImplTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- ContextUtil.getInstance().buildContext();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- ContextUtil.getInstance().getContext().clear(false);
- }
-
- @Before
- public void setUp() {
- instance = new ServiceCommentImpl();
- }
-
- @After
- public void tearDown() {
- }
-
- /**
- * Test of createComment method, of class ServiceCommentImpl.
- */
- @Test
- public void testCreateComment() {
- CommentDTO comment = new CommentDTO();
- comment.setText("Test_CreateComment");
- comment.setPostDate(new Date());
- String result = instance.createComment(comment);
- assertTrue(result.length() > 0);
- }
-
- /**
- * Test of createComments method, of class ServiceCommentImpl.
- */
- @Test
- public void testCreateComments() {
- /* Couvert par le test unitaire sur Poll
- List<CommentDTO> comments = null;
- String pollId = "";
- TopiaContext trans = null;
- ServiceCommentImpl instance = new ServiceCommentImpl();
- boolean expResult = false;
- boolean result = instance.createComments(comments, pollId, trans);
- assertEquals(expResult, result);
- */
- }
-
- /**
- * Test of updateComment method, of class ServiceCommentImpl.
- */
- @Test
- public void testUpdateComment() {
- CommentDTO dto = new CommentDTO();
- dto.setText("test_UpdateComment");
- String commentId = instance.createComment(dto);
- dto.setId(commentId);
- dto.setText("update text");
- boolean result = instance.updateComment(dto);
- if (log.isDebugEnabled()) {
- log.debug("result: " + result);
- }
- assertTrue(result);
- }
-
- /**
- * Test of deleteComment method, of class ServiceCommentImpl.
- */
- @Test
- public void testDeleteComment() {
- CommentDTO dto = new CommentDTO();
- dto.setText("Test_DeleteComment");
- String commentId = instance.createComment(dto);
- boolean result = instance.deleteComment(commentId);
- assertTrue(result);
- }
-
- /**
- * Test of findCommentById method, of class ServiceCommentImpl.
- */
- @Test
- public void testFindCommentById() {
- CommentDTO dto = new CommentDTO();
- dto.setText("test findCommentById");
- String commentId = instance.createComment(dto);
- CommentDTO result = instance.findCommentById(commentId);
- String resultId = result.getId();
- assertEquals(commentId, resultId);
- }
-
- /**
- * Test of selectComments method, of class ServiceCommentImpl.
- */
- @Test
- public void testSelectComments() {
- CommentDTO dto = new CommentDTO();
- dto.setText("Test_selectComments");
- String choiceId = instance.createComment(dto);
- List<CommentDTO> result = instance.selectComments(null);
- assertTrue(result.size() > 1);
- }
-}
\ No newline at end of file
Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java
===================================================================
--- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -13,10 +13,10 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/
-
package org.chorem.pollen.business.services;
import java.util.ArrayList;
+import org.chorem.pollen.business.dto.CommentDTO;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -25,11 +25,14 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.TestData;
import org.chorem.pollen.business.dto.ChoiceDTO;
import org.chorem.pollen.business.dto.PollAccountDTO;
import org.chorem.pollen.business.dto.PollDTO;
import org.chorem.pollen.business.dto.UserDTO;
import org.chorem.pollen.business.dto.VoteDTO;
+import org.chorem.pollen.business.persistence.Comment;
+import org.chorem.pollen.business.persistence.CommentDAO;
import org.chorem.pollen.business.persistence.Poll;
import org.chorem.pollen.business.persistence.PollenModelDAOHelper;
import org.chorem.pollen.business.utils.ContextUtil;
@@ -43,7 +46,6 @@
import org.junit.BeforeClass;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
/**
* Tests du service de gestion des sondages.
@@ -52,8 +54,8 @@
* @version $Id$
*/
public class ServicePollImplTest {
+
private static ServicePollImpl instance;
-
/** log. */
private static final Log log = LogFactory.getLog(ServicePollImplTest.class);
@@ -85,7 +87,7 @@
*/
@Test
public void testCreatePoll() throws Exception {
- log.info("### START ###");
+ log.info("## START ##");
PollDTO dto = new PollDTO();
dto.setBeginChoiceDate(new Date());
dto.setBeginDate(new Date());
@@ -125,8 +127,7 @@
try {
transaction = ContextUtil.getInstance().getContext().beginTransaction();
- Poll entity = PollenModelDAOHelper.
- getPollDAO(transaction).findByTopiaId(result);
+ Poll entity = PollenModelDAOHelper.getPollDAO(transaction).findByTopiaId(result);
Assert.assertNotNull(entity);
Assert.assertEquals(3, entity.getChoice().size());
@@ -151,7 +152,7 @@
*/
@Test
public void testUpdatePoll() {
- log.info("### START ###");
+ log.info("## START ##");
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_updatePoll");
@@ -173,7 +174,7 @@
*/
@Test
public void testDeletePoll() {
- log.info("### START ###");
+ log.info("## START ##");
PollDTO dto = new PollDTO();
dto.setDescription("Test_deletePoll");
dto.setCreatorId("erwan");
@@ -191,7 +192,7 @@
*/
@Test
public void testFindPollById() {
- log.info("### START ###");
+ log.info("## START ##");
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollById");
@@ -210,7 +211,7 @@
*/
@Test
public void testFindPollByPollId() {
- log.info("### START ###");
+ log.info("## START ##");
String pollId = "";
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollByPollId");
@@ -233,7 +234,7 @@
*/
@Test
public void testFindPollsByName() {
- log.info("### START ###");
+ log.info("## START ##");
PollDTO dto = new PollDTO();
dto.setDescription("Test_findPollsByName");
dto.setCreatorId("erwan");
@@ -252,8 +253,7 @@
*/
@Test
public void testFindPollsByUser() {
- log.info("### START ###");
-
+ log.info("## START ##");
// création de l'utilisateur
UserDTO user = new UserDTO();
user.setLogin("login_findPollsByUser");
@@ -280,8 +280,7 @@
*/
@Test
public void testFindParticipatedPolls() {
- log.info("### START ###");
-
+ log.info("## START ##");
// création de l'utilisateur
UserDTO user = new UserDTO();
user.setLogin("login_findParticipatedPolls");
@@ -318,7 +317,7 @@
*/
@Test
public void testFindRunningPolls() {
- log.info("### START ###");
+ log.info("## START ##");
Date now = new Date();
// sondage en cours sans date de fin
@@ -367,7 +366,7 @@
*/
@Test
public void testSelectPolls() {
- log.info("### START ###");
+ log.info("## START ##");
PollDTO dto = new PollDTO();
dto.setDescription("test selectPolls");
dto.setTitle("selectPolls");
@@ -379,4 +378,106 @@
List<PollDTO> result = instance.selectPolls(null);
assertTrue(result.size() > 0);
}
-}
\ No newline at end of file
+
+ /**
+ * Test of findInvitedPolls method, of class ServicePollImpl.
+ */
+ //@Test
+ public void testFindInvitedPolls() {
+ System.out.println("findInvitedPolls");
+ }
+
+ /**
+ * Test of addVoteToPoll method, of class ServicePollImpl.
+ */
+ //@Test
+ public void testAddVoteToPoll() {
+ System.out.println("addVoteToPoll");
+ }
+
+ /**
+ * Test of createComment method, of class ServicePollImpl.
+ */
+ @Test
+ public void testCreateComment() throws Exception {
+ log.info("## START ##");
+
+ /** PREPARE DATA **/
+ PollDTO poll = new PollDTO();
+ poll.setTitle("createComment");
+ poll.setPollType(PollType.FREE);
+ poll.setChoiceType(ChoiceType.TEXT);
+ poll.setVoteCounting(VoteCountingType.NORMAL);
+ final String id = instance.createPoll(poll);
+ poll.setId(id);
+
+ /** EXEC METHOD **/
+ final CommentDTO comment = new CommentDTO();
+ comment.setAuthor("Jack Pot");
+ comment.setText("Un petit commentaire");
+ comment.setPostDate(new Date());
+
+ instance.createComment(poll, comment);
+
+ Assert.assertEquals(1, poll.getComments().size());
+ Assert.assertNotNull(comment.getId());
+
+ // Test if the comment entity exist in database
+ TestData test = new TestData() {
+
+ @Override
+ protected void test() throws Exception {
+ CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction);
+ Comment result = dao.findByTopiaId(comment.getId());
+ Assert.assertNotNull(result);
+ Assert.assertNotNull(result.getPoll());
+ Assert.assertEquals(id, result.getPoll().getTopiaId());
+ }
+ };
+
+ test.execute();
+
+ }
+
+ /**
+ * Test of deleteComment method, of class ServicePollImpl.
+ */
+ @Test
+ public void testDeleteComment() throws Exception {
+ log.info("## START ##");
+
+ /** PREPARE DATA **/
+ PollDTO poll = new PollDTO();
+ poll.setTitle("deleteComment");
+ poll.setPollType(PollType.FREE);
+ poll.setChoiceType(ChoiceType.TEXT);
+ poll.setVoteCounting(VoteCountingType.NORMAL);
+ String id = instance.createPoll(poll);
+ poll.setId(id);
+
+ final CommentDTO comment = new CommentDTO();
+ comment.setAuthor("Jack Pot");
+ comment.setText("Un petit commentaire");
+ comment.setPostDate(new Date());
+ instance.createComment(poll, comment);
+
+ /** EXEC METHOD **/
+
+ instance.deleteComment(poll, comment.getId());
+
+ Assert.assertEquals(0, poll.getComments().size());
+
+ // Test if the comment entity not exist anymore in database
+ TestData test = new TestData() {
+
+ @Override
+ protected void test() throws Exception {
+ CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction);
+ Comment result = dao.findByTopiaId(comment.getId());
+ Assert.assertNull(result);
+ }
+ };
+
+ test.execute();
+ }
+}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -59,7 +59,6 @@
import org.chorem.pollen.business.dto.VoteDTO;
import org.chorem.pollen.business.dto.VotingListDTO;
import org.chorem.pollen.business.services.ServiceChoice;
-import org.chorem.pollen.business.services.ServiceComment;
import org.chorem.pollen.business.services.ServicePoll;
import org.chorem.pollen.business.services.ServicePollAccount;
import org.chorem.pollen.business.services.ServiceResults;
@@ -258,9 +257,8 @@
private ServicePoll servicePoll;
@Inject
private ServiceVote serviceVote;
+
@Inject
- private ServiceComment serviceComment;
- @Inject
private ServicePollAccount servicePollAccount;
@Inject
private ServiceResults serviceResults;
@@ -879,11 +877,12 @@
/** Méthode appelée lors de l'ajout d'un commentaire. */
Object onSuccessFromCommentForm() {
- newComment.setPollId(poll.getId());
+ //newComment.setPollId(poll.getId());
newComment.setPostDate(new Date());
- serviceComment.createComment(newComment);
- poll = servicePoll.findPollByPollId(poll.getPollId());
- addFeedEntry(PollAction.ADDCOMMENT, newComment.getPollAccountId(),
+ servicePoll.createComment(poll, newComment);
+ //serviceComment.createComment(newComment);
+ //poll = servicePoll.findPollByPollId(poll.getPollId());
+ addFeedEntry(PollAction.ADDCOMMENT, newComment.getAuthor(),
newComment.getText());
newComment = new CommentDTO();
return commentZone.getBody();
@@ -891,8 +890,9 @@
/** Méthode appelée lors de la suppression d'un commentaire. */
Object onActionFromDeleteComment(String commentId) {
- serviceComment.deleteComment(commentId);
- poll = servicePoll.findPollByPollId(poll.getPollId());
+ //serviceComment.deleteComment(commentId);
+ //poll = servicePoll.findPollByPollId(poll.getPollId());
+ servicePoll.deleteComment(poll, commentId);
return commentZone.getBody();
}
@@ -1110,7 +1110,7 @@
newImageChoice = new ImageChoiceUIO();
newComment = new CommentDTO();
- newComment.setPollId(poll.getId());
+ //newComment.setPollId(poll.getId());
}
}
Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java
===================================================================
--- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-02-24 16:19:22 UTC (rev 2883)
@@ -30,7 +30,6 @@
import org.apache.tapestry5.upload.services.UploadSymbols;
import org.chorem.pollen.business.services.ServiceAuth;
import org.chorem.pollen.business.services.ServiceChoice;
-import org.chorem.pollen.business.services.ServiceComment;
import org.chorem.pollen.business.services.ServiceList;
import org.chorem.pollen.business.services.ServicePoll;
import org.chorem.pollen.business.services.ServicePollAccount;
@@ -60,7 +59,6 @@
// Pollen-Business services
binder.bind(ServiceAuth.class);
- binder.bind(ServiceComment.class);
binder.bind(ServiceList.class);
binder.bind(ServiceUser.class);
binder.bind(ServicePoll.class);
@@ -84,7 +82,7 @@
// overriding to false is a good idea. In addition, this is often overridden
// on the command line as -Dtapestry.production-mode=false
// The primary difference is how exceptions are reported.
- configuration.add(SymbolConstants.PRODUCTION_MODE, "true");
+ configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
// Restricting file size in upload component
configuration.add(UploadSymbols.FILESIZE_MAX, "1048576");
Modified: trunk/pollen-ui/src/main/webapp/poll/VoteForPoll.tml
===================================================================
--- trunk/pollen-ui/src/main/webapp/poll/VoteForPoll.tml 2010-02-24 13:18:29 UTC (rev 2882)
+++ trunk/pollen-ui/src/main/webapp/poll/VoteForPoll.tml 2010-02-24 16:19:22 UTC (rev 2883)
@@ -300,7 +300,7 @@
<h3>${message:comments}</h3>
<t:zone t:id="commentZone" show="show" update="show">
<div id="commentsDiv">
- <div t:type="loop" t:source="poll.commentDTOs" t:value="comment" class="${evenodd.next}">
+ <div t:type="loop" t:source="poll.comments" t:value="comment" class="${evenodd.next}">
<t:if test="creatorUser">
<span class="cmd">
<t:actionlink t:id="deleteComment" context="comment.id" t:zone="commentZone">
@@ -308,7 +308,7 @@
</t:actionlink>
</span>
</t:if>
- <span class="name">${comment.pollAccountId}</span> :
+ <span class="name">${comment.author}</span> :
<span class="date">
<t:output value="comment.postDate" format="dateFormat"/>
</span>
@@ -319,7 +319,7 @@
<t:form t:id="commentForm" t:zone="commentZone" t:volatile="true">
<t:label for="commenterName" />
<br/>
- <t:textField t:value="newComment.pollAccountId" t:id="commenterName"
+ <t:textField t:value="newComment.author" t:id="commenterName"
t:validate="required" />
<br/>
<t:label for="commentArea" />
1
0