r3096 - in branches/pollen-2.0-beta-1: . doc doc/ALMA-PFE-2009 doc/Stage-2009 doc/presentation-2010-03-11 pollen-business pollen-business/doc pollen-business/src/license pollen-business/src/main/java/org/chorem/pollen pollen-business/src/main/java/org/chorem/pollen/bean pollen-business/src/main/java/org/chorem/pollen/entity pollen-business/src/main/java/org/chorem/pollen/mail pollen-business/src/main/java/org/chorem/pollen/service pollen-business/src/main/resources pollen-business/src/main/
Author: tchemit Date: 2012-01-20 00:57:08 +0100 (Fri, 20 Jan 2012) New Revision: 3096 Url: http://chorem.org/repositories/revision/pollen/3096 Log: first little commit... Added: branches/pollen-2.0-beta-1/pollen-domain/ branches/pollen-2.0-beta-1/pollen-persistence/ branches/pollen-2.0-beta-1/pollen-persistence/LICENSE.txt branches/pollen-2.0-beta-1/pollen-persistence/README.txt branches/pollen-2.0-beta-1/pollen-persistence/changelog.txt branches/pollen-2.0-beta-1/pollen-persistence/pom.xml branches/pollen-2.0-beta-1/pollen-persistence/src/ branches/pollen-2.0-beta-1/pollen-persistence/src/license/ branches/pollen-2.0-beta-1/pollen-persistence/src/license/THIRD-PARTY.properties branches/pollen-2.0-beta-1/pollen-persistence/src/main/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenBusinessException.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenException.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTechnicalException.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTopiaRootContextSupplierFactory.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/VoteImpl.java branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_en_GB.properties branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_fr_FR.properties branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/ branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.properties branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.zargo branches/pollen-2.0-beta-1/pollen-persistence/src/test/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/java/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/java/org/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/java/org/chorem/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/java/org/chorem/pollen/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/ branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/PollenTest.properties branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/largemaillist.sh branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-services/ branches/pollen-2.0-beta-1/pollen-services/LICENSE.txt branches/pollen-2.0-beta-1/pollen-services/README.txt branches/pollen-2.0-beta-1/pollen-services/changelog.txt branches/pollen-2.0-beta-1/pollen-services/pom.xml branches/pollen-2.0-beta-1/pollen-services/src/ branches/pollen-2.0-beta-1/pollen-services/src/license/ branches/pollen-2.0-beta-1/pollen-services/src/license/THIRD-PARTY.properties branches/pollen-2.0-beta-1/pollen-services/src/main/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContext.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContextImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenProperty.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenUtils.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/PollenEmail.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/UserPoll.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/MailUtil.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/SendMail.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmail.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailAbstract.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavorite.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteAbstract.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePoll.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollAbstract.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUser.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserAbstract.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVote.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteAbstract.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/EmailService.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/FavoriteService.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollService.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenService.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContextImpl.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceFactory.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/UserService.java branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/VoteService.java branches/pollen-2.0-beta-1/pollen-services/src/main/resources/ branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/ branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties branches/pollen-2.0-beta-1/pollen-services/src/main/resources/pollen.properties branches/pollen-2.0-beta-1/pollen-services/src/test/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/AbstractServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceFavoriteImplTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServicePollImplTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceUserImplTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceVoteImplTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/EmailServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FakeServiceContext.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FavoriteServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/PollServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/UserServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/VoteServiceTest.java branches/pollen-2.0-beta-1/pollen-services/src/test/resources/ branches/pollen-2.0-beta-1/pollen-services/src/test/resources/PollenTest.properties branches/pollen-2.0-beta-1/pollen-services/src/test/resources/largemaillist.sh branches/pollen-2.0-beta-1/pollen-services/src/test/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-services/src/test/resources/pollen-fake.properties Removed: branches/pollen-2.0-beta-1/pollen-votecounting/ Modified: branches/pollen-2.0-beta-1/LICENSE.txt branches/pollen-2.0-beta-1/README.txt branches/pollen-2.0-beta-1/changelog.txt branches/pollen-2.0-beta-1/doc/2010-08-21_todo_v2.rst branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Analyse.odt branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Architecture.odt branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Conception.odt branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Gestion projet.odt branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Infrastructure.odt branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/pollen-slides.odp branches/pollen-2.0-beta-1/doc/Stage-2009/rapportRannou.odt branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_choix.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_infos.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_liens.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_options.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Presentation-Pollen.odp branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Resultats.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_condorcet.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_nombre.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_pourcentage.png branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/plan branches/pollen-2.0-beta-1/pollen-business/LICENSE.txt branches/pollen-2.0-beta-1/pollen-business/README.txt branches/pollen-2.0-beta-1/pollen-business/changelog.txt branches/pollen-2.0-beta-1/pollen-business/doc/PollenBusiness.zargo branches/pollen-2.0-beta-1/pollen-business/doc/ServicePoll.zargo branches/pollen-2.0-beta-1/pollen-business/doc/ServiceResults.zargo branches/pollen-2.0-beta-1/pollen-business/doc/ServiceUser.zargo branches/pollen-2.0-beta-1/pollen-business/doc/ServiceVote.zargo branches/pollen-2.0-beta-1/pollen-business/pom.xml branches/pollen-2.0-beta-1/pollen-business/src/license/THIRD-PARTY.properties branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenBusinessException.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenContext.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenContextImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenException.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenProperty.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenUtils.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/bean/PollenEmailImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/bean/UserPollImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/VoteImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/MailUtil.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/SendMail.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceEmailImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceFavoriteImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServicePollImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceUserImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceVoteImpl.java branches/pollen-2.0-beta-1/pollen-business/src/main/resources/i18n/pollen-business_en_GB.properties branches/pollen-2.0-beta-1/pollen-business/src/main/resources/i18n/pollen-business_fr_FR.properties branches/pollen-2.0-beta-1/pollen-business/src/main/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-business/src/main/resources/pollen.properties branches/pollen-2.0-beta-1/pollen-business/src/main/xmi/pollen.properties branches/pollen-2.0-beta-1/pollen-business/src/main/xmi/pollen.zargo branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceFavoriteImplTest.java branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServicePollImplTest.java branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceUserImplTest.java branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceVoteImplTest.java branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/test/AbstractServiceTest.java branches/pollen-2.0-beta-1/pollen-business/src/test/resources/PollenTest.properties branches/pollen-2.0-beta-1/pollen-business/src/test/resources/largemaillist.sh branches/pollen-2.0-beta-1/pollen-business/src/test/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-domain/LICENSE.txt branches/pollen-2.0-beta-1/pollen-domain/README.txt branches/pollen-2.0-beta-1/pollen-domain/changelog.txt branches/pollen-2.0-beta-1/pollen-domain/doc/exportXML.zargo branches/pollen-2.0-beta-1/pollen-domain/doc/votecountingapi.zargo branches/pollen-2.0-beta-1/pollen-domain/pom.xml branches/pollen-2.0-beta-1/pollen-domain/src/license/THIRD-PARTY.properties branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/ChoiceType.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/PollType.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/VoteCountingType.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Choice.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/CondorcetMethod.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Context.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Group.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Method.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/NumberMethod.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/PercentageMethod.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/StandardMethod.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Vote.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/package-info.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/ChoiceDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/CommentDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollChoiceDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollExportDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteCountingResultDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteToChoiceDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingGroupDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingPersonDTO.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/package-info.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExport.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCounting.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCountingImpl.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/package-info.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/ListBehavior.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/PercentageBehavior.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/Utils.java branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/package-info.java branches/pollen-2.0-beta-1/pollen-domain/src/main/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreator.java branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreatorVoteCounting.java branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/ServiceVoteCountingImplTest.java branches/pollen-2.0-beta-1/pollen-ui/LICENSE.txt branches/pollen-2.0-beta-1/pollen-ui/README.txt branches/pollen-2.0-beta-1/pollen-ui/changelog.txt branches/pollen-2.0-beta-1/pollen-ui/doc/UIOs.zargo branches/pollen-2.0-beta-1/pollen-ui/pom.xml branches/pollen-2.0-beta-1/pollen-ui/src/license/THIRD-PARTY.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollsPage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractUploadPage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/PollenPage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Chart.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceDateForm.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImageForm.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceTextForm.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Pager.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/SubForm.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsCreate.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsUpdate.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBar.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBarItem.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ChoiceField.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ErrorReport.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/EvenOdd.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FieldValidationException.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/GenericEncoder.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ParticipantsListener.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollAction.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollHelper.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/FavoriteParticipantDataSource.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/GenericSelectModel.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/ParticipantListModel.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/PollFormModel.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/UserAccountDataSource.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Connection.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/ErrorPage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Index.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/LocalMessages.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ConfirmPoll.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsCreated.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsParticipated.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserRegister.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImage.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImageImpl.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/CSVAccountUtil.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/UnitConverter.java branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/package-info.java branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/i18n/pollen-ui-en_GB.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/corelib/components/Errors_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceDateForm.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceImageForm.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceTextForm.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Image.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/SubForm.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsCreate.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsUpdate.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_en.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_fr.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Connection.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/ErrorPage.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Index.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/app.properties branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/web.xml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminPolls.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminUsers.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/account.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/common.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/grid.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/lightbox.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/main.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/poll.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollCreation.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsAdmin.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsCreated.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsParticipated.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/register.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/results.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/users.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/usersAdmin.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/vote.css branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/favicon.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1downarrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1leftarrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1rightarrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1uparrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/2leftarrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/2rightarrow.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/7ter.jpg branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigCreation.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigVote.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigVoteCounting.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/close.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/contact.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/copy.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/count.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/delete.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/edit.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/editSmall.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/export.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/feed.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/feed2.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/gplv3.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/help.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/import.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/closelabel.gif branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/loading.gif branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/nextlabel.gif branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/prevlabel.gif branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lutin.gif branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenCreation_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenCreation_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenIndex_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenIndex_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVoteCounting_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVoteCounting_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVote_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVote_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/refresh-22px.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep1.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep2.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep3.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/save.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote_en.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote_fr.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menu.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuCreation.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuIndex.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuVote.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuVoteCounting.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menu.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuCreation.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuIndex.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuVote.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuVoteCounting.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/undo.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/vote.png branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/jquery-1.4.2.min.js branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/lightbox.js branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollForm.js branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollen.js branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CloseValidation.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ConfirmPoll.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CreationValidation.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ImageDisplay.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ModificationValidation.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollCreation.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollForm.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollLinks.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollModification.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/Results.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/VoteForPoll.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserLists.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsCreated.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsParticipated.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserProfile.tml branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserRegister.tml branches/pollen-2.0-beta-1/pollen-ui/src/test/java/org/chorem/pollen/ui/utils/CSVAccountUtilTest.java branches/pollen-2.0-beta-1/pollen-ui/src/test/resources/import.csv branches/pollen-2.0-beta-1/pollen-wm/LICENSE.txt branches/pollen-2.0-beta-1/pollen-wm/README.txt branches/pollen-2.0-beta-1/pollen-wm/changelog.txt branches/pollen-2.0-beta-1/pollen-wm/pom.xml branches/pollen-2.0-beta-1/pollen-wm/src/main/java/org/chorem/pollen/web/PollenAction.java branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/log4j.properties branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/mapping branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/footer.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/head.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/header.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/index.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/login.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/register.jsp branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/web.xml branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/css/pollen.css branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigCreation.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigVote.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigVoteCounting.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/contact.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/en.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/fr.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollen.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollenIndex_en.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollenIndex_fr.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallCreation_en.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallCreation_fr.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVoteCounting_en.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVoteCounting_fr.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVote_en.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVote_fr.png branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/js/jquery-1.7.1.min.js branches/pollen-2.0-beta-1/pom.xml branches/pollen-2.0-beta-1/src/license/project.xml branches/pollen-2.0-beta-1/src/site/fr/resources/createVotingList.png branches/pollen-2.0-beta-1/src/site/fr/resources/pollen.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/CreerSondage.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/CreerSondage2.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DC_Pollen.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DC_PreventRules.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DET_PollState.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Depouiller.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Depouiller_1a.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/UC_Gestiondesvotes.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Voter.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_BusinessDTOs.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_DBUtil.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServicePoll.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceResults.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceUser.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceVote.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DS_Conception_CreerSondage.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/composants.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/packages.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/pollen_logo.jpg branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/schema-architecture.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/DC_UIOs.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/chart.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/dateTimeField.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/feedBack.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topCount.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topCreation.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topIndex.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topVote.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExport.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExportImpl.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExportXML.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCounting.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_VoteCountingDTOs.png branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/Seq-executeVoteCounting.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-1.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-2.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-3.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-4.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-5.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-6.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-links.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step1.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step2.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step3.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step4.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Results.png branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Vote.png branches/pollen-2.0-beta-1/src/site/fr/resources/votingList.png branches/pollen-2.0-beta-1/src/site/fr/rst/analyse.rst branches/pollen-2.0-beta-1/src/site/fr/rst/architecture.rst branches/pollen-2.0-beta-1/src/site/fr/rst/assentiment.rst branches/pollen-2.0-beta-1/src/site/fr/rst/business-rules.rst branches/pollen-2.0-beta-1/src/site/fr/rst/business.rst branches/pollen-2.0-beta-1/src/site/fr/rst/condorcet.rst branches/pollen-2.0-beta-1/src/site/fr/rst/depouillement.rst branches/pollen-2.0-beta-1/src/site/fr/rst/developer.rst branches/pollen-2.0-beta-1/src/site/fr/rst/historique.rst branches/pollen-2.0-beta-1/src/site/fr/rst/importVotersList.rst branches/pollen-2.0-beta-1/src/site/fr/rst/index.rst branches/pollen-2.0-beta-1/src/site/fr/rst/install.rst branches/pollen-2.0-beta-1/src/site/fr/rst/nombre.rst branches/pollen-2.0-beta-1/src/site/fr/rst/pourcentage.rst branches/pollen-2.0-beta-1/src/site/fr/rst/tutoriel.rst branches/pollen-2.0-beta-1/src/site/fr/rst/ui.rst branches/pollen-2.0-beta-1/src/site/fr/rst/user.rst branches/pollen-2.0-beta-1/src/site/fr/rst/votecounting.rst branches/pollen-2.0-beta-1/src/site/resources/createVotingList.png branches/pollen-2.0-beta-1/src/site/resources/pollen.png branches/pollen-2.0-beta-1/src/site/resources/schemas/CreerSondage.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/CreerSondage2.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/DC_Pollen.png branches/pollen-2.0-beta-1/src/site/resources/schemas/DC_PreventRules.png branches/pollen-2.0-beta-1/src/site/resources/schemas/DET_PollState.png branches/pollen-2.0-beta-1/src/site/resources/schemas/Depouiller.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/Depouiller_1a.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/UC_Gestiondesvotes.png branches/pollen-2.0-beta-1/src/site/resources/schemas/Voter.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_BusinessDTOs.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_DBUtil.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServicePoll.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceResults.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceUser.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceVote.png branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DS_Conception_CreerSondage.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/composants.png branches/pollen-2.0-beta-1/src/site/resources/schemas/packages.png branches/pollen-2.0-beta-1/src/site/resources/schemas/pollen_logo.jpg branches/pollen-2.0-beta-1/src/site/resources/schemas/schema-architecture.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/DC_UIOs.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/chart.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/dateTimeField.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/feedBack.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topCount.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topCreation.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topIndex.png branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topVote.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExport.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExportImpl.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExportXML.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceVoteCounting.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_VoteCountingDTOs.png branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/Seq-executeVoteCounting.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-1.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-2.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-3.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-4.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-5.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-6.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-links.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step1.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step2.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step3.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step4.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Results.png branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Vote.png branches/pollen-2.0-beta-1/src/site/resources/votingList.png branches/pollen-2.0-beta-1/src/site/rst/analyse.rst branches/pollen-2.0-beta-1/src/site/rst/approval.rst branches/pollen-2.0-beta-1/src/site/rst/architecture.rst branches/pollen-2.0-beta-1/src/site/rst/business.rst branches/pollen-2.0-beta-1/src/site/rst/condorcet.rst branches/pollen-2.0-beta-1/src/site/rst/developer.rst branches/pollen-2.0-beta-1/src/site/rst/historical.rst branches/pollen-2.0-beta-1/src/site/rst/importVotersList.rst branches/pollen-2.0-beta-1/src/site/rst/index.rst branches/pollen-2.0-beta-1/src/site/rst/install.rst branches/pollen-2.0-beta-1/src/site/rst/methods.rst branches/pollen-2.0-beta-1/src/site/rst/number.rst branches/pollen-2.0-beta-1/src/site/rst/percentage.rst branches/pollen-2.0-beta-1/src/site/rst/tutoriel.rst branches/pollen-2.0-beta-1/src/site/rst/ui.rst branches/pollen-2.0-beta-1/src/site/rst/user.rst branches/pollen-2.0-beta-1/src/site/rst/votecounting.rst branches/pollen-2.0-beta-1/src/site/site_en.xml branches/pollen-2.0-beta-1/src/site/site_fr.xml branches/pollen-2.0-beta-1/todo.txt branches/pollen-2.0-beta-1/v2 Property changes on: branches/pollen-2.0-beta-1/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/doc/2010-08-21_todo_v2.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Analyse.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Architecture.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Conception.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Gestion projet.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/Infrastructure.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/ALMA-PFE-2009/pollen-slides.odp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/Stage-2009/rapportRannou.odt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_choix.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_infos.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_liens.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Creation_options.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Presentation-Pollen.odp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Resultats.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_condorcet.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_nombre.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/Vote_pourcentage.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/doc/presentation-2010-03-11/plan ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/doc/PollenBusiness.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/doc/ServicePoll.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/doc/ServiceResults.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/doc/ServiceUser.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/doc/ServiceVote.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/license/THIRD-PARTY.properties ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenBusinessException.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenContext.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenContextImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenException.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenProperty.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/PollenUtils.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/bean/PollenEmailImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/bean/UserPollImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/PollImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/entity/VoteImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/MailUtil.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/mail/SendMail.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceEmailImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceFavoriteImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServicePollImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceUserImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/java/org/chorem/pollen/service/ServiceVoteImpl.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/resources/i18n/pollen-business_en_GB.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/resources/i18n/pollen-business_fr_FR.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/resources/pollen.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/xmi/pollen.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/main/xmi/pollen.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceFavoriteImplTest.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServicePollImplTest.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceUserImplTest.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/service/ServiceVoteImplTest.java ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/java/org/chorem/pollen/test/AbstractServiceTest.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/resources/PollenTest.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/resources/largemaillist.sh ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-business/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-domain/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-domain/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-domain/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-domain/doc/exportXML.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-domain/doc/votecountingapi.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-domain/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/pom.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,49 +1,37 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> - <!-- ************************************************************* --> - <!-- *** POM Relationships *************************************** --> - <!-- ************************************************************* --> + <parent> + <groupId>org.chorem</groupId> + <artifactId>pollen</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> - <parent> - <groupId>org.chorem</groupId> - <artifactId>pollen</artifactId> - <version>2.0-SNAPSHOT</version> - </parent> - - <groupId>org.chorem.pollen</groupId> - <artifactId>pollen-votecounting</artifactId> + <groupId>org.chorem.pollen</groupId> + <artifactId>pollen-domain</artifactId> - <dependencies> + <dependencies> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>org.jdom</groupId> - <artifactId>jdom</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </dependency> + <dependency> + <groupId>org.jdom</groupId> + <artifactId>jdom</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> - </dependencies> + </dependencies> - <!-- ************************************************************* --> - <!-- *** Project Information ************************************* --> - <!-- ************************************************************* --> + <name>Pollen :: Domain</name> + <description>Service de dépouillement</description> - <name>Pollen :: Vote Counting</name> - <description>Service de dépouillement</description> - - <!-- ************************************************************* --> - <!-- *** Build Settings ****************************************** --> - <!-- ************************************************************* --> - - <packaging>jar</packaging> - </project> Property changes on: branches/pollen-2.0-beta-1/pollen-domain/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/license/THIRD-PARTY.properties ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/ChoiceType.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/common/ChoiceType.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/ChoiceType.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/ChoiceType.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/PollType.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/common/PollType.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/PollType.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/PollType.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/VoteCountingType.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/common/VoteCountingType.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/VoteCountingType.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/common/VoteCountingType.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Choice.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Choice.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Choice.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Choice.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/CondorcetMethod.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/CondorcetMethod.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/CondorcetMethod.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/CondorcetMethod.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Context.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Context.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Context.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Context.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Group.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Group.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Group.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Group.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Method.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Method.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Method.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Method.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/NumberMethod.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/NumberMethod.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/NumberMethod.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/NumberMethod.java ___________________________________________________________________ Modified: svn:keywords - Date Author Id Revision HeadURL + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/PercentageMethod.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/PercentageMethod.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/PercentageMethod.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/PercentageMethod.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/StandardMethod.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/StandardMethod.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/StandardMethod.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/StandardMethod.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Vote.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Vote.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Vote.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/Vote.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/business/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/ChoiceDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/ChoiceDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/ChoiceDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/ChoiceDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/CommentDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/CommentDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/CommentDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/CommentDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollChoiceDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/PollChoiceDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollChoiceDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollChoiceDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/PollDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollExportDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/PollExportDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollExportDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/PollExportDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteCountingResultDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/VoteCountingResultDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteCountingResultDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteCountingResultDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteToChoiceDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/VoteToChoiceDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteToChoiceDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VoteToChoiceDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingGroupDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/VotingGroupDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingGroupDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingGroupDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingPersonDTO.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/VotingPersonDTO.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingPersonDTO.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/VotingPersonDTO.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/dto/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/dto/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExport.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExport.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExport.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExport.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCounting.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCounting.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCounting.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCounting.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCountingImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCountingImpl.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCountingImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/ServiceVoteCountingImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/services/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/ListBehavior.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/utils/ListBehavior.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/ListBehavior.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/ListBehavior.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/PercentageBehavior.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/utils/PercentageBehavior.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/PercentageBehavior.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/PercentageBehavior.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/Utils.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/utils/Utils.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/Utils.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/Utils.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/utils/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/java/org/chorem/pollen/votecounting/utils/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/main/resources/log4j.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/main/resources/log4j.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/main/resources/log4j.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ ### # #%L -# Pollen :: Vote Counting +# Pollen :: Domain # # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreator.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreator.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreator.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreator.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreatorVoteCounting.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreatorVoteCounting.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreatorVoteCounting.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/PollDTOCreatorVoteCounting.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/ServiceVoteCountingImplTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-votecounting/src/test/java/org/chorem/pollen/votecounting/business/services/ServiceVoteCountingImplTest.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/ServiceVoteCountingImplTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,11 +1,11 @@ /* * #%L - * Pollen :: Vote Counting + * Pollen :: Domain * * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-domain/src/test/java/org/chorem/pollen/votecounting/business/services/ServiceVoteCountingImplTest.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-persistence ___________________________________________________________________ Added: svn:ignore + target *.ipr *.iws *.iml *.log Added: branches/pollen-2.0-beta-1/pollen-persistence/LICENSE.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/LICENSE.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/LICENSE.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/README.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/README.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/README.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,5 @@ +POLLEN BUSINESS +--------------- + +Pollen Business est le module qui assure la partie m�tier de Pollen. +Il g�re la persistence des donn�es en base et d�fini des services. Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/changelog.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/changelog.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/changelog.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,4 @@ +ChangeLog + +1.0.0 +- initiale release Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/pom.xml (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> + + <parent> + <groupId>org.chorem</groupId> + <artifactId>pollen</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> + + <groupId>org.chorem.pollen</groupId> + <artifactId>pollen-persistence</artifactId> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pollen-domain</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + </dependency> + + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-email</artifactId> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton.i18n</groupId> + <artifactId>nuiton-i18n</artifactId> + </dependency> + <dependency> + <groupId>net.sf.opencsv</groupId> + <artifactId>opencsv</artifactId> + </dependency> + <!-- <dependency> + <groupId>org.chorem</groupId> + <artifactId>chorem-commons</artifactId> + </dependency>--> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + </dependency> + <!--dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-service-migration</artifactId> + </dependency--> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>test</scope> + </dependency> + <!--dependency> + <groupId>postgresql</groupId> + <artifactId>postgresql</artifactId> + </dependency--> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> + </dependencies> + + <!-- ************************************************************* --> + <!-- *** Project Information ************************************* --> + <!-- ************************************************************* --> + + <name>Pollen :: Persistence</name> + <description>Pollen Persistence Layer</description> + + <build> + + <plugins> + + <!-- Plug in Topia --> + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>maven-eugene-plugin</artifactId> + <executions> + <execution> + <phase>generate-sources</phase> + <id>generate-entities</id> + <!-- By default, generation from ObjectModel --> + <configuration> + <!-- Corresponding to extracted package from zargo file --> + <fullPackagePath>org.chorem.pollen</fullPackagePath> + <!-- DefaultPackage used for DAOHelper generation --> + <defaultPackage>org.chorem.pollen</defaultPackage> + <templates> + org.nuiton.topia.generator.TopiaMetaTransformer, + org.nuiton.eugene.java.JavaInterfaceTransformer, + org.nuiton.topia.generator.BinderHelperTransformer, + org.nuiton.topia.generator.QueryHelperTransformer + </templates> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + <version>${topiaVersion}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + <version>${nuitonUtilsVersion}</version> + <scope>compile</scope> + </dependency> + </dependencies> + </plugin> + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-plugin</artifactId> + <executions> + <execution> + <configuration> + <entries> + <entry> + <basedir>${maven.gen.dir}/java</basedir> + </entry> + </entries> + </configuration> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> + Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/license/THIRD-PARTY.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/license/THIRD-PARTY.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/license/THIRD-PARTY.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,25 @@ +# Generated by org.nuiton.license.plugin.AddThirdPartyMojo +#------------------------------------------------------------------------------- +# Already used licenses in project : +# - Apache 2 +# - BSD License +# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +# - Common Development and Distribution License (CDDL) v1.0 +# - Common Public License Version 1.0 +# - GNU Lesser General Public License +# - Lesser General Public License (LGPL) v 2.1 +# - Lesser General Public License (LGPL) v 3.0 +# - MIT License +# - The Apache Software License, Version 2.0 +# - The H2 License, Version 1.0 +#------------------------------------------------------------------------------- +# Please fill the missing licenses for dependencies : +# +# +#Sun Nov 21 23:38:07 CET 2010 +antlr--antlr--2.7.6--jar=BSD License +commons-primitives--commons-primitives--1.0--jar=The Apache Software License, Version 2.0 +dom4j--dom4j--1.6.1--jar=BSD License +javassist--javassist--3.8.0.GA--jar=Lesser General Public License (LGPL) v 2.1 +javax.transaction--jta--1.1--jar=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +org.jdom--jdom--1.1--jar=Lesser General Public License (LGPL) v 3.0 Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/license/THIRD-PARTY.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenBusinessException.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenBusinessException.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenBusinessException.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,123 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import static org.nuiton.i18n.I18n.n_; + +/** + * PollenBusinessException + * <p/> + * Created: 24 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PollenBusinessException extends Exception { + + private static final long serialVersionUID = 1L; + + protected PollenExceptionType type; + + protected Object[] args; + + public PollenBusinessException(PollenExceptionType type, Object... args) { + super(type.getMessage()); + this.args = args; + this.type = type; + } + + public PollenBusinessException(Throwable exception, + PollenExceptionType type, Object... args) { + super(type.getMessage(), exception); + this.args = args; + this.type = type; + } + + public enum PollenExceptionType { + + /** Exception when poll is not found in data * */ + POLL_NOT_EXIST(n_("pollen.exception.poll_not_exist")), + /** Exception when user login exists in data * */ + USER_LOGIN_EXIST(n_("pollen.exception.user_login_exist")), + /** Exception when user email exists in data * */ + USER_EMAIL_EXIST(n_("pollen.exception.user_email_exist")), + /** Exception when user is not found in data * */ + USER_NOT_EXIST(n_("pollen.exception.user_not_exist")), + /** Exception when password is not valid for some user * */ + USER_WRONG_PASSWORD(n_("pollen.exception.user_wrong_password")), + /** Exception when stmp server is not available * */ + SMTP_NOT_AVAILABLE(n_("pollen.exception.smtp_not_available")), + /** Exception when favorite list name is already defined for user * */ + FAVORITE_LIST_NAME_EXIST( + n_("pollen.exception.favorite_list_name_exist")), + /** + * Exception when participant name ($2) and email ($3) are already + * defined for the current list ($1). + */ + PARTICIPANT_EXIST(n_("pollen.exception.participant_exist")), + + /** + * Exception when favorite participant name ($2) with no email is + * already defined for the current list ($1). + */ + PARTICIPANT_EXIST_WITHOUT_EMAIL( + n_("pollen.exception.participant_exist_without_email")), + /** Exception when poll already exist at creation * */ + POLL_EXIST(n_("pollen.exception.poll_exist")), + /** + * Exception when doubloons ($2) are found when adding participants in a + * list ($1). + */ + PARTICIPANT_DOUBLOONS(n_("pollen.exception.participant_doubloons")), + /** + * Exception when doubloon are found on vote name ($1) + */ + VOTE_DOUBLOON(n_("pollen.exception.vote_doubloon")), + /** + * Exception when participant with uid ($1) can't vote + */ + VOTE_NOT_ALLOWED(n_("pollen.exception.vote_not_allowed")); + + private String message; + + PollenExceptionType(String message) { + this.message = message; + } + + public String getMessage() { + return message; + } + } + + public Object[] getArgs() { + return args; + } + + public PollenExceptionType getType() { + return type; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenBusinessException.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,267 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseConfiguration.java 282 2012-01-15 21:30:41Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-entities/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import com.google.common.base.Preconditions; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ArgumentsParserException; +import org.nuiton.util.FileUtil; +import org.nuiton.util.Version; + +import java.io.File; +import java.io.IOException; +import java.util.Properties; + +/** + * EchoBase configuration. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenConfiguration { + + /** Logger. */ + protected static final Log log = + LogFactory.getLog(PollenConfiguration.class); + + /** Delegate application config object containing configuration. */ + protected ApplicationConfig applicationConfig; + + public PollenConfiguration() { + this("pollen.properties"); + } + + public PollenConfiguration(String file) { + + applicationConfig = new ApplicationConfig(); + applicationConfig.setConfigFileName(file); + + if (log.isInfoEnabled()) { + log.info(this + " is initializing..."); + } + try { + applicationConfig.loadDefaultOptions(PollenConfigurationOption.class); + applicationConfig.parse(); + } catch (ArgumentsParserException e) { + throw new PollenTechnicalException( + "Could not parse configuration", e); + } + + createDirectory(PollenConfigurationOption.EMAIL_DIR); + createDirectory(PollenConfigurationOption.FEED_DIR); + createDirectory(PollenConfigurationOption.IMG_DIR); + + if (log.isDebugEnabled()) { + log.debug("parsed options in config file" + applicationConfig.getOptions()); + } + } + + public String getAdminLogin() { + String result = applicationConfig.getOption( + PollenConfigurationOption.ADMIN_LOGIN.key); + return result; + } + + public String getAdminPassword() { + String result = applicationConfig.getOption( + PollenConfigurationOption.ADMIN_PASSWORD.key); + return result; + } + + public String getAdminEmail() { + String result = applicationConfig.getOption( + PollenConfigurationOption.ADMIN_EMAIL.key); + return result; + } + + public String getContactEmail() { + String result = applicationConfig.getOption( + PollenConfigurationOption.CONTACT_EMAIL.key); + return result; + } + + public String getEmailHost() { + String result = applicationConfig.getOption( + PollenConfigurationOption.EMAIL_HOST.key); + return result; + } + + public int getEmailPort() { + int result = applicationConfig.getOptionAsInt( + PollenConfigurationOption.EMAIL_PORT.key); + return result; + } + + public String getEmailFrom() { + String result = applicationConfig.getOption( + PollenConfigurationOption.EMAIL_FROM.key); + return result; + } + + public File getEmailDirectory() { + File result = applicationConfig.getOptionAsFile( + PollenConfigurationOption.EMAIL_DIR.key); + return result; + } + + public File getFeedDirectory() { + File result = applicationConfig.getOptionAsFile( + PollenConfigurationOption.FEED_DIR.key); + return result; + } + + public File getImageDirectory() { + File result = applicationConfig.getOptionAsFile( + PollenConfigurationOption.IMG_DIR.key); + return result; + } + + public int getNbVotesPerPage() { + int result = applicationConfig.getOptionAsInt( + PollenConfigurationOption.NB_VOTES_PER_PAGE.key); + return result; + } + + public String getCharset() { + String result = applicationConfig.getOption( + PollenConfigurationOption.CHARSET.key); + return result; + } + + public Version getVersion() { + Version result = applicationConfig.getOptionAsVersion( + PollenConfigurationOption.VERSION.key); + return result; + } + + public void setAdminLogin(String adminLogin) { + applicationConfig.setOption( + PollenConfigurationOption.ADMIN_LOGIN.key, adminLogin); + } + + public void setAdminPassword(String adminPassword) { + applicationConfig.setOption( + PollenConfigurationOption.ADMIN_PASSWORD.key, adminPassword); + } + + public void setAdminEmail(String adminEmail) { + applicationConfig.setOption( + PollenConfigurationOption.ADMIN_EMAIL.key, adminEmail); + } + + public void setContactEmail(String contactEmail) { + applicationConfig.setOption( + PollenConfigurationOption.CONTACT_EMAIL.key, contactEmail); + } + + public void setEmailHost(String emailHost) { + applicationConfig.setOption( + PollenConfigurationOption.EMAIL_HOST.key, emailHost); + } + + public void setEmailPort(int emailPort) { + applicationConfig.setOption( + PollenConfigurationOption.EMAIL_PORT.key, String.valueOf(emailPort)); + } + + public void setEmailFrom(String emailFrom) { + applicationConfig.setOption( + PollenConfigurationOption.EMAIL_FROM.key, emailFrom); + } + + public void setEmailDirectory(File emailDirectory) { + applicationConfig.setOption( + PollenConfigurationOption.EMAIL_DIR.key, + emailDirectory.getAbsolutePath()); + } + + public void setFeedDirectory(File feedDirectory) { + applicationConfig.setOption( + PollenConfigurationOption.FEED_DIR.key, + feedDirectory.getAbsolutePath()); + } + + public void setImageDirectory(File imageDirectory) { + applicationConfig.setOption( + PollenConfigurationOption.IMG_DIR.key, + imageDirectory.getAbsolutePath()); + } + + public void setNbVotesPerPage(int nbVotesPerPage) { + applicationConfig.setOption( + PollenConfigurationOption.NB_VOTES_PER_PAGE.key, + String.valueOf(nbVotesPerPage)); + } + + public void setCharset(String charset) { + applicationConfig.setOption( + PollenConfigurationOption.CHARSET.key, charset); + } + + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } + + public Properties getProperties() { + Properties result = applicationConfig.getFlatOptions(); + return result; + } + + public boolean getOptionAsBoolean(String propertyName) { + Boolean result = applicationConfig.getOptionAsBoolean(propertyName); + return result != null && result; + } + + /** + * Creates a directory given the configuration given key. + * + * @param key the configuration option key which contains the location of + * the directory to create + */ + private void createDirectory(PollenConfigurationOption key) { + + File directory = applicationConfig.getOptionAsFile(key.getKey()); + + Preconditions.checkNotNull( + directory, + "Could not find directory " + directory + " (key " + + key + + "in your configuration file named echobase.properties)" + ); + if (log.isInfoEnabled()) { + log.info(key + " = " + directory); + } + try { + FileUtil.createDirectoryIfNecessary(directory); + } catch (IOException e) { + throw new PollenTechnicalException( + "Could not create directory " + directory, e); + } + } +} Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,133 @@ +/* + * #%L + * EchoBase :: Entities + * + * $Id: EchoBaseConfigurationOption.java 116 2011-11-24 23:06:43Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-entities/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.Version; + +import java.io.File; +import java.net.URL; + +/** + * All EchoBase configuration options. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public enum PollenConfigurationOption implements ApplicationConfig.OptionDef { + + /** login for default admin. */ + ADMIN_LOGIN("adminLogin", "login for default admin", "admin", String.class), + /** password for default admin. */ + ADMIN_PASSWORD("adminPassword", "password for default admin", "pollen", String.class), + /** email for default admin. */ + ADMIN_EMAIL("adminEmail", "email for default admin", "admin@domain.com", String.class), + /** email for contact link. */ + CONTACT_EMAIL(ADMIN_EMAIL.getKey(), "email for contact link", "", String.class), + /** host for email sending configuration. */ + EMAIL_HOST("email_host", "host for email sending configuration", "smtp", String.class), + /** port for email sending configuration. */ + EMAIL_PORT("email_port", "port for email sending configuration", "25", String.class), + /** from for email sending configuration. */ + EMAIL_FROM("email_from", "from for email sending configuration", "bot@pollen.org", String.class), + /** directory to store emails before sending them. */ + EMAIL_DIR("pollen.emails.directory", "directory to store emails before sending them", "${HOME}/.pollen/emails", File.class), + /** path for feed directory. */ + FEED_DIR("feedDir", "path for feed directory", "${HOME}/.pollen/feeds", File.class), + /** path for uploaded images directory. */ + IMG_DIR("upImgDir", "path for uploaded images directory", "${HOME}/.pollen/uploadedImages", File.class), + /** nb votes to display per page. */ + NB_VOTES_PER_PAGE("pollen.ui.nbVotesPerPage", "nb votes to display per page", "25", int.class), + /** Charset of Pollen. */ + CHARSET("pollen.charset", "Charset of Pollen", "UTF-8", String.class), + /** Pollen version. */ + VERSION("pollen.version", "Version de l'application", "", Version.class); + + /** Configuration key. */ + protected final String key; + + /** I18n key of option description */ + protected final String description; + + /** Type of option */ + protected final Class<?> type; + + /** Default value of option. */ + protected String defaultValue; + + PollenConfigurationOption(String key, + String description, + String defaultValue, + Class<?> type) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + } + + @Override + public String getKey() { + return key; + } + + @Override + public Class<?> getType() { + return type; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public String getDefaultValue() { + return defaultValue; + } + + @Override + public boolean isTransient() { + return true; + } + + @Override + public boolean isFinal() { + return true; + } + + @Override + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + @Override + public void setTransient(boolean newValue) { + // not used + } + + @Override + public void setFinal(boolean newValue) { + // not used + } +} Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenException.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenException.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenException.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,62 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + + + +public class PollenException extends RuntimeException { + + protected Object[] args; + /** + * PollenException : + * @param eee + * @param message + * @param args + */ + + public PollenException(String message, Throwable eee, Object... args) { + super(message, eee); + this.args = args; + } + + /** + * getArgs : + * @return Object[] + */ + + public Object[] getArgs() { + return args; + } + + /** + * hasArgs : + * @return boolean + */ + + public boolean hasArgs() { + return args.length > 0; + } + + +} //PollenException Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenException.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTechnicalException.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTechnicalException.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTechnicalException.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,48 @@ +/* + * #%L + * EchoBase :: Entities + * + * $Id: EchoBaseTechnicalException.java 19 2011-11-08 08:56:23Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-entities/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenTechnicalException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public PollenTechnicalException() { + } + + public PollenTechnicalException(String message) { + super(message); + } + + public PollenTechnicalException(String message, Throwable cause) { + super(message, cause); + } + + public PollenTechnicalException(Throwable cause) { + super(cause); + } +} Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTopiaRootContextSupplierFactory.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTopiaRootContextSupplierFactory.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/PollenTopiaRootContextSupplierFactory.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,141 @@ +/* + * #%L + * Extranet NF-Logement :: Entities + * + * $Id: EchoBaseTopiaRootContextSupplierFactory.java 114 2011-11-24 13:31:55Z sletellier $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-entities/src/main... $ + * %% + * Copyright (C) 2011 Cerqual + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import com.google.common.base.Supplier; +import com.google.common.collect.Sets; +import com.google.common.io.Closeables; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.TopiaNotFoundException; +import org.nuiton.topia.TopiaRuntimeException; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; +import java.util.Set; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenTopiaRootContextSupplierFactory { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(PollenTopiaRootContextSupplierFactory.class); + + protected static class PollenTopiaRootContextSupplier implements Supplier<TopiaContext> { + + protected TopiaContext rootContext; + + public PollenTopiaRootContextSupplier(TopiaContext rootContext) { + this.rootContext = rootContext; + } + + @Override + public TopiaContext get() { + return rootContext; + } + } + + public Supplier<TopiaContext> newEmbeddedDatabase(File dir, String configPath) { + + File databaseFile = new File(dir, "db"); + + String databaseAbsolutePath = databaseFile.getAbsolutePath(); + + // prepare call to topia-context factory + Properties properties = new Properties(); + InputStream input = null; + try { + input = getClass().getResourceAsStream(configPath); + properties.load(input); + } catch (IOException e) { + throw new PollenTechnicalException(e); + } finally { + Closeables.closeQuietly(input); + } + properties.setProperty( + TopiaContextFactory.CONFIG_URL, + "jdbc:h2:file:" + databaseAbsolutePath + "/pollen"); + + // add entities to the context + properties.setProperty( + TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES, + PollenDAOHelper.getImplementationClassesAsString()); + + TopiaContext rootContext; + try { + rootContext = TopiaContextFactory.getContext(properties); + } catch (TopiaNotFoundException e) { + throw new TopiaRuntimeException(e); + } + + if (log.isDebugEnabled()) { + log.debug("will output database in " + databaseAbsolutePath); + } + + return new PollenTopiaRootContextSupplier(rootContext); + } + + public Supplier<TopiaContext> newDatabaseFromConfig(PollenConfiguration config) { + + Properties properties = config.getProperties(); + + return newDatabaseFromProperties(properties); + } + + public Supplier<TopiaContext> newDatabaseFromProperties(Properties properties) { + + if (log.isDebugEnabled()) { + log.debug("Database settings are :"); + Set<String> keysToDisplay = Sets.newHashSet( + "hibernate.dialect", + "hibernate.connection.driver_class", + "hibernate.connection.url", + "hibernate.connection.username"); + for (String key : keysToDisplay) { + log.debug(String.format("%s=%s", key, properties.getProperty(key))); + } + } + + // add entities to the context + String classesKey = TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES; + String classesValue = PollenDAOHelper.getImplementationClassesAsString(); + properties.setProperty(classesKey, classesValue); + + TopiaContext rootContext; + try { + rootContext = TopiaContextFactory.getContext(properties); + } catch (TopiaNotFoundException e) { + throw new TopiaRuntimeException(e); + } + + return new PollenTopiaRootContextSupplier(rootContext); + } +} Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,60 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.entity; + +import org.apache.commons.lang.StringUtils; +import org.chorem.pollen.votecounting.business.NumberMethod; + +/** + * ChoiceImpl + * <p/> + * Created: 26 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ChoiceImpl extends ChoiceAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public boolean isHidden() { + return StringUtils.isNotEmpty(name) && + name.startsWith(NumberMethod.HIDDEN_PREFIX); + } + + @Override + public void setHidden(boolean hidden) { + boolean previous = isHidden(); + if (hidden && !previous) { + setName(NumberMethod.HIDDEN_PREFIX + name); + } else if (!hidden && previous) { + name.substring(NumberMethod.HIDDEN_PREFIX.length()); + } + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ChoiceImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,81 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.chorem.pollen.PollenBusinessException; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Created: 12 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class FavoriteListImpl extends FavoriteListAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public Collection<Participant> getParticipants() { + Collection<Participant> results = new ArrayList<Participant>(); + for (FavoriteParticipant account : getFavoriteParticipant()) { + results.add(account); + } + return results; + } + + @Override + public void setParticipants(Collection<Participant> participants) + throws PollenBusinessException { + setFavoriteParticipant(new ArrayList<FavoriteParticipant>()); + ParticipantHelper.setParticipants(this, participants); + } + + @Override + public String addParticipant(Participant participant) { + String name = participant.getName(); + String email = participant.getEmail(); + + String error = + ParticipantHelper.checkParticipantExist(this, name, email); + if (error != null) { + return error; + } + + FavoriteParticipant favorite = new FavoriteParticipantImpl(); + favorite.setName(participant.getName()); + favorite.setEmail(participant.getEmail()); + favorite.setWeight(participant.getWeight()); + favorite.setFavoriteList(this); + addFavoriteParticipant(favorite); + return null; + } + + @Override + public String getId() { + return getTopiaId(); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteListImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,76 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.chorem.pollen.PollenQueryHelper; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; + +/** + * Created: 26 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id: FavoriteParticipantDAOImpl.java 3014 2010-05-26 09:17:43Z + * fdesbois $ + */ +public class FavoriteParticipantDAOImpl<E extends FavoriteParticipant> + extends FavoriteParticipantDAOAbstract<E> { + + @Override + public TopiaQuery createQueryFindAllByFavoriteList(EntityFilter filter) { + + filter.checkReference(FavoriteList.class, true); + +// // ------------------------- PROPERTIES ----------------------------- // +// +// String participantAlias = PollenQueryHelper.ALIAS_FAVORITE_PARTICIPANT; +// String listAlias = PollenQueryHelper.ALIAS_FAVORITE_LIST; +// String listParticipantProperty = +// TopiaQuery.getProperty(listAlias, +// FavoriteList.PROPERTY_FAVORITE_PARTICIPANT); +// +// filter.setReferenceProperty(listAlias); +// +// // ----------------------- QUERY ------------------------------------ // +// +// TopiaQuery query = context.createQuery(FavoriteList.class, listAlias). +// setSelect(participantAlias). +// addJoin(listParticipantProperty, participantAlias, false). +// addFilter(filter, participantAlias); + + PollenQueryHelper.FavoriteListProperty listProperty = + PollenQueryHelper.newFavoriteListProperty(); + PollenQueryHelper.FavoriteParticipantProperty participantProperty = + PollenQueryHelper.newFavoriteParticipantProperty(); + + filter.setReferenceProperty(listProperty.$alias()); + + TopiaQuery query = PollenQueryHelper.createQuery(listProperty). + setSelect(participantProperty.$alias()). + addJoin(listProperty.favoriteParticipant(), participantProperty.$alias(), false). + addFilter(filter, participantProperty.$alias()); + + return query; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantDAOImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,40 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +/** + * Created: 20 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class FavoriteParticipantImpl extends FavoriteParticipantAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public String getId() { + return getTopiaId(); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/FavoriteParticipantImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,107 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; + +import java.util.Collection; + +/** + * Helper classes for common Participant manipulations. + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + * @see Participant + * @see ParticipantList + */ +public class ParticipantHelper { + + private static final Log log = LogFactory.getLog(ParticipantHelper.class); + + /** + * Check the existence of participant from a {@code list}. The existence is + * tested on {@code name} and {@code email}. The {@code email} can be null. + * + * @param list ParticipantList which contains a list of Participant + * @param name Name of the participant to check + * @param email Email of the participant to check + * @return an error code if participant already exist : simply the + * concatenation of name and email. + */ + public static String checkParticipantExist( + ParticipantList list, String name, String email) { + for (Participant participant : list.getParticipants()) { + boolean emailNull = email == null && participant.getEmail() == null; + boolean emailCheck = emailNull || + email != null && email.equals(participant.getEmail()); + + if (name != null && name.equals(participant.getName()) && emailCheck) { + if (emailNull) { + return name; + } else { + return name + " (" + email + ")"; + } + } + } + return null; + } + + /** + * Set the {@code participants} in the {@code list}. Doubloons can be found + * during adding process. An exception will be thrown in case of doubloons. + * + * @param list where participants will be added + * @param participants to add to the list + * @throws PollenBusinessException for doubloons case + */ + public static void setParticipants(ParticipantList list, + Collection<Participant> participants) + throws PollenBusinessException { + if (log.isDebugEnabled()) { + log.debug("Set participants for list : " + list.getName()); + } + StringBuilder doubloons = new StringBuilder(); + String separator = ", "; + for (Participant participant : participants) { + // Add the participant to the list + String doubloon = list.addParticipant(participant); + // Check error doubloon + if (doubloon != null) { + doubloons.append(separator).append(doubloon); + } else if (log.isDebugEnabled()) { + log.debug("Participant added : " + participant.getName() + + " _ " + participant.getEmail()); + } + } + // If doubloons are found, throw an exception + if (!doubloons.toString().isEmpty()) { + throw new PollenBusinessException( + PollenBusinessException.PollenExceptionType.PARTICIPANT_DOUBLOONS, + list.getName(), doubloons.substring(separator.length())); + } + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/ParticipantHelper.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,126 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.chorem.pollen.PollenQueryHelper; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; + +/** + * Created: 26 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class PollAccountDAOImpl<E extends PollAccount> extends PollAccountDAOAbstract<E> { + + @Override + public TopiaQuery createQueryFindAllByPoll(EntityFilter filter) { + + filter.checkReference(Poll.class, true); + +// // ------------------------- PROPERTIES ----------------------------- // +// +// String pollAlias = PollenQueryHelper.ALIAS_POLL; +// String pollAccountProperty = +// TopiaQuery.getProperty(pollAlias, Poll.PROPERTY_POLL_ACCOUNT); +// +// String participantAlias = PollenQueryHelper.ALIAS_POLL_ACCOUNT; +// String participantVoteDateProperty = +// TopiaQuery.getProperty(participantAlias, +// PollAccount.PROPERTY_VOTE_DATE); +// +// filter.setReferenceProperty(pollAlias); +// +// // ----------------------- QUERY ------------------------------------ // +// +// // Will return lists in case of GROUP poll +// TopiaQuery query = context.createQuery(Poll.class, pollAlias). +// setSelect(participantAlias). +// addJoin(pollAccountProperty, participantAlias, false). +// addNotNull(participantVoteDateProperty). +// addFilter(filter, participantAlias); + + PollenQueryHelper.PollProperty pollProperty = + PollenQueryHelper.newPollProperty(); + PollenQueryHelper.PollAccountProperty participantProperty = + PollenQueryHelper.newPollAccountProperty(); + + filter.setReferenceProperty(pollProperty.$alias()); + + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + setSelect(participantProperty.$alias()). + addJoin(pollProperty.pollAccount(), participantProperty.$alias(), false). + addNotNull(participantProperty.voteDate()). + addFilter(filter, participantProperty.$alias()); + + return query; + } + + @Override + public TopiaQuery createQueryFindAllParticipantsByPoll(Poll poll) { + +// String pollAlias = PollenQueryHelper.ALIAS_POLL; +// String pollAccountProperty = +// TopiaQuery.getProperty(pollAlias, Poll.PROPERTY_POLL_ACCOUNT); +// +// String listAlias = PollenQueryHelper.ALIAS_POLL_ACCOUNT; +// String listChildProperty = +// TopiaQuery.getProperty(listAlias, PollAccount.PROPERTY_CHILD); +// +// String participantAlias = PollenQueryHelper.ALIAS_POLL_ACCOUNT_CHILD; +// +// TopiaQuery query = context.createQuery(Poll.class, pollAlias). +// setSelect(participantAlias). +// addEquals(pollAlias, poll); +// +// // Manage join depends on pollType +// if (poll.getPollType().isGroup()) { +// query.addJoin(pollAccountProperty, listAlias, false). +// addJoin(listChildProperty, participantAlias, false); +// } else { +// query.addJoin(pollAccountProperty, participantAlias, false); +// } + PollenQueryHelper.PollProperty pollProperty = + PollenQueryHelper.newPollProperty(); + PollenQueryHelper.PollAccountProperty listProperty = + PollenQueryHelper.newPollAccountProperty(); + PollenQueryHelper.PollAccountProperty participantProperty = + PollenQueryHelper.newPollAccountChildProperty(); + + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + setSelect(participantProperty.$alias()). + addEquals(pollProperty.$alias(), poll); + + // Manage join depends on pollType + if (poll.getType().isGroup()) { + query.addJoin(pollProperty.pollAccount(), listProperty.$alias(), false). + addJoin(listProperty.child(), participantProperty.$alias(), false); + } else { + query.addJoin(pollProperty.pollAccount(), participantProperty.$alias(), false); + } + + return query; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountDAOImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,95 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.chorem.pollen.PollenBusinessException; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Created: 12 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class PollAccountImpl extends PollAccountAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public Collection<Participant> getParticipants() { + // for a simple account, will return null + if (!list) { + return null; + } + Collection<Participant> results = new ArrayList<Participant>(); + if (getChild() != null) { + for (PollAccount account : getChild()) { + results.add(account); + } + } + return results; + } + + @Override + public void setParticipants(Collection<Participant> participants) + throws PollenBusinessException { + if (!list) { + throw new UnsupportedOperationException( + "Unable to set participants from a child account"); + } + setChild(new ArrayList<PollAccount>()); + ParticipantHelper.setParticipants(this, participants); + } + + @Override + public String addParticipant(Participant participant) { + String name = participant.getName(); + String email = participant.getEmail(); + + String error = + ParticipantHelper.checkParticipantExist(this, name, email); + if (error != null) { + return error; + } + + PollAccount account = new PollAccountImpl(); + account.setName(name); + account.setEmail(email); + account.setWeight(participant.getWeight()); + addChild(account); + return null; + } + + @Override + public String getId() { + return getTopiaId(); + } + + @Override + public boolean getHasVoted() { + return voteDate != null; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollAccountImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,72 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.entity; + +import org.chorem.pollen.PollenQueryHelper; +import org.chorem.pollen.PollenQueryHelper.PollAccountProperty; +import org.chorem.pollen.PollenQueryHelper.PollProperty; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; + +/** + * Created: 3 juin 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class PollDAOImpl<E extends Poll> extends PollDAOAbstract<E> { + + @Override + public TopiaQuery createQueryFindAllByUser(EntityFilter filter) + throws IllegalArgumentException { + + // Filter reference is not always necessary but only used on UserAccount + filter.checkReference(UserAccount.class, false); + + PollProperty pollProperty = + PollenQueryHelper.newPollProperty(); + PollAccountProperty listProperty = + PollenQueryHelper.newPollAccountProperty(); + PollAccountProperty participantProperty = + PollenQueryHelper.newPollAccountChildProperty(); + + // participantUser is the reference to filter on if necessary + filter.setReferenceProperty(participantProperty.userAccount()); + + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + addDistinct(). + addLeftJoin(pollProperty.pollAccount(), listProperty.$alias(), false). + addFrom(PollAccount.class, participantProperty.$alias()). + addWhere(String.format( + "%1$s IN (%2$s) OR %1$s IN elements(%3$s) OR %1$s = %4$s", + participantProperty.$alias(), + listProperty.$alias(), + listProperty.child(), + pollProperty.creator()) + ). + addFilter(filter); + + return query; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollDAOImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,75 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.entity; + +import java.util.Date; + +/** + * PollImpl + * + * Created: 23 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PollImpl extends PollAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public Choice addNewChoice(String name, String description) { + // check exist + Choice choice = new ChoiceImpl(); + choice.setName(name); + choice.setDescription(description); + choice.setType(getChoiceType()); + addChoice(choice); + return choice; + } + + @Override + public boolean isStarted() { + //FIXME : tc-2012-01-19 See if this does cause problem... +// Date now = PollenUtils.getCurrentDate(); + Date now = new Date(); + return getBeginDate() == null || getBeginDate().before(now); + } + + @Override + public boolean isFinished() { + //FIXME : tc-2012-01-19 See if this does cause problem... +// Date now = PollenUtils.getCurrentDate(); + Date now = new Date(); + return getEndDate() != null && getEndDate().before(now); + } + + @Override + public boolean isRunning() { + return isStarted() && !isFinished() && !isClosed(); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/PollImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,83 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.entity; + +import org.apache.commons.lang.StringUtils; + +/** + * UserAccountImpl + * + * Created: 30 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class UserAccountImpl extends UserAccountAbstract { + + private static final long serialVersionUID = 1L; + + protected String newPassword; + + /** + * Get the value of newPassword + * + * @return the value of newPassword + */ + @Override + public String getNewPassword() { + return newPassword; + } + + /** + * Set the value of newPassword + * + * @param newPassword new value of newPassword + */ + @Override + public void setNewPassword(String newPassword) { + this.newPassword = newPassword; + } + + @Override + public String getDisplayName() { + String name = ""; + String separator = ""; + if (StringUtils.isNotEmpty(getFirstName())) { + name += getFirstName(); + separator = " "; + } + if (StringUtils.isNotEmpty(getLastName())) { + name += separator + getLastName(); + } + if (StringUtils.isEmpty(name)) { + name = getLogin(); + } + return name; + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/UserAccountImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/VoteImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/VoteImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/VoteImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,47 @@ +/* + * #%L + * Pollen :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.entity; + +/** + * VoteImpl + * + * Created: 23 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class VoteImpl extends VoteAbstract { + + private static final long serialVersionUID = 1L; + + @Override + public boolean canUpdateVote(PollAccount person) { + throw new UnsupportedOperationException("Not supported yet."); + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/java/org/chorem/pollen/entity/VoteImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_en_GB.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_en_GB.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_en_GB.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,13 @@ +pollen.exception.favorite_list_name_exist= +pollen.exception.participant_doubloons= +pollen.exception.participant_exist= +pollen.exception.participant_exist_without_email= +pollen.exception.poll_exist= +pollen.exception.poll_not_exist=No such poll exists. Please make sure that you are using the correct link and copy it completely into your browser's address field. +pollen.exception.smtp_not_available= +pollen.exception.user_email_exist= +pollen.exception.user_login_exist= +pollen.exception.user_not_exist= +pollen.exception.user_wrong_password= +pollen.exception.vote_doubloon= +pollen.exception.vote_not_allowed= Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_en_GB.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_fr_FR.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_fr_FR.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_fr_FR.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,13 @@ +pollen.exception.favorite_list_name_exist=La liste %1$s existe déjà pour l'utilisateur %2$s +pollen.exception.participant_doubloons=Les doublons de la liste %1$s ont été ignorés \: %2$s +pollen.exception.participant_exist=La liste %1$s contient déjà un votant nommé %2$s avec un email %3$s +pollen.exception.participant_exist_without_email=La liste %1$s contient déjà un votant nommé %2$s avec aucun email +pollen.exception.poll_exist= +pollen.exception.poll_not_exist=Il n'y a pas de sondage à cette adresse. Veuillez verifier que vous utilisez le lien correcte et copiez-le complètement dans le champ d'adresse de votre navigateur. +pollen.exception.smtp_not_available=Impossible d'envoyer un email à %1$s. Serveur smtp indisponible pour l'envoi d'email, veuillez contacter un administrateur. +pollen.exception.user_email_exist=Un utilisateur est déjà enregistré avec cet email. +pollen.exception.user_login_exist=Un utilisateur est déjà enregistré avec cet identifiant. +pollen.exception.user_not_exist=L'identifiant '%1$s' ne correspond à aucun utilisateur connu. +pollen.exception.user_wrong_password=Le mot de passe renseigné est incorrect pour l'utilisateur '%1$s'. +pollen.exception.vote_doubloon= +pollen.exception.vote_not_allowed= Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/resources/i18n/pollen-persistence_fr_FR.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,55 @@ +### +# #%L +# Pollen :: Persistence +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +# Pr\u00e9cise l'ent\u00eate de l'ensemble des fichiers g\u00e9n\u00e9r\u00e9s +model.tagvalue.copyright=/* *##%\n Copyright (C) 2009 Pollen\n *##%*/ +# toString are particularly difficult to use because of lazy initialization +model.tagvalue.notGenerateToString=true +#model.tagvalue.useLegacyDAO=true +#model.tagvalue.dbSchema=Pollen +# +model.tagvalue.constantPrefix=PROPERTY_ + +model.tagvalue.java.lang.String=text +model.tagvalue.exceptionClass=org.chorem.pollen.PollenException + +org.chorem.pollen.entity.UserAccount.attribute.login.tagvalue.naturalId=true +org.chorem.pollen.entity.UserAccount.attribute.email.tagvalue.unique=true + +org.chorem.pollen.entity.PollAccount.attribute.uid.tagvalue.naturalId=true + +#org.chorem.pollen.entity.Vote.attribute.choice.tagvalue.lazy=false + +org.chorem.pollen.entity.FavoriteList.attribute.userAccount.tagvalue.naturalId=true +org.chorem.pollen.entity.FavoriteList.attribute.name.tagvalue.naturalId=true + +org.chorem.pollen.entity.FavoriteParticipant.class.tagvalue.naturalIdMutable=true +org.chorem.pollen.entity.FavoriteParticipant.attribute.favoriteList.tagvalue.naturalId=true +org.chorem.pollen.entity.FavoriteParticipant.attribute.name.tagvalue.naturalId=true +org.chorem.pollen.entity.FavoriteParticipant.attribute.email.tagvalue.naturalId=true +org.chorem.pollen.entity.FavoriteParticipant.attribute.email.tagvalue.notNull=false + +org.chorem.pollen.entity.Poll.attribute.uid.tagvalue.naturalId=true +org.chorem.pollen.entity.Poll.attribute.creator.tagvalue.lazy=false + +org.chorem.pollen.entity.Vote.attribute.choice.tagvalue.lazy=false Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.zargo =================================================================== (Binary files differ) Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/main/xmi/pollen.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:keywords + Author Date Id Revision HeadURL Added: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/PollenTest.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/PollenTest.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/PollenTest.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,35 @@ +### +# #%L +# Pollen :: Persistence +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +hibernate.hbm2ddl.auto=create +hibernate.show_sql=true +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:target/test-base/pollen + +adminLogin=admin +adminPassword=admin + +pollen.emails.directory=target/test-emails Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/PollenTest.properties ___________________________________________________________________ Added: svn:executable + * Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/largemaillist.sh =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/largemaillist.sh (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/largemaillist.sh 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,26 @@ +### +# #%L +# Pollen :: Business +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +#!/bin/sh + +for i in `seq 0 3000`; do echo "\"Test $i\",\"toto+pollen+$i@domain.com\",1" >> test3000.csv; done Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/largemaillist.sh ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/log4j.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/log4j.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/log4j.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,37 @@ +### +# #%L +# Pollen :: Persistence +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +# Default to info level output; this is very handy if you eventually use Hibernate as well. +log4j.rootCategory=warn, A1 + +# A1 is set to be a ConsoleAppender. +log4j.appender.A1=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d [%p] %c{2} %m%n + +log4j.logger.org.chorem.pollen=debug + +log4j.logger.org.chorem.pollen.business.PollenContextImpl=warn +log4j.logger.org.chorem.pollen.business.services.SendMail=warn Property changes on: branches/pollen-2.0-beta-1/pollen-persistence/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-services ___________________________________________________________________ Added: svn:ignore + target *.ipr *.iws *.iml *.log Added: branches/pollen-2.0-beta-1/pollen-services/LICENSE.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/LICENSE.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/LICENSE.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. Property changes on: branches/pollen-2.0-beta-1/pollen-services/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/README.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/README.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/README.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,5 @@ +POLLEN BUSINESS +--------------- + +Pollen Business est le module qui assure la partie m�tier de Pollen. +Il g�re la persistence des donn�es en base et d�fini des services. Property changes on: branches/pollen-2.0-beta-1/pollen-services/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/changelog.txt =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/changelog.txt (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/changelog.txt 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,4 @@ +ChangeLog + +1.0.0 +- initiale release Property changes on: branches/pollen-2.0-beta-1/pollen-services/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/pom.xml (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> + + <parent> + <groupId>org.chorem</groupId> + <artifactId>pollen</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> + + <groupId>org.chorem.pollen</groupId> + <artifactId>pollen-services</artifactId> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pollen-domain</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pollen-persistence</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-email</artifactId> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton.i18n</groupId> + <artifactId>nuiton-i18n</artifactId> + </dependency> + <dependency> + <groupId>net.sf.opencsv</groupId> + <artifactId>opencsv</artifactId> + </dependency> + <!-- <dependency> + <groupId>org.chorem</groupId> + <artifactId>chorem-commons</artifactId> + </dependency>--> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + </dependency> + <!--dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-service-migration</artifactId> + </dependency--> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>test</scope> + </dependency> + <!--dependency> + <groupId>postgresql</groupId> + <artifactId>postgresql</artifactId> + </dependency--> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> + </dependencies> + + <!-- ************************************************************* --> + <!-- *** Project Information ************************************* --> + <!-- ************************************************************* --> + + <name>Pollen :: Services</name> + <description>Pollen Service Layer</description> + + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-plugin</artifactId> + <executions> + <execution> + <!--configuration> + <entries> + <entry> + <basedir>${maven.gen.dir}/java</basedir> + </entry> + </entries> + </configuration--> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> + Property changes on: branches/pollen-2.0-beta-1/pollen-services/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/license/THIRD-PARTY.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/license/THIRD-PARTY.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/license/THIRD-PARTY.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,25 @@ +# Generated by org.nuiton.license.plugin.AddThirdPartyMojo +#------------------------------------------------------------------------------- +# Already used licenses in project : +# - Apache 2 +# - BSD License +# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +# - Common Development and Distribution License (CDDL) v1.0 +# - Common Public License Version 1.0 +# - GNU Lesser General Public License +# - Lesser General Public License (LGPL) v 2.1 +# - Lesser General Public License (LGPL) v 3.0 +# - MIT License +# - The Apache Software License, Version 2.0 +# - The H2 License, Version 1.0 +#------------------------------------------------------------------------------- +# Please fill the missing licenses for dependencies : +# +# +#Sun Nov 21 23:38:07 CET 2010 +antlr--antlr--2.7.6--jar=BSD License +commons-primitives--commons-primitives--1.0--jar=The Apache Software License, Version 2.0 +dom4j--dom4j--1.6.1--jar=BSD License +javassist--javassist--3.8.0.GA--jar=Lesser General Public License (LGPL) v 2.1 +javax.transaction--jta--1.1--jar=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +org.jdom--jdom--1.1--jar=Lesser General Public License (LGPL) v 3.0 Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/license/THIRD-PARTY.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContext.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContext.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContext.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,150 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import java.util.Date; +import org.chorem.pollen.service.legacy.ServiceUser; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.util.ApplicationConfig; + + +public interface PollenContext { + + /** + * loadConfiguration : + * Load the application configuration : + * <pre> + * - Add entities implementation classes for Topia-persistence + * - Add model version for Topia-migration-service + * </pre> + * @param config ApplicationConfig + */ + void loadConfiguration(ApplicationConfig config); + + /** + * start : + * 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> + * @param serviceUser to manage default admin if needed + */ + void start(ServiceUser serviceUser); + + /** + * stop : + * Stop the application. Close the Topia rootContext. + */ + void stop(); + + /** + * getProperty : + * Get a property from the configuration. + * @param property PollenProperty + * @return String + */ + String getProperty(PollenProperty property); + + /** + * hasProperty : + * Test if the property is defined in this context + * @param property PollenProperty + * @return boolean + */ + boolean hasProperty(PollenProperty property); + + /** + * getConfiguration : + * Get the configuration of the application. Instantiate the default one + * if needed. + * @return ApplicationConfig + */ + ApplicationConfig getConfiguration(); + + /** + * getCurrentDate : + * Return the current date from context + * @return Date + */ + Date getCurrentDate(); + + /** + * encodePassword : + * @param password + * @return String + */ + String encodePassword(String password); + + /** + * createPollenUrlId : + * Create a unique UId for entities which need it (PollAccount, Poll). + * This UId represent the entity in UI module. + * @return String + */ + String createPollenUrlId(); + + /** + * beginTransaction : + * @return TopiaContext + * @throws TopiaException + */ + TopiaContext beginTransaction() throws TopiaException; + + /** + * doCatch : + * @param eee + * @param message + * @param args + * @throws PollenException + */ + void treateError(Exception eee, String message, Object... args) + throws PollenException; + + /** + * doCatch : + * @param transaction + * @param eee + * @param message + * @param args + * @throws PollenException + */ + void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException; + + /** + * doFinally : + * @param transaction + */ + void closeTransaction(TopiaContext transaction); + + public EntityFilter getNewFilter(); + +} //PollenContext Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContext.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContextImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContextImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContextImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,405 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen; + +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.entity.UserAccount; +import org.chorem.pollen.service.legacy.ServiceUser; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaContextFactory; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaFilter; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ArgumentsParserException; +import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.n_; + +import org.nuiton.topia.TopiaNotFoundException; +import org.nuiton.util.StringUtil; + +/** + * PollenContext + * + * Created: 24 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PollenContextImpl implements PollenContext { + + /** log. */ + private static final Log log = LogFactory.getLog(PollenContextImpl.class); + + public static final String DEFAULT_FILENAME = "pollen.properties"; + + private ApplicationConfig configuration; + + private Date currentDate; + +// private SendMail sendMail; + + /** Conversion service for services **/ +// private PollenConverter converter; + + /** + * 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 void loadDefaultConfiguration() { + try { + if (log.isInfoEnabled()) { + log.info("load default configuration from " + + PollenContextImpl.DEFAULT_FILENAME); + } + ApplicationConfig conf = new ApplicationConfig(); + conf.setConfigFileName(PollenContextImpl.DEFAULT_FILENAME); + conf.parse(new String[]{}); + + conf.printConfig(); + + loadConfiguration(conf); + } catch (ArgumentsParserException eee) { + treateError(eee, n_("pollen.error.context.parse"), + PollenContextImpl.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 + */ + @Override + public void loadConfiguration(ApplicationConfig conf) { + configuration = conf; + configuration.setOption("topia.persistence.classes", + PollenDAOHelper.getImplementationClassesAsString()); +// configuration.setOption("topia.service.migration.version", +// PollenDAOHelper.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> + * + */ + @Override + public void start(ServiceUser serviceUser) { + try { +// I18n.init(new DefaultI18nInitializer("pollen-business"), null); + I18n.init(null, null); + + if (log.isInfoEnabled()) { + log.info(_("pollen.info.start")); + } + + // Set context in PollenProperty enum to use easily method + // getValue() on PollenProperty + PollenProperty.setContext(this); + PollenUtils.setContext(this); + + createSuperAdmin(serviceUser); +// +// sendMail = new SendMail(this); +// sendMail.start(); + + if (log.isInfoEnabled()) { + log.info(_("pollen.info.started")); + } + + } catch (Exception eee) { + treateError(eee, n_("pollen.error.context.start")); + } + } + + /** + * Create the super admin if needed using {@code serviceUser}. + * The login, password and email are defined from configuration (in + * properties file). + * + * @param serviceUser used to create the admin user + * @see PollenProperty#ADMIN_EMAIL + * @see PollenProperty#ADMIN_LOGIN + * @see PollenProperty#ADMIN_PASSWORD + */ + protected void createSuperAdmin(ServiceUser serviceUser) { + UserAccount user = serviceUser.getNewUser(); + user.setAdmin(true); + String login = PollenProperty.ADMIN_LOGIN.getValue(); + user.setLogin(login); + user.setEmail(PollenProperty.ADMIN_EMAIL.getValue()); + user.setNewPassword(PollenProperty.ADMIN_PASSWORD.getValue()); + try { + serviceUser.createUser(user); + if (log.isInfoEnabled()) { + log.info(_("pollen.info.admin.created", login)); + } + } catch (PollenBusinessException eee) { + if (log.isInfoEnabled()) { + log.info(_("pollen.info.admin.exists") + " : " + + _(eee.getMessage())); + } + } + } + + /** + * Stop the application. Close the Topia rootContext. + */ + @Override + public void stop() { + try { + if (log.isDebugEnabled()) { + log.debug(_("pollen.info.stop")); + } + getTopiaRootContext().closeContext(); +// sendMail.stopExec(); + } catch (Exception eee) { + treateError(eee, n_("pollen.error.context.stop")); + } + } + +// @Override +// public SendMail getSendMail() { +// return sendMail; +// } + + /** + * Get a property from the configuration. + * + * @param property PollenProperty + * @return value of this property + */ + @Override + public String getProperty(PollenProperty property) { + return getConfiguration().getOption(property.getKey()); + } + + /** + * Test if the property is defined in this context + * + * @param property PollenProperty + * @return value of this property + */ + @Override + public boolean hasProperty(PollenProperty property) { + return !getProperty(property).equals(""); + } + + /** + * Get a property from the configuration. + * + * @param key of the property + * @return value of this property + * @throws PollenBusinessException + */ + public String getProperty(String key) { + return getConfiguration().getOption(key); + } + + /** + * Get all properties from the configuration + * + * @return the Properties of the application + * @throws PollenBusinessException + */ + public Properties getProperties() { + return getConfiguration().getOptions(); + } + + /** + * Get the configuration of the application. + * + * @return the ApplicationConfig + */ + @Override + public ApplicationConfig getConfiguration() { + if (configuration == null) { + loadDefaultConfiguration(); + } + return configuration; + } + + /** + * Get the Topia rootContext. + * + * @return the main TopiaContext needed to begin new transaction + * @throws PollenException + * @throws PollenBusinessException + */ + public TopiaContext getTopiaRootContext() { + try { + return TopiaContextFactory.getContext(getProperties()); + } catch (TopiaNotFoundException eee) { + treateError(eee, n_("pollen.error.context.getRootContext")); + } + return null; + } + + @Override + public TopiaContext beginTransaction() throws TopiaException { + return getTopiaRootContext().beginTransaction(); + } + +// @Override +// public PollenConverter getConverter() { +// if (converter == null) { +// converter = new PollenConverter(); +// } +// return converter; +// } + + /** + * 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 + * @param args for message + * @throws PollenException which contains the exception as the cause + */ + @Override + public void treateError(Exception eee, String message, Object... args) + throws PollenException { + treateError(null, eee, message, args); + } + + /** + * 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 transaction the current TopiaContext + * @param eee the exception to manage + * @param message the message to add to the new PollenException + * @param args for message + * @throws PollenException + */ + @Override + public void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + if (log.isErrorEnabled()) { + log.error(_(message, args), 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); + } + } + } + throw new PollenException(message, eee, args); + } + + /** + * Close current TopiaContext. + * Used in finally statement in services. + * + * @param transaction current TopiaContext + */ + @Override + public void closeTransaction(TopiaContext transaction) { + if (transaction != null) { + try { + transaction.closeContext(); + //stop(); + } 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 + */ + @Override + public String createPollenUrlId() { + return UUID.randomUUID().toString().replaceAll("-", ""); + } + + @Override + public Date getCurrentDate() { + if (currentDate != null) { + return currentDate; + } + return new Date(); + } + + /** + * Set the current date in context. Used for test + * + * @param currentDate to set in the context + */ + public void setCurrentDate(Date currentDate) { + this.currentDate = currentDate; + } + + @Override + public String encodePassword(String password) { +// try { + return StringUtil.encodeMD5(password); +// } catch (NoSuchAlgorithmException eee) { +// treateError(eee, n_("pollen.error.encodePassword")); +// } +// return null; + } + + @Override + public EntityFilter getNewFilter() { + return new TopiaFilter(); + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenContextImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenProperty.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenProperty.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenProperty.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,96 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen; + +/** + * PollenProp + * + * Created: 25 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public enum PollenProperty { + /** version of the application **/ + APP_VERSION("version"), + /** + * url of the server + * @deprecated don't need to use it from properties file. Will be analysing + * from url in ui module. + */ + @Deprecated + 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"), + /** directory to store emails before sending them **/ + EMAIL_DIR("pollen.emails.directory"), + /** path for feed directory **/ + FEED_DIR("feedDir"), + /** path for uploaded images directory **/ + IMG_DIR("upImgDir"), + /** nb votes to display per page **/ + NB_VOTES_PER_PAGE("pollen.ui.nbVotesPerPage"), + /** Charset of Pollen **/ + CHARSET("pollen.charset"); + + private String key; + + private static PollenContext context; + + PollenProperty(String key) { + this.key = key; + } + + public String getKey() { + return key; + } + + static void setContext(PollenContext cx) { + context = cx; + } + + public String getValue() { + return context.getProperty(this); + } + + public boolean hasValue() { + return !getValue().equals(""); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenProperty.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenUtils.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenUtils.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenUtils.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,45 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen; + +import java.util.Date; + +/** + * Created: 21 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class PollenUtils { + + private static PollenContext context; + + public static void setContext(PollenContext context) { + PollenUtils.context = context; + } + + public static Date getCurrentDate() { + return context.getCurrentDate(); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/PollenUtils.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/PollenEmail.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/PollenEmail.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/PollenEmail.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,173 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.bean; + +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.mail.EmailException; +import org.apache.commons.mail.SimpleEmail; +import org.chorem.pollen.PollenProperty; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.io.Serializable; + +public class PollenEmail implements Serializable { + + private static final long serialVersionUID = 3761968478348849766L; + + public static final String PROPERTY_HOST = "host"; + + public static final String PROPERTY_PORT = "port"; + + public static final String PROPERTY_FROM = "from"; + + public static final String PROPERTY_TO = "to"; + + public static final String PROPERTY_SUBJECT = "subject"; + + public static final String PROPERTY_CONTENT = "content"; + + protected String host; + + protected Integer port; + + protected String from; + + protected String to; + + protected String subject; + + protected String content; + + protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + + public SimpleEmail createSimpleEmail(String charset) throws EmailException { + SimpleEmail result = new SimpleEmail(); + result.setHostName(getHost()); + result.setSmtpPort(getPort()); + result.setFrom(getFrom()); + result.addTo(getTo()); + result.setSubject(getSubject()); + result.setMsg(getContent()); + result.setCharset(charset); + return result; + } + + @Override + public String toString() { + String result = new ToStringBuilder(this) + .append("host", host) + .append("port", port) + .append("from", from) + .append("to", to) + .append("subject", subject). + toString(); + return result; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + String oldValue = getHost(); + this.host = host; + firePropertyChange(PROPERTY_HOST, oldValue, host); + } + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + Integer oldValue = getPort(); + this.port = port; + firePropertyChange(PROPERTY_PORT, oldValue, port); + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + String oldValue = getFrom(); + this.from = from; + firePropertyChange(PROPERTY_FROM, oldValue, from); + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + String oldValue = getTo(); + this.to = to; + firePropertyChange(PROPERTY_TO, oldValue, to); + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + String oldValue = getSubject(); + this.subject = subject; + firePropertyChange(PROPERTY_SUBJECT, oldValue, subject); + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + String oldValue = getContent(); + this.content = content; + firePropertyChange(PROPERTY_CONTENT, oldValue, content); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.removePropertyChangeListener(propertyName, listener); + } + + protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { + pcs.firePropertyChange(propertyName, oldValue, newValue); + } + + protected void firePropertyChange(String propertyName, Object newValue) { + firePropertyChange(propertyName, null, newValue); + } + +} //PollenEmail Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/PollenEmail.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/UserPoll.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/UserPoll.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/UserPoll.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,126 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.bean; + +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class UserPoll implements Serializable { + + private static final long serialVersionUID = 7293352208965578801L; + + public static final String PROPERTY_POLL = "poll"; + + public static final String PROPERTY_ACCOUNTS = "accounts"; + + public static final String PROPERTY_CREATOR = "creator"; + + protected Boolean creator; + + protected Poll poll; + + protected List<PollAccount> accounts; + + protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + + public boolean isCreator() { + // Lazy initialization of creator boolean + if (creator == null) { + for (PollAccount account : accounts) { + if (account.equals(poll.getCreator())) { + creator = true; + break; + } + } + if (creator == null) { + creator = false; + } + } + return creator; + } + + public String getPollUid() { + return poll.getUid(); + } + + public List<PollAccount> getAccounts() { + if (accounts == null) { + accounts = new ArrayList<PollAccount>(); + } + return accounts; + } + + public boolean addAccount(PollAccount account) { + boolean result = getAccounts().add(account); + return result; + } + + public Poll getPoll() { + return poll; + } + + public void setPoll(Poll poll) { + Poll oldValue = getPoll(); + this.poll = poll; + firePropertyChange(PROPERTY_POLL, oldValue, poll); + } + + + public void setAccounts(List<PollAccount> accounts) { + List<PollAccount> oldValue = getAccounts(); + this.accounts = accounts; + firePropertyChange(PROPERTY_ACCOUNTS, oldValue, accounts); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.removePropertyChangeListener(propertyName, listener); + } + + protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { + pcs.firePropertyChange(propertyName, oldValue, newValue); + } + + protected void firePropertyChange(String propertyName, Object newValue) { + firePropertyChange(propertyName, null, newValue); + } + +} //UserPoll Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/bean/UserPoll.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,51 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +/* *##% 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.mail; + +/** + * Service lancé en parallèle de l'application. Ce service permet d'effectuer + * des actions en arrière-plan. + * + * @author rannou + * @version $Id$ + */ +public interface BackgroundWorker { + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorker.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,192 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +/* *##% 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.mail; + +import java.util.Date; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenProperty; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.service.legacy.ServicePoll; + +/** + * Implémentation du service BackgroundWorker. + * + * @author rannou + * @version $Id$ + */ +public class BackgroundWorkerImpl implements BackgroundWorker { + + /** Timer gérant les threads. */ + private Timer timer; + + /** log. */ + private static final Log log = LogFactory + .getLog(BackgroundWorkerImpl.class); + + /** Messages internationalisés **/ +// private final Messages messages; + + /** Injection du service de gestion de sondages. */ + private ServicePoll servicePoll; + + private PollenContext context; + + /** + * Constructeur exécuté au lancement de l'application. + * @param servicePoll + * @param context + */ + public BackgroundWorkerImpl( + ServicePoll servicePoll, PollenContext context) { + this.context = context; +// this.messages = messages; + this.servicePoll = servicePoll; + + timer = new Timer(); + executeTasks(); + } + + /** + * Lancement des tâches en arrière-plan. + */ + public void executeTasks() { + if (!context.hasProperty(PollenProperty.SERVER_URL)) { + log.warn("No property siteUrl. Reminder emails would not contain it"); + } + + // Exécution de la tâche toutes les 10 min + timer.schedule(new MailingTask(), 600000, 600000); + } + + /** + * Tâche gérant l'envoi de mails de rappels. + */ + private class MailingTask extends TimerTask { + + @Override + public void run() { + if (log.isDebugEnabled()) { + log.debug("MailingTask running..."); + } + + // Récupération des sondages en cours + List<Poll> polls = servicePoll.getRunningPolls(); + + for (Poll poll : polls) { + Date now = new Date(); + + // Parcours des preventRules de chaque sondage + // envoi d'un email si endDate-nowDate <= preventRuleSensibility + if (poll.getEndDate() != null) { + + // timeValue = endDate-nowDate + Long timeValue = poll.getEndDate().getTime() + - now.getTime(); + + if (log.isDebugEnabled()) { + log.debug("Now: " + now.getTime() + " End: " + + poll.getEndDate().getTime() + " timeValue: " + + timeValue + "(" + timeValue / 3600000 + "h)"); + } + + // envoi des mails avec une sensibilité de l'ordre de l'heure + sendMailNotification(poll, timeValue / 3600000); + } + } + } + } + + /** + * Envoi du mail de notification. + * + * @param poll sondage concerné + */ + private void sendMailNotification(Poll poll, Long timeValue) { + // FIXME : create ServiceMail + +// String voteURL = context.getProperty(PollenProperty.SERVER_URL) + +// "/poll/VoteFor/" + poll.getPollUId(); +// Map<String, String> data = new HashMap<String, String>(); +// data.put("host", context.getProperty(PollenProperty.EMAIL_HOST)); +// data.put("port", context.getProperty(PollenProperty.EMAIL_PORT)); +// data.put("from", context.getProperty(PollenProperty.EMAIL_FROM)); +// +// // Mails aux votants +// for (PreventRule rule : poll.getPreventRule()) { +// if (rule.getActive()) { +// Boolean hasRun = false; +// PreventRuleManager manager = new PreventRuleManager(rule); +// for (VotingListDTO list : poll.getVotingListDTOs()) { +// for (PollAccountDTO account : list.getPollAccountDTOs()) { +// if (account.getEmail() != null) { +// String accountVoteURL = voteURL + ":" +// + account.getAccountUId(); +// +// data.put("to", account.getEmail()); +// data.put("title", messages.format( +// "reminderEmail_subject", poll.getTitle())); +// data.put("msg", messages.format( +// "reminderEmail_msg", poll.getTitle(), +// account.getVotingId(), accountVoteURL)); +// +// // Exécution de la règle avec une valeur +1 +// // Sensibilité de 2h : 2h05 KO, 1h55 OK +// hasRun = manager.execute("rappel", timeValue +// .intValue() + 1, data); +// } +// } +// } +// +// // désactivation de la règle de rappel pour éviter qu'elle soit réexécutée +// if (hasRun) { +// rule.setActive(false); +// ServicePreventRule spr = new ServicePreventRuleImpl((PollenContextImplementor)context); +// spr.updatePreventRule(rule); +// } +// } +// } + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/BackgroundWorkerImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/MailUtil.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/MailUtil.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/MailUtil.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,99 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +/* *##% 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.mail; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.commons.mail.EmailException; +import org.apache.commons.mail.SimpleEmail; +import org.chorem.pollen.service.legacy.ServiceEmail; + +/** + * Classe permettant d'envoyer des mails. Basée sur {@link SimpleEmail} (commons-email). + * + * @author rannou + * @version $Id$ + */ +public class MailUtil { + + /** log. */ + private static final Log log = LogFactory.getLog(MailUtil.class); + + /** + * Envoi d'un email. + * + * @param host Nom du serveur + * @param port Port SMTP + * @param from Adresse email de l'expéditeur + * @param to Adresse email du destinataire + * @param subject Sujet + * @param msg Message + * @deprecated use {@link ServiceEmail#sendEmail(org.chorem.pollen.bean.PollenEmail)} + */ + @Deprecated + public static void sendMail(String host, int port, String from, String to, + String subject, String msg) { + SimpleEmail email = new SimpleEmail(); + try { + email.setHostName(host); + email.setSmtpPort(port); + email.setFrom(from); + email.addTo(to); + email.setSubject(subject); + email.setMsg(msg); + email.setCharset("UTF-8"); + email.send(); + } catch (EmailException e) { + log.error("Erreur à l'envoi d'email", e); + } + + if (log.isInfoEnabled()) { + log.info("Mail sent to : " + to); + + if (log.isDebugEnabled()) { + log.debug("Détail de l'email : " + "\ndate: " + email.getSentDate() + + "\nhostname: " + email.getHostName() + "\nport: " + + email.getSmtpPort() + "\nfrom: " + + email.getFromAddress().toString() + "\nto: " + to + + "\nsubject: " + email.getSubject()); + } + } + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/MailUtil.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,229 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +/* *##% 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.mail; + +import org.chorem.pollen.bean.PollenEmail; + +import java.lang.reflect.Method; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.entity.PreventRule; + +/** + * Classe de gestion des règles de notification. Cette classe exécute des + * méthodes en fonction de la règle définie. + * + * @author rannou + * @version $Id$ + */ +public class PreventRuleManager { + + /** log. */ + private static final Log log = LogFactory.getLog(PreventRuleManager.class); + + /** Représente l'action qui ne fait rien. */ + public static final String NULL_ACTION = "nullAction"; + /** Représente l'action qui écrit sur la sortie standard. */ + public static final String PRINT_ACTION = "printAction"; + /** Représente l'action qui envoi un email de notification. */ + public static final String EMAIL_ACTION = "emailAction"; + + private PreventRule preventRule = null; + + /** + * Constructeur. + * + * @param preventRule règle à utiliser + */ + public PreventRuleManager(PreventRule preventRule) { + this.preventRule = preventRule; + } + + /** + * Exécution de la méthode définie par la règle. La méthode s'exécute sans + * prise en compte de la sensibilité de la règle. + */ + public boolean execute() { + return execute(null, null, null); + } + + /** + * Exécution de la méthode définie par la règle. La méthode s'exécute si la + * valeur correspond à la sensibilité de la règle. + * + * @param value valeur conditionnant l'exécution de la règle. + */ + public boolean execute(Integer value) { + return execute(null, value, null); + } + + /** + * Exécution de la méthode définie par la règle. La méthode s'exécute si la + * portée est égale à la portée de la règle. + * + * @param scope portée de la règle. + */ + public boolean execute(String scope) { + return execute(scope, null, null); + } + + /** + * Exécution de la méthode définie par la règle. La méthode s'exécute si la + * valeur correspond à la sensibilité de la règle et si la portée est égale + * à la portée de la règle. + * + * @param scope portée de la règle. + * @param value valeur conditionnant l'exécution de la règle. + */ + public boolean execute(String scope, Integer value) { + return execute(scope, value, null); + } + + /** + * Exécution de la méthode définie par la règle. La méthode s'exécute si la + * valeur correspond à la sensibilité de la règle et si la portée est égale + * à la portée de la règle. + * + * @param scope portée de la règle. + * @param value valeur conditionnant l'exécution de la règle. + * @param data données utiles pour l'exécution de la règle. + * @return true si la méthode à été exécutée, false sinon. + */ + public boolean execute(String scope, Integer value, Object data) { + + // Si la règle n'est pas active, on ne fait rien + if (!preventRule.getActive()) { + log.debug("Règle non active"); + return false; + } + + // Si la règle est à exécution unique, on la désactive + if (preventRule.getOneTime()) { + log.debug("Règle à exécution unique : désactivation"); + preventRule.setActive(false); + } + + // Si la règle est répétitive (exécution tous les n), on met à jour la valeur + if (value != null && preventRule.getRepeated() + && preventRule.getSensibility() != 0) { + value = value % preventRule.getSensibility() + + preventRule.getSensibility(); + } + + try { + if ((value == null || value == preventRule.getSensibility()) + && (scope == null || scope.equals(preventRule.getScope()))) { + if (log.isDebugEnabled()) { + log.debug("méthod " + preventRule.getMethod() + "(scope : " + + preventRule.getScope() + ", sensibility : " + + preventRule.getSensibility() + ")"); + } + + Method method = this.getClass().getMethod( + preventRule.getMethod(), Object.class); + method.invoke(this, data); + } else { + return false; + } + } catch (Exception e) { + log.error("Erreur lors de l'appel de la méthode " + + preventRule.getMethod(), e); + return false; + } + return true; + } + + /** + * Action qui ne fait rien. + * + * TODO set this method to protected + */ + public static void nullAction(Object data) { + // ne fait rien + } + + /** + * Action qui écrit sur la sortie standard. + * + * TODO set this method to protected + */ + public static void printAction(Object data) { + String message = ""; + if (data instanceof String) { + message = (String) data; + } + System.out.println("printAction : " + message); + } + + /** + * Action qui envoi un email de notification. + * + * @param data mail data + * + * TODO set this method to protected + */ + public static void emailAction(Object data) { + Map<String, String> fields = null; + if (data instanceof Map<?, ?>) { + fields = (Map<String, String>) data; + MailUtil.sendMail(fields.get("host"), Integer.parseInt(fields + .get("port")), fields.get("from"), fields.get("to"), fields + .get("title"), fields.get("msg")); + } + else { + if (log.isWarnEnabled()) { + log.warn("emailAction data parameter is not instance of Map"); + } + } + } + + public static void emailAction(PollenEmail mail) { + MailUtil.sendMail( + mail.getHost(), + mail.getPort(), + mail.getFrom(), + mail.getTo(), + mail.getSubject(), + mail.getContent() + ); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/PreventRuleManager.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/SendMail.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/SendMail.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/SendMail.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,281 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +/* *##% 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.mail; + +import java.io.BufferedOutputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.util.List; +import java.util.Map; + +import org.apache.commons.io.FileUtils; +import org.nuiton.util.FileUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import au.com.bytecode.opencsv.CSVReader; +import au.com.bytecode.opencsv.CSVWriter; +import org.apache.commons.io.IOUtils; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenProperty; + +/** + * Mass mail management class. + * + * This class store email to send in a csv file, and send it (one per second) in + * a second time. + * This class can restart to send mail at application restart. + * + * For a mass mail sending to start, following files must be present: + * <ul> + * <li>xxx.mail : CSV file ("email", "subject", "body")</li> + * <li>xxx.index : next index to manage ( inited at 0)</li> + * </ul> + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SendMail extends Thread { + + /** logger. */ + private static final Logger log = LoggerFactory.getLogger(SendMail.class); + + protected PollenContext context; + + public static final String EXTENSION_MAIL = ".mail"; + public static final String EXTENSION_INDEX = ".index"; + + /** Mail storage directory. */ + protected File mailStorageDirectory; + + protected volatile boolean stop; + + public SendMail(PollenContext context) { + this.context = context; + if (log.isInfoEnabled()) { + log.info("P:[ SendMail ] init"); + } + // get email directory in configuration + // create it if not exists + String filename = context.getProperty(PollenProperty.EMAIL_DIR); + mailStorageDirectory = new File(filename); + if (!mailStorageDirectory.exists()) { + if (mailStorageDirectory.mkdirs()) { + if (log.isDebugEnabled()) { + log.debug("Email storage directory created in : " + mailStorageDirectory.getAbsolutePath()); + } + } + } + } + + public synchronized void stopExec() { + stop = true; + } + + /* + * @see java.lang.Runnable#run() + */ + @Override + public void run() { + if (log.isInfoEnabled()) { + log.info("P:[ SendMail ] start"); + } + + // try to find existing files + while (!stop) { + try { + sendAllMails(); + + // bloque thread until next notify + sleep(); + } + catch (Exception ex) { + if (log.isErrorEnabled()) { + log.error("Error during SendMail main loop", ex); + } + } + } + } + + protected synchronized void sleep() throws InterruptedException { + wait(); + } + + public synchronized void wakeUp() { + notifyAll(); + } + + /** + * Look for all xx.index file, and restart mail sending on + * non ending mass mail sending. + * + * After execution, delete mail and index file. + * @throws IOException + */ + protected void sendAllMails() throws IOException { + + // don't do for, allways take the first found + // a new one can be created when managing one other + List<File> indexFiles = null; + do { + + // filter is java valid : .*\\.index + indexFiles = FileUtil.find(mailStorageDirectory, ".*\\" + EXTENSION_INDEX, false); + + if (!indexFiles.isEmpty()) { + File indexFile = indexFiles.get(0); + // convert index content to int + String indexContent = FileUtils.readFileToString(indexFile, "UTF-8"); + int index = Integer.parseInt(indexContent); + + // get mail content file + File mailFile = new File(indexFile.getAbsolutePath().replaceAll(EXTENSION_INDEX + "$", EXTENSION_MAIL)); + + if (log.isDebugEnabled()) { + log.debug("Managing mail file : " + mailFile + " (from index " + indexContent + ")"); + } + + Reader indexFileReader = new BufferedReader(new FileReader(mailFile)); + CSVReader cvsReader = new CSVReader(indexFileReader); + + int currentIndex = 0; + String[] currentLine = cvsReader.readNext(); + while (currentLine != null) { + String receiver = currentLine[0]; + String subject = currentLine[1]; + String body = currentLine[2]; + + // index contains next index to treat so == is ok + if (currentIndex >= index) { + String host = + context.getProperty(PollenProperty.EMAIL_HOST); + int port = Integer.parseInt( + context.getProperty(PollenProperty.EMAIL_PORT)); + String from = + context.getProperty(PollenProperty.EMAIL_FROM); + MailUtil.sendMail(host, port, from, + receiver, subject, body); + + // index contains next index to treat + FileUtils.writeStringToFile(indexFile, String.valueOf(currentIndex + 1)); + + // wait 1 second between each mail to not + // load smtp server + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + if (log.isErrorEnabled()) { + log.error("Can't wait between mail", ex); + } + } + } + else { + if (log.isDebugEnabled()) { + log.debug("Mail to " + receiver + " already sent in a previous execution, skip."); + } + } + + currentIndex++; + currentLine = cvsReader.readNext(); + } + + // delete woth index and mail file + mailFile.delete(); + indexFile.delete(); + } + else { + if (log.isInfoEnabled()) { + log.info("No more index mail index file found, go to sleep a while :)"); + } + } + } while (!indexFiles.isEmpty()); + } + + /** + * Prepare mail list. + * + * TODO : improve configuration reading + * + * @param id + * @param mailData + * @throws IOException + */ + public void prepareMails(String id, List<Map<String, String>> mailData) throws IOException { + + Writer fileWriter = null; + CSVWriter cvsWriter = null; + try { + + // write CSV datas + File emailFile = new File(mailStorageDirectory, id + EXTENSION_MAIL); + fileWriter = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(emailFile))); + cvsWriter = new CSVWriter(fileWriter); + + for (Map<String, String> singleMailData : mailData) { + String[] nextLine = new String[] { + singleMailData.get("receiver"), + singleMailData.get("subject"), + singleMailData.get("body") + }; + cvsWriter.writeNext(nextLine); + } + + // write index (default to 0) + File indexFile = new File(mailStorageDirectory, id + EXTENSION_INDEX); + FileUtil.writeString(indexFile, "0"); + } + finally { + if (cvsWriter != null) { + cvsWriter.close(); + } + IOUtils.closeQuietly(fileWriter); + } + + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/mail/SendMail.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmail.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmail.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmail.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,39 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.bean.PollenEmail; +import org.chorem.pollen.entity.UserAccount; + +public interface ServiceEmail { + + PollenEmail createEmail(); + + void sendEmail(PollenEmail email) throws PollenException, PollenBusinessException; + + PollenEmail getNewEmail(UserAccount toUser) throws PollenException; + +} //ServiceEmail Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmail.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailAbstract.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailAbstract.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailAbstract.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,99 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.ArrayList; +import java.util.List; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.bean.PollenEmail; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; + +public abstract class ServiceEmailAbstract implements ServiceEmail { + + protected abstract TopiaContext beginTransaction() throws TopiaException; + + protected void commitTransaction(TopiaContext transaction) throws TopiaException { + transaction.commitTransaction(); +} + + protected abstract void closeTransaction(TopiaContext transaction) throws TopiaException; + + protected abstract void treateError(TopiaContext transaction, Exception eee, String message, Object... args) throws PollenException; + + protected void treateError(Exception eee, String message, Object... args) throws PollenException { + treateError(null, eee, message, args); + } + + public abstract void executeSendEmail(PollenEmail pollenEmail) throws Exception; + + protected abstract PollenEmail executeGetNewEmail(UserAccount toUser) throws Exception; + + protected abstract PollenEmail executeCreateEmail(); + + @Override + public PollenEmail createEmail() { + + try { + + PollenEmail result = executeCreateEmail(); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceEmail.createEmail")); + } + return null; + } + + @Override + public void sendEmail(PollenEmail email) throws PollenException, PollenBusinessException { + List<Object> errorArgs = new ArrayList<Object>(); + + try { + + executeSendEmail(email); + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceEmail.sendEmail"), errorArgs.toArray()); + } + + } + + @Override + public PollenEmail getNewEmail(UserAccount toUser) throws PollenException { + try { + + PollenEmail result = executeGetNewEmail(toUser); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceEmail.getNewEmail")); + } + return null; + } + +} //ServiceEmailAbstract Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailAbstract.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,123 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.service.legacy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.commons.mail.EmailException; +import org.apache.commons.mail.SimpleEmail; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenBusinessException.PollenExceptionType; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenProperty; +import org.chorem.pollen.bean.PollenEmail; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; + +/** + * ServiceMailImpl + * <p/> + * Created: 30 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ServiceEmailImpl extends ServiceEmailAbstract { + + private static final Log log = LogFactory.getLog(ServiceEmailImpl.class); + + private PollenContext context; + + public void setContext(PollenContext context) { + this.context = context; + } + + @Override + protected TopiaContext beginTransaction() throws TopiaException { + return context.beginTransaction(); + } + + @Override + protected void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + context.treateError(transaction, eee, message, args); + } + + @Override + protected void closeTransaction(TopiaContext transaction) { + context.closeTransaction(transaction); + } + + @Override + public void executeSendEmail(PollenEmail pollenEmail) throws PollenBusinessException { + + try { + // Create the SimpleEmail to send + SimpleEmail email = pollenEmail.createSimpleEmail(PollenProperty.CHARSET.getValue()); + email.send(); + + if (log.isInfoEnabled()) { + log.info("Mail sent to : " + pollenEmail.getTo()); + + if (log.isDebugEnabled()) { + log.debug("Email infos : " + + "\ndate: " + email.getSentDate() + + "\nhostname: " + email.getHostName() + + "\nport: " + email.getSmtpPort() + + "\nfrom: " + email.getFromAddress().toString()); + } + } + } catch (EmailException eee) { + if (log.isErrorEnabled()) { + log.error("Error on email send to " + pollenEmail.getTo(), eee); + } + throw new PollenBusinessException(eee, + PollenExceptionType.SMTP_NOT_AVAILABLE, + pollenEmail.getTo()); + } + } + + @Override + public PollenEmail executeGetNewEmail(UserAccount toUser) { + PollenEmail email = executeCreateEmail(); + email.setTo(toUser.getEmail()); + return email; + } + + @Override + protected PollenEmail executeCreateEmail() { + PollenEmail result = new PollenEmail(); + result.setHost(PollenProperty.EMAIL_HOST.getValue()); + result.setFrom(PollenProperty.EMAIL_FROM.getValue()); + result.setPort(Integer.parseInt(PollenProperty.EMAIL_PORT.getValue())); + return result; + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceEmailImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavorite.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavorite.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavorite.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,59 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.List; +import java.util.Map; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.framework.EntityFilter; + +public interface ServiceFavorite { + + void createFavoriteParticipant(FavoriteParticipant participant) throws PollenException, PollenBusinessException; + + void deleteFavoriteParticipant(String id) throws PollenException; + + FavoriteParticipant getFavoriteParticipant(String id) throws PollenException; + + Map<String, FavoriteParticipant> getFavoriteParticipants(EntityFilter filter) throws PollenException; + + List<FavoriteList> getFavoriteLists(UserAccount user) throws PollenException; + + void deleteFavoriteList(FavoriteList list) throws PollenException; + + void createFavoriteList(FavoriteList list) throws PollenException, PollenBusinessException; + + int getNbFavoriteParticipants(EntityFilter filter) throws PollenException; + + FavoriteParticipant getNewFavoriteParticipant(FavoriteList list) throws PollenException; + + FavoriteList getNewFavoriteList(UserAccount user) throws PollenException; + + void updateFavoriteParticipant(FavoriteParticipant participant) throws PollenException, PollenBusinessException; + +} //ServiceFavorite Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavorite.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteAbstract.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteAbstract.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteAbstract.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,277 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.List; +import java.util.Map; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +public abstract class ServiceFavoriteAbstract implements ServiceFavorite { + + protected abstract TopiaContext beginTransaction() throws TopiaException; + + protected void commitTransaction(TopiaContext transaction) throws TopiaException { + transaction.commitTransaction(); +} + + protected abstract void closeTransaction(TopiaContext transaction) throws TopiaException; + + protected abstract void treateError(TopiaContext transaction, Exception eee, String message, Object... args) throws PollenException; + + protected void treateError(Exception eee, String message, Object... args) throws PollenException { + treateError(null, eee, message, args); + } + + protected abstract void executeCreateFavoriteParticipant(TopiaContext transaction, FavoriteParticipant participant) throws Exception; + + protected abstract void executeDeleteFavoriteParticipant(TopiaContext transaction, String id) throws Exception; + + protected abstract FavoriteParticipant executeGetFavoriteParticipant(TopiaContext transaction, String id) throws Exception; + + protected abstract Map<String, FavoriteParticipant> executeGetFavoriteParticipants(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract List<FavoriteList> executeGetFavoriteLists(TopiaContext transaction, UserAccount user) throws Exception; + + protected abstract void executeDeleteFavoriteList(TopiaContext transaction, FavoriteList list) throws Exception; + + protected abstract void executeCreateFavoriteList(TopiaContext transaction, FavoriteList list) throws Exception; + + protected abstract int executeGetNbFavoriteParticipants(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract FavoriteParticipant executeGetNewFavoriteParticipant(FavoriteList list) throws Exception; + + protected abstract FavoriteList executeGetNewFavoriteList(UserAccount user) throws Exception; + + protected abstract void executeUpdateFavoriteParticipant(TopiaContext transaction, FavoriteParticipant participant) throws Exception; + + @Override + public void createFavoriteParticipant(FavoriteParticipant participant) throws PollenException, PollenBusinessException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeCreateFavoriteParticipant(transaction, participant); + + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.createFavoriteParticipant")); + } + + } + + @Override + public void deleteFavoriteParticipant(String id) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeDeleteFavoriteParticipant(transaction, id); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.deleteFavoriteParticipant")); + } + + } + + @Override + public FavoriteParticipant getFavoriteParticipant(String id) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + FavoriteParticipant result = executeGetFavoriteParticipant(transaction, id); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.getFavoriteParticipant")); + } + return null; + } + + @Override + public Map<String, FavoriteParticipant> getFavoriteParticipants(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Map<String, FavoriteParticipant> result = executeGetFavoriteParticipants(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.getFavoriteParticipants")); + } + return null; + } + + @Override + public List<FavoriteList> getFavoriteLists(UserAccount user) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + List<FavoriteList> result = executeGetFavoriteLists(transaction, user); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.getFavoriteLists")); + } + return null; + } + + @Override + public void deleteFavoriteList(FavoriteList list) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeDeleteFavoriteList(transaction, list); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.deleteFavoriteList")); + } + + } + + @Override + public void createFavoriteList(FavoriteList list) throws PollenException, PollenBusinessException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeCreateFavoriteList(transaction, list); + + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.createFavoriteList")); + } + + } + + @Override + public int getNbFavoriteParticipants(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbFavoriteParticipants(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.getNbFavoriteParticipants")); + } + return 0; + } + + @Override + public FavoriteParticipant getNewFavoriteParticipant(FavoriteList list) throws PollenException { + try { + + FavoriteParticipant result = executeGetNewFavoriteParticipant(list); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceFavorite.getNewFavoriteParticipant")); + } + return null; + } + + @Override + public FavoriteList getNewFavoriteList(UserAccount user) throws PollenException { + try { + + FavoriteList result = executeGetNewFavoriteList(user); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceFavorite.getNewFavoriteList")); + } + return null; + } + + @Override + public void updateFavoriteParticipant(FavoriteParticipant participant) throws PollenException, PollenBusinessException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeUpdateFavoriteParticipant(transaction, participant); + + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceFavorite.updateFavoriteParticipant")); + } + + } + +} //ServiceFavoriteAbstract Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteAbstract.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,299 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenBusinessException.PollenExceptionType; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenQueryHelper; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteListDAO; +import org.chorem.pollen.entity.FavoriteListImpl; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.FavoriteParticipantDAO; +import org.chorem.pollen.entity.FavoriteParticipantImpl; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.framework.TopiaQuery.Op; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.List; +import java.util.Map; + +/** + * ServiceFavorite + * <p/> + * Created: 5 mai 2010 + * + * @author fdesbois $Id: ServiceFavoriteImpl.java 2996 2010-05-14 12:06:15Z + * fdesbois $ + */ +public class ServiceFavoriteImpl extends ServiceFavoriteAbstract { + + private Log log = LogFactory.getLog(ServiceUserImpl.class); + + private static final String BINDER_CONTEXT_FAVORITE_LIST = "favoriteList"; + + private PollenContext context; + + public void setContext(PollenContext context) { + this.context = context; + } + + @Override + protected TopiaContext beginTransaction() throws TopiaException { + return context.beginTransaction(); + } + + @Override + protected void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + context.treateError(transaction, eee, message, args); + } + + @Override + protected void closeTransaction(TopiaContext transaction) { + context.closeTransaction(transaction); + } + + @Override + public FavoriteList executeGetNewFavoriteList(UserAccount user) { + FavoriteList result = new FavoriteListImpl(); + result.setUserAccount(user); + return result; + } + + @Override + public void executeCreateFavoriteList(TopiaContext transaction, + FavoriteList list) throws TopiaException, PollenBusinessException { + + FavoriteListDAO dao = PollenDAOHelper.getFavoriteListDAO(transaction); + + // check favoriteList name exist for user + UserAccount user = list.getUserAccount(); + + // existing list found + if (dao.existByNaturalId(list.getName(), user)) { + throw new PollenBusinessException( + PollenExceptionType.FAVORITE_LIST_NAME_EXIST, + list.getName(), user.getDisplayName()); + } + + dao.create(list.getName(), list.getUserAccount()); + + transaction.commitTransaction(); + } + + @Override + public void executeDeleteFavoriteList(TopiaContext transaction, + FavoriteList list) throws TopiaException { + FavoriteListDAO dao = PollenDAOHelper.getFavoriteListDAO(transaction); + + FavoriteList listLoaded = dao.findByTopiaId(list.getId()); + dao.delete(listLoaded); + + transaction.commitTransaction(); + } + + @Override + public List<FavoriteList> executeGetFavoriteLists( + TopiaContext transaction, UserAccount user) throws TopiaException { + + FavoriteListDAO dao = PollenDAOHelper.getFavoriteListDAO(transaction); + + List<FavoriteList> results = dao.findAllByUserAccount(user); + + return results; + } + + /** + * Check if the {@code participant} doesn't already exists with same email, + * name and favoriteList. + * + * @param dao used to verify the existing participant + * @param participant FavoriteParticipant to check + * @throws PollenBusinessException if FavoriteParticipant already exists + * @throws TopiaException for technical errors from ToPIA + */ + protected void checkFavoriteParticipant(FavoriteParticipantDAO dao, + FavoriteParticipant participant) + throws PollenBusinessException, TopiaException { + + FavoriteList list = participant.getFavoriteList(); + + TopiaQuery query = dao.createQuery(). + addEquals(FavoriteParticipant.PROPERTY_FAVORITE_LIST, list). + addEquals(FavoriteParticipant.PROPERTY_NAME, participant.getName()). + addEquals(FavoriteParticipant.PROPERTY_EMAIL, participant.getEmail()); + + // Check only on entities different from the one in argument + if (StringUtils.isNotEmpty(participant.getId())) { + query.addWhere(TopiaEntity.TOPIA_ID, Op.NEQ, participant.getId()); + } + + // existing participant found + if (dao.existByQuery(query)) { + // The error type (message) depends on email nullity + if (participant.getEmail() == null) { + throw new PollenBusinessException( + PollenExceptionType.PARTICIPANT_EXIST_WITHOUT_EMAIL, + list.getName(), + participant.getName()); + } else { + throw new PollenBusinessException( + PollenExceptionType.PARTICIPANT_EXIST, + list.getName(), + participant.getName(), + participant.getEmail()); + } + } + } + + @Override + public FavoriteParticipant executeGetNewFavoriteParticipant( + FavoriteList list) { + FavoriteParticipant result = new FavoriteParticipantImpl(); + result.setFavoriteList(list); + result.setWeight(1.); + return result; + } + + @Override + public void executeCreateFavoriteParticipant(TopiaContext transaction, + FavoriteParticipant participant) + throws PollenBusinessException, TopiaException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + checkFavoriteParticipant(dao, participant); + + // Create newParticipant with naturalId + FavoriteParticipant newParticipant = + dao.create(participant.getName(), + participant.getEmail(), + participant.getFavoriteList()); + + // Set other field + newParticipant.setWeight(participant.getWeight()); + + transaction.commitTransaction(); + } + + @Override + public void executeDeleteFavoriteParticipant(TopiaContext transaction, + String id) throws TopiaException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + FavoriteParticipant participantLoaded = dao.findByTopiaId(id); + + dao.delete(participantLoaded); + + transaction.commitTransaction(); + } + + @Override + public void executeUpdateFavoriteParticipant(TopiaContext transaction, + FavoriteParticipant participant) + throws TopiaException, PollenBusinessException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + checkFavoriteParticipant(dao, participant); + + FavoriteParticipant participantLoaded = + dao.findByTopiaId(participant.getId()); + + // Set all fields except favoriteList that can't be changed + participantLoaded.setName(participant.getName()); + participantLoaded.setEmail(participant.getEmail()); + participantLoaded.setWeight(participant.getWeight()); + + dao.update(participantLoaded); + + transaction.commitTransaction(); + } + + @Override + public FavoriteParticipant executeGetFavoriteParticipant( + TopiaContext transaction, String id) throws TopiaException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + FavoriteParticipant result = dao.findByTopiaId(id); + // Load parent list + result.getFavoriteList(); + + return result; + } + + @Override + public Map<String, FavoriteParticipant> executeGetFavoriteParticipants( + TopiaContext transaction, EntityFilter filter) throws TopiaException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + PollenQueryHelper.FavoriteParticipantProperty participantProperty = + PollenQueryHelper.newFavoriteParticipantProperty(); + + TopiaQuery query = dao.createQueryFindAllByFavoriteList(filter); + + if (log.isDebugEnabled()) { + log.debug("Query : " + query); + } + + query.addLoad(participantProperty.favoriteList()); + + Map<String, FavoriteParticipant> results = + dao.findAllMappedByQuery(query); + + return results; + } + + @Override + public int executeGetNbFavoriteParticipants(TopiaContext transaction, + EntityFilter filter) throws TopiaException { + + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + TopiaQuery query = dao.createQueryFindAllByFavoriteList(filter); + + int result = dao.countByQuery(query); + return result; + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceFavoriteImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePoll.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePoll.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePoll.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,98 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.Collection; +import java.util.List; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Comment; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.framework.EntityFilter; + +public interface ServicePoll { + + /** + * Build a new Poll instance with given {@code user} as administrator + * @param user Build a new Poll instance with given {@code user} as administrator + * @return Build a new Poll instance with given {@code user} as administrator + * @throws PollenException + */ + Poll getNewPoll(UserAccount user) throws PollenException; + + /** + * Build a new Poll instance based on existing {@code poll} (copy) + * @param poll Build a new Poll instance based on existing {@code poll} (copy) + * @return Build a new Poll instance based on existing {@code poll} (copy) + * @throws PollenException + */ + Poll getNewPoll(Poll poll) throws PollenException; + + Poll createPoll(Poll poll, Collection<ParticipantList> lists) throws PollenException, PollenBusinessException; + + Poll updatePoll(Poll poll) throws PollenException; + + void deletePoll(Poll poll) throws PollenException; + + boolean deleteChoice(Choice choice) throws PollenException; + + List<UserPoll> getPolls(EntityFilter filter) throws PollenException; + + List<Comment> getComments(EntityFilter filter) throws PollenException; + + ParticipantList getNewPollList() throws PollenException; + + Participant getNewPollParticipant() throws PollenException; + + Poll getPoll(String pollUid, String... properties) throws PollenException, PollenBusinessException; + + boolean canAdminPoll(String accountUid, String pollUid) throws PollenException; + + int getNbTotalPolls() throws PollenException; + + int getNbPollsByUser(UserAccount user) throws PollenException; + + List<Poll> getRunningPolls() throws PollenException; + + int getNbComments(Poll poll) throws PollenException; + + Comment createComment(Poll poll, Comment comment) throws PollenException; + + boolean deleteComment(Comment comment) throws PollenException; + + Comment getNewComment(PollAccount account) throws PollenException; + + Choice createChoice(Poll poll, Choice choice) throws PollenException; + + Choice getNewChoice(Poll poll) throws PollenException; + + void setPollClosed(Poll poll, boolean closed) throws PollenException; + +} //ServicePoll Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePoll.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollAbstract.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollAbstract.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollAbstract.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,486 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Comment; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +public abstract class ServicePollAbstract implements ServicePoll { + + protected abstract TopiaContext beginTransaction() throws TopiaException; + + protected void commitTransaction(TopiaContext transaction) throws TopiaException { + transaction.commitTransaction(); +} + + protected abstract void closeTransaction(TopiaContext transaction) throws TopiaException; + + protected abstract void treateError(TopiaContext transaction, Exception eee, String message, Object... args) throws PollenException; + + protected void treateError(Exception eee, String message, Object... args) throws PollenException { + treateError(null, eee, message, args); + } + + protected abstract Poll executeGetNewPoll(UserAccount user) throws Exception; + + protected abstract Poll executeGetNewPoll(Poll poll) throws Exception; + + protected abstract Poll executeCreatePoll(TopiaContext transaction, List<Object> errorArgs, Poll poll, Collection<ParticipantList> lists) throws Exception; + + protected abstract Poll executeUpdatePoll(TopiaContext transaction, Poll poll) throws Exception; + + protected abstract void executeDeletePoll(TopiaContext transaction, Poll poll) throws Exception; + + protected abstract boolean executeDeleteChoice(TopiaContext transaction, Choice choice) throws Exception; + + protected abstract List<UserPoll> executeGetPolls(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract List<Comment> executeGetComments(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract ParticipantList executeGetNewPollList() throws Exception; + + protected abstract Participant executeGetNewPollParticipant() throws Exception; + + protected abstract Poll executeGetPoll(TopiaContext transaction, String pollUid, String... properties) throws Exception; + + protected abstract boolean executeCanAdminPoll(TopiaContext transaction, String accountUid, String pollUid) throws Exception; + + protected abstract int executeGetNbTotalPolls(TopiaContext transaction) throws Exception; + + protected abstract int executeGetNbPollsByUser(TopiaContext transaction, UserAccount user) throws Exception; + + protected abstract List<Poll> executeGetRunningPolls(TopiaContext transaction) throws Exception; + + protected abstract int executeGetNbComments(TopiaContext transaction, Poll poll) throws Exception; + + protected abstract Comment executeCreateComment(TopiaContext transaction, Poll poll, Comment comment) throws Exception; + + protected abstract boolean executeDeleteComment(TopiaContext transaction, Comment comment) throws Exception; + + protected abstract Comment executeGetNewComment(PollAccount account) throws Exception; + + protected abstract Choice executeCreateChoice(TopiaContext transaction, Poll poll, Choice choice) throws Exception; + + protected abstract Choice executeGetNewChoice(Poll poll) throws Exception; + + protected abstract void executeSetPollClosed(TopiaContext transaction, Poll poll, boolean closed) throws Exception; + + @Override + public Poll getNewPoll(UserAccount user) throws PollenException { + try { + + Poll result = executeGetNewPoll(user); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewPoll")); + } + return null; + } + + @Override + public Poll getNewPoll(Poll poll) throws PollenException { + try { + + Poll result = executeGetNewPoll(poll); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewPoll")); + } + return null; + } + + @Override + public Poll createPoll(Poll poll, Collection<ParticipantList> lists) throws PollenException, PollenBusinessException { + List<Object> errorArgs = new ArrayList<Object>(); + + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Poll result = executeCreatePoll(transaction, errorArgs, poll, lists); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.createPoll"), errorArgs.toArray()); + } + return null; + } + + @Override + public Poll updatePoll(Poll poll) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Poll result = executeUpdatePoll(transaction, poll); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.updatePoll")); + } + return null; + } + + @Override + public void deletePoll(Poll poll) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeDeletePoll(transaction, poll); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.deletePoll")); + } + + } + + @Override + public boolean deleteChoice(Choice choice) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + boolean result = executeDeleteChoice(transaction, choice); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.deleteChoice")); + } + return false; + } + + @Override + public List<UserPoll> getPolls(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + List<UserPoll> result = executeGetPolls(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getPolls")); + } + return null; + } + + @Override + public List<Comment> getComments(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + List<Comment> result = executeGetComments(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getComments")); + } + return null; + } + + @Override + public ParticipantList getNewPollList() throws PollenException { + try { + + ParticipantList result = executeGetNewPollList(); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewPollList")); + } + return null; + } + + @Override + public Participant getNewPollParticipant() throws PollenException { + try { + + Participant result = executeGetNewPollParticipant(); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewPollParticipant")); + } + return null; + } + + @Override + public Poll getPoll(String pollUid, String... properties) throws PollenException, PollenBusinessException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Poll result = executeGetPoll(transaction, pollUid, properties); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getPoll")); + } + return null; + } + + @Override + public boolean canAdminPoll(String accountUid, String pollUid) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + boolean result = executeCanAdminPoll(transaction, accountUid, pollUid); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.canAdminPoll")); + } + return false; + } + + @Override + public int getNbTotalPolls() throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbTotalPolls(transaction); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getNbTotalPolls")); + } + return 0; + } + + @Override + public int getNbPollsByUser(UserAccount user) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbPollsByUser(transaction, user); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getNbPollsByUser")); + } + return 0; + } + + @Override + public List<Poll> getRunningPolls() throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + List<Poll> result = executeGetRunningPolls(transaction); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getRunningPolls")); + } + return null; + } + + @Override + public int getNbComments(Poll poll) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbComments(transaction, poll); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.getNbComments")); + } + return 0; + } + + @Override + public Comment createComment(Poll poll, Comment comment) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Comment result = executeCreateComment(transaction, poll, comment); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.createComment")); + } + return null; + } + + @Override + public boolean deleteComment(Comment comment) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + boolean result = executeDeleteComment(transaction, comment); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.deleteComment")); + } + return false; + } + + @Override + public Comment getNewComment(PollAccount account) throws PollenException { + try { + + Comment result = executeGetNewComment(account); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewComment")); + } + return null; + } + + @Override + public Choice createChoice(Poll poll, Choice choice) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Choice result = executeCreateChoice(transaction, poll, choice); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.createChoice")); + } + return null; + } + + @Override + public Choice getNewChoice(Poll poll) throws PollenException { + try { + + Choice result = executeGetNewChoice(poll); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.servicePoll.getNewChoice")); + } + return null; + } + + @Override + public void setPollClosed(Poll poll, boolean closed) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeSetPollClosed(transaction, poll, closed); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.servicePoll.setPollClosed")); + } + + } + +} //ServicePollAbstract Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollAbstract.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,718 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBinderHelper; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenQueryHelper; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.ChoiceDAO; +import org.chorem.pollen.entity.ChoiceImpl; +import org.chorem.pollen.entity.Comment; +import org.chorem.pollen.entity.CommentDAO; +import org.chorem.pollen.entity.CommentImpl; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountDAO; +import org.chorem.pollen.entity.PollAccountImpl; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.PollImpl; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * ServicePoll + * <p/> + * Created: 23 mars 2010 + * + * @author fdesbois + * $Id$ + */ +public class ServicePollImpl extends ServicePollAbstract { + + private static final Log log = LogFactory.getLog(ServicePollImpl.class); + + private PollenContext context; + + public void setContext(PollenContext context) { + this.context = context; + } + + @Override + protected TopiaContext beginTransaction() throws TopiaException { + return context.beginTransaction(); + } + + @Override + protected void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + context.treateError(transaction, eee, message, args); + } + + @Override + protected void closeTransaction(TopiaContext transaction) { + context.closeTransaction(transaction); + } + + @Override + public Poll executeGetNewPoll(UserAccount user) { + Poll poll = new PollImpl(); + poll.setChoiceType(ChoiceType.TEXT); + poll.setVoteCounting(VoteCountingType.NORMAL); + poll.setType(PollType.FREE); + // Initialize creator as an admin for the poll + PollAccount creator = new PollAccountImpl(); + creator.setAdmin(true); + if (user != null) { + // Link the creator with the user + creator.setName(user.getDisplayName()); + creator.setEmail(user.getEmail()); + creator.setUserAccount(user); + } + poll.setCreator(creator); + // Generate Uid to have a unique poll. Will avoid multi-submit, existing + // poll will be check by its uid. + poll.setUid(context.createPollenUrlId()); + return poll; + } + + @Override + public Poll executeGetNewPoll(Poll poll) { + Poll result = new PollImpl(); + TopiaEntityBinder<Poll> binder = PollenBinderHelper.getSimpleTopiaBinder(Poll.class); + //TODO-fdesbois-2010-07-13 : add test and check if exluding only those properties is realistic + binder.copyExcluding(poll, result, + Poll.PROPERTY_UID, + Poll.PROPERTY_CLOSED, + Poll.PROPERTY_RESULT, + Poll.PROPERTY_POLL_ACCOUNT + ); + // Copy of participants only for no free poll + if (poll.getType().isRestrictedOrGroup()) { + result.setPollAccount(poll.getPollAccount()); + } + return result; + } + + @Override + public Poll executeCreatePoll(TopiaContext transaction, + List<Object> errorArgs, Poll poll, Collection<ParticipantList> lists) + throws TopiaException, + IllegalArgumentException, + PollenBusinessException { + + errorArgs.add(poll.getTitle()); + errorArgs.add(poll.getUid()); + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + if (dao.existByNaturalId(poll.getUid())) { + throw new PollenBusinessException( + PollenBusinessException.PollenExceptionType.POLL_EXIST); + } + + // Create newPoll and copy simple properties from poll source + Poll newPoll = createBasicPoll(transaction, poll); + + // Create accounts only for non free poll + if (!newPoll.getType().isFree()) { + // Create accounts depends on pollType and lists argument + List<PollAccount> accounts = createPollAccounts(transaction, + newPoll.getType(), lists); + + newPoll.setPollAccount(accounts); + } + + // Create newPoll choices + List<Choice> choices = createPollChoices(transaction, poll.getChoice()); + + newPoll.setChoice(choices); + + dao.update(newPoll); + + transaction.commitTransaction(); + + return newPoll; + } + + @Override + public Poll executeUpdatePoll(TopiaContext transaction, + Poll poll) throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + // Updating a Poll : + // - TITLE + // - DESCRIPTION + // - BEGIN/END DATE + // - CHOICE_ADD_ALLOWED + // - BEGIN/END ADD CHOICE DATE + // - MAX_CHOICE_NB + // - CONTINUOUS_RESULTS + // - PUBLIC_RESULTS + // - ANONYMOUS_VOTE_ALLOWED + + // Anonymous change is not supported (need to manage accounts) + // PollType change is not supported (need to manage accounts) + // VoteCounting change is not supported (need to manage existing votes) + + // Comments, Results, Choices and Accounts will not be updated here + + // Update only for not started poll : + // - VOTE_COUNTING + // - CHOICE_TYPE + // - CHOICES + + Poll pollToUpdate = dao.findByTopiaId(poll.getTopiaId()); + + // Can't update a closed poll + if (pollToUpdate.isClosed()) { + // TODO-fdesbois-2011-07-13 : throw error + } + + TopiaEntityBinder<Poll> binder = PollenBinderHelper.getSimpleTopiaBinder(Poll.class); + + // Idea, if we can use Embeddable object for Hibernate, Options will be a good use case + binder.copy(poll, pollToUpdate, + Poll.PROPERTY_TITLE, + Poll.PROPERTY_DESCRIPTION, + Poll.PROPERTY_BEGIN_DATE, + Poll.PROPERTY_END_DATE, + Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED, + Poll.PROPERTY_CHOICE_ADD_ALLOWED, + Poll.PROPERTY_BEGIN_CHOICE_DATE, + Poll.PROPERTY_END_CHOICE_DATE, + Poll.PROPERTY_CONTINUOUS_RESULTS, + Poll.PROPERTY_PUBLIC_RESULTS, + Poll.PROPERTY_MAX_CHOICE_NB + ); + + // if not started + if (!pollToUpdate.isStarted()) { + + log.debug("Poll is not started, update voteCounting and choices"); + + // Update voteCounting is simple when poll have no vote + pollToUpdate.setVoteCounting(poll.getVoteCounting()); + + // Override choices if type has changed, otherwise the choice entity will automatically be updated + if (!pollToUpdate.getType().equals(poll.getChoiceType())) { + pollToUpdate.setChoiceType(poll.getChoiceType()); + + ChoiceDAO choiceDAO = PollenDAOHelper.getChoiceDAO(transaction); + // Clear previous choices, will properly delete orphans + pollToUpdate.getChoice().clear(); + // Create new choices and add them to the poll + for (Choice choice : poll.getChoice()) { + Choice newChoice = pollToUpdate.addNewChoice(choice.getName(), choice.getDescription()); + choiceDAO.create(newChoice); + } + } + } + + // If continuous results is now activated, execute a voteCounting + if (!pollToUpdate.isContinuousResults() && poll.isContinuousResults()) { + // TODO-fdesbois-2011-07-13 : execute vote counting + } + + Poll result = dao.update(pollToUpdate); + transaction.commitTransaction(); + return result; + } + + @Override + public void executeDeletePoll(TopiaContext transaction, Poll poll) + throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + dao.delete(poll); + + transaction.commitTransaction(); + } + + @Override + public Choice executeGetNewChoice(Poll poll) { + Choice newChoice = new ChoiceImpl(); + newChoice.setType(poll.getChoiceType()); + return newChoice; + } + + @Override + public void executeSetPollClosed(TopiaContext transaction, Poll poll, boolean closed) throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + Poll pollToUpdate = dao.findByTopiaId(poll.getTopiaId()); + pollToUpdate.setClosed(closed); + + dao.update(pollToUpdate); + transaction.commitTransaction(); + } + + @Override + public Choice executeCreateChoice(TopiaContext transaction, + Poll poll, Choice choice) + throws TopiaException { + + ChoiceDAO dao = PollenDAOHelper.getChoiceDAO(transaction); + + Choice choiceCreated = dao.create( + Choice.PROPERTY_NAME, choice.getName(), + Choice.PROPERTY_DESCRIPTION, choice.getDescription(), + Choice.PROPERTY_TYPE, choice.getType() + ); + + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll pollToUpdate = pollDAO.findByTopiaId(poll.getTopiaId()); + + pollToUpdate.addChoice(choiceCreated); + + pollDAO.update(pollToUpdate); + transaction.commitTransaction(); + + return choiceCreated; + } + + @Override + public boolean executeDeleteChoice(TopiaContext transaction, Choice choice) + throws TopiaException { + ChoiceDAO dao = PollenDAOHelper.getChoiceDAO(transaction); + + dao.delete(choice); + + transaction.commitTransaction(); + + return true; + } + + @Override + public List<Poll> executeGetRunningPolls(TopiaContext transaction) + throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + // isRunning : isStarted() && !isFinished() && !isClosed() + TopiaQuery query = dao.createQuery(); + + Date now = context.getCurrentDate(); + + query.addWhere(Poll.PROPERTY_BEGIN_DATE, TopiaQuery.Op.LE, now). + addWhere(Poll.PROPERTY_END_DATE, TopiaQuery.Op.GE, now). + addEquals(Poll.PROPERTY_CLOSED, Boolean.FALSE). + addOrderDesc(Poll.TOPIA_CREATE_DATE); + + List<Poll> results = dao.findAllByQuery(query); + + return results; + } + + @Override + public List<UserPoll> executeGetPolls(TopiaContext transaction, + EntityFilter filter) + throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + PollenQueryHelper.PollAccountProperty participantProperty = + PollenQueryHelper.newPollAccountChildProperty(); + + // Filter can be apply on userAccount as reference + TopiaQuery query = dao.createQueryFindAllByUser(filter); + + query.addSelect(participantProperty.$alias()); + + log.debug("Query : " + query); + + List<UserPoll> results = retrieveUserPolls(transaction, query); + + return results; + } + + @Override + public int executeGetNbPollsByUser(TopiaContext transaction, + UserAccount user) + throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + EntityFilter filter = context.getNewFilter(); + filter.setReference(user); + TopiaQuery query = dao.createQueryFindAllByUser(filter); + + int result = dao.countByQuery(query); + + return result; + } + + @Override + public int executeGetNbTotalPolls(TopiaContext transaction) + throws TopiaException { + + Long result = PollenDAOHelper.getPollDAO(transaction).count(); + + return result.intValue(); + } + + @Override + public List<Comment> executeGetComments(TopiaContext transaction, + EntityFilter filter) + throws TopiaException { + + CommentDAO dao = PollenDAOHelper.getCommentDAO(transaction); + +// String pollAlias = PollenQueryHelper.ALIAS_POLL; +// String pollCommentProperty = +// TopiaQuery.getProperty(pollAlias, Poll.PROPERTY_COMMENT); +// String commentAlias = PollenQueryHelper.ALIAS_COMMENT; + + PollenQueryHelper.PollProperty pollProperty = + PollenQueryHelper.newPollProperty(); + PollenQueryHelper.CommentProperty commentProperty = + PollenQueryHelper.newCommentProperty(); + + filter.checkReference(Poll.class, true); + filter.setReferenceProperty(pollProperty.$alias()); + + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + setSelect(commentProperty.$alias()). + addJoin(pollProperty.comment(), commentProperty.$alias(), false). + addFilter(filter); + + List<Comment> comments = dao.findAllByQuery(query); + + return comments; + } + + @Override + public int executeGetNbComments(TopiaContext transaction, + Poll poll) + throws TopiaException { + + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + Poll pollFound = dao.findByTopiaId(poll.getTopiaId()); + + int count = pollFound.sizeComment(); + + return count; + } + + @Override + public Comment executeCreateComment(TopiaContext transaction, + Poll poll, Comment comment) + throws TopiaException { + + CommentDAO dao = PollenDAOHelper.getCommentDAO(transaction); + + Comment commentCreated = dao.create( + Comment.PROPERTY_AUTHOR, comment.getAuthor(), + Comment.PROPERTY_COMMENT_DATE, context.getCurrentDate(), + Comment.PROPERTY_TEXT, comment.getText() + ); + + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll pollToUpdate = pollDAO.findByTopiaId(poll.getTopiaId()); + + pollToUpdate.addComment(commentCreated); + + pollDAO.update(pollToUpdate); + + transaction.commitTransaction(); + + return commentCreated; + } + + @Override + public boolean executeDeleteComment(TopiaContext transaction, + Comment comment) + throws TopiaException { + + CommentDAO dao = PollenDAOHelper.getCommentDAO(transaction); + + dao.delete(comment); + + transaction.commitTransaction(); + + return true; + } + + @Override + public Comment executeGetNewComment(PollAccount account) { + Comment newComment = new CommentImpl(); + if (account != null) { + newComment.setAuthor(account.getName()); + } + return newComment; + } + + @Override + public ParticipantList executeGetNewPollList() { + PollAccount list = new PollAccountImpl(); + list.setList(true); + list.setChild(new ArrayList<PollAccount>()); + return list; + } + + @Override + public Participant executeGetNewPollParticipant() { + PollAccount participant = new PollAccountImpl(); + participant.setWeight(1.); + return participant; + } + + @Override + public boolean executeCanAdminPoll(TopiaContext transaction, + String accountUid, String pollUid) + throws TopiaException { + +// String creatorUidProperty = +// TopiaQuery.getProperty(Poll.PROPERTY_CREATOR, +// PollAccount.PROPERTY_UID); +// +// TopiaQuery query = dao.createQuery(). +// addEquals(Poll.PROPERTY_UID, pollUid). +// addEquals(creatorUidProperty, accountUid); + + PollenQueryHelper.PollProperty pollProperty = PollenQueryHelper.newPollProperty(); + + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + addEquals(pollProperty.uid(), pollUid). + addEquals(pollProperty.creatorProperty().uid(), accountUid); + + + // Note a boolean admin exist in PollAccount, maybe + // find the account in lists + + boolean result = PollenDAOHelper.getPollDAO(transaction).existByQuery(query); + + return result; + } + + @Override + public Poll executeGetPoll(TopiaContext transaction, + String pollUid, String... properties) + throws TopiaException, PollenBusinessException { + + // Property is used to control the alias and dependencies inside the query + PollenQueryHelper.PollProperty pollProperty = + PollenQueryHelper.newPollProperty(); + + // Need to control the alias for fetching, add it to each property + String[] fetchProperties = new String[properties.length]; + for (int i = 0; i < properties.length; i++) { + // This will clean properties for fetching + fetchProperties[i] = pollProperty.$property(properties[i]); + } + + // Create the query using default alias for Poll + TopiaQuery query = PollenQueryHelper.createQuery(pollProperty). + addFetch(fetchProperties). + addEquals(pollProperty.uid(), pollUid); + + Poll result = PollenDAOHelper.getPollDAO(transaction).findByQuery(query); + if (result == null) { + throw new PollenBusinessException( + PollenBusinessException.PollenExceptionType.POLL_NOT_EXIST); + } + return result; + } + + public Poll createBasicPoll(TopiaContext transaction, Poll source) + throws TopiaException { + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + // Create newPoll and copy simple properties from poll source + Poll newPoll = dao.create(source.getUid()); + + // Copy all properties instead of Uid (already set at creation), + // Closed (not used in this case) and Creator (managed separately) + PollenBinderHelper.getSimpleTopiaBinder(Poll.class). + copyExcluding(source, newPoll, + Poll.PROPERTY_UID, + Poll.PROPERTY_CLOSED, + Poll.PROPERTY_CREATOR); + + // Create creator and set him to the poll + PollAccount creator = accountDAO.create(context.createPollenUrlId()); + + PollenBinderHelper.getSimpleTopiaBinder(PollAccount.class). + copy(source.getCreator(), creator, + PollAccount.PROPERTY_NAME, + PollAccount.PROPERTY_EMAIL, +// PollAccount.WEIGHT, + PollAccount.PROPERTY_ADMIN, + PollAccount.PROPERTY_USER_ACCOUNT); + accountDAO.update(creator); + + newPoll.setCreator(creator); + return newPoll; + } + + protected List<PollAccount> createPollAccounts(TopiaContext transaction, + PollType type, + Collection<ParticipantList> lists) + throws TopiaException, IllegalArgumentException { + + List<PollAccount> results = new ArrayList<PollAccount>(); + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + switch (type) { + case RESTRICTED: + if (CollectionUtils.isEmpty(lists)) { + throw new IllegalArgumentException("lists can't be empty" + + " for restricted poll"); + } + // Create accounts only on first participant list + results = createPersonAccounts(accountDAO, + lists.iterator().next()); + break; + case GROUP: + if (CollectionUtils.isEmpty(lists)) { + throw new IllegalArgumentException("lists can't be empty" + + " for group poll"); + } + + for (ParticipantList list : lists) { + // Create the accountList + PollAccount accountList = accountDAO.create( + context.createPollenUrlId()); + accountList.setList(true); + accountList.setName(list.getName()); + + // Create account children + List<PollAccount> accounts = + createPersonAccounts(accountDAO, list); + accountList.setChild(accounts); + + // Add the accountList to the results + results.add(accountList); + } + } + return results; + } + + protected List<PollAccount> createPersonAccounts(PollAccountDAO dao, + ParticipantList list) + throws TopiaException { + + List<PollAccount> results = new ArrayList<PollAccount>(); + + for (Participant participant : list.getParticipants()) { + String accountUid = context.createPollenUrlId(); + PollAccount account = dao.create(accountUid); + account.setName(participant.getName()); + account.setEmail(participant.getEmail()); + account.setWeight(participant.getWeight()); + dao.update(account); + results.add(account); + } + return results; + } + + protected List<Choice> createPollChoices(TopiaContext transaction, + List<Choice> source) + throws TopiaException { + + ChoiceDAO dao = PollenDAOHelper.getChoiceDAO(transaction); + + List<Choice> results = new ArrayList<Choice>(); + + for (Choice choice : source) { + Choice newChoice = dao.create(); + PollenBinderHelper.getSimpleTopiaBinder(Choice.class). + copy(choice, newChoice); + results.add(newChoice); + } + return results; + } + + protected List<UserPoll> retrieveUserPolls(TopiaContext transaction, + TopiaQuery query) + throws TopiaException { + + List<UserPoll> results = new ArrayList<UserPoll>(); + + Map<String, UserPoll> pollsCache = + new HashMap<String, UserPoll>(); + + + List<Object[]> queryResults = transaction.findByQuery(query); + for (Object[] row : queryResults) { + Poll poll = (Poll) row[0]; + PollAccount account = (PollAccount) row[1]; + if (log.isDebugEnabled()) { + log.debug("account : " + account.getUid() + " : " + + account.getName() + + " list(" + account.isList() + ")" + + " admin(" + account.isAdmin() + ")" + + " for poll " + poll.getTitle()); + } + + UserPoll userPoll = pollsCache.get(poll.getTopiaId()); + + if (userPoll == null) { + userPoll = new UserPoll(); + userPoll.setPoll(poll); + results.add(userPoll); + pollsCache.put(poll.getTopiaId(), userPoll); + } + + userPoll.addAccount(account); + } + + return results; + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServicePollImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUser.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUser.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUser.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,48 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.Map; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.topia.framework.EntityFilter; + +public interface ServiceUser { + + UserAccount connect(String login, String password) throws PollenException, PollenBusinessException; + + UserAccount getNewUser() throws PollenException; + + void createUser(UserAccount user) throws PollenException, PollenBusinessException; + + void updateUser(UserAccount user, boolean byAdmin) throws PollenException, PollenBusinessException; + + void deleteUser(String login) throws PollenException; + + Map<String, UserAccount> getUsers(EntityFilter filter) throws PollenException; + + int getNbUsers() throws PollenException; + +} //ServiceUser Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUser.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserAbstract.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserAbstract.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserAbstract.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,205 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.UserAccount; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +public abstract class ServiceUserAbstract implements ServiceUser { + + protected abstract TopiaContext beginTransaction() throws TopiaException; + + protected void commitTransaction(TopiaContext transaction) throws TopiaException { + transaction.commitTransaction(); +} + + protected abstract void closeTransaction(TopiaContext transaction) throws TopiaException; + + protected abstract void treateError(TopiaContext transaction, Exception eee, String message, Object... args) throws PollenException; + + protected void treateError(Exception eee, String message, Object... args) throws PollenException { + treateError(null, eee, message, args); + } + + protected abstract UserAccount executeConnect(TopiaContext transaction, List<Object> errorArgs, String login, String password) throws Exception; + + protected abstract UserAccount executeGetNewUser() throws Exception; + + protected abstract void executeCreateUser(TopiaContext transaction, List<Object> errorArgs, UserAccount user) throws Exception; + + protected abstract void executeUpdateUser(TopiaContext transaction, List<Object> errorArgs, UserAccount user, boolean byAdmin) throws Exception; + + protected abstract void executeDeleteUser(TopiaContext transaction, String login) throws Exception; + + protected abstract Map<String, UserAccount> executeGetUsers(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract int executeGetNbUsers(TopiaContext transaction) throws Exception; + + @Override + public UserAccount connect(String login, String password) throws PollenException, PollenBusinessException { + List<Object> errorArgs = new ArrayList<Object>(); + + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + UserAccount result = executeConnect(transaction, errorArgs, login, password); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.connect"), errorArgs.toArray()); + } + return null; + } + + @Override + public UserAccount getNewUser() throws PollenException { + try { + + UserAccount result = executeGetNewUser(); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceUser.getNewUser")); + } + return null; + } + + @Override + public void createUser(UserAccount user) throws PollenException, PollenBusinessException { + List<Object> errorArgs = new ArrayList<Object>(); + + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeCreateUser(transaction, errorArgs, user); + + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.createUser"), errorArgs.toArray()); + } + + } + + @Override + public void updateUser(UserAccount user, boolean byAdmin) throws PollenException, PollenBusinessException { + List<Object> errorArgs = new ArrayList<Object>(); + + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeUpdateUser(transaction, errorArgs, user, byAdmin); + + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.updateUser"), errorArgs.toArray()); + } + + } + + @Override + public void deleteUser(String login) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeDeleteUser(transaction, login); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.deleteUser")); + } + + } + + @Override + public Map<String, UserAccount> getUsers(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + Map<String, UserAccount> result = executeGetUsers(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.getUsers")); + } + return null; + } + + @Override + public int getNbUsers() throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbUsers(transaction); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceUser.getNbUsers")); + } + return 0; + } + +} //ServiceUserAbstract Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserAbstract.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,316 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.service.legacy; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBinderHelper; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenBusinessException.PollenExceptionType; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountDAO; +import org.chorem.pollen.entity.UserAccountImpl; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.framework.TopiaQuery.Op; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; +import org.nuiton.util.StringUtil; + +import java.util.List; +import java.util.Map; + +/** + * ServiceUserImpl + * <p/> + * Created: 23 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ServiceUserImpl extends ServiceUserAbstract { + + private Log log = LogFactory.getLog(ServiceUserImpl.class); + + private PollenContext context; + + public void setContext(PollenContext context) { + this.context = context; + } + + @Override + protected TopiaContext beginTransaction() throws TopiaException { + return context.beginTransaction(); + } + + @Override + protected void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + context.treateError(transaction, eee, message, args); + } + + @Override + protected void closeTransaction(TopiaContext transaction) { + context.closeTransaction(transaction); + } + + /** + * Copy {@code source} user account to {@code destination} one. + * The email is lower cased in the {@code destination} user account. + * + * @param source user account to copy + * @param destination which receive the copy + * @see org.nuiton.util.beans.Binder#copy(Object, Object, String...) + */ + protected void copyUserAccount(UserAccount source, UserAccount destination) { + TopiaEntityBinder<UserAccount> binder = + PollenBinderHelper.getSimpleTopiaBinder(UserAccount.class); + + binder.copy(source, destination, UserAccount.PROPERTY_ADMIN, + UserAccount.PROPERTY_FIRST_NAME, + UserAccount.PROPERTY_LAST_NAME); + // Don't keep case for email + destination.setEmail(StringUtils.lowerCase(source.getEmail())); + // Manage new password if needed + String password = source.getNewPassword(); + if (StringUtils.isNotEmpty(password)) { +// destination.setPassword(context.encodePassword(password)); + destination.setPassword(encodePassword(password)); + } + } + + public String encodePassword(String password) { +// try { + return StringUtil.encodeMD5(password); +// } catch (NoSuchAlgorithmException eee) { +// treateError(eee, n_("pollen.error.encodePassword")); +// } +// return null; + } + + /** + * Check if the {@code login} and {@code password} correspond to an + * existing user. + * + * @param dao used to execute the query + * @param login to check + * @param password to check + * @throws TopiaException for ToPIA errors + * @throws PollenBusinessException {@link PollenExceptionType#USER_WRONG_PASSWORD} + */ + protected void checkPassword(UserAccountDAO dao, String login, + String password) throws TopiaException, PollenBusinessException { +// int count = dao.createQuery(). +// add(UserAccount.LOGIN, login). +// add(UserAccount.PASSWORD, password). +// executeCount(); + // no user found + if (!dao.existByProperties(UserAccount.PROPERTY_LOGIN, login, + UserAccount.PROPERTY_PASSWORD, password)) { + throw new PollenBusinessException( + PollenExceptionType.USER_WRONG_PASSWORD, login); + } + } + + /** + * Check if the {@code login} doesn't already exist. + * + * @param dao used to execute the query + * @param login to check + * @throws TopiaException for ToPIA errors + * @throws PollenBusinessException {@link PollenExceptionType#USER_LOGIN_EXIST} + */ + protected void checkLoginNotExist(UserAccountDAO dao, String login) + throws PollenBusinessException, TopiaException { +// int count = dao.createQuery(). +// add(UserAccount.LOGIN, login). +// executeCount(); + // existing user found + if (dao.existByNaturalId(login)) { + throw new PollenBusinessException( + PollenExceptionType.USER_LOGIN_EXIST); + } + } + + /** + * Check if the {@code email} doesn't already exist, only if not empty. + * + * @param dao used to execute the query + * @param email to check + * @param query existing query to execute. A new one will be created if this + * param is null. + * @throws TopiaException for ToPIA errors + * @throws PollenBusinessException {@link PollenExceptionType#USER_EMAIL_EXIST} + */ + protected void checkEmailNotExist(UserAccountDAO dao, String email, + TopiaQuery query) throws PollenBusinessException, TopiaException { + // Don't check if email is empty + if (StringUtils.isEmpty(email)) { + return; + } + if (query == null) { + query = dao.createQuery(); + } + query.addEquals(UserAccount.PROPERTY_EMAIL, StringUtils.lowerCase(email)); + + // existing user found + if (dao.existByQuery(query)) { + throw new PollenBusinessException( + PollenExceptionType.USER_EMAIL_EXIST); + } + } + + @Override + public UserAccount executeConnect(TopiaContext transaction, + List<Object> errorArgs, String login, String password) + throws PollenBusinessException, TopiaException { + +// String encodedPassword = context.encodePassword(password); + String encodedPassword = encodePassword(password); + + errorArgs.add(login); + errorArgs.add(encodedPassword); + + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + UserAccount user = dao.findByLogin(login); + + if (user == null) { + throw new PollenBusinessException( + PollenExceptionType.USER_NOT_EXIST, login); + } + checkPassword(dao, login, encodedPassword); + return user; + } + + @Override + public UserAccount executeGetNewUser() { + UserAccount user = new UserAccountImpl(); + return user; + } + + @Override + public void executeCreateUser(TopiaContext transaction, + List<Object> errorArgs, UserAccount user) + throws TopiaException, PollenBusinessException { + + errorArgs.add(user.getLogin()); + errorArgs.add(user.getEmail()); + errorArgs.add(user.getAdmin()); + + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + // Check login not exist + checkLoginNotExist(dao, user.getLogin()); + + // Check email not exist + checkEmailNotExist(dao, user.getEmail(), null); + + // Execute create + UserAccount newUser = dao.create(user.getLogin()); + copyUserAccount(user, newUser); +// user.setTopiaId(newUser.getTopiaId()); + + transaction.commitTransaction(); + } + + + @Override + public void executeUpdateUser(TopiaContext transaction, + List<Object> errorArgs, UserAccount user, boolean byAdmin) + throws TopiaException, PollenBusinessException { + + errorArgs.add(user.getLogin()); + errorArgs.add(user.getEmail()); + errorArgs.add(user.getAdmin()); + + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + // Do not manage password for an admin update + if (!byAdmin) { + // Check the password +// String encodedPassword = context.encodePassword(user.getPassword()); + String encodedPassword = encodePassword(user.getPassword()); + checkPassword(dao, user.getLogin(), encodedPassword); + } + + // In case of email change, check if an other user has not already + // the new email + // FIXME-fdesbois-20100510 : replace by using id directly + TopiaQuery query = dao.createQuery(). + addWhere(UserAccount.PROPERTY_LOGIN, + Op.NEQ, user.getLogin()); + checkEmailNotExist(dao, user.getEmail(), query); + + // Execute update + UserAccount editedUser = dao.findByLogin(user.getLogin()); + copyUserAccount(user, editedUser); + dao.update(editedUser); + + transaction.commitTransaction(); + } + + @Override + public void executeDeleteUser(TopiaContext transaction, String login) + throws TopiaException { + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + UserAccount user = dao.findByLogin(login); + dao.delete(user); + transaction.commitTransaction(); + } + + @Override + public Map<String, UserAccount> executeGetUsers(TopiaContext transaction, + EntityFilter filter) throws TopiaException { + + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + TopiaQuery query = dao.createQuery().addFilter(filter); + + Map<String, UserAccount> results = dao.findAllMappedByQuery( + query, UserAccount.PROPERTY_LOGIN, String.class); + return results; + } + + @Override + public int executeGetNbUsers(TopiaContext transaction) throws TopiaException { + + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + Long result = dao.count(); + + return result.intValue(); + } + + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceUserImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVote.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVote.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVote.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,56 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.List; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.nuiton.topia.framework.EntityFilter; + +public interface ServiceVote { + + boolean canVote(Poll poll, PollAccount participant) throws PollenException; + + PollAccount getNewPollAccount(UserAccount user) throws PollenException; + + PollAccount getPollAccount(String accountUid) throws PollenException; + + List<PollAccount> getVotes(EntityFilter filter) throws PollenException; + + void deleteVote(Poll poll, PollAccount participant) throws PollenException; + + int getNbVotes(Poll poll) throws PollenException; + + Vote getNewVote(Choice choice) throws PollenException; + + PollAccount saveVote(Poll poll, PollAccount participant) throws PollenException, PollenBusinessException; + + PollAccount findPollAccount(Poll poll, UserAccount user) throws PollenException; + +} //ServiceVote Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVote.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteAbstract.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteAbstract.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteAbstract.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,232 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import java.util.List; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.nuiton.i18n.I18n; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +public abstract class ServiceVoteAbstract implements ServiceVote { + + protected abstract TopiaContext beginTransaction() throws TopiaException; + + protected void commitTransaction(TopiaContext transaction) throws TopiaException { + transaction.commitTransaction(); +} + + protected abstract void closeTransaction(TopiaContext transaction) throws TopiaException; + + protected abstract void treateError(TopiaContext transaction, Exception eee, String message, Object... args) throws PollenException; + + protected void treateError(Exception eee, String message, Object... args) throws PollenException { + treateError(null, eee, message, args); + } + + protected abstract boolean executeCanVote(TopiaContext transaction, Poll poll, PollAccount participant) throws Exception; + + protected abstract PollAccount executeGetNewPollAccount(UserAccount user) throws Exception; + + protected abstract PollAccount executeGetPollAccount(TopiaContext transaction, String accountUid) throws Exception; + + protected abstract List<PollAccount> executeGetVotes(TopiaContext transaction, EntityFilter filter) throws Exception; + + protected abstract void executeDeleteVote(TopiaContext transaction, Poll poll, PollAccount participant) throws Exception; + + protected abstract int executeGetNbVotes(TopiaContext transaction, Poll poll) throws Exception; + + protected abstract Vote executeGetNewVote(Choice choice) throws Exception; + + protected abstract PollAccount executeSaveVote(TopiaContext transaction, Poll poll, PollAccount participant) throws Exception; + + protected abstract PollAccount executeFindPollAccount(TopiaContext transaction, Poll poll, UserAccount user) throws Exception; + + @Override + public boolean canVote(Poll poll, PollAccount participant) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + boolean result = executeCanVote(transaction, poll, participant); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.canVote")); + } + return false; + } + + @Override + public PollAccount getNewPollAccount(UserAccount user) throws PollenException { + try { + + PollAccount result = executeGetNewPollAccount(user); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceVote.getNewPollAccount")); + } + return null; + } + + @Override + public PollAccount getPollAccount(String accountUid) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + PollAccount result = executeGetPollAccount(transaction, accountUid); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.getPollAccount")); + } + return null; + } + + @Override + public List<PollAccount> getVotes(EntityFilter filter) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + List<PollAccount> result = executeGetVotes(transaction, filter); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.getVotes")); + } + return null; + } + + @Override + public void deleteVote(Poll poll, PollAccount participant) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + executeDeleteVote(transaction, poll, participant); + + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.deleteVote")); + } + + } + + @Override + public int getNbVotes(Poll poll) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + int result = executeGetNbVotes(transaction, poll); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.getNbVotes")); + } + return 0; + } + + @Override + public Vote getNewVote(Choice choice) throws PollenException { + try { + + Vote result = executeGetNewVote(choice); + return result; + } catch (Exception eee) { + treateError(eee, I18n.n_("pollen.error.serviceVote.getNewVote")); + } + return null; + } + + @Override + public PollAccount saveVote(Poll poll, PollAccount participant) throws PollenException, PollenBusinessException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + PollAccount result = executeSaveVote(transaction, poll, participant); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (PollenBusinessException eee) { + throw eee; + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.saveVote")); + } + return null; + } + + @Override + public PollAccount findPollAccount(Poll poll, UserAccount user) throws PollenException { + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + + try { + PollAccount result = executeFindPollAccount(transaction, poll, user); + return result; + } finally { + closeTransaction(transaction); + } + + } catch (Exception eee) { + treateError(transaction, eee, I18n.n_("pollen.error.serviceVote.findPollAccount")); + } + return null; + } + +} //ServiceVoteAbstract Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteAbstract.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,457 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBinderHelper; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenQueryHelper; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountDAO; +import org.chorem.pollen.entity.PollAccountImpl; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.chorem.pollen.entity.VoteDAO; +import org.chorem.pollen.entity.VoteImpl; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; + +import java.util.List; + +/** + * Created: 21 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class ServiceVoteImpl extends ServiceVoteAbstract { + + private static final Log log = LogFactory.getLog(ServiceVoteImpl.class); + + private PollenContext context; + + public void setContext(PollenContext context) { + this.context = context; + } + + @Override + protected TopiaContext beginTransaction() throws TopiaException { + return context.beginTransaction(); + } + + @Override + protected void treateError(TopiaContext transaction, Exception eee, + String message, Object... args) throws PollenException { + context.treateError(transaction, eee, message, args); + } + + @Override + protected void closeTransaction(TopiaContext transaction) { + context.closeTransaction(transaction); + } + + /** + * Copy from account {@code source} to {@code destination}. The {@code + * destination} will be persisted. The anonymous case is manage, properties + * that identify the person are excluded from the copy in this case. + * + * @param source PollAccount to save + * @param destination PollAccount with up to date data to persist + * @see TopiaEntityBinder#copyExcluding(Object, Object, String...) + */ + protected void copyPollAccount(PollAccount source, PollAccount destination) { + // Uid is the naturalId, don't copy it + String[] excludes = new String[]{PollAccount.PROPERTY_UID}; + + // Exclude properties for anonymous account + if (source.isAnonymous()) { + if (log.isInfoEnabled()) { + log.info("Anonymous vote, doesn't copy participant's data : " + + "name, email, userAccount"); + } + + excludes = new String[]{ + PollAccount.PROPERTY_UID, + PollAccount.PROPERTY_NAME, + PollAccount.PROPERTY_EMAIL, + PollAccount.PROPERTY_USER_ACCOUNT}; + } + + TopiaEntityBinder binder = + PollenBinderHelper.getSimpleTopiaBinder(PollAccount.class); + + binder.copyExcluding(source, destination, excludes); + } + + @Override + public boolean executeCanVote(TopiaContext transaction, + Poll poll, + PollAccount participant) + throws TopiaException { + + if (log.isDebugEnabled()) { + log.debug("Poll started : " + poll.isStarted()); + log.debug("Poll finished : " + poll.isFinished()); + log.debug("Poll closed : " + poll.isClosed()); + } + boolean result = true; + if (!poll.isRunning()) { + if (log.isInfoEnabled()) { + log.info("Poll is no longer running... Participant can't vote"); + } + result = false; + // Creator can't vote + } else if (poll.getCreator().equals(participant)) { + return false; + } else if (poll.getType().isRestrictedOrGroup()) { + if (log.isInfoEnabled()) { + log.info("Poll is restricted... Participant need to be identified"); + } + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + TopiaQuery query = dao.createQueryFindAllParticipantsByPoll(poll); + + String participantAlias = PollenQueryHelper.ALIAS_POLL_ACCOUNT_CHILD; + + String pollCreatorProperty = + TopiaQuery.getProperty(PollenQueryHelper.ALIAS_POLL, + Poll.PROPERTY_CREATOR); + + query.addEquals(participantAlias, participant). + addWhere(pollCreatorProperty, TopiaQuery.Op.NEQ, participant); + + if (log.isDebugEnabled()) { + log.debug("Query : " + query); + } + + result = dao.existByQuery(query); + } + return result; + } + + @Override + public PollAccount executeGetNewPollAccount(UserAccount user) { + PollAccount account = new PollAccountImpl(); + if (user != null) { + account.setName(user.getDisplayName()); + account.setEmail(user.getEmail()); + account.setUserAccount(user); + } + return account; + } + + @Override + public PollAccount executeGetPollAccount(TopiaContext transaction, + String accountUid) + throws TopiaException { + + PollenQueryHelper.PollAccountProperty accountProperty = + PollenQueryHelper.newPollAccountProperty(); + + TopiaQuery query = PollenQueryHelper.createQuery(accountProperty). + addEquals(accountProperty.uid(), accountUid). + // Need fetching account votes to edit them + addFetch(accountProperty.choiceVote()); + + PollAccount result = PollenDAOHelper.getPollAccountDAO(transaction). + findByQuery(query); + + return result; + } + + @Override + public List<PollAccount> executeGetVotes(TopiaContext transaction, + EntityFilter filter) + throws TopiaException { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + +// String participantChoiceProperty = +// TopiaQuery.getProperty(PollenQueryHelper.ALIAS_POLL_ACCOUNT, +// PollAccount.PROPERTY_CHOICE_VOTE, +// Vote.PROPERTY_CHOICE); +// +// TopiaQuery query = dao.createQueryFindAllByPoll(filter). +// addDistinct(). +// addFetch(participantChoiceProperty); + + PollenQueryHelper.PollAccountProperty accountProperty = + PollenQueryHelper.newPollAccountProperty(); + + TopiaQuery query = dao.createQueryFindAllByPoll(filter). + addDistinct(). + addFetch(accountProperty.choiceVoteProperty().choice()); + + List<PollAccount> results = dao.findAllByQuery(query); + + if (log.isDebugEnabled()) { + log.debug("Query : " + query); + } + + return results; + } + + @Override + public int executeGetNbVotes(TopiaContext transaction, Poll poll) + throws TopiaException { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + EntityFilter filter = context.getNewFilter(); + filter.setReference(poll); + TopiaQuery query = dao.createQueryFindAllByPoll(filter); + + int result = dao.countByQuery(query); + return result; + } + + @Override + public void executeDeleteVote(TopiaContext transaction, Poll poll, + PollAccount participant) throws TopiaException { + + // For free poll, delete the participant + // For other types, delete all votes and set voteDate to null + + if (poll.getType().isFree()) { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + PollAccount participantToDelete = + dao.findByTopiaId(participant.getTopiaId()); + + dao.delete(participantToDelete); + + } else if (poll.getType().isRestrictedOrGroup()) { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + PollAccount participantToUpdate = + dao.findByTopiaId(participant.getTopiaId()); + + // Remove all votes deleted by cascade + participantToUpdate.clearChoiceVote(); + // Reset date, the participant is considered like he has not alerady + // voted + participantToUpdate.setVoteDate(null); + + dao.update(participantToUpdate); + } + + transaction.commitTransaction(); + } + + @Override + public Vote executeGetNewVote(Choice choice) { + Vote result = new VoteImpl(); + result.setChoice(choice); + return result; + } + + @Override + public PollAccount executeSaveVote(TopiaContext transaction, Poll poll, + PollAccount participant) + throws TopiaException, PollenBusinessException { + + // 1- executeCanVote(transaction, poll, participant); + // 2- generate uid if needed + // 3- update or create participant + // 4- add participant in the poll if needed + // 5- save only votes with voteValue != 0 : update/create/delete + // 6- execute calcul for continuousResults poll + + // NEED test : + // need existing poll with choices + // getNewPollAccount + // set some votes for poll choices + // saveVote + + PollAccount result = null; + if (executeCanVote(transaction, poll, participant)) { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + checkParticipantDoubloons(dao, poll, participant); + + PollAccount participantToSave = + dao.findByTopiaId(participant.getTopiaId()); + + // canVote method check the existence of participant for a + // restricted poll, so the create case is only for FREE poll. + if (participantToSave == null) { + if (log.isInfoEnabled()) { + log.info("Create new participant for FREE poll"); + } + participantToSave = createNewParticipant(transaction, poll); + } + + // Copy data (care about anonymous case) + copyPollAccount(participant, participantToSave); + + // Update vote date + participantToSave.setVoteDate(context.getCurrentDate()); + + if (log.isDebugEnabled()) { + log.debug("Vote " + participantToSave.getName() + + " updated : " + participantToSave.getVoteDate()); + } + + // Save votes + saveParticipantVotes(transaction, participant, participantToSave); + + dao.update(participantToSave); + + result = participantToSave; + + // TODO-fdesbois-2010-05-27 : execute vote counting if poll.isContinuousResults() + + transaction.commitTransaction(); + } else { + throw new PollenBusinessException( + PollenBusinessException.PollenExceptionType.VOTE_NOT_ALLOWED, + participant.getUid()); + } + + return result; + } + + @Override + public PollAccount executeFindPollAccount(TopiaContext transaction, Poll poll, UserAccount user) throws Exception { + throw new UnsupportedOperationException("unsupported operation findPollAccount"); + } + + protected void checkParticipantDoubloons(PollAccountDAO dao, + Poll poll, + PollAccount participant) + throws PollenBusinessException, TopiaException { + + TopiaQuery query = dao.createQueryFindAllParticipantsByPoll(poll); + + String participantAlias = PollenQueryHelper.ALIAS_POLL_ACCOUNT_CHILD; + + String participantNameProperty = + TopiaQuery.getProperty(participantAlias, + PollAccount.PROPERTY_NAME); + + query.addEquals(participantNameProperty, participant.getName()); + + if (StringUtils.isNotEmpty(participant.getTopiaId())) { + query.addWhere(participantAlias, TopiaQuery.Op.NEQ, participant); + } + + if (dao.existByQuery(query)) { + throw new PollenBusinessException( + PollenBusinessException.PollenExceptionType.VOTE_DOUBLOON, + participant.getName()); + } + } + + /** + * Create a new participant for a running {@code poll}. The participant uid + * will be generated and the new instance of pollAccount will be added to + * the {@code poll}. + * + * @param transaction TopiaContext to retrieve daos + * @param poll Poll where the new participant will be added + * @return a new PollAccount added to the poll + * @throws TopiaException for Topia errors + */ + protected PollAccount createNewParticipant(TopiaContext transaction, + Poll poll) + throws TopiaException { + + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + // Generate new uid + String newUid = context.createPollenUrlId(); + PollAccount newParticipant = dao.create(newUid); + + // Add the new participant in poll + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll pollFound = pollDAO.findByTopiaId(poll.getTopiaId()); + pollFound.addPollAccount(newParticipant); + + pollDAO.update(pollFound); + return newParticipant; + } + + /** + * Save all votes from a participant. Votes will be added/updated or deleted + * depends on voteValue and existence in database. + * + * @param transaction TopiaContext to retrieve daos + * @param source PollAccount source that contains vote to save + * @param destination PollAccount destination where votes will be added to + * be persisted + * @throws TopiaException for Topia errors + */ + protected void saveParticipantVotes(TopiaContext transaction, + PollAccount source, + PollAccount destination) + throws TopiaException { + + VoteDAO voteDAO = PollenDAOHelper.getVoteDAO(transaction); + for (Vote vote : source.getChoiceVote()) { + + Vote voteToSave = voteDAO.findByTopiaId(vote.getTopiaId()); + + if (vote.getVoteValue() != 0) { + // Create vote + if (voteToSave == null) { + if (log.isDebugEnabled()) { + log.debug("Create vote for " + destination.getUid()); + } + voteToSave = voteDAO.create(); + voteToSave.setChoice(vote.getChoice()); + // Add new vote to destination participant + destination.addChoiceVote(voteToSave); + } + + // Update vote + voteToSave.setVoteValue(vote.getVoteValue()); + voteDAO.update(voteToSave); + + // Delete vote if exist and new value is 0 + } else if (voteToSave != null) { + if (log.isDebugEnabled()) { + log.debug("Delete vote for " + destination.getUid()); + } + // Normally the vote will be deleted + destination.removeChoiceVote(voteToSave); + } + } + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/service/legacy/ServiceVoteImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/EmailService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/EmailService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/EmailService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,54 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenTechnicalException; +import org.chorem.pollen.bean.PollenEmail; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.service.legacy.ServiceEmailImpl; + +public class EmailService extends PollenServiceSupport { + + public PollenEmail createEmail() { + ServiceEmailImpl service = new ServiceEmailImpl(); + PollenEmail result = service.createEmail(); + return result; + } + + public void sendEmail(PollenEmail email) { + ServiceEmailImpl service = new ServiceEmailImpl(); + try { + service.executeSendEmail(email); + } catch (PollenBusinessException e) { + throw new PollenTechnicalException(e); + } + } + + public PollenEmail getNewEmail(UserAccount toUser) { + ServiceEmailImpl service = new ServiceEmailImpl(); + return service.executeGetNewEmail(toUser); + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/FavoriteService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/FavoriteService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/FavoriteService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,136 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenTechnicalException; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.service.legacy.ServiceFavoriteImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +import java.util.List; +import java.util.Map; + +public class FavoriteService extends PollenServiceSupport { + + public void createFavoriteParticipant(FavoriteParticipant participant) throws PollenBusinessException { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + service.executeCreateFavoriteParticipant(getTransaction(), participant); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void deleteFavoriteParticipant(String id) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + service.executeDeleteFavoriteParticipant(getTransaction(), id); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public FavoriteParticipant getFavoriteParticipant(String id) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + FavoriteParticipant result = service.executeGetFavoriteParticipant(getTransaction(), id); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Map<String, FavoriteParticipant> getFavoriteParticipants(EntityFilter filter) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + Map<String, FavoriteParticipant> result = service.executeGetFavoriteParticipants(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public List<FavoriteList> getFavoriteLists(UserAccount user) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + List<FavoriteList> result = service.executeGetFavoriteLists(getTransaction(), user); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void deleteFavoriteList(FavoriteList list) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + service.executeDeleteFavoriteList(getTransaction(), list); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void createFavoriteList(FavoriteList list) throws PollenBusinessException { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + service.executeCreateFavoriteList(getTransaction(), list); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbFavoriteParticipants(EntityFilter filter) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + int result = service.executeGetNbFavoriteParticipants(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public FavoriteParticipant getNewFavoriteParticipant(FavoriteList list) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + FavoriteParticipant result = service.executeGetNewFavoriteParticipant(list); + return result; + } + + public FavoriteList getNewFavoriteList(UserAccount user) { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + FavoriteList result = service.executeGetNewFavoriteList(user); + return result; + } + + public void updateFavoriteParticipant(FavoriteParticipant participant) throws PollenBusinessException { + ServiceFavoriteImpl service = new ServiceFavoriteImpl(); + try { + service.executeUpdateFavoriteParticipant(getTransaction(), participant); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,267 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import com.google.common.collect.Lists; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenTechnicalException; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Comment; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.service.legacy.ServicePollImpl; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +import java.util.Collection; +import java.util.List; + +public class PollService extends PollenServiceSupport { + + /** + * Build a new Poll instance with given {@code user} as administrator + * + * @param user Build a new Poll instance with given {@code user} as administrator + * @return Build a new Poll instance with given {@code user} as administrator + * @throws PollenException + */ + public Poll getNewPoll(UserAccount user) { + ServicePollImpl service = new ServicePollImpl(); + Poll result = service.executeGetNewPoll(user); + return result; + } + + /** + * Build a new Poll instance based on existing {@code poll} (copy) + * + * @param poll Build a new Poll instance based on existing {@code poll} (copy) + * @return Build a new Poll instance based on existing {@code poll} (copy) + * @throws PollenException + */ + public Poll getNewPoll(Poll poll) { + ServicePollImpl service = new ServicePollImpl(); + Poll result = service.executeGetNewPoll(poll); + return result; + } + + public Poll createPoll(Poll poll, Collection<ParticipantList> lists) throws PollenBusinessException { + ServicePollImpl service = new ServicePollImpl(); + try { + Poll result = service.executeCreatePoll(getTransaction(), Lists.newArrayList(), poll, lists); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Poll updatePoll(Poll poll) { + ServicePollImpl service = new ServicePollImpl(); + try { + Poll result = service.executeUpdatePoll(getTransaction(), poll); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void deletePoll(Poll poll) { + ServicePollImpl service = new ServicePollImpl(); + try { + service.executeDeletePoll(getTransaction(), poll); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public boolean deleteChoice(Choice choice) { + ServicePollImpl service = new ServicePollImpl(); + try { + boolean result = service.executeDeleteChoice(getTransaction(), choice); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public List<UserPoll> getPolls(EntityFilter filter) { + ServicePollImpl service = new ServicePollImpl(); + try { + List<UserPoll> result = service.executeGetPolls(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public List<Comment> getComments(EntityFilter filter) { + ServicePollImpl service = new ServicePollImpl(); + try { + List<Comment> result = service.executeGetComments(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public ParticipantList getNewPollList() { + ServicePollImpl service = new ServicePollImpl(); + ParticipantList result = service.executeGetNewPollList(); + return result; + } + + public Participant getNewPollParticipant() { + ServicePollImpl service = new ServicePollImpl(); + Participant result = service.executeGetNewPollParticipant(); + return result; + } + + public Poll getPoll(String pollUid, String... properties) throws PollenBusinessException { + ServicePollImpl service = new ServicePollImpl(); + try { + Poll result = service.executeGetPoll(getTransaction(), pollUid, properties); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public boolean canAdminPoll(String accountUid, String pollUid) { + ServicePollImpl service = new ServicePollImpl(); + try { + boolean result = service.executeCanAdminPoll(getTransaction(), accountUid, pollUid); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbTotalPolls() { + ServicePollImpl service = new ServicePollImpl(); + try { + int result = service.executeGetNbTotalPolls(getTransaction()); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbPollsByUser(UserAccount user) { + ServicePollImpl service = new ServicePollImpl(); + try { + int result = service.executeGetNbPollsByUser(getTransaction(), user); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public List<Poll> getRunningPolls() { + ServicePollImpl service = new ServicePollImpl(); + try { + List<Poll> result = service.executeGetRunningPolls(getTransaction()); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbComments(Poll poll) { + ServicePollImpl service = new ServicePollImpl(); + try { + int result = service.executeGetNbComments(getTransaction(), poll); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Comment createComment(Poll poll, Comment comment) { + ServicePollImpl service = new ServicePollImpl(); + try { + Comment result = service.executeCreateComment(getTransaction(), poll, comment); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public boolean deleteComment(Comment comment) { + ServicePollImpl service = new ServicePollImpl(); + try { + boolean result = service.executeDeleteComment(getTransaction(), comment); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Comment getNewComment(PollAccount account) { + ServicePollImpl service = new ServicePollImpl(); + Comment result = service.executeGetNewComment(account); + return result; + } + + public Choice createChoice(Poll poll, Choice choice) { + ServicePollImpl service = new ServicePollImpl(); + try { + Choice result = service.executeCreateChoice(getTransaction(), poll, choice); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Choice getNewChoice(Poll poll) { + ServicePollImpl service = new ServicePollImpl(); + Choice result = service.executeGetNewChoice(poll); + return result; + } + + public void setPollClosed(Poll poll, boolean closed) throws Exception { + ServicePollImpl service = new ServicePollImpl(); + try { + service.executeSetPollClosed(getTransaction(), poll, closed); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Poll createBasicPoll(Poll source) + throws TopiaException { + ServicePollImpl service = new ServicePollImpl(); + try { + Poll result = service.createBasicPoll(getTransaction(), source); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,39 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseService.java 20 2011-11-08 09:01:17Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-services/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.services; + +/** + * Contract to place on each EchBase service to push the {@code serviceContext} + * inside the service. + * + * @author tchemit <chemit@codelutin.com> + * @see PollenServiceContext + * @since 0.1 + */ +public interface PollenService { + + void setServiceContext(PollenServiceContext serviceContext); + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContext.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,67 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseServiceContext.java 54 2011-11-13 22:20:37Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-services/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenConfiguration; +import org.nuiton.topia.TopiaContext; + +import java.util.Date; +import java.util.Locale; + +/** + * This contract represents objects you must provide when asking for a service. + * Objects provided may be injected in services returned by + * {@link PollenServiceFactory#newService(Class, PollenServiceContext)} + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public interface PollenServiceContext { + + TopiaContext getTransaction(); + + void setTransaction(TopiaContext transaction); + + Locale getLocale(); + + PollenConfiguration getConfiguration(); + + PollenServiceFactory getServiceFactory(); + + <E extends PollenService> E newService(Class<E> clazz); + + /** + * createPollenUrlId : + * Create a unique UId for entities which need it (PollAccount, Poll). + * This UId represent the entity in UI module. + * + * @return String + */ + String createPollenUrlId(); + + /** @return the current date */ + Date getCurrentTime(); + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContextImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContextImpl.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceContextImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,139 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseServiceContextImpl.java 148 2011-12-05 22:55:34Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-services/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; +import org.chorem.pollen.PollenConfiguration; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; + +import java.util.Date; +import java.util.Locale; +import java.util.UUID; + +/** + * Instances of this class will be given to service factory. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenServiceContextImpl implements PollenServiceContext { + + protected TopiaContext transaction; + + protected PollenServiceFactory serviceFactory; + + protected PollenConfiguration configuration; + + protected Locale locale; + + public static PollenServiceContext newContext( + PollenServiceContext serviceContext, + TopiaContext transaction) { + return newContext(serviceContext.getLocale(), + transaction, + serviceContext.getConfiguration(), + serviceContext.getServiceFactory() + ); + } + + public static PollenServiceContext newContext( + Locale locale, + Supplier<TopiaContext> topiaContextSupplier, + PollenConfiguration configuration, + PollenServiceFactory serviceFactory) throws TopiaException { + return newContext(locale, + topiaContextSupplier.get().beginTransaction(), + configuration, + serviceFactory); + } + + public static PollenServiceContext newContext( + Locale locale, + TopiaContext transaction, + PollenConfiguration configuration, + PollenServiceFactory serviceFactory) { + return new PollenServiceContextImpl(locale, + transaction, + configuration, + serviceFactory); + } + + protected PollenServiceContextImpl(Locale locale, + TopiaContext transaction, + PollenConfiguration configuration, + PollenServiceFactory serviceFactory) { + this.locale = locale; + this.transaction = transaction; + this.configuration = configuration; + this.serviceFactory = serviceFactory; + } + + @Override + public TopiaContext getTransaction() { + Preconditions.checkNotNull(transaction); + return transaction; + } + + @Override + public void setTransaction(TopiaContext transaction) { + this.transaction = transaction; + } + + @Override + public Locale getLocale() { + return locale; + } + + @Override + public <E extends PollenService> E newService(Class<E> clazz) { + return serviceFactory.newService(clazz, this); + } + + @Override + public PollenConfiguration getConfiguration() { + return configuration; + } + + @Override + public PollenServiceFactory getServiceFactory() { + return serviceFactory; + } + + /** + * Create an id to easily managed polls using urls. + * + * @return a fresh generated String + */ + @Override + public String createPollenUrlId() { + return UUID.randomUUID().toString().replaceAll("-", ""); + } + + @Override + public Date getCurrentTime() { + return new Date(); + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceFactory.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceFactory.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceFactory.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,58 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseServiceFactory.java 20 2011-11-08 09:01:17Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-services/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenTechnicalException; + +import java.lang.reflect.InvocationTargetException; + +/** + * Factory of services. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenServiceFactory { + + public <E extends PollenService> E newService(Class<E> clazz, PollenServiceContext serviceContext) { + // instantiate service using empty constructor + E service; + try { + service = clazz.getConstructor().newInstance(); + } catch (InstantiationException e) { + throw new PollenTechnicalException(e); + } catch (IllegalAccessException e) { + throw new PollenTechnicalException(e); + } catch (InvocationTargetException e) { + throw new PollenTechnicalException(e); + } catch (NoSuchMethodException e) { + throw new PollenTechnicalException(e); + } + + service.setServiceContext(serviceContext); + + return service; + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,133 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id: EchoBaseServiceSupport.java 213 2011-12-26 10:10:04Z tchemit $ + * $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-services/src/main... $ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import com.google.common.base.Preconditions; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.chorem.pollen.PollenConfiguration; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenTechnicalException; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.Date; +import java.util.List; +import java.util.Locale; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class PollenServiceSupport implements PollenService { + + protected PollenServiceContext serviceContext; + + @Override + public void setServiceContext(PollenServiceContext serviceContext) { + this.serviceContext = serviceContext; + } + + public <E extends TopiaEntity> List<E> getEntities(PollenDAOHelper.PollenEntityEnum entityType) { + Class<E> contract = (Class<E>) entityType.getContract(); + return getEntities(contract); + } + + public <E extends TopiaEntity> List<E> getEntities(Class<E> entityType) { + Preconditions.checkNotNull(entityType); + try { + List<E> result = getDAO(entityType).findAll(); + return result; + } catch (TopiaException eee) { + throw new PollenTechnicalException( + "Could not obtain data for type " + entityType, eee); + } + } + + public <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) { + Preconditions.checkNotNull(entityType); + Preconditions.checkArgument(StringUtils.isNotEmpty(id)); + try { + E result = getDAO(entityType).findByTopiaId(id); + return result; + } catch (TopiaException eee) { + throw new PollenTechnicalException( + "Could not obtain data of id [" + id + "] for type " + + entityType, eee); + } + } + + protected TopiaContext getTransaction() { + return serviceContext.getTransaction(); + } + + protected Locale getLocale() { + return serviceContext.getLocale(); + } + + protected PollenConfiguration getConfiguration() { + return serviceContext.getConfiguration(); + } + + protected <E extends PollenService> E newService(Class<E> serviceClass) { + E service = serviceContext.newService(serviceClass); + return service; + } + + protected <E extends TopiaEntity> TopiaDAO<E> getDAO(PollenDAOHelper.PollenEntityEnum entityEnum) throws TopiaException { + TopiaDAO<E> dao = getDAO((Class<E>) entityEnum.getContract()); + return dao; + } + + protected <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityType) throws TopiaException { + TopiaDAO<E> dao = PollenDAOHelper.<E, TopiaDAO<E>>getDAO( + getTransaction(), + entityType); + + return dao; + } + + protected void commitTransaction(String errorMessage) { + try { + getTransaction().commitTransaction(); + } catch (TopiaException eee) { + throw new PollenTechnicalException(errorMessage, eee); + } + } + + protected void flushTransaction() throws TopiaException { + TopiaContextImplementor tx = (TopiaContextImplementor) getTransaction(); + tx.getHibernate().flush(); + } + + protected Date newDate() { + Date result = new Date(); + DateUtils.setMilliseconds(result, 0); + return result; + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/UserService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/UserService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/UserService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,108 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import com.google.common.collect.Lists; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenTechnicalException; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.service.legacy.ServiceUserImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +import java.util.Map; + +public class UserService extends PollenServiceSupport { + + public UserAccount connect(String login, String password) throws PollenBusinessException { + ServiceUserImpl service = new ServiceUserImpl(); + try { + UserAccount result = service.executeConnect(getTransaction(), Lists.newArrayList(), login, password); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public UserAccount getNewUser() throws PollenException { + ServiceUserImpl service = new ServiceUserImpl(); + UserAccount result = service.executeGetNewUser(); + return result; + } + + public void createUser(UserAccount user) throws PollenBusinessException { + ServiceUserImpl service = new ServiceUserImpl(); + try { + service.executeCreateUser(getTransaction(), Lists.newArrayList(), user); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void updateUser(UserAccount user, boolean byAdmin) throws PollenBusinessException { + ServiceUserImpl service = new ServiceUserImpl(); + try { + service.executeUpdateUser(getTransaction(), Lists.newArrayList(), user, byAdmin); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void deleteUser(String login) { + ServiceUserImpl service = new ServiceUserImpl(); + try { + service.executeDeleteUser(getTransaction(), login); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Map<String, UserAccount> getUsers(EntityFilter filter) { + ServiceUserImpl service = new ServiceUserImpl(); + try { + Map<String, UserAccount> result = service.executeGetUsers(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbUsers() { + ServiceUserImpl service = new ServiceUserImpl(); + try { + int result = service.executeGetNbUsers(getTransaction()); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public String encodePassword(String password) { + ServiceUserImpl service = new ServiceUserImpl(); + String result = service.encodePassword(password); + return result; + } + +} //ServiceUser Added: branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/VoteService.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/VoteService.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/java/org/chorem/pollen/services/VoteService.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,123 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.PollenTechnicalException; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.chorem.pollen.service.legacy.ServiceVoteImpl; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +import java.util.List; + +public class VoteService extends PollenServiceSupport { + + public boolean canVote(Poll poll, PollAccount participant) { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + boolean result = service.executeCanVote(getTransaction(), poll, participant); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public PollAccount getNewPollAccount(UserAccount user) { + ServiceVoteImpl service = new ServiceVoteImpl(); + PollAccount result = service.executeGetNewPollAccount(user); + return result; + } + + public PollAccount getPollAccount(String accountUid) { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + PollAccount result = service.executeGetPollAccount(getTransaction(), accountUid); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public List<PollAccount> getVotes(EntityFilter filter) { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + List<PollAccount> result = service.executeGetVotes(getTransaction(), filter); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public void deleteVote(Poll poll, PollAccount participant) { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + service.executeDeleteVote(getTransaction(), poll, participant); + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public int getNbVotes(Poll poll) throws PollenException { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + int result = service.executeGetNbVotes(getTransaction(), poll); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public Vote getNewVote(Choice choice) { + ServiceVoteImpl service = new ServiceVoteImpl(); + Vote result = service.executeGetNewVote(choice); + return result; + } + + public PollAccount saveVote(Poll poll, PollAccount participant) throws PollenBusinessException { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + PollAccount result = service.executeSaveVote(getTransaction(), poll, participant); + return result; + } catch (TopiaException e) { + throw new PollenTechnicalException(e); + } + } + + public PollAccount findPollAccount(Poll poll, UserAccount user) { + ServiceVoteImpl service = new ServiceVoteImpl(); + try { + PollAccount result = service.executeFindPollAccount(getTransaction(), poll, user); + return result; + } catch (Exception e) { + throw new PollenTechnicalException(e); + } + } + +} //ServiceVote Added: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,120 @@ +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.encodePassword= +pollen.error.serviceEmail.createEmail= +pollen.error.serviceEmail.getNewEmail= +pollen.error.serviceEmail.sendEmail= +pollen.error.serviceFavorite.createFavoriteList= +pollen.error.serviceFavorite.createFavoriteParticipant= +pollen.error.serviceFavorite.deleteFavoriteList= +pollen.error.serviceFavorite.deleteFavoriteParticipant= +pollen.error.serviceFavorite.getFavoriteLists= +pollen.error.serviceFavorite.getFavoriteParticipant= +pollen.error.serviceFavorite.getFavoriteParticipants= +pollen.error.serviceFavorite.getNbFavoriteParticipants= +pollen.error.serviceFavorite.getNewFavoriteList= +pollen.error.serviceFavorite.getNewFavoriteParticipant= +pollen.error.serviceFavorite.updateFavoriteParticipant= +pollen.error.serviceList.createAccountForPersonList= +pollen.error.serviceList.deleteAccountFromPersonList= +pollen.error.serviceMail.sendEmail= +pollen.error.servicePoll.addComment= +pollen.error.servicePoll.canAdminPoll= +pollen.error.servicePoll.createChoice= +pollen.error.servicePoll.createComment= +pollen.error.servicePoll.createPoll= +pollen.error.servicePoll.createUpdateVote= +pollen.error.servicePoll.delete= +pollen.error.servicePoll.deleteChoice= +pollen.error.servicePoll.deleteComment= +pollen.error.servicePoll.deletePoll= +pollen.error.servicePoll.deleteVote= +pollen.error.servicePoll.getAllPolls= +pollen.error.servicePoll.getComments= +pollen.error.servicePoll.getNbComments= +pollen.error.servicePoll.getNbPollsByUser= +pollen.error.servicePoll.getNbTotalPolls= +pollen.error.servicePoll.getNewChoice= +pollen.error.servicePoll.getNewComment= +pollen.error.servicePoll.getNewPoll= +pollen.error.servicePoll.getNewPollList= +pollen.error.servicePoll.getNewPollParticipant= +pollen.error.servicePoll.getPoll= +pollen.error.servicePoll.getPollForResults= +pollen.error.servicePoll.getPollForUpdate= +pollen.error.servicePoll.getPollForVote= +pollen.error.servicePoll.getPolls= +pollen.error.servicePoll.getPollsByUser= +pollen.error.servicePoll.getRestrictedAccount=Unable to retrieve restricted account with accountUid \= %1$s and poll with uid \= %2$s +pollen.error.servicePoll.getRunningPolls= +pollen.error.servicePoll.getVotes= +pollen.error.servicePoll.savePoll= +pollen.error.servicePoll.setPollClosed= +pollen.error.servicePoll.updatePoll= +pollen.error.serviceResults.importPoll= +pollen.error.serviceUser.connect= +pollen.error.serviceUser.createDefaultAdmin= +pollen.error.serviceUser.createFavoriteList= +pollen.error.serviceUser.createFavoriteParticipant= +pollen.error.serviceUser.createList= +pollen.error.serviceUser.createUpdateList= +pollen.error.serviceUser.createUpdateUser= +pollen.error.serviceUser.createUser= +pollen.error.serviceUser.deleteFavoriteList= +pollen.error.serviceUser.deleteFavoriteParticipant= +pollen.error.serviceUser.deleteList= +pollen.error.serviceUser.deleteUser= +pollen.error.serviceUser.getAccounts= +pollen.error.serviceUser.getFavoriteLists= +pollen.error.serviceUser.getFavoriteParticipants= +pollen.error.serviceUser.getNbAccounts= +pollen.error.serviceUser.getNbFavoriteParticipants= +pollen.error.serviceUser.getNbUsers= +pollen.error.serviceUser.getNewAccount= +pollen.error.serviceUser.getNewFavoriteList= +pollen.error.serviceUser.getNewFavoriteParticipant= +pollen.error.serviceUser.getNewList= +pollen.error.serviceUser.getNewPerson= +pollen.error.serviceUser.getNewUser= +pollen.error.serviceUser.getPerson= +pollen.error.serviceUser.getUsers= +pollen.error.serviceUser.updateFavoriteParticipant= +pollen.error.serviceUser.updateUser= +pollen.error.serviceVote.canVote= +pollen.error.serviceVote.deleteVote= +pollen.error.serviceVote.findPollAccount= +pollen.error.serviceVote.getNbVotes= +pollen.error.serviceVote.getNewPollAccount= +pollen.error.serviceVote.getNewVote= +pollen.error.serviceVote.getPollAccount= +pollen.error.serviceVote.getVote= +pollen.error.serviceVote.getVotes= +pollen.error.serviceVote.getVotesByPoll=Unable to load votes from poll with uid \= %1$s +pollen.error.serviceVote.hasAlreadyVoted=Unable test vote existing for account with votingId \= %1$s and poll with uid \= %2$s +pollen.error.serviceVote.saveVote= +pollen.exception.favorite_list_name_exist= +pollen.exception.favorite_participant_exist= +pollen.exception.favorite_participant_exist_without_email= +pollen.exception.load_configuration= +pollen.exception.participant_doubloons= +pollen.exception.participant_exist= +pollen.exception.participant_exist_without_email= +pollen.exception.poll_exist= +pollen.exception.poll_not_exist=No such poll exists. Please make sure that you are using the correct link and copy it completely into your browser's address field. +pollen.exception.smtp_not_available= +pollen.exception.user_email_exist= +pollen.exception.user_login_exist= +pollen.exception.user_not_exist= +pollen.exception.user_wrong_password= +pollen.exception.vote_doubloon= +pollen.exception.vote_not_allowed= +pollen.info.admin.created=Super admin was created with login %1$s +pollen.info.admin.exists=Super admin already exists +pollen.info.start=Start Pollen +pollen.info.started=Pollen is started \! +pollen.info.stop=Stop Pollen +pollen.text.empty= Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,116 @@ +pollen.error.context.close=Erreur lors de la fermeture de la transaction +pollen.error.context.getRootContext=Erreur lors de la récupération 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émarrage de l'application +pollen.error.context.stop=Erreur lors de l'arrêt de l'application +pollen.error.encodePassword= +pollen.error.serviceEmail.createEmail= +pollen.error.serviceEmail.getNewEmail= +pollen.error.serviceEmail.sendEmail= +pollen.error.serviceFavorite.createFavoriteList= +pollen.error.serviceFavorite.createFavoriteParticipant= +pollen.error.serviceFavorite.deleteFavoriteList= +pollen.error.serviceFavorite.deleteFavoriteParticipant= +pollen.error.serviceFavorite.getFavoriteLists= +pollen.error.serviceFavorite.getFavoriteParticipant= +pollen.error.serviceFavorite.getFavoriteParticipants= +pollen.error.serviceFavorite.getNbFavoriteParticipants= +pollen.error.serviceFavorite.getNewFavoriteList= +pollen.error.serviceFavorite.getNewFavoriteParticipant= +pollen.error.serviceFavorite.updateFavoriteParticipant= +pollen.error.serviceList.createAccountForPersonList= +pollen.error.serviceList.deleteAccountFromPersonList= +pollen.error.serviceMail.sendEmail=Erreur lors de l'envoi de l'email sur le serveur %1$s\:%2$d pour %3$s de la part de %4$s +pollen.error.servicePoll.addComment=Impossible d'ajouter un nouveau commentaire créé par %1$s pour le sondage %2$s (%3$s) +pollen.error.servicePoll.canAdminPoll= +pollen.error.servicePoll.createChoice= +pollen.error.servicePoll.createComment= +pollen.error.servicePoll.createPoll=Impossible d'enregistrer le sondage %1$s créé par %2$s +pollen.error.servicePoll.createUpdateVote= +pollen.error.servicePoll.deleteChoice= +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 pou identifiant "%1$s" +pollen.error.servicePoll.deleteVote= +pollen.error.servicePoll.getAllPolls= +pollen.error.servicePoll.getComments= +pollen.error.servicePoll.getNbComments= +pollen.error.servicePoll.getNbPollsByUser= +pollen.error.servicePoll.getNbTotalPolls= +pollen.error.servicePoll.getNewChoice= +pollen.error.servicePoll.getNewComment= +pollen.error.servicePoll.getNewPoll= +pollen.error.servicePoll.getNewPollList= +pollen.error.servicePoll.getNewPollParticipant= +pollen.error.servicePoll.getPoll= +pollen.error.servicePoll.getPollForResults= +pollen.error.servicePoll.getPollForUpdate= +pollen.error.servicePoll.getPollForVote= +pollen.error.servicePoll.getPolls= +pollen.error.servicePoll.getPollsByUser= +pollen.error.servicePoll.getRestrictedAccount=Unable to retrieve restricted account with accountUid \= %1$s and poll with uid \= %2$s +pollen.error.servicePoll.getRunningPolls= +pollen.error.servicePoll.getVotes= +pollen.error.servicePoll.savePoll= +pollen.error.servicePoll.setPollClosed= +pollen.error.servicePoll.updatePoll=Impossible de mettre à jour le sondage %1$s (%2$s) +pollen.error.serviceResults.importPoll= +pollen.error.serviceUser.connect=Impossible d'établir la connexion pour l'identifiant %1$s et le mot de passe encodé %2$s +pollen.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut \: %1$s (%2$s) +pollen.error.serviceUser.createFavoriteList= +pollen.error.serviceUser.createFavoriteParticipant= +pollen.error.serviceUser.createList= +pollen.error.serviceUser.createUpdateList= +pollen.error.serviceUser.createUpdateUser=Impossible de créer l'utilisateur '%1$s' <%2$s> (admin \= %$3b) +pollen.error.serviceUser.createUser= +pollen.error.serviceUser.deleteFavoriteList= +pollen.error.serviceUser.deleteFavoriteParticipant= +pollen.error.serviceUser.deleteList= +pollen.error.serviceUser.deleteUser= +pollen.error.serviceUser.getAccounts= +pollen.error.serviceUser.getFavoriteLists= +pollen.error.serviceUser.getFavoriteParticipants= +pollen.error.serviceUser.getNbAccounts= +pollen.error.serviceUser.getNbFavoriteParticipants= +pollen.error.serviceUser.getNbUsers= +pollen.error.serviceUser.getNewAccount= +pollen.error.serviceUser.getNewFavoriteList= +pollen.error.serviceUser.getNewFavoriteParticipant= +pollen.error.serviceUser.getNewList= +pollen.error.serviceUser.getNewPerson= +pollen.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur. +pollen.error.serviceUser.getPerson= +pollen.error.serviceUser.getUsers= +pollen.error.serviceUser.updateFavoriteParticipant= +pollen.error.serviceUser.updateUser= +pollen.error.serviceVote.canVote= +pollen.error.serviceVote.deleteVote= +pollen.error.serviceVote.findPollAccount= +pollen.error.serviceVote.getNbVotes= +pollen.error.serviceVote.getNewPollAccount= +pollen.error.serviceVote.getNewVote= +pollen.error.serviceVote.getPollAccount= +pollen.error.serviceVote.getVote= +pollen.error.serviceVote.getVotes= +pollen.error.serviceVote.getVotesByPoll= +pollen.error.serviceVote.hasAlreadyVoted= +pollen.error.serviceVote.saveVote= +pollen.exception.favorite_list_name_exist=La liste %1$s existe déjà pour l'utilisateur %2$s +pollen.exception.load_configuration=La configuration n'a pas été chargée correctement \! Veuillez vérifier le démarrage de l'application. +pollen.exception.participant_doubloons=Les doublons de la liste %1$s ont été ignorés \: %2$s +pollen.exception.participant_exist=La liste %1$s contient déjà un votant nommé %2$s avec un email %3$s +pollen.exception.participant_exist_without_email=La liste %1$s contient déjà un votant nommé %2$s avec aucun email +pollen.exception.poll_exist= +pollen.exception.poll_not_exist=Il n'y a pas de sondage à cette adresse. Veuillez verifier que vous utilisez le lien correcte et copiez-le complètement dans le champ d'adresse de votre navigateur. +pollen.exception.smtp_not_available=Impossible d'envoyer un email à %1$s. Serveur smtp indisponible pour l'envoi d'email, veuillez contacter un administrateur. +pollen.exception.user_email_exist=Un utilisateur est déjà enregistré avec cet email. +pollen.exception.user_login_exist=Un utilisateur est déjà enregistré avec cet identifiant. +pollen.exception.user_not_exist=L'identifiant '%1$s' ne correspond à aucun utilisateur connu. +pollen.exception.user_wrong_password=Le mot de passe renseigné est incorrect pour l'utilisateur '%1$s'. +pollen.exception.vote_doubloon= +pollen.exception.vote_not_allowed= +pollen.info.admin.created=Le super admin a été créé avec l'identifiant %1$s. +pollen.info.admin.exists=Le super admin existe déjà +pollen.info.start=Démarrage de Pollen... +pollen.info.started=Pollen a été démarré avec succès \! +pollen.info.stop=Arrêt de Pollen Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/pollen.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/main/resources/pollen.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/main/resources/pollen.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,83 @@ +### +# #%L +# Pollen :: Services +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +## Configuration de la base de donn\u00C3\u00A9es +#hibernate.hbm2ddl.auto=update +hibernate.show_sql=false +hibernate.hbm2ddl.auto=update +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\u00E9es +#choiceType=DATE,IMAGE,TEXT +#pollType=RESTRICTED,FREE,GROUP +#voteCounting=NORMAL,PERCENTAGE,CONDORCET,NUMBER + +## Utilisateur par d\u00C3\u00A9faut +adminLogin=admin +adminPassword=pollen +adminEmail=admin@domain.com + +## R\u00C3\u00A9pertoire des images transf\u00C3\u00A9r\u00C3\u00A9es +upImgDir=${HOME}/.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 +email_port=25 +email_from=bot@pollen.org + +## R\u00E9pertoire des flux de syndication (Atom) +feedDir=${HOME}/.pollen/feeds + +## Repertoire de stockage des mails a envoyer +pollen.emails.directory=${HOME}/.pollen/emails +pollen.charset=UTF-8 + +## Nombre de votes a afficher par page +pollen.ui.nbVotesPerPage=25 + +## Adresse du site (utilis\u00C3\u00A9e pour les emails de rappel) +##siteUrl= + +## Version de l'application +version=${project.version} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/main/resources/pollen.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/AbstractServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/AbstractServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/AbstractServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,423 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenContext; +import org.chorem.pollen.PollenContextImpl; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.ChoiceDAO; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteListDAO; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.FavoriteParticipantDAO; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountDAO; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountDAO; +import org.chorem.pollen.entity.Vote; +import org.junit.After; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.rules.TestName; +import org.junit.runner.Description; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.ApplicationConfig; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.List; +import java.util.Properties; + +/** + * TestManager + * <p/> + * Created: 24 févr. 2010 + * + * @author fdesbois + * @version $Id$ + */ +@Ignore +public abstract class AbstractServiceTest { + + protected static final String PROPERTY_CHOICE_VOTE = + TopiaQuery.getProperty(PollAccount.PROPERTY_CHOICE_VOTE, + Vote.PROPERTY_CHOICE); + + private static final Log log = LogFactory.getLog(AbstractServiceTest.class); + + protected PollenContext context; + + protected ServiceUserImpl serviceUser; + + protected ServiceFavoriteImpl serviceFavorite; + + protected ServicePollImpl servicePoll; + + protected ServiceVoteImpl serviceVote; + + @Rule + public TestName rule = new TestName() { + + @Override + public void starting(Description method) { + super.starting(method); + try { + getTest().start(getMethodName()); + getTest().init(); + } catch (Exception eee) { + log.error(eee.getClass().getSimpleName(), eee); + } + } + + public AbstractServiceTest getTest() { + return AbstractServiceTest.this; + } + }; + + protected abstract void init() throws Exception; + + public void start(String dbname) throws IOException { + log.info("## START ## : " + dbname); + + InputStream input = AbstractServiceTest.class. + getResourceAsStream("/PollenTest.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 + ); + + getContext().loadConfiguration(config); + getContext().start(getServiceUser()); + + // Set currentDate to 23/02/2010 for tests + Calendar calendar = new GregorianCalendar(2010, 1, 23, 0, 0, 0); + ((PollenContextImpl) getContext()).setCurrentDate(calendar.getTime()); + } + + @After + public void stop() throws IOException { + getContext().stop(); + context = null; + serviceUser = null; + servicePoll = null; + serviceFavorite = null; + } + + public PollenContext getContext() { + if (context == null) { + context = new PollenContextImpl(); + } + return context; + } + + public ServiceUserImpl getServiceUser() { + if (serviceUser == null) { + serviceUser = new ServiceUserImpl(); + serviceUser.setContext(getContext()); + } + return serviceUser; + } + + public ServiceFavoriteImpl getServiceFavorite() { + if (serviceFavorite == null) { + serviceFavorite = new ServiceFavoriteImpl(); + serviceFavorite.setContext(getContext()); + } + return serviceFavorite; + } + + public ServicePollImpl getServicePoll() { + if (servicePoll == null) { + servicePoll = new ServicePollImpl(); + servicePoll.setContext(getContext()); + } + return servicePoll; + } + + public ServiceVoteImpl getServiceVote() { + if (serviceVote == null) { + serviceVote = new ServiceVoteImpl(); + serviceVote.setContext(getContext()); + } + return serviceVote; + } + + public TopiaContext beginTransaction() throws TopiaException { + return getContext().beginTransaction(); + } + +// public ServiceEmailImpl getServiceEmail() { +// ServiceEmailImpl instance = new ServiceEmailImpl(); +// instance.setContext(getContext()); +// return instance; +// } +// +// public ServicePollImpl getServicePoll() { +// ServicePollImpl instance = new ServicePollImpl(); +// instance.setContext(getContext()); +// return instance; +// } + + /** + * Create a user :<br /> <ul> <li>login : homer</li> <li>email : + * homer@simpson.us</li> <li>password : wouhou</li> </ul> You can decide if + * this user is an admin using {@code admin} argument. + * + * @param admin flag to create the user as an admin + * @return the new UserAccount created + * @throws TopiaException + * @throws PollenBusinessException + */ + public UserAccount createUser(boolean admin) + throws TopiaException, PollenBusinessException { + + UserAccount user = getServiceUser().getNewUser(); + user.setLogin("homer"); + user.setEmail("homer@simpson.us"); + user.setNewPassword("wouhou"); + user.setAdmin(admin); + + getServiceUser().createUser(user); + + TopiaContext transaction = getContext().beginTransaction(); + try { + UserAccountDAO dao = + PollenDAOHelper.getUserAccountDAO(transaction); + + UserAccount findUser = dao.findByLogin(user.getLogin()); + return findUser; + } finally { + transaction.closeContext(); + } + } + + public FavoriteList createFavoriteList(String name, UserAccount user) + throws TopiaException { + + TopiaContext transaction = beginTransaction(); + try { + FavoriteListDAO dao = + PollenDAOHelper.getFavoriteListDAO(transaction); + + FavoriteList list = dao.create(name, user); + transaction.commitTransaction(); + return list; + } finally { + transaction.closeContext(); + } + } + + public FavoriteParticipant createFavoriteParticipant(String name, + String email, FavoriteList list) throws TopiaException { + TopiaContext transaction = beginTransaction(); + try { + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + FavoriteParticipant participant = dao.create(name, email, list); + transaction.commitTransaction(); + return participant; + } finally { + transaction.closeContext(); + } + } + + public FavoriteList findFavoriteList(String id, String... propertiesLoad) + throws TopiaException { + TopiaContext transaction = beginTransaction(); + try { + FavoriteListDAO dao = + PollenDAOHelper.getFavoriteListDAO(transaction); + + TopiaQuery query = dao.createQuery(). + addEquals(TopiaEntity.TOPIA_ID, id). + addLoad(propertiesLoad); + + FavoriteList result = dao.findByQuery(query); + + return result; + } finally { + transaction.closeContext(); + } + } + + protected Poll createPoll(TopiaContext transaction, + String title, UserAccount user, + PollType type, VoteCountingType voteCounting) + throws TopiaException { + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + PollAccount creator = accountDAO.create(context.createPollenUrlId()); + creator.setName(user.getDisplayName()); + creator.setEmail(user.getEmail()); + creator.setUserAccount(user); + creator.setAdmin(true); + + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll poll = pollDAO.create(context.createPollenUrlId()); + poll.setCreator(creator); + poll.setTitle(title); + poll.setType(type); + if (voteCounting == null) { + voteCounting = VoteCountingType.NORMAL; + } + poll.setVoteCounting(voteCounting); + + return poll; + } + + public Poll createFreePoll(String title, UserAccount user, VoteCountingType voteCounting) + throws TopiaException { + TopiaContext transaction = beginTransaction(); + try { + Poll poll = createPoll(transaction, title, user, PollType.FREE, voteCounting); + + transaction.commitTransaction(); + + return poll; + } finally { + transaction.closeContext(); + } + } + + public List<Choice> addChoicesToPoll(Poll poll, ChoiceType choiceType, String... choices) + throws TopiaException { + + TopiaContext transaction = beginTransaction(); + try { + ChoiceDAO dao = PollenDAOHelper.getChoiceDAO(transaction); + + poll.setChoiceType(choiceType); + + for (String choice : choices) { + Choice newChoice = dao.create(); + newChoice.setName(choice); + newChoice.setType(choiceType); + poll.addChoice(newChoice); + } + + transaction.commitTransaction(); + + return poll.getChoice(); + } finally { + transaction.closeContext(); + } + } + + public Poll createGroupPoll(String title, + UserAccount user, VoteCountingType voteCounting, + int nbParticipantsByGroup, + String... groupNames) + throws TopiaException { + + TopiaContext transaction = beginTransaction(); + try { + + Poll poll = createPoll(transaction, title, user, PollType.GROUP, voteCounting); + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + for (String groupName : groupNames) { + PollAccount group = accountDAO.create(context.createPollenUrlId()); + group.setName(groupName); + group.setList(true); + + for (int i = 1; i <= nbParticipantsByGroup; i++) { + PollAccount participant = + accountDAO.create(context.createPollenUrlId()); + participant.setName(groupName + "_participant" + i); + participant.setEmail(groupName + "_email" + i + "@domain.org"); + participant.setWeight(1.); + if (i == 1) { + participant.setUserAccount(user); + } + group.addChild(participant); + } + + poll.addPollAccount(group); + } + + transaction.commitTransaction(); + + return poll; + + } finally { + transaction.closeContext(); + } + } + + public <E extends TopiaEntity> E loadEntity(E source, + String... propertiesToLoad) + throws Exception { + + TopiaContext transaction = beginTransaction(); + try { + TopiaQuery query = new TopiaQuery(source.getClass()); + + query.addFetch(propertiesToLoad); + + String mainIdProperty = + TopiaQuery.getProperty(query.getMainAlias(), TopiaEntity.TOPIA_ID); + + query.addEquals(mainIdProperty, source.getTopiaId()). + setMaxResults(1); + + E result = (E)query.executeToEntity(transaction, source.getClass()); + + if (result != null) { + return result; + } + + throw new NullPointerException("nothing to find... from id = " + + source.getTopiaId()); + } finally { + transaction.closeContext(); + } + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/AbstractServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceFavoriteImplTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceFavoriteImplTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceFavoriteImplTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,134 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.service.legacy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenBusinessException.PollenExceptionType; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.FavoriteParticipantDAO; +import org.chorem.pollen.entity.UserAccount; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; + +/** + * ServiceFavoriteImplTest + * + * Created: 5 mai 2010 + * + * @author fdesbois + * $Id$ + */ +public class ServiceFavoriteImplTest extends AbstractServiceTest { + + private static final Log log = LogFactory.getLog(ServiceUserImplTest.class); + + @Override + protected void init() throws Exception { + } + + @Test + public void testCreateFavoriteParticipant() throws Exception { + //start("testCreateFavoriteParticipant"); + + UserAccount user = createUser(false); + + final FavoriteList list = createFavoriteList("LIST", user); + + log.info("test 1 : no problem on creation"); + FavoriteParticipant participant = + getServiceFavorite().getNewFavoriteParticipant(list); + + participant.setName("participant"); + participant.setEmail("email"); + + getServiceFavorite().createFavoriteParticipant(participant); + + log.info("test 2 : problem on naturalId : participant already" + + " set with same email"); + + participant = + getServiceFavorite().getNewFavoriteParticipant(list); + + participant.setName("participant"); + participant.setEmail("email"); + + try { + getServiceFavorite().createFavoriteParticipant(participant); + } catch (PollenBusinessException eee) { + Assert.assertEquals(PollenExceptionType.PARTICIPANT_EXIST, + eee.getType()); + } + + log.info("test 3 : email in naturalId can be null"); + + participant = + getServiceFavorite().getNewFavoriteParticipant(list); + + participant.setName("participant2"); + participant.setEmail(null); + + getServiceFavorite().createFavoriteParticipant(participant); + + TopiaContext transaction = beginTransaction(); + try { + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + String email = null; + + FavoriteParticipant result = dao.findByProperties( + FavoriteParticipant.PROPERTY_NAME, "participant2", + FavoriteParticipant.PROPERTY_EMAIL, email, + FavoriteParticipant.PROPERTY_FAVORITE_LIST, list); + + Assert.assertNotNull(result); + } finally { + transaction.closeContext(); + } + } + + @Test + public void testUpdateFavoriteParticipant() throws Exception { + //start("testUpdateFavoriteParticipant"); + + /** PREPARE DATA **/ + UserAccount user = createUser(false); + + FavoriteList list = createFavoriteList("LIST", user); + FavoriteParticipant participant = + createFavoriteParticipant("participant", null, list); + + /** EXEC METHOD **/ + log.info("test 1 : update ok : add email"); + participant.setEmail("email"); + participant.setWeight(1.); + + getServiceFavorite().updateFavoriteParticipant(participant); + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceFavoriteImplTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServicePollImplTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServicePollImplTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServicePollImplTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,502 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.ChoiceDAO; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountImpl; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.PollImpl; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * Created: 14 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class ServicePollImplTest extends AbstractServiceTest { + + private static final Log log = LogFactory.getLog(ServicePollImplTest.class); + + private UserAccount user; + + private PollAccount creator; + + private PollAccount list1; + + private FavoriteList list2; + + private Poll poll; + + @Override + public void init() throws Exception { + // Initialize service and default user + getServicePoll(); + user = createUser(false); + + // Poll creator + creator = new PollAccountImpl(); + creator.setName(user.getDisplayName()); + creator.setEmail(user.getEmail()); + creator.setUserAccount(user); + creator.setAdmin(true); + + // Poll + poll = new PollImpl(); + poll.setCreator(creator); + poll.setTitle("Poll"); + poll.setUid(context.createPollenUrlId()); + poll.setChoice(new ArrayList<Choice>()); + + // Participant Lists + // First list : new list specific for poll restriction + list1 = new PollAccountImpl(); + list1.setName("List1"); + list1.setList(true); + + Collection<Participant> participants = new ArrayList<Participant>(); + Participant participant1_1 = new PollAccountImpl(); + participant1_1.setName("participant1_1"); + participant1_1.setEmail("email1_1@domain.org"); + participants.add(participant1_1); + + Participant participant1_2 = new PollAccountImpl(); + participant1_2.setName("participant1_2"); + participants.add(participant1_2); + list1.setParticipants(participants); + + // Second list : existing list from user favorites + list2 = createFavoriteList("list2", user); + Participant participant2_1 = createFavoriteParticipant( + "participant2_1", "email2_1@domain.org", list2); + Participant participant2_2 = createFavoriteParticipant( + "participant2_2", "email2_2@domain.org", list2); + Participant participant2_3 = createFavoriteParticipant( + "participant2_3", null, list2); + + list2 = findFavoriteList(list2.getId(), FavoriteList.PROPERTY_FAVORITE_PARTICIPANT); + } + + @Test + public void testUpdatePollNotStartedWithChoice() throws PollenBusinessException, TopiaException { + + // ---- PREPARE DATA ---- // + + // Prepare restricted Poll with 3 choices + poll.setType(PollType.RESTRICTED); + List<ParticipantList> participantLists = new ArrayList<ParticipantList>(); + participantLists.add(list1); + // begin in 3 days + Date beginDate = DateUtils.addDays(context.getCurrentDate(), 3); + poll.setBeginDate(beginDate); + poll.setChoiceType(ChoiceType.TEXT); + poll.addNewChoice("choice1", null); + poll.addNewChoice("choice2", "desc2"); + poll.addNewChoice("choice3", "desc3"); + + Poll pollCreated = servicePoll.createPoll(poll, participantLists); + // Ensure not started and not closed + Assert.assertFalse(pollCreated.isStarted()); + Assert.assertFalse(pollCreated.isClosed()); + + // Update Choices + pollCreated.setChoiceType(ChoiceType.DATE); + // Reset previous List + pollCreated.setChoice(null); + pollCreated.addNewChoice("choiceDate1", null); + pollCreated.addNewChoice("choiceDate2", null); + pollCreated.addNewChoice("choiceDate3", null); + + // ---- EXECUTE #1 : override choices ---- // + + Poll result = servicePoll.updatePoll(pollCreated); + // Changing type is efficient + Assert.assertEquals(ChoiceType.DATE, result.getChoiceType()); + + // ---- CHECK RESULT ---- // + + TopiaContext transaction = beginTransaction(); + try { + ChoiceDAO choiceDAO = PollenDAOHelper.getChoiceDAO(transaction); + + // This assume that only 3 choices exist, previous ones have been deleted + long nbChoices = choiceDAO.count(); + Assert.assertEquals(3, nbChoices); + } finally { + transaction.closeContext(); + } + + // ---- EXECUTE #2 : update existing choice name ---- // + + Choice choiceDate1 = result.getChoice().get(0); + choiceDate1.setName("changeChoice"); + result = servicePoll.updatePoll(result); + + // ---- CHECK RESULT ---- // + + Assert.assertEquals("changeChoice", result.getChoice().get(0).getName()); + } + + @Test + public void testInternalCreateBasicPoll() throws Exception { + //start("testInternalCreateBasicPoll"); + + // ---- PREPARE DATA ---- // + // done in init() method + + // ---- EXECUTE ---- // + + log.info("test 1 : create poll with creator from existing user"); + + TopiaContext transaction = beginTransaction(); + Poll newPoll = null; + try { + newPoll = servicePoll.createBasicPoll(transaction, poll); + Assert.assertNotNull(newPoll); + Assert.assertNotNull(newPoll.getTopiaId()); + Assert.assertNotNull(newPoll.getUid()); + Assert.assertEquals("Poll", newPoll.getTitle()); + + PollAccount newCreatorAccount = newPoll.getCreator(); + Assert.assertNotNull(newCreatorAccount); + Assert.assertNotNull(newCreatorAccount.getUid()); + Assert.assertEquals(user, newCreatorAccount.getUserAccount()); + Assert.assertTrue(newCreatorAccount.getAdmin()); + + // Will save the poll and its creator + transaction.commitTransaction(); + + } finally { + transaction.closeContext(); + } + + // Verification + transaction = beginTransaction(); + try { + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + Poll pollFound = dao.findByTopiaId(newPoll.getTopiaId()); + Assert.assertNotNull(pollFound); + Assert.assertNotNull(pollFound.getCreator()); + Assert.assertEquals(user, pollFound.getCreator().getUserAccount()); + + } finally { + transaction.closeContext(); + } + + log.info("test 2 : create poll with new creator"); + poll.getCreator().setUserAccount(null); + + transaction = beginTransaction(); + newPoll = null; + try { + newPoll = servicePoll.createBasicPoll(transaction, poll); + PollAccount newCreatorAccount = newPoll.getCreator(); + Assert.assertNull(newCreatorAccount.getUserAccount()); + } finally { + transaction.closeContext(); + } + } + + @Test + public void testInternalCreatePollAccounts() throws Exception { + //start("testInternalCreatePollAccounts"); + + // ---- PREPARE DATA ---- // + // list initializations in init() method + + Collection<ParticipantList> lists = new ArrayList<ParticipantList>(); + // First list : new list specific for poll restriction + lists.add(list1); + // Second list : existing list from user favorites + lists.add(list2); + + // ---- EXECUTE ---- // + + log.info("test 1 : createPollAccounts from one new list : RESTRICTED"); + + + TopiaContext transaction = beginTransaction(); + try { + // Only the first list of the collection will be considered : list1 + // Create only person accounts + List<PollAccount> accounts = servicePoll.createPollAccounts( + transaction, PollType.RESTRICTED, lists); + + Assert.assertEquals(2, accounts.size()); + for (PollAccount account : accounts) { + Assert.assertFalse(account.getList()); + Assert.assertNotNull(account.getId()); + Assert.assertNotNull(account.getUid()); + // No link with user + Assert.assertNull(account.getUserAccount()); + } + + } finally { + transaction.closeContext(); + } + + log.info("test 2 : createPollAccounts from two lists : GROUP." + + " One of the list is an existing favorite one"); + + transaction = beginTransaction(); + try { + // Create only list accounts + List<PollAccount> accounts = servicePoll.createPollAccounts( + transaction, PollType.GROUP, lists); + + Assert.assertEquals(2, accounts.size()); + for (PollAccount account : accounts) { + Assert.assertTrue(account.getList()); + Assert.assertNotNull(account.getId()); + Assert.assertNotNull(account.getUid()); + Assert.assertNotNull(account.getName()); + // No link with user + Assert.assertNull(account.getUserAccount()); + // Check on list1 + if (account.getName().equals(list1.getName())) { + Assert.assertEquals(2, account.getChild().size()); + // Check on list2 + } else if (account.getName().equals(list2.getName())) { + Assert.assertEquals(3, account.getChild().size()); + // Child are person accounts + for (PollAccount person : account.getChild()) { + Assert.assertFalse(person.getList()); + Assert.assertNotNull(person.getId()); + Assert.assertNotNull(person.getUid()); + // No link with user + Assert.assertNull(person.getUserAccount()); + } + } + } + + } finally { + transaction.closeContext(); + } + } + + @Test + public void integrationCreatePollFree() throws Exception { + + // ---- PREPARE DATA ---- // + user = null; + poll = servicePoll.getNewPoll(user); + poll.getCreator().setName("homer"); + poll.setType(PollType.FREE); + poll.setChoiceType(ChoiceType.TEXT); + poll.addNewChoice("choice1", null); + poll.addNewChoice("choice2", "desc2"); + poll.addNewChoice("choice3", "desc3"); + + // ---- EXECUTE ---- // + servicePoll.createPoll(poll, null); + + /** VERIFICATION RESULT **/ + TopiaContext transaction = beginTransaction(); + try { + // No accounts + type = FREE + 3 TEXT choices + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + Assert.assertTrue(dao.existByNaturalId(poll.getUid())); + Poll pollFound = dao.findByNaturalId(poll.getUid()); + + // Check pollType and accounts + Assert.assertEquals(PollType.FREE, pollFound.getType()); + Assert.assertEquals(0, pollFound.getPollAccount().size()); + + // Check choices + Assert.assertEquals(ChoiceType.TEXT, pollFound.getChoiceType()); + Assert.assertEquals(3, pollFound.getChoice().size()); + + // Check creator + Assert.assertNotNull(pollFound.getCreator()); + Assert.assertNull(pollFound.getCreator().getUserAccount()); + Assert.assertNotNull(pollFound.getCreator().getName()); + + } finally { + transaction.closeContext(); + } + } + + @Test + public void integrationCreatePollRestrictedFromNewList() throws Exception { + /** PREPARE DATA **/ + poll = servicePoll.getNewPoll(user); + poll.setType(PollType.RESTRICTED); + poll.setChoiceType(ChoiceType.DATE); + poll.addNewChoice("date1", null); + poll.addNewChoice("date2", "desc2"); + poll.addNewChoice("date3", "desc3"); + + Collection<ParticipantList> lists = new ArrayList<ParticipantList>(); + ParticipantList list = servicePoll.getNewPollList(); + lists.add(list); + + Collection<Participant> participants = new ArrayList<Participant>(); + Participant participant1 = servicePoll.getNewPollParticipant(); + participant1.setName("participant1"); + participant1.setEmail("email1"); + participant1.setWeight(1.); + participants.add(participant1); + + Participant participant2 = servicePoll.getNewPollParticipant(); + participant2.setName("participant2"); + participant2.setEmail(null); + participant2.setWeight(1.); + participants.add(participant2); + list.setParticipants(participants); + + /** EXEC METHOD **/ + servicePoll.createPoll(poll, lists); + + /** VERIFICATION RESULT **/ + TopiaContext transaction = beginTransaction(); + try { + // Two person accounts + type = RESTRICTED + 3 DATE choices + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + Assert.assertTrue(dao.existByNaturalId(poll.getUid())); + Poll pollFound = dao.findByNaturalId(poll.getUid()); + + // Check pollType and accounts + Assert.assertEquals(PollType.RESTRICTED, pollFound.getType()); + Assert.assertEquals(2, pollFound.getPollAccount().size()); + + // Check choices + Assert.assertEquals(ChoiceType.DATE, pollFound.getChoiceType()); + Assert.assertEquals(3, pollFound.getChoice().size()); + + // Check creator + Assert.assertEquals(user, pollFound.getCreator().getUserAccount()); + + } finally { + transaction.closeContext(); + } + } + + @Test + public void testGetPollsByUser() throws PollenBusinessException, TopiaException { + + createGroupPoll("POLL", user, null, 3, "group1", "group2"); + + Poll freePoll = createFreePoll("POLL2", user, null); + + PollAccount participant = getServiceVote().getNewPollAccount(user); + participant.setChoiceVote(new ArrayList<Vote>()); + + getServiceVote().saveVote(freePoll, participant); + + + /** EXEC METHOD **/ + EntityFilter filter = context.getNewFilter(); + filter.setReference(user); + List<UserPoll> polls = servicePoll.getPolls(filter); + + // POLL 2 : user both creator and participant (+2 accounts) + // POLL : user creator + added in each group (+3 accounts) + + Assert.assertEquals(2, polls.size()); + + UserPoll userPoll2 = polls.get(0); + Assert.assertEquals("POLL2", userPoll2.getPoll().getTitle()); + Assert.assertTrue(userPoll2.isCreator()); + Assert.assertEquals(2, userPoll2.getAccounts().size()); + + UserPoll userPoll1 = polls.get(1); + Assert.assertEquals("POLL", userPoll1.getPoll().getTitle()); + Assert.assertTrue(userPoll1.isCreator()); + Assert.assertEquals(3, userPoll1.getAccounts().size()); + } + + @Test + public void testFetchOnGetter() throws Exception, PollenBusinessException { + + poll = createFreePoll("POLL2", user, VoteCountingType.NORMAL); + List<Choice> choices = + addChoicesToPoll(poll, ChoiceType.TEXT, "choice1", "choice2", "choice3"); + + PollAccount participant = getServiceVote().getNewPollAccount(user); + Vote voteImpl = getServiceVote().getNewVote(choices.get(0)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + voteImpl = getServiceVote().getNewVote(choices.get(1)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + voteImpl = getServiceVote().getNewVote(choices.get(2)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + + getServiceVote().saveVote(poll, participant); + + poll = loadEntity(poll); + + /** EXEC METHOD **/ + + Poll pollFound = servicePoll.getPoll(poll.getUid(), Poll.PROPERTY_CHOICE); + +// Assert.assertEquals(3, pollFound.getChoice().size()); + + EntityFilter filter = context.getNewFilter(); + filter.setReference(pollFound); + List<PollAccount> accounts = getServiceVote().getVotes(filter); + + for (PollAccount account : accounts) { + log.debug("Account : " + account.getUid()); + } + Assert.assertEquals(1, accounts.size()); + + Assert.assertNotNull(accounts.get(0).getChoiceVote()); + Assert.assertEquals(3, accounts.get(0).getChoiceVote().size()); + + for (Vote vote : accounts.get(0).getChoiceVote()) { + log.debug("Vote choice : " + vote.getChoice().getName() + + " value=" + vote.getVoteValue()); + } + + } +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServicePollImplTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceUserImplTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceUserImplTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceUserImplTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,293 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +package org.chorem.pollen.service.legacy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenBusinessException.PollenExceptionType; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.PollenException; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountDAO; +import org.chorem.pollen.entity.UserAccountImpl; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; + +/** + * + * @author fdesbois + */ +public class ServiceUserImplTest extends AbstractServiceTest { + + private static final Log log = LogFactory.getLog(ServiceUserImplTest.class); + + @Override + protected void init() throws Exception { + } + + @Test + public void testCopyUserAccount() throws Exception { + //start("testManageNewPassword"); + + UserAccount user = getServiceUser().getNewUser(); + user.setLogin("homer"); + user.setNewPassword("wouhou"); + + log.info("test 1 : Encode new password"); + UserAccount destination = new UserAccountImpl(); + getServiceUser().copyUserAccount(user, destination); + Assert.assertNotNull(destination.getPassword()); + + String expected = getContext().encodePassword("wouhou"); + Assert.assertEquals(expected, destination.getPassword()); + + log.info("test 2 : Do not encode new password -> newPassword empty"); + user.setPassword(expected); + user.setNewPassword(null); + getServiceUser().copyUserAccount(user, destination); + Assert.assertEquals(expected, destination.getPassword()); + } + + @Test + public void testCheckPassword() throws Exception { + //start("testCheckPassword"); + + UserAccount user = getServiceUser().getNewUser(); + user.setLogin("homer"); + user.setNewPassword("wouhou"); + getServiceUser().createUser(user); + + String encodedPassword = getContext().encodePassword("wouhou"); + + TopiaContext transaction = beginTransaction(); + try { + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + + log.info("test 1 : Good password"); + getServiceUser().checkPassword(dao, "homer", encodedPassword); + + log.info("test 2 : Wrong password"); + try { + getServiceUser().checkPassword(dao, "homer", "bad"); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_WRONG_PASSWORD, + eee.getType()); + } + } finally { + transaction.closeContext(); + } + } + + /** + * Test of executeConnect method, of class ServiceUserImpl. + */ + @Test + public void testExecuteConnect() throws Exception { + //start("testExecuteConnect"); + + // The password is wouhou and login is homer + UserAccount user = createUser(false); + + log.info("test 1 : Connection OK"); + UserAccount connected = getServiceUser().connect("homer", "wouhou"); + Assert.assertEquals(user, connected); + + log.info("test 2 : Connection problem on login -> user not exist"); + try { + getServiceUser().connect("marge", "wouhou"); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_NOT_EXIST, + eee.getType()); + } + + log.info("test 3 : Connection problem on password -> " + + "don't match with login"); + try { + getServiceUser().connect("homer", "coucou"); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_WRONG_PASSWORD, + eee.getType()); + } + } + + /** + * Test of executeGetNewUser method, of class ServiceUserImpl. + */ + @Test + public void testExecuteGetNewUser() throws Exception { + //start("testGetNewUser"); + + UserAccount user = getServiceUser().getNewUser(); + Assert.assertNotNull(user); + Assert.assertEquals(false, user.getAdmin()); + } + + /** + * Test of executeCreateUpdateUser method, of class ServiceUserImpl. + */ + @Test + public void testExecuteCreateUser() throws Exception { + //start("testCreateUser"); + + UserAccount user = getServiceUser().getNewUser(); + user.setLogin("hsimpson"); + user.setEmail("hsimpson@springfield.us"); + user.setNewPassword("wouhou"); + + String encodedPassword = getContext().encodePassword("wouhou"); + + log.info("test 1 : Creation OK"); + getServiceUser().createUser(user); + //Assert.assertNotNull(user.getTopiaId()); + Assert.assertNotSame(encodedPassword, user.getPassword()); + + log.info("test 2 : Creation problem on login -> user exist"); + UserAccount user2 = getServiceUser().getNewUser(); + user2.setLogin("hsimpson"); + // Not the same email + user2.setEmail("hsimpson@springfield.com"); + user2.setNewPassword("troubidou"); + + try { + getServiceUser().createUser(user2); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_LOGIN_EXIST, + eee.getType()); + } + + log.info("test 3 : Creation problem on email -> user exist"); + UserAccount user3 = getServiceUser().getNewUser(); + user3.setLogin("homer"); + user3.setEmail("hsimpson@springfield.us"); + user3.setNewPassword("troubidou"); + + try { + getServiceUser().createUser(user3); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_EMAIL_EXIST, + eee.getType()); + } + + log.info("test 4 : Creation OK with no email"); + UserAccount user4 = getServiceUser().getNewUser(); + user4.setLogin("marge"); + user4.setNewPassword("troubidou"); + + getServiceUser().createUser(user4); + Assert.assertNull(user4.getEmail()); + } + + /** + * Test of executeDeleteUser method, of class ServiceUserImpl. + */ + @Test + public void testExecuteUpdateUser() throws Exception { + //start("testUpdateUser"); + + UserAccount user1 = getServiceUser().getNewUser(); + user1.setLogin("hsimpson"); + user1.setEmail("hsimpson@springfield.us"); + user1.setNewPassword("wouhou"); + getServiceUser().createUser(user1); + + UserAccount user2 = getServiceUser().getNewUser(); + String user2Password = "wouhou"; + user2.setLogin("homer"); + user2.setEmail("hsimpson@springfield.fr"); + user2.setNewPassword(user2Password); + getServiceUser().createUser(user2); + + log.info("test 1 : Can't change login -> don't match with password"); + user2.setLogin("homersimpson"); + user2.setPassword(user2Password); + try { + getServiceUser().updateUser(user2, false); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_WRONG_PASSWORD, + eee.getType()); + } + user2.setLogin("homer"); + + log.info("test 2 : Change email OK"); + user2.setEmail("homersimpson@springield.fr"); + user2.setPassword(user2Password); + getServiceUser().updateUser(user2, false); + + log.info("test 3 : Change email problem -> user exist"); + user2.setEmail(user1.getEmail()); + user2.setPassword(user2Password); + try { + getServiceUser().updateUser(user2, false); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenExceptionType.USER_EMAIL_EXIST, + eee.getType()); + } + + // TODO test 4 with byAdmin = true + } + + /** + * Test of executeDeleteUser method, of class ServiceUserImpl. + * @throws Exception + */ + @Test + public void testExecuteDeleteUser() throws Exception { + //start("testUpdateUser"); + + try { + getServiceUser().deleteUser("test"); + } catch (PollenException eee) { + log.error(eee); + Assert.assertEquals(IllegalArgumentException.class, + eee.getCause().getClass()); + } + + UserAccount user = getServiceUser().getNewUser(); + user.setLogin("user"); + getServiceUser().createUser(user); + + getServiceUser().deleteUser("user"); + + TopiaContext transaction = null; + try { + transaction = beginTransaction(); + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + UserAccount userFound = dao.findByLogin("user"); + Assert.assertNull(userFound); + } finally { + transaction.closeContext(); + } + } + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceUserImplTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceVoteImplTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceVoteImplTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceVoteImplTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,349 @@ +/* + * #%L + * Pollen :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package org.chorem.pollen.service.legacy; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountDAO; +import org.chorem.pollen.entity.PollAccountImpl; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.chorem.pollen.entity.VoteDAO; +import org.chorem.pollen.entity.VoteImpl; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created: 27 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class ServiceVoteImplTest extends AbstractServiceTest { + + private static final Log log = LogFactory.getLog(ServiceVoteImplTest.class); + + + protected UserAccount user; + + @Override + protected void init() throws Exception { + getServiceVote(); + + user = createUser(false); + } + + @Test + public void testCanVoteForGroupPoll() + throws Exception, TopiaException { + + /** PREPARE DATA **/ + + Poll pollCreated = createGroupPoll("Poll", user, null, 3, "Group1", "Group2"); + + PollAccount group1 = pollCreated.getPollAccount().iterator().next(); + PollAccount existingParticipant = group1.getChild().iterator().next(); + + // Reload the poll to really be unconnected (no loading of PollAccount) + Poll poll = loadEntity(pollCreated); + + /** EXEC METHOD **/ + log.info("test 1 : participant found and can vote"); + boolean result = serviceVote.canVote(poll, existingParticipant); + Assert.assertTrue(result); + + log.info("test 2 : poll creator can't vote"); + result = serviceVote.canVote(poll, poll.getCreator()); + Assert.assertFalse(result); + + log.info("test 3 : existingParticipant can't vote, poll is closed"); + poll.setClosed(true); + + TopiaContext transaction = beginTransaction(); + try { + PollenDAOHelper.getPollDAO(transaction).update(poll); + transaction.commitTransaction(); + } finally { + transaction.closeContext(); + } + + result = serviceVote.canVote(poll, existingParticipant); + Assert.assertFalse(result); + } + + @Test + public void testSaveVoteForFreePoll() throws Exception, TopiaException { + /** PREPARE DATA **/ + Poll pollCreated = createFreePoll("Poll", user, VoteCountingType.NORMAL); + List<Choice> choices = + addChoicesToPoll(pollCreated, ChoiceType.TEXT, + "choice1", "choice2", "choice3"); + + Poll poll = loadEntity(pollCreated); + + // Instantiate new participant with votes + PollAccount participant = new PollAccountImpl(); + participant.setName("participant"); + participant.setEmail("participant@domain.org"); + participant.setUserAccount(user); + + Vote vote1 = new VoteImpl(); + vote1.setChoice(choices.get(0)); // choice1 + vote1.setVoteValue(1); // TRUE + participant.addChoiceVote(vote1); + + Vote vote2 = new VoteImpl(); + vote2.setChoice(choices.get(1)); // choice2 + vote2.setVoteValue(0); // FALSE + participant.addChoiceVote(vote2); + + Vote vote3 = new VoteImpl(); + vote3.setChoice(choices.get(2)); // choice3 + vote3.setVoteValue(1); // TRUE + participant.addChoiceVote(vote3); + + /** EXEC METHOD **/ + + log.info("test 1 : new participant with 2 votes with value to 1"); + + PollAccount accountSaved = serviceVote.saveVote(poll, participant); + +// TopiaContext transaction = beginTransaction(); +// try { +// +// PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); +// +// PollAccount accountFound = dao.findByNaturalId(accountSaved.getUid()); +// +// Assert.assertNotNull(accountFound); +// Assert.assertEquals(context.getCurrentDate(), accountFound.getVoteDate()); +// Assert.assertEquals(2, accountFound.getChoiceVote().size()); +// List<String> choicesExist = new ArrayList<String>(); +// for (Vote curr : accountFound.getChoiceVote()) { +// Assert.assertEquals(1, curr.getVoteValue(), 0); +// choicesExist.add(curr.getChoice().getName()); +// } +// +// Assert.assertTrue(choicesExist.contains("choice1")); +// Assert.assertTrue(choicesExist.contains("choice3")); +// +// } finally { +// transaction.closeContext(); +// } + + PollAccount accountFound = loadEntity(accountSaved, PROPERTY_CHOICE_VOTE); + + Assert.assertNotNull(accountFound); + Assert.assertEquals(context.getCurrentDate(), accountFound.getVoteDate()); + Assert.assertEquals(2, accountFound.getChoiceVote().size()); + List<String> choicesExist = new ArrayList<String>(); + for (Vote curr : accountFound.getChoiceVote()) { + Assert.assertEquals(1, curr.getVoteValue(), 0); + choicesExist.add(curr.getChoice().getName()); + } + + Assert.assertTrue(choicesExist.contains("choice1")); + Assert.assertTrue(choicesExist.contains("choice3")); + + log.info("test 2 : anonymous participant"); + participant.setAnonymous(true); + participant.setName("participant2"); + + accountSaved = serviceVote.saveVote(poll, participant); + + // Check + accountFound = loadEntity(accountSaved); // Need USER_ACCOUNT ? + + Assert.assertTrue(accountFound.isAnonymous()); + Assert.assertNull(accountFound.getName()); + Assert.assertNull(accountFound.getUserAccount()); + Assert.assertNull(accountFound.getEmail()); + + // Update topiaId for next test + participant.setTopiaId(accountFound.getTopiaId()); + + log.info("test 3 : update participant votes"); + + PollAccount participantExist = + loadEntity(participant, PROPERTY_CHOICE_VOTE); + + for (Vote vote : participantExist.getChoiceVote()) { + // Update choice 1 with value 0 -> will be deleted + if (vote.getChoice().equals(choices.get(0))) { + vote.setVoteValue(0); + } + } + // Add choice2 + vote2 = new VoteImpl(); + vote2.setChoice(choices.get(1)); + vote2.setVoteValue(1); // TRUE + participantExist.addChoiceVote(vote2); + + accountSaved = serviceVote.saveVote(poll, participantExist); + + // Check + accountFound = loadEntity(accountSaved, PROPERTY_CHOICE_VOTE); + + Assert.assertEquals(context.getCurrentDate(), accountFound.getVoteDate()); + Assert.assertEquals(2, accountFound.getChoiceVote().size()); + choicesExist.clear(); + for (Vote curr : accountFound.getChoiceVote()) { + choicesExist.add(curr.getChoice().getName()); + } + + Assert.assertTrue(choicesExist.contains("choice2")); + Assert.assertTrue(choicesExist.contains("choice3")); + } + + @Test + public void testDeleteVoteForFreePoll() + throws Exception, PollenBusinessException { + + /** PREPARE DATA */ + Poll pollCreated = createFreePoll("Poll", user, VoteCountingType.NORMAL); + + List<Choice> choices = + addChoicesToPoll(pollCreated, ChoiceType.TEXT, + "choice1", "choice2", "choice3"); + + PollAccount participant = new PollAccountImpl(); + participant.setName("participant"); + participant.setEmail("participant@domain.org"); + participant.setUserAccount(user); + + for (Choice choice : choices) { + Vote vote = new VoteImpl(); + vote.setChoice(choices.get(0)); // choice1 + vote.setVoteValue(1); // TRUE + participant.addChoiceVote(vote); + } + + PollAccount account = serviceVote.saveVote(pollCreated, participant); + + account = loadEntity(account, PROPERTY_CHOICE_VOTE); + + Poll poll = loadEntity(pollCreated); + + /** EXEC METHOD */ + + serviceVote.deleteVote(poll, account); + + TopiaContext transaction = beginTransaction(); + try { + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + // Check account are correctly deleted + PollAccount accountFound = dao.findByNaturalId(account.getUid()); + Assert.assertNull(accountFound); + + VoteDAO voteDAO = PollenDAOHelper.getVoteDAO(transaction); + // Check all votes are not in database anymore + for (Vote vote : account.getChoiceVote()) { + Vote voteFound = voteDAO.findByTopiaId(vote.getTopiaId()); + Assert.assertNull(voteFound); + } + + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll pollFound = pollDAO.findByTopiaId(poll.getTopiaId()); + Assert.assertEquals(0, pollFound.getPollAccount().size()); + Assert.assertNotNull(pollFound.getCreator()); + + } finally { + transaction.closeContext(); + } + } + + @Test + public void testDeleteVoteForGroupPoll() + throws Exception, PollenBusinessException { + + /** PREPARE DATA */ + Poll pollCreated = createGroupPoll("Poll", user, + VoteCountingType.NORMAL, 3, "group1", "group2"); + + PollAccount group1 = pollCreated.getPollAccount().iterator().next(); + PollAccount existingParticipant = group1.getChild().iterator().next(); + + List<Choice> choices = + addChoicesToPoll(pollCreated, ChoiceType.TEXT, + "choice1", "choice2", "choice3"); + + for (Choice choice : choices) { + Vote vote = new VoteImpl(); + vote.setChoice(choices.get(0)); // choice1 + vote.setVoteValue(1); // TRUE + existingParticipant.addChoiceVote(vote); + } + + PollAccount account = + serviceVote.saveVote(pollCreated, existingParticipant); + + account = loadEntity(account, PROPERTY_CHOICE_VOTE); + + Poll poll = loadEntity(pollCreated); + + /** EXEC METHOD */ + + serviceVote.deleteVote(poll, account); + + TopiaContext transaction = beginTransaction(); + try { + PollAccountDAO dao = PollenDAOHelper.getPollAccountDAO(transaction); + + // Check account are correctly deleted + account = dao.findByNaturalId(account.getUid()); + Assert.assertFalse(account.isList()); + Assert.assertNotNull(account); + Assert.assertNull(account.getVoteDate()); + + VoteDAO voteDAO = PollenDAOHelper.getVoteDAO(transaction); + // Check all votes are not in database anymore + for (Vote vote : account.getChoiceVote()) { + Vote voteFound = voteDAO.findByTopiaId(vote.getTopiaId()); + Assert.assertNull(voteFound); + } + + } finally { + transaction.closeContext(); + } + + + } + + +} Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/service/legacy/ServiceVoteImplTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/AbstractPollenServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,272 @@ +package org.chorem.pollen.services; + +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.ChoiceDAO; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteListDAO; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.FavoriteParticipantDAO; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountDAO; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountDAO; +import org.junit.Before; +import org.junit.Rule; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.util.List; + +/** + * For each test, create an isolated transaction context, in a H2 database. + * The H2 file is stored in a directory depending on the test class name, the + * test method name, and a timestamp (allowing you to run tests multiple times + * to see how database changed between each test run). + * <p/> + * Any unit test of a service should subclass this class and use the + * {@link #newService(Class)} to get a service ready to be used. + */ +public abstract class AbstractPollenServiceTest extends PollenServiceSupport { + + @Rule + public FakeServiceContext serviceContext = new FakeServiceContext(); + + @Before + public void setUp() throws Exception { + serviceContext.setServiceFactory(new PollenServiceFactory()); + setServiceContext(serviceContext); + } + + + /** + * Create a user :<br /> <ul> <li>login : homer</li> <li>email : + * homer@simpson.us</li> <li>password : wouhou</li> </ul> You can decide if + * this user is an admin using {@code admin} argument. + * + * @param admin flag to create the user as an admin + * @return the new UserAccount created + * @throws TopiaException + * @throws PollenBusinessException + */ + public UserAccount createUser(boolean admin) throws TopiaException, PollenBusinessException { + + UserService userService = newService(UserService.class); + + UserAccount user = userService.getNewUser(); + user.setLogin("homer"); + user.setEmail("homer@simpson.us"); + user.setNewPassword("wouhou"); + user.setAdmin(admin); + + userService.createUser(user); + + TopiaContext transaction = serviceContext.newTransaction(); + try { + UserAccountDAO dao = + PollenDAOHelper.getUserAccountDAO(transaction); + + UserAccount findUser = dao.findByLogin(user.getLogin()); + return findUser; + } finally { + transaction.closeContext(); + } + } + + public FavoriteList createFavoriteList(String name, UserAccount user) + throws TopiaException { + + TopiaContext transaction = serviceContext.newTransaction(); + try { + FavoriteListDAO dao = + PollenDAOHelper.getFavoriteListDAO(transaction); + + FavoriteList list = dao.create(name, user); + transaction.commitTransaction(); + return list; + } finally { + transaction.closeContext(); + } + } + + public FavoriteParticipant createFavoriteParticipant(String name, + String email, FavoriteList list) throws TopiaException { + TopiaContext transaction = serviceContext.newTransaction(); + try { + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + + FavoriteParticipant participant = dao.create(name, email, list); + transaction.commitTransaction(); + return participant; + } finally { + transaction.closeContext(); + } + } + + public FavoriteList findFavoriteList(String id, String... propertiesLoad) + throws TopiaException { + TopiaContext transaction = serviceContext.newTransaction(); + try { + FavoriteListDAO dao = + PollenDAOHelper.getFavoriteListDAO(transaction); + + TopiaQuery query = dao.createQuery(). + addEquals(TopiaEntity.TOPIA_ID, id). + addLoad(propertiesLoad); + + FavoriteList result = dao.findByQuery(query); + + return result; + } finally { + transaction.closeContext(); + } + } + + protected Poll createPoll(TopiaContext transaction, + String title, UserAccount user, + PollType type, VoteCountingType voteCounting) + throws TopiaException { + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + PollAccount creator = accountDAO.create(serviceContext.createPollenUrlId()); + creator.setName(user.getDisplayName()); + creator.setEmail(user.getEmail()); + creator.setUserAccount(user); + creator.setAdmin(true); + + PollDAO pollDAO = PollenDAOHelper.getPollDAO(transaction); + + Poll poll = pollDAO.create(serviceContext.createPollenUrlId()); + poll.setCreator(creator); + poll.setTitle(title); + poll.setType(type); + if (voteCounting == null) { + voteCounting = VoteCountingType.NORMAL; + } + poll.setVoteCounting(voteCounting); + + return poll; + } + + public Poll createFreePoll(String title, UserAccount user, VoteCountingType voteCounting) + throws TopiaException { + TopiaContext transaction = serviceContext.newTransaction(); + try { + Poll poll = createPoll(transaction, title, user, PollType.FREE, voteCounting); + + transaction.commitTransaction(); + + return poll; + } finally { + transaction.closeContext(); + } + } + + public List<Choice> addChoicesToPoll(Poll poll, ChoiceType choiceType, String... choices) + throws TopiaException { + + TopiaContext transaction = serviceContext.newTransaction(); + try { + ChoiceDAO dao = PollenDAOHelper.getChoiceDAO(transaction); + + poll.setChoiceType(choiceType); + + for (String choice : choices) { + Choice newChoice = dao.create(); + newChoice.setName(choice); + newChoice.setType(choiceType); + poll.addChoice(newChoice); + } + + transaction.commitTransaction(); + + return poll.getChoice(); + } finally { + transaction.closeContext(); + } + } + + public Poll createGroupPoll(String title, + UserAccount user, VoteCountingType voteCounting, + int nbParticipantsByGroup, + String... groupNames) + throws TopiaException { + + TopiaContext transaction = serviceContext.newTransaction(); + try { + + Poll poll = createPoll(transaction, title, user, PollType.GROUP, voteCounting); + + PollAccountDAO accountDAO = + PollenDAOHelper.getPollAccountDAO(transaction); + + for (String groupName : groupNames) { + PollAccount group = accountDAO.create(serviceContext.createPollenUrlId()); + group.setName(groupName); + group.setList(true); + + for (int i = 1; i <= nbParticipantsByGroup; i++) { + PollAccount participant = + accountDAO.create(serviceContext.createPollenUrlId()); + participant.setName(groupName + "_participant" + i); + participant.setEmail(groupName + "_email" + i + "@domain.org"); + participant.setWeight(1.); + if (i == 1) { + participant.setUserAccount(user); + } + group.addChild(participant); + } + + poll.addPollAccount(group); + } + + transaction.commitTransaction(); + + return poll; + + } finally { + transaction.closeContext(); + } + } + + public <E extends TopiaEntity> E loadEntity(E source, + String... propertiesToLoad) + throws Exception { + + TopiaContext transaction = serviceContext.newTransaction(); + try { + TopiaQuery query = new TopiaQuery(source.getClass()); + + query.addFetch(propertiesToLoad); + + String mainIdProperty = + TopiaQuery.getProperty(query.getMainAlias(), TopiaEntity.TOPIA_ID); + + query.addEquals(mainIdProperty, source.getTopiaId()). + setMaxResults(1); + + E result = (E) query.executeToEntity(transaction, source.getClass()); + + if (result != null) { + return result; + } + + throw new NullPointerException("nothing to find... from id = " + + source.getTopiaId()); + } finally { + transaction.closeContext(); + } + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/EmailServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/EmailServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/EmailServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,37 @@ +package org.chorem.pollen.services; + +import org.junit.Before; +import org.junit.Test; + +/** + * Test {@link EmailService}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.0 + */ +public class EmailServiceTest extends AbstractPollenServiceTest { + + @Override + @Before + public void setUp() throws Exception { + + serviceContext.setCurrentTime(5, 10, 2011); + + super.setUp(); + } + + @Test + public void testCreateEmail() throws Exception { + + } + + @Test + public void testSendEmail() throws Exception { + + } + + @Test + public void testGetNewEmail() throws Exception { + + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FakeServiceContext.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FakeServiceContext.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FakeServiceContext.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,175 @@ +package org.chorem.pollen.services; + + +import com.google.common.base.Supplier; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenConfiguration; +import org.chorem.pollen.PollenTopiaRootContextSupplierFactory; +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.TopiaRuntimeException; +import org.nuiton.util.DateUtil; + +import java.io.File; +import java.util.Date; +import java.util.Locale; +import java.util.UUID; + +/** + * Provide an implementation of {@link PollenServiceContext} suitable for repeatable, + * isolated tests requiring a database. + */ +public class FakeServiceContext extends TestWatcher implements PollenServiceContext { + + public static final String CONFIGURATION_PATH = "pollen-fake.properties"; + + protected Supplier<TopiaContext> rootContextSupplier; + + private static final Log log = LogFactory.getLog(FakeServiceContext.class); + + /** A time-stamp, allow to make multiple build and keep the tests data. */ + protected static final String TIMESTAMP = String.valueOf(System.nanoTime()); + + protected PollenServiceFactory serviceFactory; + + protected TopiaContext rootContext; + + protected TopiaContext transaction; + + protected Date fakeCurrentTime; + + protected File getTestSpecificDirectory(Description description) { + // Trying to look for the temporary folder to store data for the test + String tempDirPath = System.getProperty("java.io.tmpdir"); + if (tempDirPath == null) { + // can this really occur ? + tempDirPath = ""; + if (log.isWarnEnabled()) { + log.warn("'\"java.io.tmpdir\" not defined"); + } + } + File tempDirFile = new File(tempDirPath); + + // create the directory to store database data + String dataBasePath = description.getClassName() + + File.separator // a directory with the test class name + + description.getMethodName()// a sub-directory with the method name + + '_' + + TIMESTAMP; // and a timestamp + File databaseFile = new File(tempDirFile, dataBasePath); + return databaseFile; + } + + public Supplier<TopiaContext> getRootContextSupplier() { + return rootContextSupplier; + } + + @Override + protected void starting(Description description) { + super.starting(description); + description.getMethodName(); + PollenTopiaRootContextSupplierFactory factory = + new PollenTopiaRootContextSupplierFactory(); + File testDir = getTestSpecificDirectory(description); + if (log.isInfoEnabled()) { + log.info("Test dir = " + testDir); + } + rootContextSupplier = factory.newEmbeddedDatabase( + testDir, "/" + CONFIGURATION_PATH); + rootContext = rootContextSupplier.get(); + } + + @Override + protected void finished(Description description) { + super.finished(description); + if (!rootContext.isClosed()) { + try { + rootContext.closeContext(); + } catch (TopiaException e) { + throw new TopiaRuntimeException(e); + } + } + } + + /** May be used in test to get a fresh transaction. */ + @Override + public TopiaContext getTransaction() { + if (transaction == null) { + try { + transaction = rootContext.beginTransaction(); + } catch (TopiaException e) { + throw new TopiaRuntimeException(e); + } + } + return transaction; + } + + public TopiaContext newTransaction() throws TopiaException { + return rootContext.beginTransaction(); + } + + @Override + public Date getCurrentTime() { + if (fakeCurrentTime == null) { + throw new IllegalStateException("le service testé a besoin de " + + "connaître la date, il faudrait en préciser une de test via les" + + " méthodes serviceContext#setCurrentTime(...)"); + } else { + log.trace("injecting fake date in service : " + fakeCurrentTime); + } + return fakeCurrentTime; + } + + public void setCurrentTime(Date fakeCurrentTime) { + this.fakeCurrentTime = fakeCurrentTime; + } + + public void setCurrentTime(int day, int month, int year) { + Date date = DateUtil.createDate(day, month, year); + setCurrentTime(date); + } + + @Override + public void setTransaction(TopiaContext transaction) { + } + + @Override + public Locale getLocale() { + return Locale.getDefault(); + } + + /** + * Create an id to easily managed polls using urls. + * + * @return a fresh generated String + */ + @Override + public String createPollenUrlId() { + return UUID.randomUUID().toString().replaceAll("-", ""); + } + + @Override + public PollenConfiguration getConfiguration() { + PollenConfiguration configuration + = new PollenConfiguration(CONFIGURATION_PATH); + return configuration; + } + + @Override + public PollenServiceFactory getServiceFactory() { + return serviceFactory; + } + + @Override + public <E extends PollenService> E newService(Class<E> clazz) { + return serviceFactory.newService(clazz, this); + } + + public void setServiceFactory(PollenServiceFactory serviceFactory) { + this.serviceFactory = serviceFactory; + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FavoriteServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FavoriteServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/FavoriteServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,174 @@ +package org.chorem.pollen.services; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.FavoriteParticipant; +import org.chorem.pollen.entity.FavoriteParticipantDAO; +import org.chorem.pollen.entity.UserAccount; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; + +/** + * Tests the {@link FavoriteService}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.0 + */ +public class FavoriteServiceTest extends AbstractPollenServiceTest { + + /** Logger. */ + private static final Log log = LogFactory.getLog(FavoriteServiceTest.class); + + @Override + @Before + public void setUp() throws Exception { + + serviceContext.setCurrentTime(5, 10, 2011); + + super.setUp(); + } + + @Test + public void testCreateFavoriteParticipant() throws Exception { + //start("testCreateFavoriteParticipant"); + + FavoriteService service = newService(FavoriteService.class); + + UserAccount user = createUser(false); + + final FavoriteList list = createFavoriteList("LIST", user); + + log.info("test 1 : no problem on creation"); + FavoriteParticipant participant = + service.getNewFavoriteParticipant(list); + + participant.setName("participant"); + participant.setEmail("email"); + + service.createFavoriteParticipant(participant); + + log.info("test 2 : problem on naturalId : participant already" + + " set with same email"); + + participant = + service.getNewFavoriteParticipant(list); + + participant.setName("participant"); + participant.setEmail("email"); + + try { + service.createFavoriteParticipant(participant); + } catch (PollenBusinessException eee) { + Assert.assertEquals(PollenBusinessException.PollenExceptionType.PARTICIPANT_EXIST, + eee.getType()); + } + + log.info("test 3 : email in naturalId can be null"); + + participant = + service.getNewFavoriteParticipant(list); + + participant.setName("participant2"); + participant.setEmail(null); + + service.createFavoriteParticipant(participant); + + TopiaContext transaction = serviceContext.newTransaction(); + try { + FavoriteParticipantDAO dao = + PollenDAOHelper.getFavoriteParticipantDAO(transaction); + String email = null; + + FavoriteParticipant result = dao.findByProperties( + FavoriteParticipant.PROPERTY_NAME, "participant2", + FavoriteParticipant.PROPERTY_EMAIL, email, + FavoriteParticipant.PROPERTY_FAVORITE_LIST, list); + + Assert.assertNotNull(result); + } finally { + transaction.closeContext(); + } + } + + @Test + public void testUpdateFavoriteParticipant() throws Exception { + //start("testUpdateFavoriteParticipant"); + + FavoriteService service = newService(FavoriteService.class); + + /** PREPARE DATA **/ + UserAccount user = createUser(false); + + FavoriteList list = createFavoriteList("LIST", user); + FavoriteParticipant participant = + createFavoriteParticipant("participant", null, list); + + /** EXEC METHOD **/ + log.info("test 1 : update ok : add email"); + participant.setEmail("email"); + participant.setWeight(1.); + + service.updateFavoriteParticipant(participant); + } + + @Test + @Ignore + public void testDeleteFavoriteParticipant() throws Exception { + + } + + @Test + @Ignore + public void testGetFavoriteParticipant() throws Exception { + + } + + @Test + @Ignore + public void testGetFavoriteParticipants() throws Exception { + + } + + @Test + @Ignore + public void testGetFavoriteLists() throws Exception { + + } + + @Test + @Ignore + public void testDeleteFavoriteList() throws Exception { + + } + + @Test + @Ignore + public void testCreateFavoriteList() throws Exception { + + } + + @Test + @Ignore + public void testGetNbFavoriteParticipants() throws Exception { + + } + + @Test + @Ignore + public void testGetNewFavoriteParticipant() throws Exception { + + } + + @Test + @Ignore + public void testGetNewFavoriteList() throws Exception { + + } + +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/PollServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/PollServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/PollServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,602 @@ +package org.chorem.pollen.services; + +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.bean.UserPoll; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.entity.Choice; +import org.chorem.pollen.entity.ChoiceDAO; +import org.chorem.pollen.entity.FavoriteList; +import org.chorem.pollen.entity.Participant; +import org.chorem.pollen.entity.ParticipantList; +import org.chorem.pollen.entity.Poll; +import org.chorem.pollen.entity.PollAccount; +import org.chorem.pollen.entity.PollAccountImpl; +import org.chorem.pollen.entity.PollDAO; +import org.chorem.pollen.entity.PollImpl; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.Vote; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.EntityFilter; +import org.nuiton.topia.framework.TopiaFilter; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * Tests the {@link PollService}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.0 + */ +@Ignore +public class PollServiceTest extends AbstractPollenServiceTest { + + /** Logger. */ + private static final Log log = LogFactory.getLog(PollServiceTest.class); + + private UserAccount user; + + private PollAccount creator; + + private PollAccount list1; + + private FavoriteList list2; + + private Poll poll; + + @Override + @Before + public void setUp() throws Exception { + + serviceContext.setCurrentTime(5, 10, 2011); + + super.setUp(); + + user = createUser(false); + + // Poll creator + creator = new PollAccountImpl(); + creator.setName(user.getDisplayName()); + creator.setEmail(user.getEmail()); + creator.setUserAccount(user); + creator.setAdmin(true); + + // Poll + poll = new PollImpl(); + poll.setCreator(creator); + poll.setTitle("Poll"); + poll.setUid(serviceContext.createPollenUrlId()); + poll.setChoice(new ArrayList<Choice>()); + + // Participant Lists + // First list : new list specific for poll restriction + list1 = new PollAccountImpl(); + list1.setName("List1"); + list1.setList(true); + + Collection<Participant> participants = new ArrayList<Participant>(); + Participant participant1_1 = new PollAccountImpl(); + participant1_1.setName("participant1_1"); + participant1_1.setEmail("email1_1@domain.org"); + participants.add(participant1_1); + + Participant participant1_2 = new PollAccountImpl(); + participant1_2.setName("participant1_2"); + participants.add(participant1_2); + list1.setParticipants(participants); + + // Second list : existing list from user favorites + list2 = createFavoriteList("list2", user); + Participant participant2_1 = createFavoriteParticipant( + "participant2_1", "email2_1@domain.org", list2); + Participant participant2_2 = createFavoriteParticipant( + "participant2_2", "email2_2@domain.org", list2); + Participant participant2_3 = createFavoriteParticipant( + "participant2_3", null, list2); + + list2 = findFavoriteList(list2.getId(), FavoriteList.PROPERTY_FAVORITE_PARTICIPANT); + + } + + @Test + public void testUpdatePollNotStartedWithChoice() throws PollenBusinessException, TopiaException { + + // ---- PREPARE DATA ---- // + + PollService servicePoll = newService(PollService.class); + + // Prepare restricted Poll with 3 choices + poll.setType(PollType.RESTRICTED); + List<ParticipantList> participantLists = new ArrayList<ParticipantList>(); + participantLists.add(list1); + // begin in 3 days + Date beginDate = DateUtils.addDays(serviceContext.getCurrentTime(), 3); + poll.setBeginDate(beginDate); + poll.setChoiceType(ChoiceType.TEXT); + poll.addNewChoice("choice1", null); + poll.addNewChoice("choice2", "desc2"); + poll.addNewChoice("choice3", "desc3"); + + Poll pollCreated = servicePoll.createPoll(poll, participantLists); + // Ensure not started and not closed + Assert.assertFalse(pollCreated.isStarted()); + Assert.assertFalse(pollCreated.isClosed()); + + // Update Choices + pollCreated.setChoiceType(ChoiceType.DATE); + // Reset previous List + pollCreated.setChoice(null); + pollCreated.addNewChoice("choiceDate1", null); + pollCreated.addNewChoice("choiceDate2", null); + pollCreated.addNewChoice("choiceDate3", null); + + // ---- EXECUTE #1 : override choices ---- // + + Poll result = servicePoll.updatePoll(pollCreated); + // Changing type is efficient + Assert.assertEquals(ChoiceType.DATE, result.getChoiceType()); + + // ---- CHECK RESULT ---- // + + TopiaContext transaction = serviceContext.newTransaction(); + try { + ChoiceDAO choiceDAO = PollenDAOHelper.getChoiceDAO(transaction); + + // This assume that only 3 choices exist, previous ones have been deleted + long nbChoices = choiceDAO.count(); + Assert.assertEquals(3, nbChoices); + } finally { + transaction.closeContext(); + } + + // ---- EXECUTE #2 : update existing choice name ---- // + + Choice choiceDate1 = result.getChoice().get(0); + choiceDate1.setName("changeChoice"); + result = servicePoll.updatePoll(result); + + // ---- CHECK RESULT ---- // + + Assert.assertEquals("changeChoice", result.getChoice().get(0).getName()); + } + + @Test + public void testInternalCreateBasicPoll() throws Exception { + //start("testInternalCreateBasicPoll"); + + PollService servicePoll = newService(PollService.class); + + // ---- PREPARE DATA ---- // + // done in init() method + + // ---- EXECUTE ---- // + + log.info("test 1 : create poll with creator from existing user"); + + + Poll newPoll; + { + newPoll = servicePoll.createBasicPoll(poll); + Assert.assertNotNull(newPoll); + Assert.assertNotNull(newPoll.getTopiaId()); + Assert.assertNotNull(newPoll.getUid()); + Assert.assertEquals("Poll", newPoll.getTitle()); + + PollAccount newCreatorAccount = newPoll.getCreator(); + Assert.assertNotNull(newCreatorAccount); + Assert.assertNotNull(newCreatorAccount.getUid()); + Assert.assertEquals(user, newCreatorAccount.getUserAccount()); + Assert.assertTrue(newCreatorAccount.getAdmin()); + + // Will save the poll and its creator + getTransaction().commitTransaction(); + } + + // Verification + TopiaContext transaction = serviceContext.newTransaction(); + try { + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + + Poll pollFound = dao.findByTopiaId(newPoll.getTopiaId()); + Assert.assertNotNull(pollFound); + Assert.assertNotNull(pollFound.getCreator()); + Assert.assertEquals(user, pollFound.getCreator().getUserAccount()); + + } finally { + transaction.closeContext(); + } + + log.info("test 2 : create poll with new creator"); + poll.getCreator().setUserAccount(null); + + newPoll = servicePoll.createBasicPoll(poll); + PollAccount newCreatorAccount = newPoll.getCreator(); + Assert.assertNull(newCreatorAccount.getUserAccount()); + + } + +// @Test +// public void testInternalCreatePollAccounts() throws Exception { +// //start("testInternalCreatePollAccounts"); +// +// // ---- PREPARE DATA ---- // +// PollService servicePoll = newService(PollService.class); +// // list initializations in init() method +// +// Collection<ParticipantList> lists = new ArrayList<ParticipantList>(); +// // First list : new list specific for poll restriction +// lists.add(list1); +// // Second list : existing list from user favorites +// lists.add(list2); +// +// // ---- EXECUTE ---- // +// +// log.info("test 1 : createPollAccounts from one new list : RESTRICTED"); +// +// +// TopiaContext transaction = serviceContext.newTransaction(); +// try { +// // Only the first list of the collection will be considered : list1 +// // Create only person accounts +// List<PollAccount> accounts = servicePoll.createPollAccounts( +// transaction, PollType.RESTRICTED, lists); +// +// Assert.assertEquals(2, accounts.size()); +// for (PollAccount account : accounts) { +// Assert.assertFalse(account.getList()); +// Assert.assertNotNull(account.getId()); +// Assert.assertNotNull(account.getUid()); +// // No link with user +// Assert.assertNull(account.getUserAccount()); +// } +// +// } finally { +// transaction.closeContext(); +// } +// +// log.info("test 2 : createPollAccounts from two lists : GROUP." + +// " One of the list is an existing favorite one"); +// +// transaction = serviceContext.newTransaction(); +// try { +// // Create only list accounts +// List<PollAccount> accounts = servicePoll.createPollAccounts( +// transaction, PollType.GROUP, lists); +// +// Assert.assertEquals(2, accounts.size()); +// for (PollAccount account : accounts) { +// Assert.assertTrue(account.getList()); +// Assert.assertNotNull(account.getId()); +// Assert.assertNotNull(account.getUid()); +// Assert.assertNotNull(account.getName()); +// // No link with user +// Assert.assertNull(account.getUserAccount()); +// // Check on list1 +// if (account.getName().equals(list1.getName())) { +// Assert.assertEquals(2, account.getChild().size()); +// // Check on list2 +// } else if (account.getName().equals(list2.getName())) { +// Assert.assertEquals(3, account.getChild().size()); +// // Child are person accounts +// for (PollAccount person : account.getChild()) { +// Assert.assertFalse(person.getList()); +// Assert.assertNotNull(person.getId()); +// Assert.assertNotNull(person.getUid()); +// // No link with user +// Assert.assertNull(person.getUserAccount()); +// } +// } +// } +// +// } finally { +// transaction.closeContext(); +// } +// } + + @Test + public void integrationCreatePollFree() throws Exception { + + // ---- PREPARE DATA ---- // + PollService servicePoll = newService(PollService.class); + + user = null; + poll = servicePoll.getNewPoll(user); + poll.getCreator().setName("homer"); + poll.setType(PollType.FREE); + poll.setChoiceType(ChoiceType.TEXT); + poll.addNewChoice("choice1", null); + poll.addNewChoice("choice2", "desc2"); + poll.addNewChoice("choice3", "desc3"); + + // ---- EXECUTE ---- // + servicePoll.createPoll(poll, null); + + /** VERIFICATION RESULT **/ + TopiaContext transaction = serviceContext.newTransaction(); + try { + // No accounts + type = FREE + 3 TEXT choices + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + Assert.assertTrue(dao.existByNaturalId(poll.getUid())); + Poll pollFound = dao.findByNaturalId(poll.getUid()); + + // Check pollType and accounts + Assert.assertEquals(PollType.FREE, pollFound.getType()); + Assert.assertEquals(0, pollFound.getPollAccount().size()); + + // Check choices + Assert.assertEquals(ChoiceType.TEXT, pollFound.getChoiceType()); + Assert.assertEquals(3, pollFound.getChoice().size()); + + // Check creator + Assert.assertNotNull(pollFound.getCreator()); + Assert.assertNull(pollFound.getCreator().getUserAccount()); + Assert.assertNotNull(pollFound.getCreator().getName()); + + } finally { + transaction.closeContext(); + } + } + + @Test + public void integrationCreatePollRestrictedFromNewList() throws Exception { + /** PREPARE DATA **/ + PollService servicePoll = newService(PollService.class); + poll = servicePoll.getNewPoll(user); + poll.setType(PollType.RESTRICTED); + poll.setChoiceType(ChoiceType.DATE); + poll.addNewChoice("date1", null); + poll.addNewChoice("date2", "desc2"); + poll.addNewChoice("date3", "desc3"); + + Collection<ParticipantList> lists = new ArrayList<ParticipantList>(); + ParticipantList list = servicePoll.getNewPollList(); + lists.add(list); + + Collection<Participant> participants = new ArrayList<Participant>(); + Participant participant1 = servicePoll.getNewPollParticipant(); + participant1.setName("participant1"); + participant1.setEmail("email1"); + participant1.setWeight(1.); + participants.add(participant1); + + Participant participant2 = servicePoll.getNewPollParticipant(); + participant2.setName("participant2"); + participant2.setEmail(null); + participant2.setWeight(1.); + participants.add(participant2); + list.setParticipants(participants); + + /** EXEC METHOD **/ + servicePoll.createPoll(poll, lists); + + /** VERIFICATION RESULT **/ + TopiaContext transaction = serviceContext.newTransaction(); + try { + // Two person accounts + type = RESTRICTED + 3 DATE choices + PollDAO dao = PollenDAOHelper.getPollDAO(transaction); + Assert.assertTrue(dao.existByNaturalId(poll.getUid())); + Poll pollFound = dao.findByNaturalId(poll.getUid()); + + // Check pollType and accounts + Assert.assertEquals(PollType.RESTRICTED, pollFound.getType()); + Assert.assertEquals(2, pollFound.getPollAccount().size()); + + // Check choices + Assert.assertEquals(ChoiceType.DATE, pollFound.getChoiceType()); + Assert.assertEquals(3, pollFound.getChoice().size()); + + // Check creator + Assert.assertEquals(user, pollFound.getCreator().getUserAccount()); + + } finally { + transaction.closeContext(); + } + } + + @Test + public void testGetPollsByUser() throws PollenBusinessException, TopiaException { + + PollService servicePoll = newService(PollService.class); + VoteService voteService = newService(VoteService.class); + + createGroupPoll("POLL", user, null, 3, "group1", "group2"); + + Poll freePoll = createFreePoll("POLL2", user, null); + + PollAccount participant = voteService.getNewPollAccount(user); + participant.setChoiceVote(new ArrayList<Vote>()); + + voteService.saveVote(freePoll, participant); + + + /** EXEC METHOD **/ +// EntityFilter filter = context.getNewFilter(); + EntityFilter filter = new TopiaFilter(); + filter.setReference(user); + List<UserPoll> polls = servicePoll.getPolls(filter); + + // POLL 2 : user both creator and participant (+2 accounts) + // POLL : user creator + added in each group (+3 accounts) + + Assert.assertEquals(2, polls.size()); + + UserPoll userPoll2 = polls.get(0); + Assert.assertEquals("POLL2", userPoll2.getPoll().getTitle()); + Assert.assertTrue(userPoll2.isCreator()); + Assert.assertEquals(2, userPoll2.getAccounts().size()); + + UserPoll userPoll1 = polls.get(1); + Assert.assertEquals("POLL", userPoll1.getPoll().getTitle()); + Assert.assertTrue(userPoll1.isCreator()); + Assert.assertEquals(3, userPoll1.getAccounts().size()); + } + + @Test + public void testFetchOnGetter() throws Exception, PollenBusinessException { + + PollService servicePoll = newService(PollService.class); + VoteService voteService = newService(VoteService.class); + + poll = createFreePoll("POLL2", user, VoteCountingType.NORMAL); + List<Choice> choices = + addChoicesToPoll(poll, ChoiceType.TEXT, "choice1", "choice2", "choice3"); + + PollAccount participant = voteService.getNewPollAccount(user); + Vote voteImpl = voteService.getNewVote(choices.get(0)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + voteImpl = voteService.getNewVote(choices.get(1)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + voteImpl = voteService.getNewVote(choices.get(2)); + voteImpl.setVoteValue(1.); + participant.addChoiceVote(voteImpl); + + voteService.saveVote(poll, participant); + + poll = loadEntity(poll); + + /** EXEC METHOD **/ + + Poll pollFound = servicePoll.getPoll(poll.getUid(), Poll.PROPERTY_CHOICE); + +// Assert.assertEquals(3, pollFound.getChoice().size()); + +// EntityFilter filter = context.getNewFilter(); + EntityFilter filter = new TopiaFilter(); + filter.setReference(pollFound); + List<PollAccount> accounts = voteService.getVotes(filter); + + for (PollAccount account : accounts) { + log.debug("Account : " + account.getUid()); + } + Assert.assertEquals(1, accounts.size()); + + Assert.assertNotNull(accounts.get(0).getChoiceVote()); + Assert.assertEquals(3, accounts.get(0).getChoiceVote().size()); + + for (Vote vote : accounts.get(0).getChoiceVote()) { + log.debug("Vote choice : " + vote.getChoice().getName() + + " value=" + vote.getVoteValue()); + } + + } + + @Test + public void testGetNewPoll() throws Exception { + + } + + @Test + public void testCreatePoll() throws Exception { + + } + + @Test + public void testUpdatePoll() throws Exception { + + } + + @Test + public void testDeletePoll() throws Exception { + + } + + @Test + public void testDeleteChoice() throws Exception { + + } + + @Test + public void testGetPolls() throws Exception { + + } + + @Test + public void testGetComments() throws Exception { + + } + + @Test + public void testGetNewPollList() throws Exception { + + } + + @Test + public void testGetNewPollParticipant() throws Exception { + + } + + @Test + public void testGetPoll() throws Exception { + + } + + @Test + public void testCanAdminPoll() throws Exception { + + } + + @Test + public void testGetNbTotalPolls() throws Exception { + + } + + @Test + public void testGetNbPollsByUser() throws Exception { + + } + + @Test + public void testGetRunningPolls() throws Exception { + + } + + @Test + public void testGetNbComments() throws Exception { + + } + + @Test + public void testCreateComment() throws Exception { + + } + + @Test + public void testDeleteComment() throws Exception { + + } + + @Test + public void testGetNewComment() throws Exception { + + } + + @Test + public void testCreateChoice() throws Exception { + + } + + @Test + public void testGetNewChoice() throws Exception { + + } + + @Test + public void testSetPollClosed() throws Exception { + + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/UserServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/UserServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/UserServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,283 @@ +package org.chorem.pollen.services; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.PollenDAOHelper; +import org.chorem.pollen.entity.UserAccount; +import org.chorem.pollen.entity.UserAccountDAO; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; + +/** + * Tests the {@link UserService}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.0 + */ +public class UserServiceTest extends AbstractPollenServiceTest { + + /** Logger. */ + private static final Log log = LogFactory.getLog(UserServiceTest.class); + +// @Test +// public void testCopyUserAccount() throws Exception { +// //start("testManageNewPassword"); +// +// UserService service = newService(UserService.class); +// +// UserAccount user = service.getNewUser(); +// user.setLogin("homer"); +// user.setNewPassword("wouhou"); +// +// log.info("test 1 : Encode new password"); +// UserAccount destination = new UserAccountImpl(); +// service.copyUserAccount(user, destination); +// Assert.assertNotNull(destination.getPassword()); +// +// String expected = service.encodePassword("wouhou"); +// Assert.assertEquals(expected, destination.getPassword()); +// +// log.info("test 2 : Do not encode new password -> newPassword empty"); +// user.setPassword(expected); +// user.setNewPassword(null); +// service.copyUserAccount(user, destination); +// Assert.assertEquals(expected, destination.getPassword()); +// } +// +// @Test +// public void testCheckPassword() throws Exception { +// //start("testCheckPassword"); +// +// UserService service = newService(UserService.class); +// +// UserAccount user = service.getNewUser(); +// user.setLogin("homer"); +// user.setNewPassword("wouhou"); +// service.createUser(user); +// +// String encodedPassword = service.encodePassword("wouhou"); +// +// TopiaContext transaction = beginTransaction(); +// try { +// UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); +// +// log.info("test 1 : Good password"); +// service.checkPassword(dao, "homer", encodedPassword); +// +// log.info("test 2 : Wrong password"); +// try { +// service.checkPassword(dao, "homer", "bad"); +// } catch (PollenBusinessException eee) { +// log.error("Error : " + eee.getMessage()); +// Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_WRONG_PASSWORD, +// eee.getType()); +// } +// } finally { +// transaction.closeContext(); +// } +// } + + @Override + @Before + public void setUp() throws Exception { + + serviceContext.setCurrentTime(5, 10, 2011); + + super.setUp(); + } + + @Test + public void testConnect() throws Exception { + //start("testExecuteConnect"); + + UserService service = newService(UserService.class); + + // The password is wouhou and login is homer + UserAccount user = createUser(false); + + log.info("test 1 : Connection OK"); + UserAccount connected = service.connect("homer", "wouhou"); + Assert.assertEquals(user, connected); + + log.info("test 2 : Connection problem on login -> user not exist"); + try { + service.connect("marge", "wouhou"); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_NOT_EXIST, + eee.getType()); + } + + log.info("test 3 : Connection problem on password -> " + + "don't match with login"); + try { + service.connect("homer", "coucou"); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_WRONG_PASSWORD, + eee.getType()); + } + } + + @Test + public void testGetNewUser() throws Exception { + //start("testGetNewUser"); + + UserService service = newService(UserService.class); + + UserAccount user = service.getNewUser(); + Assert.assertNotNull(user); + Assert.assertEquals(false, user.getAdmin()); + } + + @Test + public void testCreateUser() throws Exception { + //start("testCreateUser"); + + UserService service = newService(UserService.class); + + UserAccount user = service.getNewUser(); + user.setLogin("hsimpson"); + user.setEmail("hsimpson@springfield.us"); + user.setNewPassword("wouhou"); + + String encodedPassword = service.encodePassword("wouhou"); + + log.info("test 1 : Creation OK"); + service.createUser(user); + //Assert.assertNotNull(user.getTopiaId()); + Assert.assertNotSame(encodedPassword, user.getPassword()); + + log.info("test 2 : Creation problem on login -> user exist"); + UserAccount user2 = service.getNewUser(); + user2.setLogin("hsimpson"); + // Not the same email + user2.setEmail("hsimpson@springfield.com"); + user2.setNewPassword("troubidou"); + + try { + service.createUser(user2); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_LOGIN_EXIST, + eee.getType()); + } + + log.info("test 3 : Creation problem on email -> user exist"); + UserAccount user3 = service.getNewUser(); + user3.setLogin("homer"); + user3.setEmail("hsimpson@springfield.us"); + user3.setNewPassword("troubidou"); + + try { + service.createUser(user3); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_EMAIL_EXIST, + eee.getType()); + } + + log.info("test 4 : Creation OK with no email"); + UserAccount user4 = service.getNewUser(); + user4.setLogin("marge"); + user4.setNewPassword("troubidou"); + + service.createUser(user4); + Assert.assertNull(user4.getEmail()); + } + + @Test + public void testUpdateUser() throws Exception { + //start("testUpdateUser"); + + UserService service = newService(UserService.class); + + UserAccount user1 = service.getNewUser(); + user1.setLogin("hsimpson"); + user1.setEmail("hsimpson@springfield.us"); + user1.setNewPassword("wouhou"); + service.createUser(user1); + + UserAccount user2 = service.getNewUser(); + String user2Password = "wouhou"; + user2.setLogin("homer"); + user2.setEmail("hsimpson@springfield.fr"); + user2.setNewPassword(user2Password); + service.createUser(user2); + + log.info("test 1 : Can't change login -> don't match with password"); + user2.setLogin("homersimpson"); + user2.setPassword(user2Password); + try { + service.updateUser(user2, false); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_WRONG_PASSWORD, + eee.getType()); + } + user2.setLogin("homer"); + + log.info("test 2 : Change email OK"); + user2.setEmail("homersimpson@springield.fr"); + user2.setPassword(user2Password); + service.updateUser(user2, false); + + log.info("test 3 : Change email problem -> user exist"); + user2.setEmail(user1.getEmail()); + user2.setPassword(user2Password); + try { + service.updateUser(user2, false); + } catch (PollenBusinessException eee) { + log.error("Error : " + eee.getMessage()); + Assert.assertEquals(PollenBusinessException.PollenExceptionType.USER_EMAIL_EXIST, + eee.getType()); + } + + // TODO test 4 with byAdmin = true + } + + @Test + public void testDeleteUser() throws Exception { + + UserService service = newService(UserService.class); + + try { + service.deleteUser("test"); + } catch (Exception eee) { + log.error(eee); + Assert.assertEquals(IllegalArgumentException.class, + eee.getClass()); + } + + UserAccount user = service.getNewUser(); + user.setLogin("user"); + service.createUser(user); + + service.deleteUser("user"); + + TopiaContext transaction = serviceContext.newTransaction(); + try { + UserAccountDAO dao = PollenDAOHelper.getUserAccountDAO(transaction); + UserAccount userFound = dao.findByLogin("user"); + Assert.assertNull(userFound); + } finally { + transaction.closeContext(); + } + } + + @Ignore + @Test + public void testGetUsers() throws Exception { + + } + + @Ignore + @Test + public void testGetNbUsers() throws Exception { + + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/VoteServiceTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/VoteServiceTest.java (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/java/org/chorem/pollen/services/VoteServiceTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,67 @@ +package org.chorem.pollen.services; + +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the {@link VoteService}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.0 + */ +public class VoteServiceTest extends AbstractPollenServiceTest { + + @Override + @Before + public void setUp() throws Exception { + + serviceContext.setCurrentTime(5, 10, 2011); + + super.setUp(); + } + + @Test + public void testCanVote() throws Exception { + + } + + @Test + public void testGetNewPollAccount() throws Exception { + + } + + @Test + public void testGetPollAccount() throws Exception { + + } + + @Test + public void testGetVotes() throws Exception { + + } + + @Test + public void testDeleteVote() throws Exception { + + } + + @Test + public void testGetNbVotes() throws Exception { + + } + + @Test + public void testGetNewVote() throws Exception { + + } + + @Test + public void testSaveVote() throws Exception { + + } + + @Test + public void testFindPollAccount() throws Exception { + + } +} Added: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/PollenTest.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/resources/PollenTest.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/resources/PollenTest.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,35 @@ +### +# #%L +# Pollen :: Services +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +hibernate.hbm2ddl.auto=create +hibernate.show_sql=true +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:target/test-base/pollen + +adminLogin=admin +adminPassword=admin + +pollen.emails.directory=target/test-emails Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/PollenTest.properties ___________________________________________________________________ Added: svn:executable + * Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/largemaillist.sh =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/resources/largemaillist.sh (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/resources/largemaillist.sh 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,26 @@ +### +# #%L +# Pollen :: Business +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +#!/bin/sh + +for i in `seq 0 3000`; do echo "\"Test $i\",\"toto+pollen+$i@domain.com\",1" >> test3000.csv; done Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/largemaillist.sh ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/log4j.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/resources/log4j.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/resources/log4j.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,37 @@ +### +# #%L +# Pollen :: Services +# +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2009 - 2012 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# #L% +### +# Default to info level output; this is very handy if you eventually use Hibernate as well. +log4j.rootCategory=warn, A1 + +# A1 is set to be a ConsoleAppender. +log4j.appender.A1=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d [%p] %c{2} %m%n + +log4j.logger.org.chorem.pollen=debug + +log4j.logger.org.chorem.pollen.business.PollenContextImpl=warn +log4j.logger.org.chorem.pollen.business.services.SendMail=warn Property changes on: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/pollen-2.0-beta-1/pollen-services/src/test/resources/pollen-fake.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-services/src/test/resources/pollen-fake.properties (rev 0) +++ branches/pollen-2.0-beta-1/pollen-services/src/test/resources/pollen-fake.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -0,0 +1,11 @@ + +hibernate.show_sql=false +hibernate.hbm2ddl.auto=update +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.connection.username=sa +hibernate.connection.password= +hibernate.connection.driver_class=org.h2.Driver + +upImgDir=${testDirectory}/.pollen/uploadedImages +feedDir=${testDirectory}/.pollen/feeds +pollen.emails.directory=${testDirectory}/.pollen/emails Property changes on: branches/pollen-2.0-beta-1/pollen-ui/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/doc/UIOs.zargo ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-ui/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/pom.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -21,14 +21,19 @@ <dependencies> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>pollen-business</artifactId> + <artifactId>pollen-domain</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>pollen-votecounting</artifactId> + <artifactId>pollen-persistence</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pollen-services</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.nuiton.topia</groupId> Property changes on: branches/pollen-2.0-beta-1/pollen-ui/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/license/THIRD-PARTY.properties ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollsPage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollsPage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollsPage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -51,7 +51,7 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.BeanModelSource; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.data.EvenOdd; import org.chorem.pollen.ui.data.AddressBarItem; import org.chorem.pollen.ui.data.PollAction; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollsPage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractUploadPage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractUploadPage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractUploadPage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractUploadPage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/ContextLink.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/PollenPage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/PollenPage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/PollenPage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/PollenPage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/base/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -60,7 +60,7 @@ import org.chorem.pollen.ui.base.ContextLink; import org.chorem.pollen.ui.data.AddressBarItem; import org.chorem.pollen.PollenBusinessException; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.pages.Index; import org.chorem.pollen.ui.services.PollenManager; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Chart.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Chart.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Chart.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Chart.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceDateForm.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceDateForm.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceDateForm.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceDateForm.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImage.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImageForm.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImageForm.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImageForm.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceImageForm.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceTextForm.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceTextForm.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceTextForm.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/ChoiceTextForm.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FeedContextLink.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Pager.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Pager.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Pager.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Pager.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/SubForm.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/SubForm.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/SubForm.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/SubForm.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsCreate.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsCreate.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsCreate.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -36,7 +36,7 @@ import org.chorem.pollen.entity.FavoriteList; import org.chorem.pollen.entity.FavoriteParticipant; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceFavorite; +import org.chorem.pollen.service.legacy.ServiceFavorite; import org.chorem.pollen.ui.base.PollenPage; import org.chorem.pollen.ui.services.PollenManager; import org.slf4j.Logger; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsCreate.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsUpdate.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsUpdate.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsUpdate.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -34,7 +34,7 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.entity.FavoriteList; import org.chorem.pollen.entity.FavoriteParticipant; -import org.chorem.pollen.service.ServiceFavorite; +import org.chorem.pollen.service.legacy.ServiceFavorite; import org.chorem.pollen.ui.data.EvenOdd; import org.chorem.pollen.ui.models.FavoriteParticipantDataSource; import org.chorem.pollen.ui.services.PollenManager; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/UserListsUpdate.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/components/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBar.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBar.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBar.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBar.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBarItem.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBarItem.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBarItem.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/AddressBarItem.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ChoiceField.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ChoiceField.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ChoiceField.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ChoiceField.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ErrorReport.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ErrorReport.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ErrorReport.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ErrorReport.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/EvenOdd.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/EvenOdd.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/EvenOdd.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/EvenOdd.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FieldValidationException.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FieldValidationException.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FieldValidationException.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/FieldValidationException.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/GenericEncoder.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/GenericEncoder.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/GenericEncoder.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/GenericEncoder.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ParticipantsListener.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ParticipantsListener.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ParticipantsListener.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/ParticipantsListener.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollAction.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollAction.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollAction.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollAction.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollHelper.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollHelper.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollHelper.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollHelper.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollenRequiresAuthentication.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/data/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/FavoriteParticipantDataSource.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/FavoriteParticipantDataSource.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/FavoriteParticipantDataSource.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -26,7 +26,7 @@ import org.apache.tapestry5.grid.SortConstraint; import org.chorem.pollen.PollenException; import org.chorem.pollen.entity.FavoriteParticipant; -import org.chorem.pollen.service.ServiceFavorite; +import org.chorem.pollen.service.legacy.ServiceFavorite; import org.nuiton.topia.framework.EntityFilter; import org.nuiton.web.tapestry5.data.AbstractMappedGridDataSource; import org.slf4j.Logger; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/FavoriteParticipantDataSource.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/GenericSelectModel.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/GenericSelectModel.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/GenericSelectModel.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/GenericSelectModel.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/ParticipantListModel.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/ParticipantListModel.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/ParticipantListModel.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -27,7 +27,7 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.entity.Participant; import org.chorem.pollen.entity.ParticipantList; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.services.PollenManager; import org.nuiton.topia.persistence.TopiaEntity; import org.slf4j.Logger; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/ParticipantListModel.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/PollFormModel.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/PollFormModel.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/PollFormModel.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -33,7 +33,7 @@ import org.chorem.pollen.entity.ParticipantList; import org.chorem.pollen.entity.Poll; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.data.ChoiceField; import org.chorem.pollen.ui.data.ErrorReport; import org.chorem.pollen.ui.pages.poll.PollForm; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/PollFormModel.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/UserAccountDataSource.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/UserAccountDataSource.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/UserAccountDataSource.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -26,7 +26,7 @@ import org.apache.tapestry5.grid.SortConstraint; import org.chorem.pollen.PollenException; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUser; import org.nuiton.topia.framework.EntityFilter; import org.nuiton.web.tapestry5.data.AbstractMappedGridDataSource; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/models/UserAccountDataSource.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Connection.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Connection.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Connection.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -33,7 +33,7 @@ import org.apache.tapestry5.services.PageRenderLinkSource; import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Connection.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/ErrorPage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/ErrorPage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/ErrorPage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/ErrorPage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Index.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Index.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Index.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/Index.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/LocalMessages.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/LocalMessages.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/LocalMessages.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/LocalMessages.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -48,7 +48,7 @@ import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollsPage; import org.chorem.pollen.ui.components.Border; import org.nuiton.web.tapestry5.components.FeedBack; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminPolls.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -56,8 +56,8 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.bean.PollenEmail; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceEmail; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceEmail; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/admin/AdminUsers.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -50,8 +50,8 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.entity.Poll; import org.chorem.pollen.entity.PollAccount; -import org.chorem.pollen.service.ServicePoll; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServicePoll; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBarItem; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CloseValidation.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ConfirmPoll.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ConfirmPoll.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ConfirmPoll.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -50,7 +50,7 @@ import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBarItem; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ConfirmPoll.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/CreationValidation.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/ModificationValidation.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -23,7 +23,6 @@ */ package org.chorem.pollen.ui.pages.poll; -import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.Block; import org.apache.tapestry5.ComponentResources; @@ -38,16 +37,13 @@ import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.corelib.components.Form; -import org.apache.tapestry5.corelib.components.Select; import org.apache.tapestry5.corelib.components.Zone; import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.services.ComponentSource; -import org.apache.tapestry5.services.PageRenderLinkSource; import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.bean.PollenEmail; -import org.chorem.pollen.bean.PollenEmailImpl; import org.chorem.pollen.common.ChoiceType; import org.chorem.pollen.common.PollType; import org.chorem.pollen.common.VoteCountingType; @@ -58,14 +54,13 @@ import org.chorem.pollen.entity.PreventRule; import org.chorem.pollen.entity.PreventRuleImpl; import org.chorem.pollen.mail.PreventRuleManager; -import org.chorem.pollen.service.ServiceEmail; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServiceEmail; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.data.ChoiceField; import org.chorem.pollen.ui.data.ErrorReport; -import org.chorem.pollen.ui.data.FieldValidationException; import org.chorem.pollen.ui.data.PollUri; import org.chorem.pollen.ui.models.ParticipantListModel; import org.chorem.pollen.ui.models.PollFormModel; @@ -79,7 +74,6 @@ import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; -import java.util.List; /** * PollForm : Creation and Modification. @@ -760,7 +754,7 @@ protected void sendCreatorEmail(PollAccount creator, PollUri uri) throws PollenBusinessException { - PollenEmail email = new PollenEmailImpl(); + PollenEmail email = serviceEmail.createEmail(); email.setTo(creator.getEmail()); email.setSubject(messages.format( "pollen.email.createPoll.subject", Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -29,7 +29,7 @@ import org.apache.tapestry5.services.PageRenderLinkSource; import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -67,7 +67,7 @@ import org.chorem.pollen.entity.Poll; import org.chorem.pollen.entity.PollAccount; import org.chorem.pollen.entity.Result; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.components.Chart; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/Results.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -63,16 +63,15 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.PollenProperty; import org.chorem.pollen.bean.PollenEmail; -import org.chorem.pollen.bean.PollenEmailImpl; import org.chorem.pollen.entity.Choice; import org.chorem.pollen.entity.Poll; import org.chorem.pollen.entity.PollAccount; import org.chorem.pollen.entity.UserAccount; import org.chorem.pollen.entity.Vote; -import org.chorem.pollen.service.ServiceEmail; -import org.chorem.pollen.service.ServicePoll; -import org.chorem.pollen.service.ServiceUser; -import org.chorem.pollen.service.ServiceVote; +import org.chorem.pollen.service.legacy.ServiceEmail; +import org.chorem.pollen.service.legacy.ServicePoll; +import org.chorem.pollen.service.legacy.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceVote; import org.chorem.pollen.ui.base.AbstractUploadPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.components.Pager; @@ -740,7 +739,7 @@ updateUrl); } - PollenEmail pollenEmail = new PollenEmailImpl(); + PollenEmail pollenEmail = serviceEmail.createEmail(); pollenEmail.setTo(email); pollenEmail.setSubject("Vote OK"); pollenEmail.setContent("Url de modification de votre vote : " + Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -49,7 +49,7 @@ import org.apache.tapestry5.ioc.services.PropertyAccess; import org.chorem.pollen.entity.FavoriteList; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceFavorite; +import org.chorem.pollen.service.legacy.ServiceFavorite; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.components.UserListsCreate; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserLists.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsCreated.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsCreated.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsCreated.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -49,7 +49,7 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.upload.services.UploadedFile; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollsPage; import org.chorem.pollen.ui.components.Border; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsCreated.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsParticipated.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsParticipated.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsParticipated.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -46,7 +46,7 @@ import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.entity.Poll; -import org.chorem.pollen.service.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollsPage; import org.chorem.pollen.ui.components.Border; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserPollsParticipated.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -57,7 +57,7 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserProfile.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserRegister.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserRegister.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserRegister.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -55,8 +55,8 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.bean.PollenEmail; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceEmail; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceEmail; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/user/UserRegister.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -56,16 +56,16 @@ import org.apache.tapestry5.upload.services.UploadSymbols; import org.chorem.pollen.PollenContextImpl; import org.chorem.pollen.entity.UserAccount; -import org.chorem.pollen.service.ServiceEmail; -import org.chorem.pollen.service.ServiceEmailImpl; -import org.chorem.pollen.service.ServiceFavorite; -import org.chorem.pollen.service.ServiceFavoriteImpl; -import org.chorem.pollen.service.ServicePoll; -import org.chorem.pollen.service.ServicePollImpl; -import org.chorem.pollen.service.ServiceUser; -import org.chorem.pollen.service.ServiceUserImpl; -import org.chorem.pollen.service.ServiceVote; -import org.chorem.pollen.service.ServiceVoteImpl; +import org.chorem.pollen.service.legacy.ServiceEmail; +import org.chorem.pollen.service.legacy.ServiceEmailImpl; +import org.chorem.pollen.service.legacy.ServiceFavorite; +import org.chorem.pollen.service.legacy.ServiceFavoriteImpl; +import org.chorem.pollen.service.legacy.ServicePoll; +import org.chorem.pollen.service.legacy.ServicePollImpl; +import org.chorem.pollen.service.legacy.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUserImpl; +import org.chorem.pollen.service.legacy.ServiceVote; +import org.chorem.pollen.service.legacy.ServiceVoteImpl; import org.chorem.pollen.ui.data.PollUri; import org.nuiton.web.tapestry5.services.ServiceAuthentication; import org.slf4j.Logger; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthentication.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenAuthenticationFilter.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -57,7 +57,7 @@ import org.chorem.pollen.PollenBusinessException; import org.chorem.pollen.PollenContext; import org.chorem.pollen.PollenProperty; -import org.chorem.pollen.service.ServiceUser; +import org.chorem.pollen.service.legacy.ServiceUser; import org.chorem.pollen.ui.data.ErrorReport; import org.nuiton.topia.framework.EntityFilter; import org.nuiton.util.ApplicationConfig; Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/PollenManager.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImage.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImage.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImage.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImage.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImageImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImageImpl.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImageImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServiceImageImpl.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/services/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/CSVAccountUtil.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/CSVAccountUtil.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/CSVAccountUtil.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/CSVAccountUtil.java ___________________________________________________________________ Modified: svn:keywords - Date Author Revision Rev Id + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/UnitConverter.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/UnitConverter.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/UnitConverter.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/UnitConverter.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/package-info.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/package-info.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/package-info.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/package-info.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Rev Revision" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/i18n/pollen-ui-en_GB.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/log4j.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/log4j.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/log4j.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/corelib/components/Errors_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/corelib/components/Errors_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/corelib/components/Errors_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/corelib/components/Errors_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/apache/tapestry5/internal/ValidationMessages_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/base/Polls_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Border_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceDateForm.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceDateForm.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceDateForm.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceDateForm.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceImageForm.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceImageForm.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceImageForm.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceImageForm.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceTextForm.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceTextForm.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceTextForm.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/ChoiceTextForm.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Image.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Image.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Image.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Image.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/Pager_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/SubForm.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/SubForm.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/SubForm.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/SubForm.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsCreate.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsCreate.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsCreate.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsCreate.tml ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsUpdate.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsUpdate.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsUpdate.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/components/UserListsUpdate.tml ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminPolls_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/admin/AdminUsers_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CloseValidation_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ConfirmPoll_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/CreationValidation_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ImageDisplay_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/ModificationValidation_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollCreation_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollForm_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/PollModification_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/Results_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/poll/VoteForPoll_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserLists_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsCreated_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserPollsParticipated_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserProfile_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_en.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_en.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_en.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_en.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_fr.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_fr.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_fr.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/resources/org/chorem/pollen/ui/pages/user/UserRegister_fr.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Connection.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Connection.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Connection.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Connection.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/ErrorPage.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/ErrorPage.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/ErrorPage.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/ErrorPage.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Index.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Index.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Index.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/Index.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/app.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/app.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/app.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 CodeLutin +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/app.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/web.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/web.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/web.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -6,7 +6,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminPolls.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminPolls.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminPolls.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminPolls.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminUsers.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminUsers.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminUsers.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/admin/AdminUsers.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/account.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/account.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/account.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/account.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/common.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/common.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/common.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/common.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/grid.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/grid.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/grid.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/grid.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/lightbox.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/lightbox.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/lightbox.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/lightbox.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/main.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/main.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/main.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/main.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/poll.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/poll.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/poll.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/poll.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollCreation.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollCreation.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollCreation.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollCreation.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsAdmin.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsAdmin.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsAdmin.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsAdmin.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsCreated.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsCreated.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsCreated.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsCreated.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsParticipated.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsParticipated.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsParticipated.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/pollsParticipated.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/register.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/register.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/register.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/register.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/results.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/results.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/results.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/results.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/users.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/users.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/users.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/users.css ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/usersAdmin.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/usersAdmin.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/usersAdmin.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/usersAdmin.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/vote.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/vote.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/vote.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/css/vote.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/favicon.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1downarrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1leftarrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1rightarrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/1uparrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/2leftarrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/2rightarrow.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/7ter.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/bigVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/close.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/contact.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/copy.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/count.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/delete.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/edit.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/editSmall.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/export.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/feed.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/feed2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/gplv3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/help.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/import.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/closelabel.gif ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/loading.gif ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/nextlabel.gif ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lightbox/prevlabel.gif ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/lutin.gif ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenCreation_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenCreation_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenIndex_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenIndex_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVoteCounting_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVoteCounting_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVote_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollenVote_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/pollen_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/refresh-22px.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep1.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/rep3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/save.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallCreation_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVoteCounting_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/smallVote_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menu.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuIndex.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topleft_menuVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menu.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuIndex.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/topright_menuVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/undo.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/img/vote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/jquery-1.4.2.min.js =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/jquery-1.4.2.min.js 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/jquery-1.4.2.min.js 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ /*! * jQuery JavaScript Library v1.4.2 * http://jquery.com/ Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/jquery-1.4.2.min.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/lightbox.js =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/lightbox.js 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/lightbox.js 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ // ----------------------------------------------------------------------------------- Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/lightbox.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollForm.js =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollForm.js 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollForm.js 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ var PollForm = Class.create(); PollForm.prototype = { Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollForm.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollen.js =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollen.js 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollen.js 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ /* * pollen.js * fonctions utiles pour Pollen UI Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/js/pollen.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CloseValidation.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CloseValidation.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CloseValidation.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CloseValidation.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ConfirmPoll.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ConfirmPoll.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ConfirmPoll.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ConfirmPoll.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CreationValidation.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CreationValidation.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CreationValidation.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/CreationValidation.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ImageDisplay.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ImageDisplay.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ImageDisplay.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ImageDisplay.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ModificationValidation.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ModificationValidation.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ModificationValidation.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/ModificationValidation.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollCreation.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollCreation.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollCreation.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollCreation.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollForm.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollForm.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollForm.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollForm.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollLinks.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollLinks.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollLinks.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollLinks.tml ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollModification.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollModification.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollModification.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/PollModification.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/Results.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/Results.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/Results.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/Results.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/VoteForPoll.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/VoteForPoll.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/VoteForPoll.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/poll/VoteForPoll.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserLists.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserLists.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserLists.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserLists.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsCreated.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsCreated.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsCreated.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsCreated.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsParticipated.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsParticipated.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsParticipated.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserPollsParticipated.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserProfile.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserProfile.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserProfile.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserProfile.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserRegister.tml =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserRegister.tml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserRegister.tml 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/main/webapp/user/UserRegister.tml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-ui/src/test/java/org/chorem/pollen/ui/utils/CSVAccountUtilTest.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-ui/src/test/java/org/chorem/pollen/ui/utils/CSVAccountUtilTest.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-ui/src/test/java/org/chorem/pollen/ui/utils/CSVAccountUtilTest.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 CodeLutin + * Copyright (C) 2009 - 2012 CodeLutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/test/java/org/chorem/pollen/ui/utils/CSVAccountUtilTest.java ___________________________________________________________________ Modified: svn:keywords - "Author Date Id Revision HeadURL" + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-ui/src/test/resources/import.csv ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-wm/LICENSE.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-wm/README.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-wm/changelog.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/pom.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -21,14 +21,19 @@ <dependencies> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>pollen-business</artifactId> + <artifactId>pollen-domain</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>pollen-votecounting</artifactId> + <artifactId>pollen-persistence</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>pollen-services</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.debux</groupId> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/java/org/chorem/pollen/web/PollenAction.java =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/java/org/chorem/pollen/web/PollenAction.java 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/java/org/chorem/pollen/web/PollenAction.java 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Motion Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ package org.chorem.pollen.web; import org.apache.commons.logging.Log; Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/java/org/chorem/pollen/web/PollenAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/log4j.properties =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/log4j.properties 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/log4j.properties 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2011 CodeLutin, Chatellier Eric +# Copyright (C) 2009 - 2012 CodeLutin # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/resources/mapping ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/footer.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/footer.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/footer.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <!-- Pied de page --> <div id="po-footer"> <a href="">Pollen</a> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/footer.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/head.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/head.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/head.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,2 +1,25 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <link rel=stylesheet type="text/css" href="css/pollen.css"> <script type="text/javascript" lang="javascript" src="js/jquery-1.7.1.min.js"></script> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/head.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/header.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/header.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/header.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <div class="po-header"> <!-- Langue --> @@ -17,7 +40,7 @@ </a> </div> - <!-- Ent�te de la page --> + <!-- Ent�te de la page --> <div id="po-header-logo"> <a href="index" class="po-homelink"> Pollen Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/header.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/index.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/index.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/index.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <head> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/index.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/login.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/login.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/login.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <head> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/login.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/register.jsp =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/register.jsp 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/register.jsp 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<%-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr"> <head> @@ -49,7 +72,7 @@ <input type="text" id="lastname" name="lastname"> <div> <div class="registerfield"> - <label for="firstname">Pr�nom:</label> + <label for="firstname">Pr�nom:</label> <input type="text" id="firstname" name="firstname"> <div> </fieldset> Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/register.jsp ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/web.xml =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/web.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/web.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +<!-- + #%L + Pollen :: Web Motion Interface + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2012 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/css/pollen.css =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/css/pollen.css 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/css/pollen.css 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,135 +1,135 @@ -/* global */ -body { - font-family: "Trebuchet MS",Arial,sans-serif; - width: 1000px; - margin: auto; - font-size: small; -} - -/* header */ -#po-header-localization{ - text-align:right; - margin-top: 10px; -} -#po-header-localization .po-contactlink { - width:20px; - background:url("../img/contact.png") no-repeat center; -} -#po-header-localization .po-localelink { - width:20px; - background:url("../img/en.png") no-repeat center; -} -#po-header-localization .po-localelink:lang(fr){ - background-image:url("../img/fr.png") -} - -#po-header-logo{ - float: left; - margin-right: 10px; - margin-top: -100px; - width:350px; - height:153px; - background:url("../img/pollenIndex_en.png") no-repeat; -} -html:lang(fr) #po-header-logo { - background-image:url("../img/pollenIndex_fr.png") -} - -#po-header-menu{ - padding: 7px; - background-color: #FFFF00; -} -#po-header-menu #po-header-connection { - float:right; -} -#po-header-menu #po-header-connection #po-header-login-box{ - display:none; -} -#po-header-menu #po-header-connection-menu{ - margin:0; - padding:0; -} -#po-header-menu #po-header-connection-menu li{ - display:inline -} -#po-header-menu #po-header-connection span{ - cursor:pointer; - padding: 1px 5px; -} -#po-header-menu #po-header-connection span:hover{ - background-color: #000000; - border-radius: 10px 10px 10px 10px; - color: white; -} -#po-header-menu #po-header-connection a{ - color: black; - text-decoration:none; -} -#po-header-menu #po-header-connection a:hover{ - color: white; -} - -/* footer */ -#po-footer { - background-color: #FFFF00; - font-size: small; - margin-top: 20px; - padding: 5px; - text-align: center; - color: #727A7E; -} -#po-footer a{ - color: #727A7E; -} - -/* page content */ -.page #po-placebar { - background-color: #FFFFAA; - margin-left: 350px; - padding: 5px; -} -.page #po-placebar .pbitem { - font-weight:bold; -} -.page #po-placebar .pbitem:before{ - content:"> "; -} -.page .content { - padding: 15px; -} - -/* page : home page */ -#po-homelogo { - width:20px; - background:url("../img/pollen.png") no-repeat center; - margin:auto; - width:260px; - height:200px; -} -#po-homeactions { - text-align:center; -} -#po-homeactions .createpoll{ - background:url("../img/smallCreation_en.png") no-repeat center; - width:250px; - height:100px; -} -html:lang(fr) #po-homeactions .createpoll { - background-image:url("../img/smallCreation_fr.png") -} -#po-homeactions .mypoll{ - background:url("../img/smallVote_en.png") no-repeat center; - width:200px; - height:100px; -} -html:lang(fr) #po-homeactions .mypoll { - background-image:url("../img/smallVote_fr.png") -} -#po-homeactions .votecounting{ - background:url("../img/smallVoteCounting_en.png") no-repeat center; - width:250px; - height:100px; -} -html:lang(fr) #po-homeactions .votecounting { - background-image:url("../img/smallVoteCounting_fr.png") +/* global */ +body { + font-family: "Trebuchet MS",Arial,sans-serif; + width: 1000px; + margin: auto; + font-size: small; +} + +/* header */ +#po-header-localization{ + text-align:right; + margin-top: 10px; +} +#po-header-localization .po-contactlink { + width:20px; + background:url("../img/contact.png") no-repeat center; +} +#po-header-localization .po-localelink { + width:20px; + background:url("../img/en.png") no-repeat center; +} +#po-header-localization .po-localelink:lang(fr){ + background-image:url("../img/fr.png") +} + +#po-header-logo{ + float: left; + margin-right: 10px; + margin-top: -100px; + width:350px; + height:153px; + background:url("../img/pollenIndex_en.png") no-repeat; +} +html:lang(fr) #po-header-logo { + background-image:url("../img/pollenIndex_fr.png") +} + +#po-header-menu{ + padding: 7px; + background-color: #FFFF00; +} +#po-header-menu #po-header-connection { + float:right; +} +#po-header-menu #po-header-connection #po-header-login-box{ + display:none; +} +#po-header-menu #po-header-connection-menu{ + margin:0; + padding:0; +} +#po-header-menu #po-header-connection-menu li{ + display:inline +} +#po-header-menu #po-header-connection span{ + cursor:pointer; + padding: 1px 5px; +} +#po-header-menu #po-header-connection span:hover{ + background-color: #000000; + border-radius: 10px 10px 10px 10px; + color: white; +} +#po-header-menu #po-header-connection a{ + color: black; + text-decoration:none; +} +#po-header-menu #po-header-connection a:hover{ + color: white; +} + +/* footer */ +#po-footer { + background-color: #FFFF00; + font-size: small; + margin-top: 20px; + padding: 5px; + text-align: center; + color: #727A7E; +} +#po-footer a{ + color: #727A7E; +} + +/* page content */ +.page #po-placebar { + background-color: #FFFFAA; + margin-left: 350px; + padding: 5px; +} +.page #po-placebar .pbitem { + font-weight:bold; +} +.page #po-placebar .pbitem:before{ + content:"> "; +} +.page .content { + padding: 15px; +} + +/* page : home page */ +#po-homelogo { + width:20px; + background:url("../img/pollen.png") no-repeat center; + margin:auto; + width:260px; + height:200px; +} +#po-homeactions { + text-align:center; +} +#po-homeactions .createpoll{ + background:url("../img/smallCreation_en.png") no-repeat center; + width:250px; + height:100px; +} +html:lang(fr) #po-homeactions .createpoll { + background-image:url("../img/smallCreation_fr.png") +} +#po-homeactions .mypoll{ + background:url("../img/smallVote_en.png") no-repeat center; + width:200px; + height:100px; +} +html:lang(fr) #po-homeactions .mypoll { + background-image:url("../img/smallVote_fr.png") +} +#po-homeactions .votecounting{ + background:url("../img/smallVoteCounting_en.png") no-repeat center; + width:250px; + height:100px; +} +html:lang(fr) #po-homeactions .votecounting { + background-image:url("../img/smallVoteCounting_fr.png") } \ No newline at end of file Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/css/pollen.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/bigVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/contact.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollenIndex_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/pollenIndex_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallCreation_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallCreation_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVoteCounting_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVoteCounting_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVote_en.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/img/smallVote_fr.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/js/jquery-1.7.1.min.js =================================================================== --- branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/js/jquery-1.7.1.min.js 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/js/jquery-1.7.1.min.js 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +/* + * #%L + * Pollen :: Web Motion Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ /*! jQuery v1.7.1 jquery.com | jquery.org/license */ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() Property changes on: branches/pollen-2.0-beta-1/pollen-wm/src/main/webapp/js/jquery-1.7.1.min.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/pom.xml =================================================================== --- branches/pollen-2.0-beta-1/pom.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/pom.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -18,8 +18,11 @@ <version>2.0-SNAPSHOT</version> <modules> - <module>pollen-business</module> - <module>pollen-votecounting</module> + <module>pollen-domain</module> + <module>pollen-persistence</module> + <module>pollen-services</module> + <!--<module>pollen-business</module>--> + <!--<module>pollen-votecounting</module>--> <module>pollen-ui</module> <module>pollen-wm</module> </modules> @@ -28,6 +31,12 @@ <dependencies> <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>11.0.1</version> + </dependency> + + <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.2</version> Property changes on: branches/pollen-2.0-beta-1/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/license/project.xml =================================================================== --- branches/pollen-2.0-beta-1/src/license/project.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/license/project.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -6,7 +6,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 CodeLutin + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/license/project.xml ___________________________________________________________________ Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/createVotingList.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/CreerSondage.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/CreerSondage2.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DC_Pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DC_PreventRules.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/DET_PollState.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Depouiller.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Depouiller_1a.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/UC_Gestiondesvotes.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/Voter.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_BusinessDTOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_DBUtil.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServicePoll.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceResults.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceUser.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DC_ServiceVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/business/DS_Conception_CreerSondage.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/composants.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/packages.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/pollen_logo.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/schema-architecture.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/DC_UIOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/chart.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/dateTimeField.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/feedBack.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topCount.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topIndex.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/ui/topVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExport.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExportImpl.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceExportXML.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/DC_VoteCountingDTOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/schemas/votecounting/Seq-executeVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-1.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-4.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-5.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture-6.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Capture.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-links.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step1.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Creation-step4.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Results.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/tutoriel/Vote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/fr/resources/votingList.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/analyse.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/analyse.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/analyse.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -26,8 +26,8 @@ :Author: Erwan NEMA <nemawan@hotmail.com> :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2738 $ -:Date: $Date: 2009-08-20 17:12:21 +0200 (jeu 20 aoû 2009) $ +:Revision: $Revision$ +:Date: $Date$ Les besoins ~~~~~~~~~~~ Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/analyse.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/architecture.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/architecture.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/architecture.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ==================================== :Author: Florian DESBOIS <florian.desbois@gmail.com> -:Revision: $Revision: 2613 $ -:Date: $Date: 2009-06-30 15:32:57 +0200 (mar 30 jun 2009) $ +:Revision: $Revision$ +:Date: $Date$ .. image:: schemas/schema-architecture.png :alt: Architecture global Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/architecture.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/assentiment.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/assentiment.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/assentiment.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/assentiment.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/business-rules.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/business-rules.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/business-rules.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -1,3 +1,26 @@ +.. - +.. * #%L +.. * Pollen +.. * +.. * $Id$ +.. * $HeadURL$ +.. * %% +.. * Copyright (C) 2009 - 2012 CodeLutin +.. * %% +.. * This program is free software: you can redistribute it and/or modify +.. * it under the terms of the GNU Affero 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 Affero General Public License +.. * along with this program. If not, see <http://www.gnu.org/licenses/>. +.. * #L% +.. - Règles métiers ============== Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/business-rules.rst ___________________________________________________________________ Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/business.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/business.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/business.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ======== :Author: -:Revision: $Revision: 2613 $ -:Date: $Date: 2009-06-30 15:32:57 +0200 (mar 30 jun 2009) $ +:Revision: $Revision$ +:Date: $Date$ DTO --- Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/business.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/condorcet.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/condorcet.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/condorcet.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/condorcet.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/depouillement.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/depouillement.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/depouillement.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/depouillement.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/developer.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/developer.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/developer.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/developer.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/historique.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/historique.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/historique.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/historique.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/importVotersList.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/importVotersList.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/importVotersList.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -27,8 +27,8 @@ :Author: Jean Couteau :Contact: -:Revision: $Revision: 2738 $ -:Date: $Date: 2009-08-20 17:12:21 +0200 (jeu 20 aoû 2009) $ +:Revision: $Revision$ +:Date: $Date$ Créer des listes de votants à la main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/importVotersList.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/index.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/index.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/index.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/index.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/install.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/install.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/install.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ============ .. Author: Nolwenn Rannou <rannou@codelutin.com> -.. Revision: $Revision: 2760 $ -.. Date: $Date: 2009-08-27 17:10:53 +0200 (jeu 27 aoû 2009) $ +.. Revision: $Revision$ +.. Date: $Date$ Conteneur Web ------------- Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/install.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/nombre.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/nombre.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/nombre.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/nombre.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/pourcentage.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/pourcentage.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/pourcentage.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/pourcentage.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/tutoriel.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/tutoriel.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/tutoriel.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ======== :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2759 $ -:Date: $Date: 2009-08-27 17:01:18 +0200 (jeu 27 aoû 2009) $ +:Revision: $Revision$ +:Date: $Date$ Nous allons voir à travers un exemple comment créer un sondage avec Pollen. Les trois étapes nécessaires sont les suivantes : la création, le vote et la visualisation des résultats. Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/tutoriel.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/ui.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/ui.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/ui.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ == :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2613 $ -:Date: $Date: 2009-06-30 15:32:57 +0200 (mar 30 jun 2009) $ +:Revision: $Revision$ +:Date: $Date$ L'interface web de l'application a été créée grâce au framework Tapestry de la fondation Apache. Tapestry est un framework de développement pour applications Web J2EE dont l'architecture est à base de composants. Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/ui.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/user.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/user.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/user.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/user.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/fr/rst/votecounting.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/fr/rst/votecounting.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/fr/rst/votecounting.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ============ :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2613 $ -:Date: $Date: 2009-06-30 15:32:57 +0200 (mar 30 jun 2009) $ +:Revision: $Revision$ +:Date: $Date$ Cette partie décrit l'implémentation du module VoteCounting. Property changes on: branches/pollen-2.0-beta-1/src/site/fr/rst/votecounting.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/src/site/resources/createVotingList.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/CreerSondage.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/CreerSondage2.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/DC_Pollen.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/DC_PreventRules.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/DET_PollState.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/Depouiller.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/Depouiller_1a.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/UC_Gestiondesvotes.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/Voter.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_BusinessDTOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_DBUtil.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServicePoll.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceResults.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceUser.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DC_ServiceVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/business/DS_Conception_CreerSondage.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/composants.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/packages.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/pollen_logo.jpg ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/schema-architecture.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/DC_UIOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/chart.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/dateTimeField.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/feedBack.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topCount.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topCreation.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topIndex.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/ui/topVote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExport.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExportImpl.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceExportXML.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/DC_VoteCountingDTOs.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/schemas/votecounting/Seq-executeVoteCounting.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-1.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-4.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-5.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture-6.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Capture.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-links.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step1.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step2.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step3.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Creation-step4.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Results.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/tutoriel/Vote.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Property changes on: branches/pollen-2.0-beta-1/src/site/resources/votingList.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: branches/pollen-2.0-beta-1/src/site/rst/analyse.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/analyse.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/analyse.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -26,8 +26,8 @@ :Author: Erwan NEMA <nemawan@hotmail.com> :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ The needs ~~~~~~~~~ Property changes on: branches/pollen-2.0-beta-1/src/site/rst/analyse.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/approval.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/approval.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/approval.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/approval.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/architecture.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/architecture.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/architecture.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ =================== :Author: Florian DESBOIS <florian.desbois@gmail.com> -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ .. image:: schemas/schema-architecture.png :alt: Global architecture Property changes on: branches/pollen-2.0-beta-1/src/site/rst/architecture.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/business.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/business.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/business.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ======== :Author: -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ DTO --- Property changes on: branches/pollen-2.0-beta-1/src/site/rst/business.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/condorcet.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/condorcet.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/condorcet.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/condorcet.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/developer.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/developer.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/developer.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/developer.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/historical.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/historical.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/historical.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/historical.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/importVotersList.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/importVotersList.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/importVotersList.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -27,8 +27,8 @@ :Author: Jean Couteau :Contact: -:Revision: $Revision: 2738 $ -:Date: $Date: 2009-08-20 17:12:21 +0200 (jeu 20 aoû 2009) $ +:Revision: $Revision$ +:Date: $Date$ Create voting lists by hand ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Property changes on: branches/pollen-2.0-beta-1/src/site/rst/importVotersList.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/index.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/index.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/index.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/index.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/install.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/install.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/install.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ================== .. Author: Nolwenn Rannou <rannou@codelutin.com> -.. Revision: $Revision: 2779 $ -.. Date: $Date: 2009-10-12 14:29:43 +0200 (lun., 12 oct. 2009) $ +.. Revision: $Revision$ +.. Date: $Date$ .. contents:: Property changes on: branches/pollen-2.0-beta-1/src/site/rst/install.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/methods.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/methods.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/methods.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/methods.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/number.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/number.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/number.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/number.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/percentage.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/percentage.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/percentage.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/percentage.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/tutoriel.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/tutoriel.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/tutoriel.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ======== :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ We will see through an example, how to create a poll with Pollen. The three necessary steps are: Property changes on: branches/pollen-2.0-beta-1/src/site/rst/tutoriel.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/ui.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/ui.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/ui.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ == :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ The application web interface has been created with Tapestry framework from Apache foundation. Tapestry is a development framework for Web J2EE applications Property changes on: branches/pollen-2.0-beta-1/src/site/rst/ui.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/user.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/user.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/user.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/rst/user.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/rst/votecounting.rst =================================================================== --- branches/pollen-2.0-beta-1/src/site/rst/votecounting.rst 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/rst/votecounting.rst 2012-01-19 23:57:08 UTC (rev 3096) @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2009 - 2010 CodeLutin +.. * Copyright (C) 2009 - 2012 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU Affero General Public License as published by @@ -25,8 +25,8 @@ ============ :Author: Nolwenn Rannou <rannou@codelutin.com> -:Revision: $Revision: 2773 $ -:Date: $Date: 2009-09-09 12:05:20 +0200 (mer., 09 sept. 2009) $ +:Revision: $Revision$ +:Date: $Date$ This part describe the VoteCounting module implementation. Property changes on: branches/pollen-2.0-beta-1/src/site/rst/votecounting.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/site_en.xml =================================================================== --- branches/pollen-2.0-beta-1/src/site/site_en.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/site_en.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -6,7 +6,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2011 CodeLutin, Chatellier Eric + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/site_en.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/pollen-2.0-beta-1/src/site/site_fr.xml =================================================================== --- branches/pollen-2.0-beta-1/src/site/site_fr.xml 2012-01-19 16:00:08 UTC (rev 3095) +++ branches/pollen-2.0-beta-1/src/site/site_fr.xml 2012-01-19 23:57:08 UTC (rev 3096) @@ -6,7 +6,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2011 CodeLutin, Chatellier Eric + Copyright (C) 2009 - 2012 CodeLutin %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by Property changes on: branches/pollen-2.0-beta-1/src/site/site_fr.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/todo.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Property changes on: branches/pollen-2.0-beta-1/v2 ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native
participants (1)
-
tchemit@users.chorem.org