This is an automated email from the git hooks/post-receive script. New commit to branch feature/spgeed in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 7c8c77354f3eff84190bf9329f79d32aef93431c Author: Killian <killian.herbreteau@epitech.eu> Date: Tue Aug 20 17:35:20 2019 +0200 addin performance test (spgeed - topia) + spgeed dao request with where --- .../persistence/Dao/PollenPollSpgeedDao.java | 5 +- .../persistence/Dao/PollenUserSpgeedDao.java | 15 ++- .../chorem/pollen/persistence/PollenMapper.java | 40 ++++++ .../entity/ChildFavoriteListTopiaDao.java | 20 --- .../org/chorem/pollen/persistence/entity/Poll.java | 144 --------------------- .../pollen/persistence/entity/PollTopiaDao.java | 2 +- .../pollen/persistence/entity/PollenUser.java | 139 -------------------- .../persistence/entity/PollenUserEmailAddress.java | 35 ----- .../entity/PollenUserEmailAddressImpl.java | 26 ---- .../pollen/persistence/entity/PollenUserImpl.java | 10 -- .../test/FakePollenApplicationContext.java | 3 + pom.xml | 2 +- 12 files changed, 56 insertions(+), 385 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java index 16338bc2..19ef0262 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPollSpgeedDao.java @@ -1,5 +1,6 @@ package org.chorem.pollen.persistence.Dao; +import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.entity.Poll; import org.nuiton.spgeed.annotations.Select; import org.nuiton.spgeed.annotations.Update; @@ -14,7 +15,7 @@ public interface PollenPollSpgeedDao { "notificationlocale, votenotification, feedcontent, commentnotification, " + "newchoicenotification, gtuvalidationdate, premium, notificationmaxvotersend, " + "emailaddresssuffixes from poll) " + - "select json_agg(po) from pollenpo po") + "select json_agg(po) from pollenpo po", mapper = PollenMapper.class) Poll[] getallpoll(); @Update(sql = "insert into poll (title, description, begindate, enddate, anonymousvoteallowed, " + @@ -25,7 +26,7 @@ public interface PollenPollSpgeedDao { "$(continuousresults), $(notifymehoursbeforepollends), $(pollendremindersent), " + "$(notificationlocale), $(votenotification), $(feedcontent), $(commentnotification), " + "$(newchoicenotification), $(gtuvalidationdate), $(premium), $(notificationmaxvotersend), " + - "$(emailaddresssuffixes)))") + "$(emailaddresssuffixes)))", mapper = PollenMapper.class) int new_poll(String title, String description, Date begindate, Date enddate, boolean anonymousvoteallowed, boolean continuousresults, int notifymehoursbeforepollends, boolean pollendremindersent, String notificationlocale, boolean votenotification, String feedcontent, boolean commentnotification, boolean newchoicenotification, Date gtuvalidationdate, boolean premium, diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java index 7a5fe0d4..10230397 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserSpgeedDao.java @@ -1,27 +1,28 @@ package org.chorem.pollen.persistence.Dao; +import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; import org.nuiton.spgeed.annotations.Select; public interface PollenUserSpgeedDao { - String getuser ="with pollenu as " + + String getuser = "with pollenu as " + "(select name, administrator, language, password, banned, gtuvalidationdate, premiumto, cancreatepoll, " + - "(select json_agg(e) as emailaddresses from pollenuseremailaddress e), " + - "(select json_agg(d)->0 as defaultemailaddress from pollenuseremailaddress d)" + + "(select json_agg(e) as emailaddresses from pollenuseremailaddress e where e.pollenuser = pollenuser.topiaid), " + + "(select json_agg(d)->0 as defaultemailaddress from pollenuseremailaddress d where d.pollenuser = pollenuser.defaultemailaddress)" + " from pollenuser)" + " select json_agg(pu) from pollenu pu"; - @Select(sql = getuser) + @Select(sql = getuser, mapper = PollenMapper.class) PollenUser getUser(); - @Select(sql = getuser) + @Select(sql = getuser, mapper = PollenMapper.class) PollenUser[] getallUser(); - @Select(sql = "select json_agg(m.*) from pollenuseremailaddress m") + @Select(sql = "select json_agg(m.*) from pollenuseremailaddress m", mapper = PollenMapper.class) PollenUserEmailAddress getUserEmail(); - @Select(sql = "SELECT count(*) FROM PollenUser") + @Select(sql = "SELECT count(*) FROM PollenUser", mapper = PollenMapper.class) int getUserCount(); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java new file mode 100644 index 00000000..be4da17a --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenMapper.java @@ -0,0 +1,40 @@ +package org.chorem.pollen.persistence; + +import com.fasterxml.jackson.core.Version; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver; +import com.fasterxml.jackson.databind.module.SimpleModule; +import org.chorem.pollen.persistence.entity.*; +import org.nuiton.spgeed.mapper.JsonMapper; + +public class PollenMapper extends JsonMapper { + + @Override + public void configureObjectMapper(ObjectMapper mapper) { + + super.configureObjectMapper(mapper); + SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion()); + + SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); + + resolver.addMapping(PollenUser.class, PollenUserImpl.class); + resolver.addMapping(PollenUserEmailAddress.class, PollenUserEmailAddressImpl.class); + resolver.addMapping(Poll.class, PollImpl.class); + resolver.addMapping(PollenPrincipal.class, PollenPrincipalImpl.class); + resolver.addMapping(PollenToken.class, PollenTokenImpl.class); + resolver.addMapping(PollenResource.class, PollenResourceImpl.class); + resolver.addMapping(Choice.class, ChoiceImpl.class); + resolver.addMapping(VoterList.class, VoterListImpl.class); + resolver.addMapping(Vote.class, VoteImpl.class); + resolver.addMapping(VoterListMember.class, VoterListMemberImpl.class); + resolver.addMapping(Comment.class, CommentImpl.class); + resolver.addMapping(FavoriteList.class, FavoriteListImpl.class); + resolver.addMapping(FavoriteListMember.class, FavoriteListMemberImpl.class); + resolver.addMapping(ChildFavoriteList.class, ChildFavoriteListImpl.class); + resolver.addMapping(SessionToken.class, SessionTokenImpl.class); + + module.setAbstractTypes(resolver); + + mapper.registerModule(module); + } +} \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChildFavoriteListTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChildFavoriteListTopiaDao.java index 96c3ae2d..6c2315e0 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChildFavoriteListTopiaDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/ChildFavoriteListTopiaDao.java @@ -43,25 +43,5 @@ public class ChildFavoriteListTopiaDao extends AbstractChildFavoriteListTopiaDao public static class PollenUserEmailAddressImpl extends PollenUserEmailAddressAbstract { private static final long serialVersionUID = 7293078431378782306L; - - @Override - public void setEmailaddress(String emailAddress) { - setEmailAddress(emailAddress); - } - - @Override - public String getEmailaddress() { - return getEmailAddress(); - } - - @Override - public void setPgppublickey(String pgpPublicKey) { - setPgpPublicKey(pgpPublicKey); - } - - @Override - public String getPgppublickey() { - return getPgpPublicKey(); - } } //PollenUserEmailAddressImpl } diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Poll.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Poll.java deleted file mode 100644 index 2574253f..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Poll.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.chorem.pollen.persistence.entity; - -import java.util.Date; -import javax.annotation.Generated; - -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import org.nuiton.topia.persistence.TopiaEntity; - -@JsonDeserialize(as = PollImpl.class) -public interface Poll extends TopiaEntity { - - String PROPERTY_TITLE = "title"; - - String PROPERTY_DESCRIPTION = "description"; - - String PROPERTY_BEGIN_DATE = "beginDate"; - - String PROPERTY_END_DATE = "endDate"; - - String PROPERTY_ANONYMOUS_VOTE_ALLOWED = "anonymousVoteAllowed"; - - String PROPERTY_CONTINUOUS_RESULTS = "continuousResults"; - - String PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS = "notifyMeHoursBeforePollEnds"; - - String PROPERTY_POLL_END_REMINDER_SENT = "pollEndReminderSent"; - - String PROPERTY_NOTIFICATION_LOCALE = "notificationLocale"; - - String PROPERTY_VOTE_NOTIFICATION = "voteNotification"; - - String PROPERTY_FEED_CONTENT = "feedContent"; - - String PROPERTY_COMMENT_NOTIFICATION = "commentNotification"; - - String PROPERTY_NEW_CHOICE_NOTIFICATION = "newChoiceNotification"; - - String PROPERTY_GTU_VALIDATION_DATE = "gtuValidationDate"; - - String PROPERTY_PREMIUM = "premium"; - - String PROPERTY_NOTIFICATION_MAX_VOTER_SEND = "notificationMaxVoterSend"; - - String PROPERTY_EMAIL_ADDRESS_SUFFIXES = "emailAddressSuffixes"; - - String PROPERTY_POLL_TYPE = "pollType"; - - String PROPERTY_VOTE_VISIBILITY = "voteVisibility"; - - String PROPERTY_COMMENT_VISIBILITY = "commentVisibility"; - - String PROPERTY_RESULT_VISIBILITY = "resultVisibility"; - - String PROPERTY_CREATOR = "creator"; - - void setTitle(String title); - - String getTitle(); - - void setDescription(String description); - - String getDescription(); - - void setBeginDate(Date beginDate); - - Date getBeginDate(); - - void setEndDate(Date endDate); - - Date getEndDate(); - - void setAnonymousVoteAllowed(boolean anonymousVoteAllowed); - - boolean isAnonymousVoteAllowed(); - - void setContinuousResults(boolean continuousResults); - - boolean isContinuousResults(); - - void setNotifyMeHoursBeforePollEnds(int notifyMeHoursBeforePollEnds); - - int getNotifyMeHoursBeforePollEnds(); - - void setPollEndReminderSent(boolean pollEndReminderSent); - - boolean isPollEndReminderSent(); - - void setNotificationLocale(String notificationLocale); - - String getNotificationLocale(); - - void setVoteNotification(boolean voteNotification); - - boolean isVoteNotification(); - - void setFeedContent(String feedContent); - - String getFeedContent(); - - void setCommentNotification(boolean commentNotification); - - boolean isCommentNotification(); - - void setNewChoiceNotification(boolean newChoiceNotification); - - boolean isNewChoiceNotification(); - - void setGtuValidationDate(Date gtuValidationDate); - - Date getGtuValidationDate(); - - void setPremium(boolean premium); - - boolean isPremium(); - - void setNotificationMaxVoterSend(boolean notificationMaxVoterSend); - - boolean isNotificationMaxVoterSend(); - - void setEmailAddressSuffixes(String emailAddressSuffixes); - - String getEmailAddressSuffixes(); - - void setPollType(PollType pollType); - - PollType getPollType(); - - void setVoteVisibility(VoteVisibility voteVisibility); - - VoteVisibility getVoteVisibility(); - - void setCommentVisibility(CommentVisibility commentVisibility); - - CommentVisibility getCommentVisibility(); - - void setResultVisibility(ResultVisibility resultVisibility); - - ResultVisibility getResultVisibility(); - - void setCreator(PollenPrincipal creator); - - PollenPrincipal getCreator(); - -} //Poll diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java index 72c0a479..6baa8462 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java @@ -15,7 +15,7 @@ package org.chorem.pollen.persistence.entity; * 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% diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java deleted file mode 100644 index 901c2b32..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUser.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.chorem.pollen.persistence.entity; - -import java.util.Collection; -import java.util.Date; -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import org.nuiton.topia.persistence.TopiaEntity; - -@JsonDeserialize(as = PollenUserImpl.class) -public interface PollenUser extends TopiaEntity { - - String PROPERTY_NAME = "name"; - - String PROPERTY_ADMINISTRATOR = "administrator"; - - String PROPERTY_LANGUAGE = "language"; - - String PROPERTY_PASSWORD = "password"; - - String PROPERTY_SALT = "salt"; - - String PROPERTY_BANNED = "banned"; - - String PROPERTY_GTU_VALIDATION_DATE = "gtuValidationDate"; - - String PROPERTY_PREMIUM_TO = "premiumTo"; - - String PROPERTY_CAN_CREATE_POLL = "canCreatePoll"; - - String PROPERTY_USER_CREDENTIAL = "userCredential"; - - String PROPERTY_AVATAR = "avatar"; - - String PROPERTY_DEFAULT_EMAIL_ADDRESS = "defaultEmailAddress"; - - String PROPERTY_EMAIL_ADDRESSES = "emailAddresses"; - - void setName(String name); - - String getName(); - - void setAdministrator(boolean administrator); - - boolean isAdministrator(); - - void setLanguage(String language); - - String getLanguage(); - - void setPassword(String password); - - String getPassword(); - - void setSalt(String salt); - - String getSalt(); - - void setBanned(boolean banned); - - boolean isBanned(); - - void setGtuValidationDate(Date gtuValidationDate); - - Date getGtuValidationDate(); - - void setPremiumTo(Date premiumTo); - - Date getPremiumTo(); - - void setCanCreatePoll(boolean canCreatePoll); - - boolean isCanCreatePoll(); - - void addUserCredential(UserCredential userCredential); - - void addAllUserCredential(Iterable<UserCredential> userCredential); - - void setUserCredential(Collection<UserCredential> userCredential); - - void removeUserCredential(UserCredential userCredential); - - void clearUserCredential(); - - Collection<UserCredential> getUserCredential(); - - UserCredential getUserCredentialByTopiaId(String topiaId); - - Collection<String> getUserCredentialTopiaIds(); - - int sizeUserCredential(); - - boolean isUserCredentialEmpty(); - - boolean isUserCredentialNotEmpty(); - - boolean containsUserCredential(UserCredential userCredential); - - void setAvatar(PollenResource avatar); - - PollenResource getAvatar(); - - void setDefaultEmailAddress(PollenUserEmailAddress defaultEmailAddress); - //Hack cause spgeed does not manage camel case - void setDefaultemailaddress(PollenUserEmailAddress defaultEmailAddress); - - PollenUserEmailAddress getDefaultEmailAddress(); - - void addEmailAddresses(PollenUserEmailAddress emailAddresses); - - void addAllEmailAddresses(Iterable<PollenUserEmailAddress> emailAddresses); - - void setEmailAddresses(Collection<PollenUserEmailAddress> emailAddresses); - - //Hack cause spgeed does not manage camel case - void setEmailaddresses(Collection<PollenUserEmailAddress> emailAddresses); - - void removeEmailAddresses(PollenUserEmailAddress emailAddresses); - - void clearEmailAddresses(); - - Collection<PollenUserEmailAddress> getEmailAddresses(); - - PollenUserEmailAddress getEmailAddressesByTopiaId(String topiaId); - - Collection<String> getEmailAddressesTopiaIds(); - - int sizeEmailAddresses(); - - boolean isEmailAddressesEmpty(); - - boolean isEmailAddressesNotEmpty(); - - boolean containsEmailAddresses(PollenUserEmailAddress emailAddresses); - - boolean isEmailValidated(); - -} //PollenUser diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java deleted file mode 100644 index c1765c05..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddress.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.chorem.pollen.persistence.entity; - -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import org.nuiton.topia.persistence.TopiaEntity; - -@JsonDeserialize(as = ChildFavoriteListTopiaDao.PollenUserEmailAddressImpl.class) -public interface PollenUserEmailAddress extends TopiaEntity { - - String PROPERTY_EMAIL_ADDRESS = "emailAddress"; - - String PROPERTY_PGP_PUBLIC_KEY = "pgpPublicKey"; - - String PROPERTY_VALIDATED = "validated"; - - void setEmailAddress(String emailAddress); - - void setEmailaddress(String emailAddress); - - String getEmailAddress(); - - void setPgpPublicKey(String pgpPublicKey); - - String getPgpPublicKey(); - - String getEmailaddress(); - - void setPgppublickey(String pgpPublicKey); - - String getPgppublickey(); - - void setValidated(boolean validated); - - boolean isValidated(); - -} //PollenUserEmailAddress diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddressImpl.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddressImpl.java deleted file mode 100644 index fe5a4a2f..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserEmailAddressImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.chorem.pollen.persistence.entity; - -public class PollenUserEmailAddressImpl extends PollenUserEmailAddressAbstract { - - private static final long serialVersionUID = 7293078431378782306L; - - @Override - public void setEmailaddress(String emailAddress) { - setEmailAddress(emailAddress); - } - - @Override - public String getEmailaddress() { - return getEmailAddress(); - } - - @Override - public void setPgppublickey(String pgpPublicKey) { - setPgpPublicKey(pgpPublicKey); - } - - @Override - public String getPgppublickey() { - return getPgpPublicKey(); - } -} //PollenUserEmailAddressImpl diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java index 6654c24b..e0d5ade6 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUserImpl.java @@ -33,14 +33,4 @@ public class PollenUserImpl extends PollenUserAbstract { public boolean isEmailValidated() { return getDefaultEmailAddress() == null || getDefaultEmailAddress().isValidated(); } - - @Override - public void setDefaultemailaddress(PollenUserEmailAddress defaultEmailAddress) { - this.setDefaultEmailAddress(defaultEmailAddress); - } - - @Override - public void setEmailaddresses(Collection<PollenUserEmailAddress> emailAddresses) { - this.setEmailAddresses(emailAddresses); - } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java index da5b5284..ea75fa6d 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/test/FakePollenApplicationContext.java @@ -40,6 +40,7 @@ import org.chorem.pollen.services.config.PollenServicesConfig; import org.chorem.pollen.services.config.PollenServicesConfigOption; import org.chorem.pollen.services.service.FixturesService; import org.chorem.pollen.votecounting.VoteCountingFactory; +import org.junit.Assert; import org.junit.rules.TestWatcher; import org.junit.runner.Description; import org.nuiton.topia.persistence.BeanTopiaConfiguration; @@ -139,6 +140,8 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA // --- create configuration --- // Properties defaultvalues = new Properties(); + Assert.assertNotNull(PollenServicesConfigOption.DATA_DIRECTORY); + Assert.assertNotNull(testBasedir); defaultvalues.put(PollenServicesConfigOption.DATA_DIRECTORY.getKey(), testBasedir.getAbsolutePath()); configuration = new PollenServicesConfig(configurationPath, defaultvalues); diff --git a/pom.xml b/pom.xml index 9db5ed90..87a20642 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ <nuitonI18nVersion>3.7</nuitonI18nVersion> <eugenePluginVersion>3.0-alpha-10</eugenePluginVersion> <topiaVersion>3.5</topiaVersion> - <spgeedVersion>1.0.10</spgeedVersion> + <spgeedVersion>1.0.11-SNAPSHOT</spgeedVersion> <flywayVersion>5.0.0</flywayVersion> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.