branch feature/spgeed updated (365304a3 -> 02a161e4)
This is an automated email from the git hooks/post-receive script. New change to branch feature/spgeed in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git from 365304a3 Spgeed Dao + properties management new b7c30d1c adding entities's Dao new f17637d3 adding test to compare performance between (topia+hibernate and spgeed) + test for foreign key link new d65651d5 remove useless file new ab91f0ab passing service test to embedded postgres new 7043bb99 patching error new 02a161e4 start changing service from topia to spgeed The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 02a161e40ada8ebeac9830a67fd108502079bc93 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:02:00 2019 +0200 start changing service from topia to spgeed commit 7043bb9940c803b5eb7677921bf31c043f62c846 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:01:19 2019 +0200 patching error commit ab91f0ab42bd94e569a1166fd2d01261bc607aad Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:00:32 2019 +0200 passing service test to embedded postgres commit d65651d566ae9d5757b15ce773436e541140ed16 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:41:35 2019 +0200 remove useless file commit f17637d3ac43cb8f1c073ef4d7a6915d37268385 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:27:07 2019 +0200 adding test to compare performance between (topia+hibernate and spgeed) + test for foreign key link commit b7c30d1c9c30bee84b4ef805edd683ed7abe33b9 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:13:39 2019 +0200 adding entities's Dao Summary of changes: .../Dao/PollenChildFavoriteListSpgeedDao.java | 8 +- .../persistence/Dao/PollenChoiceSpgeedDao.java | 9 +- .../persistence/Dao/PollenCommentSpgeedDao.java | 7 +- .../Dao/PollenFavoriteListMemberSpgeedDao.java | 7 +- .../Dao/PollenFavoriteListSpgeedDao.java | 15 +- .../persistence/Dao/PollenPollSpgeedDao.java | 85 +++++---- .../persistence/Dao/PollenPrincipalSpgeedDao.java | 36 ++-- .../persistence/Dao/PollenRessourceSpgeedDao.java | 15 +- .../Dao/PollenSessionTokenSpgeedDao.java | 7 - .../pollen/persistence/Dao/PollenSpgeedDao.java | 5 + .../persistence/Dao/PollenTokenSpgeedDao.java | 3 - .../Dao/PollenUserEmailAddressSpgeedDao.java | 42 ++-- .../persistence/Dao/PollenUserSpgeedDao.java | 38 +++- .../persistence/Dao/PollenVoteSpgeedDao.java | 7 - .../Dao/PollenVoterListMemberSpgeedDao.java | 5 - .../persistence/Dao/PollenVoterListSpgeedDao.java | 15 +- .../pollen/persistence/Dao/SpgeedDaoUtils.java | 37 ---- .../resources/#pollen-rest-api-test.properties# | 31 --- .../resources/.#pollen-rest-api-test.properties | 1 - pollen-services/pom.xml | 5 + .../org/chorem/pollen/services/PollenFixtures.java | 2 +- .../pollen/services/service/PollenUserService.java | 14 +- .../services/service/security/SpgeedDao.java | 31 --- .../service/security/SpgeedDummyService.java | 19 +- .../test/FakePollenApplicationContext.java | 29 ++- .../chorem/pollen/services/SpgeedDaoUtilsTest.java | 211 --------------------- .../org/chorem/pollen/services/SpgeedTest.java | 171 +++++++++++++---- .../src/test/resources/pollen-services.properties | 10 +- pom.xml | 6 + 29 files changed, 318 insertions(+), 553 deletions(-) create mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java delete mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/SpgeedDaoUtils.java delete mode 100644 pollen-rest-api/src/test/resources/#pollen-rest-api-test.properties# delete mode 120000 pollen-rest-api/src/test/resources/.#pollen-rest-api-test.properties delete mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDao.java delete mode 100644 pollen-services/src/test/java/org/chorem/pollen/services/SpgeedDaoUtilsTest.java -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 b7c30d1c9c30bee84b4ef805edd683ed7abe33b9 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:13:39 2019 +0200 adding entities's Dao --- .../Dao/PollenChildFavoriteListSpgeedDao.java | 8 +- .../persistence/Dao/PollenChoiceSpgeedDao.java | 9 +- .../persistence/Dao/PollenCommentSpgeedDao.java | 7 +- .../Dao/PollenFavoriteListMemberSpgeedDao.java | 7 +- .../Dao/PollenFavoriteListSpgeedDao.java | 15 +- .../persistence/Dao/PollenPollSpgeedDao.java | 85 +++++---- .../persistence/Dao/PollenPrincipalSpgeedDao.java | 36 ++-- .../persistence/Dao/PollenRessourceSpgeedDao.java | 15 +- .../Dao/PollenSessionTokenSpgeedDao.java | 7 - .../pollen/persistence/Dao/PollenSpgeedDao.java | 5 + .../persistence/Dao/PollenTokenSpgeedDao.java | 3 - .../Dao/PollenUserEmailAddressSpgeedDao.java | 42 ++-- .../persistence/Dao/PollenUserSpgeedDao.java | 38 +++- .../persistence/Dao/PollenVoteSpgeedDao.java | 7 - .../Dao/PollenVoterListMemberSpgeedDao.java | 5 - .../persistence/Dao/PollenVoterListSpgeedDao.java | 15 +- .../pollen/persistence/Dao/SpgeedDaoUtils.java | 37 ---- .../chorem/pollen/services/SpgeedDaoUtilsTest.java | 211 --------------------- 18 files changed, 123 insertions(+), 429 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java index cd64d5e5..eee526fe 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChildFavoriteListSpgeedDao.java @@ -2,14 +2,8 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.ChildFavoriteList; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; - public interface PollenChildFavoriteListSpgeedDao { - String propertieswoForeignKey[] = {ChildFavoriteList.PROPERTY_WEIGHT, ChildFavoriteList.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, ChildFavoriteList.PROPERTY_PARENT, ChildFavoriteList.PROPERTY_CHILD); + String propertieswoForeignKey[] = {ChildFavoriteList.PROPERTY_WEIGHT, ChildFavoriteList.PROPERTY_TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java index bb476bc8..fb157bc2 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenChoiceSpgeedDao.java @@ -2,14 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Choice; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; - public interface PollenChoiceSpgeedDao { - String propertieswoForeignKey[] = {Choice.PROPERTY_CHOICE_VALUE, Choice.PROPERTY_DESCRIPTION, Choice.PROPERTY_CHOICE_ORDER, Choice.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, Choice.PROPERTY_QUESTION, Choice.PROPERTY_CREATOR, Choice.PROPERTY_CHOICE_TYPE); - - String woForeignKey = getProperty(propertieswoForeignKey); + String propertieswoForeignKey[] = {Choice.PROPERTY_CHOICE_VALUE, Choice.PROPERTY_DESCRIPTION, Choice.PROPERTY_CHOICE_ORDER, Choice.PROPERTY_TOPIA_ID}; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java index 60cb7125..c454a982 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenCommentSpgeedDao.java @@ -2,12 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Comment; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; - public interface PollenCommentSpgeedDao { - String propertieswoForeignKey[] = {Comment.PROPERTY_TEXT, Comment.PROPERTY_POST_DATE, Comment.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, Comment.PROPERTY_POLL, Comment.PROPERTY_AUTHOR, Comment.PROPERTY_QUESTION); + String propertieswoForeignKey[] = {Comment.PROPERTY_TEXT, Comment.PROPERTY_POST_DATE, Comment.PROPERTY_TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java index e90847e1..ec8a5772 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListMemberSpgeedDao.java @@ -3,13 +3,8 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.FavoriteList; import org.chorem.pollen.persistence.entity.FavoriteListMember; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; - public interface PollenFavoriteListMemberSpgeedDao { - String propertieswoForeignKey[] = {FavoriteListMember.PROPERTY_NAME, FavoriteListMember.PROPERTY_EMAIL, FavoriteListMember.PROPERTY_WEIGHT, FavoriteList.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, FavoriteListMember.PROPERTY_FAVORITE_LIST); + String propertieswoForeignKey[] = {FavoriteListMember.PROPERTY_NAME, FavoriteListMember.PROPERTY_EMAIL, FavoriteListMember.PROPERTY_WEIGHT, FavoriteList.PROPERTY_TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java index ac7768d7..981fd78e 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenFavoriteListSpgeedDao.java @@ -1,22 +1,9 @@ package org.chorem.pollen.persistence.Dao; -import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.entity.FavoriteList; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.VoterList; -import org.nuiton.spgeed.annotations.Select; -import org.nuiton.spgeed.annotations.Update; - -import java.sql.Date; - -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; public interface PollenFavoriteListSpgeedDao { - String propertieswoForeignKey[] = {FavoriteList.PROPERTY_NAME, FavoriteList.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, FavoriteList.PROPERTY_POLLEN_USER, FavoriteList.PROPERTY_OWNER, FavoriteList.PROPERTY_PARENT_LISTS); + String propertieswoForeignKey[] = {FavoriteList.PROPERTY_NAME, FavoriteList.PROPERTY_TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file 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 a933a4a3..7c3e6563 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 @@ -2,52 +2,67 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.entity.Poll; +import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.nuiton.spgeed.annotations.Select; import org.nuiton.spgeed.annotations.Update; import java.sql.Date; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; +public interface PollenPollSpgeedDao extends PollenSpgeedDao { -public interface PollenPollSpgeedDao { + String pollName = "po"; - String propertieswoForeignKey[] = {Poll.PROPERTY_TITLE, Poll.PROPERTY_DESCRIPTION, Poll.PROPERTY_BEGIN_DATE, Poll.PROPERTY_END_DATE, - Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED, Poll.PROPERTY_CONTINUOUS_RESULTS, Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS, - Poll.PROPERTY_POLL_END_REMINDER_SENT, Poll.PROPERTY_NOTIFICATION_LOCALE, Poll.PROPERTY_VOTE_NOTIFICATION, Poll.PROPERTY_FEED_CONTENT, - Poll.PROPERTY_COMMENT_NOTIFICATION, Poll.PROPERTY_NEW_CHOICE_NOTIFICATION, Poll.PROPERTY_GTU_VALIDATION_DATE, Poll.PROPERTY_PREMIUM, - Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND, Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES, Poll.PROPERTY_POLL_TYPE, Poll.PROPERTY_VOTE_VISIBILITY, - Poll.PROPERTY_COMMENT_VISIBILITY, Poll.PROPERTY_RESULT_VISIBILITY, Poll.PROPERTY_TOPIA_ID}; + String aggName = "polls_agg"; - String Properties[] = addStringToArray(propertieswoForeignKey, Poll.PROPERTY_CREATOR); + String propertieswoForeignKey = pollName+"."+Poll.PROPERTY_TITLE+ ", " + pollName+"."+Poll.PROPERTY_DESCRIPTION+ ", " + pollName+"."+Poll.PROPERTY_BEGIN_DATE+ ", " + pollName+"."+Poll.PROPERTY_END_DATE+ ", " + + pollName+"."+Poll.PROPERTY_ANONYMOUS_VOTE_ALLOWED+ ", " + pollName+"."+Poll.PROPERTY_CONTINUOUS_RESULTS+ ", " + pollName+"."+Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS+ ", " + + pollName+"."+Poll.PROPERTY_POLL_END_REMINDER_SENT+ ", " + pollName+"."+Poll.PROPERTY_NOTIFICATION_LOCALE+ ", " + pollName+"."+Poll.PROPERTY_VOTE_NOTIFICATION+ ", " + + pollName+"."+Poll.PROPERTY_FEED_CONTENT+ ", " + pollName+"."+Poll.PROPERTY_COMMENT_NOTIFICATION+ ", " + pollName+"."+Poll.PROPERTY_NEW_CHOICE_NOTIFICATION+ ", " + + pollName+"."+Poll.PROPERTY_GTU_VALIDATION_DATE+ ", " + pollName+"."+Poll.PROPERTY_PREMIUM+ ", " + pollName+"."+Poll.PROPERTY_NOTIFICATION_MAX_VOTER_SEND+ ", " + + pollName+"."+Poll.PROPERTY_EMAIL_ADDRESS_SUFFIXES+ ", " + pollName+"."+Poll.PROPERTY_POLL_TYPE+ ", " + pollName+"."+Poll.PROPERTY_VOTE_VISIBILITY+ ", " + pollName+"."+Poll.PROPERTY_COMMENT_VISIBILITY+ ", " + + pollName+"."+Poll.PROPERTY_RESULT_VISIBILITY+ ", " + pollName+"."+ Poll.PROPERTY_TOPIA_ID; - String woForeignKey = getProperty(propertieswoForeignKey); + String command = aggName+" AS (" + + " SELECT "+propertieswoForeignKey+", json_agg("+PollenPrincipalSpgeedDao.principalName+".*)->0 AS "+Poll.PROPERTY_CREATOR + + " FROM "+PollenPrincipalSpgeedDao.aggName+" "+PollenPrincipalSpgeedDao.principalName+ + " RIGHT JOIN poll "+pollName+" ON "+PollenPrincipalSpgeedDao.principalName+"."+ PollenPrincipal.PROPERTY_TOPIA_ID+" = "+pollName+"."+Poll.PROPERTY_CREATOR + + " GROUP BY "+pollName+"."+Poll.PROPERTY_TOPIA_ID + + ") "; - String command = "WITH " + - "email_agg AS (" + - " SELECT emailaddress, topiaid, pollenuser" + - " FROM pollenuseremailaddress" + - ")," + - "users_agg AS (" + - " SELECT userx.topiaid, json_agg(demail.*)->0 AS defaultemailaddress, json_agg(emails.*) AS emailaddresses" + - " FROM email_agg demail, email_agg emails, pollenuser userx" + - " WHERE demail.topiaid = userx.defaultemailaddress AND emails.pollenuser = userx.topiaid" + - " GROUP BY userx.topiaid" + - ")," + - "principals_agg AS (" + - " SELECT principals.topiaid, json_agg(userx.*)->0 AS pollenuser" + - " FROM users_agg userx, pollenprincipal principals" + - " WHERE userx.topiaid = principals.pollenuser" + - " GROUP BY principals.topiaid" + - "), " + - "polls_agg AS (" + - " SELECT p.topiaid, json_agg(a.*)->0 AS creator" + - " FROM principals_agg a, poll p" + - " WHERE a.topiaid = p.creator" + - " GROUP BY p.topiaid" + - ") " + - "SELECT * FROM polls_agg"; + String commands = "WITH " + + PollenUserEmailAddressSpgeedDao.command+"," + + PollenUserSpgeedDao.command+", " + + PollenPrincipalSpgeedDao.command+", " + + PollenPollSpgeedDao.command + + "SELECT * FROM "+aggName; - @Select(sql = command, mapper = PollenMapper.class) + String com = "WITH "+ + "emails_agg AS ( "+ + "SELECT topiaid, pollenuser "+ + "FROM pollenuseremailaddress "+ + "), "+ + "users_agg AS ( "+ + "SELECT userx.topiaid, json_agg(emails.*) AS emailaddresses, json_agg(demail.*)->0 AS defaultemailaddress "+ + "FROM pollenuser userx "+ + "JOIN emails_agg demail ON demail.topiaid = userx.defaultemailaddress "+ + "JOIN emails_agg emails ON emails.pollenuser = userx.topiaid "+ + "GROUP BY userx.topiaid "+ +"), "+ + "principals_agg AS ( "+ + "SELECT principals.topiaid, json_agg(userx.*)->0 AS pollenuser "+ + "FROM users_agg userx JOIN pollenprincipal principals "+ + "ON userx.topiaid = principals.pollenuser "+ + "GROUP BY principals.topiaid "+ +"), "+ + "polls_agg AS ( "+ + "SELECT p.topiaid, json_agg(a.*)->0 AS creator "+ + "FROM principals_agg a "+ + "RIGHT JOIN poll p ON a.topiaid = p.creator "+ + "GROUP BY p.topiaid "+ +") "+ + "SELECT json_agg(po.*) FROM polls_agg po"; + + @Select(sql = commands, mapper = PollenMapper.class) Poll[] getallpoll(); @Update(sql = "insert into poll (title, description, begindate, enddate, anonymousvoteallowed, " + diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java index df8dea4a..123bff7a 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenPrincipalSpgeedDao.java @@ -1,38 +1,36 @@ package org.chorem.pollen.persistence.Dao; -import org.chorem.pollen.persistence.entity.FavoriteList; import org.chorem.pollen.persistence.entity.PollenPrincipal; - -import java.security.Principal; - -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; +import org.chorem.pollen.persistence.entity.PollenUser; public interface PollenPrincipalSpgeedDao { + String principalName = "pr"; - String propertieswoForeignKey[] = {PollenPrincipal.PROPERTY_NAME, PollenPrincipal.PROPERTY_EMAIL, PollenPrincipal.PROPERTY_INVALID, PollenPrincipal.TOPIA_ID}; + String aggName = "principals_agg"; - String Properties[] = addStringToArray(propertieswoForeignKey, PollenPrincipal.PROPERTY_PERMISSION, PollenPrincipal.PROPERTY_POLLEN_USER); + String propertieswoForeignKey = principalName+"." +PollenPrincipal.PROPERTY_NAME + ", " + + principalName+"." +PollenPrincipal.PROPERTY_EMAIL + ", "+principalName+"."+PollenPrincipal.PROPERTY_INVALID + ", " + + principalName+"." +PollenPrincipal.TOPIA_ID; - String woForeignKey = getProperty(propertieswoForeignKey); + String Properties = propertieswoForeignKey+ PollenPrincipal.PROPERTY_PERMISSION+ PollenPrincipal.PROPERTY_POLLEN_USER; - String command = "WITH " + - "email_agg AS (" + - " SELECT emailaddress, topiaid, pollenuser" + - " FROM pollenuseremailaddress" + - ")," + + String command = aggName+" AS (" + + " SELECT "+ propertieswoForeignKey +", json_agg("+PollenUserSpgeedDao.userName+".*)->0 AS "+PollenPrincipal.PROPERTY_POLLEN_USER+ + " FROM "+PollenUserSpgeedDao.aggName+" "+PollenUserSpgeedDao.userName+ + " JOIN pollenprincipal "+principalName+" ON "+PollenUserSpgeedDao.userName+"."+ PollenUser.PROPERTY_TOPIA_ID+" = "+principalName+"."+PollenPrincipal.PROPERTY_POLLEN_USER+ + " GROUP BY "+ principalName+"."+PollenPrincipal.PROPERTY_TOPIA_ID+ + ")"; + + String commands = "WITH " + + PollenUserEmailAddressSpgeedDao.command+", " + "users_agg AS (" + " SELECT userx.topiaid, json_agg(demail.*)->0 AS defaultemailaddress, json_agg(emails.*) AS emailaddresses" + " FROM email_agg demail, email_agg emails, pollenuser userx" + " WHERE demail.topiaid = userx.defaultemailaddress AND emails.pollenuser = userx.topiaid" + " GROUP BY userx.topiaid" + ")," + - "principals_agg AS (" + - " SELECT principals.topiaid, json_agg(userx.*)->0 AS pollenuser" + - " FROM users_agg userx, pollenprincipal principals" + - " WHERE userx.topiaid = principals.pollenuser" + - " GROUP BY principals.topiaid" + - "), " + + PollenPrincipalSpgeedDao.command+", " + "polls_agg AS (" + " SELECT p.topiaid, json_agg(a.*)->0 AS creator" + " FROM principals_agg a, poll p" + diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java index 3a8b37c7..44399f15 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenRessourceSpgeedDao.java @@ -1,23 +1,10 @@ package org.chorem.pollen.persistence.Dao; -import org.chorem.pollen.persistence.PollenMapper; -import org.chorem.pollen.persistence.entity.FavoriteList; -import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenResource; -import org.nuiton.spgeed.annotations.Select; -import org.nuiton.spgeed.annotations.Update; - -import java.sql.Date; - -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; public interface PollenRessourceSpgeedDao { String propertieswoForeignKey[] = {PollenResource.PROPERTY_RESOURCE_CONTENT, PollenResource.PROPERTY_CONTENT_TYPE, - PollenResource.PROPERTY_NAME, PollenResource.PROPERTY_SIZE, PollenResource.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, PollenResource.PROPERTY_RESOURCE_TYPE); + PollenResource.PROPERTY_NAME, PollenResource.PROPERTY_SIZE, PollenResource.PROPERTY_TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java index 594e6bc3..0123fc22 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSessionTokenSpgeedDao.java @@ -1,16 +1,9 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.SessionToken; -import org.chorem.pollen.persistence.entity.VoterList; - -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; public interface PollenSessionTokenSpgeedDao { String propertieswoForeignKey[] = {SessionToken.PROPERTY_TOPIA_ID}; - String Properties[] = addStringToArray(propertieswoForeignKey, SessionToken.PROPERTY_POLLEN_TOKEN, SessionToken.PROPERTY_POLLEN_USER, SessionToken.TOPIA_ID); - - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java new file mode 100644 index 00000000..1ad613bd --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenSpgeedDao.java @@ -0,0 +1,5 @@ +package org.chorem.pollen.persistence.Dao; + +public interface PollenSpgeedDao { + +} \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenTokenSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenTokenSpgeedDao.java index 4e07e7b7..9acfd47c 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenTokenSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenTokenSpgeedDao.java @@ -2,11 +2,8 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.PollenToken; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; - public interface PollenTokenSpgeedDao { String propertieswoForeignKey[] = {PollenToken.PROPERTY_TOKEN, PollenToken.PROPERTY_CREATION_DATE, PollenToken.PROPERTY_END_DATE, PollenToken.TOPIA_ID}; - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java index 65524df2..d72d41fa 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenUserEmailAddressSpgeedDao.java @@ -2,37 +2,23 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; - public interface PollenUserEmailAddressSpgeedDao { - String properties[] = {PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS, PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY, - PollenUserEmailAddress.PROPERTY_VALIDATED, PollenUserEmailAddress.TOPIA_ID}; + String demailName = "pde"; + + String emailsName = "pes"; + + String aggName = "emails_agg"; + + String properties = PollenUserEmailAddress.PROPERTY_EMAIL_ADDRESS + ", " + + PollenUserEmailAddress.PROPERTY_PGP_PUBLIC_KEY + ", " + + PollenUserEmailAddress.PROPERTY_VALIDATED + ", " + + PollenUserEmailAddress.TOPIA_ID + ", " + + "pollenuser"; - String formatedProperties = getProperty(properties); - String command = "WITH " + - "email_agg AS (" + - " SELECT " + formatedProperties + + final String command = aggName+" AS (" + + " SELECT " + properties + " FROM pollenuseremailaddress" + - ")," + - "users_agg AS (" + - " SELECT userx.topiaid, json_agg(demail.*)->0 AS defaultemailaddress, json_agg(emails.*) AS emailaddresses" + - " FROM email_agg demail, email_agg emails, pollenuser userx" + - " WHERE demail.topiaid = userx.defaultemailaddress AND emails.pollenuser = userx.topiaid" + - " GROUP BY userx.topiaid" + - ")," + - "principals_agg AS (" + - " SELECT principals.topiaid, json_agg(userx.*)->0 AS pollenuser" + - " FROM users_agg userx, pollenprincipal principals" + - " WHERE userx.topiaid = principals.pollenuser" + - " GROUP BY principals.topiaid" + - "), " + - "polls_agg AS (" + - " SELECT p.topiaid, json_agg(a.*)->0 AS creator" + - " FROM principals_agg a, poll p" + - " WHERE a.topiaid = p.creator" + - " GROUP BY p.topiaid" + - ") " + - "SELECT * FROM polls_agg"; + ")"; } \ No newline at end of file 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 313e8557..3e7f9605 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,22 +1,41 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.PollenMapper; +import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; import org.nuiton.spgeed.annotations.Select; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; +public interface PollenUserSpgeedDao extends PollenSpgeedDao { -public interface PollenUserSpgeedDao { + String userName = "pu"; - String propertieswoForeignKey[] = {PollenUser.PROPERTY_NAME, PollenUser.PROPERTY_ADMINISTRATOR, PollenUser.PROPERTY_LANGUAGE, PollenUser.PROPERTY_PASSWORD, - PollenUser.PROPERTY_SALT, PollenUser.PROPERTY_BANNED, PollenUser.PROPERTY_GTU_VALIDATION_DATE, PollenUser.PROPERTY_PREMIUM_TO, - PollenUser.PROPERTY_CAN_CREATE_POLL, PollenUser.PROPERTY_TOPIA_ID}; + String aggName = "users_agg"; - String Properties[] = addStringToArray(propertieswoForeignKey, PollenUser.PROPERTY_USER_CREDENTIAL, PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS, - PollenUser.PROPERTY_EMAIL_ADDRESSES, PollenUser.PROPERTY_AVATAR); + String propertieswoForeignKey = userName+"."+PollenUser.PROPERTY_NAME+", " + + userName+"."+PollenUser.PROPERTY_ADMINISTRATOR + ", "+userName+"."+PollenUser.PROPERTY_LANGUAGE+", " + + userName+"."+PollenUser.PROPERTY_PASSWORD + ", "+userName+"."+PollenUser.PROPERTY_SALT+", " + + userName+"."+PollenUser.PROPERTY_BANNED + ", "+userName+"."+PollenUser.PROPERTY_GTU_VALIDATION_DATE+", " + + userName+"."+PollenUser.PROPERTY_PREMIUM_TO + ", "+userName+"."+PollenUser.PROPERTY_CAN_CREATE_POLL+", " + + userName+"."+PollenUser.PROPERTY_TOPIA_ID; - String woForeignKey = getProperty(propertieswoForeignKey); + String Properties = propertieswoForeignKey+ PollenUser.PROPERTY_USER_CREDENTIAL+ PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+ + PollenUser.PROPERTY_EMAIL_ADDRESSES+ PollenUser.PROPERTY_AVATAR; + + String command = aggName+" AS (" + + " SELECT "+propertieswoForeignKey+", " + + "json_agg("+PollenUserEmailAddressSpgeedDao.demailName+".*)->0 AS "+PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+", " + + "json_agg("+PollenUserEmailAddressSpgeedDao.emailsName+".*) AS "+PollenUser.PROPERTY_EMAIL_ADDRESSES+ + " FROM pollenuser "+userName+ + " JOIN "+PollenUserEmailAddressSpgeedDao.aggName+" "+PollenUserEmailAddressSpgeedDao.demailName+" ON "+PollenUserEmailAddressSpgeedDao.demailName+"."+PollenUserEmailAddress.PROPERTY_TOPIA_ID+ " = "+userName+"."+PollenUser.PROPERTY_DEFAULT_EMAIL_ADDRESS+ + " JOIN "+PollenUserEmailAddressSpgeedDao.aggName+" "+PollenUserEmailAddressSpgeedDao.emailsName+" ON "+PollenUserEmailAddressSpgeedDao.emailsName+".pollenuser = "+userName+"."+PollenUser.PROPERTY_TOPIA_ID+ + " GROUP BY "+userName+"."+PollenUser.PROPERTY_TOPIA_ID+ + ")"; + + String commands = "WITH " + + PollenUserEmailAddressSpgeedDao.command+", "+ + PollenUserSpgeedDao.command + + "SELECT * from "+aggName; String getuser = "with pollenu as " + "((select json_agg(e) as emailaddresses from pollenuseremailaddress e where e.pollenuser = u.topiaid), " + @@ -28,6 +47,9 @@ public interface PollenUserSpgeedDao { @Select(sql = getuser, mapper = PollenMapper.class) PollenUser getFirstUser(); + @Select(sql = commands + " "+userName+" WHERE "+userName+"."+ PollenUser.PROPERTY_TOPIA_ID+" = ${userId}", mapper = PollenMapper.class) + PollenUser getUser(String userId); + @Select(sql = getuser, mapper = PollenMapper.class) PollenUser[] getallUser(); diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java index 14f6bb97..c030ea01 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoteSpgeedDao.java @@ -2,14 +2,7 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.Vote; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; - public interface PollenVoteSpgeedDao { String propertieswoForeignKey[] = {Vote.PROPERTY_WEIGHT, Vote.PROPERTY_ANONYMOUS, Vote.PROPERTY_TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, Vote.PROPERTY_QUESTION, Vote.PROPERTY_VOTE_TO_CHOICE, - Vote.PROPERTY_VOTER_LIST_MEMBER, Vote.PROPERTY_VOTER); - - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListMemberSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListMemberSpgeedDao.java index 0d2bacd6..7d190a51 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListMemberSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListMemberSpgeedDao.java @@ -2,13 +2,8 @@ package org.chorem.pollen.persistence.Dao; import org.chorem.pollen.persistence.entity.VoterListMember; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.*; - public interface PollenVoterListMemberSpgeedDao { String propertieswoForeignKey[] = {VoterListMember.PROPERTY_WEIGHT, VoterListMember.PROPERTY_INVITATION_SENT, VoterListMember.PROPERTY_TOPIA_ID}; - String Properties[] = addStringToArray(propertieswoForeignKey, VoterListMember.PROPERTY_VOTER_LIST, VoterListMember.PROPERTY_MEMBER); - - String woForeignKey = getProperty(propertieswoForeignKey); } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java index 8e2f283b..38796255 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/PollenVoterListSpgeedDao.java @@ -1,22 +1,9 @@ package org.chorem.pollen.persistence.Dao; -import org.chorem.pollen.persistence.PollenMapper; -import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.VoterList; -import org.nuiton.spgeed.annotations.Select; -import org.nuiton.spgeed.annotations.Update; - -import java.sql.Date; - -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.addStringToArray; -import static org.chorem.pollen.persistence.Dao.SpgeedDaoUtils.getProperty; public interface PollenVoterListSpgeedDao { - String propertieswoForeignKey[] = {VoterList.PROPERTY_NAME, VoterList.PROPERTY_WEIGHT, VoterList.TOPIA_ID}; - - String Properties[] = addStringToArray(propertieswoForeignKey, VoterList.PROPERTY_POLL, VoterList.PROPERTY_PARENT); - - String woForeignKey = getProperty(propertieswoForeignKey); + String propertieswoForeignKey[] = {VoterList.PROPERTY_NAME, VoterList.PROPERTY_WEIGHT, VoterList.PROPERTY_TOPIA_ID}; } \ No newline at end of file diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/SpgeedDaoUtils.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/SpgeedDaoUtils.java deleted file mode 100644 index ac1a19ec..00000000 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/Dao/SpgeedDaoUtils.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.chorem.pollen.persistence.Dao; - -import org.apache.commons.lang3.StringUtils; - -import java.sql.SQLException; - -public class SpgeedDaoUtils { - public static String getProperty(String ...properties) { - return StringUtils.join(properties, ", "); - } - - public static String[] propertiesToParameters(String format, String[] array) throws SQLException { - if (!format.contains("%s") || format.indexOf("%s") != format.lastIndexOf("%s")) { - System.err.println("Error: propertiesToParameters format's need to contain one : \"%s\""); - throw new SQLException(); - } - - int j = format.indexOf("%s"); - - for (int i = 0; i < array.length; i++) { - array[i] = format.substring(0, j).concat(array[i]); - array[i] = array[i].concat(format.substring(j + 2)); - } - return array; - } - - public static String []addStringToArray(String Array[], String ...Values) { - String result[] = new String[Array.length + Values.length]; - for (int i = 0; i < Array.length; i++) { - result[i] = Array[i]; - } - for (int i = 0; i < Values.length; i++) { - result[i + Array.length] = Values[i]; - } - return result; - } -} \ No newline at end of file diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedDaoUtilsTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedDaoUtilsTest.java deleted file mode 100644 index 29a3c39f..00000000 --- a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedDaoUtilsTest.java +++ /dev/null @@ -1,211 +0,0 @@ -package org.chorem.pollen.services; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.MapperFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.chorem.pollen.persistence.PollenTopiaApplicationContext; -import org.chorem.pollen.persistence.PollenTopiaPersistenceContext; -import org.chorem.pollen.persistence.entity.*; -import org.chorem.pollen.services.service.security.SpgeedDummyService; -import org.chorem.pollen.services.test.FakePollenApplicationContext; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; - -import java.util.List; - -/** - * @author ymartel (martel@codelutin.com) - */ -public class SpgeedTest { - - @Rule - public final FakePollenApplicationContext application = new FakePollenApplicationContext("pollen-rest-api.properties"); - - public static final String EMAIL_JSON = "{ " + - " \"topiaid\":\"PollenUserEmailAddress_M-wGbZ74QQCUr_hwl6JXmw\"," + - " \"topiaversion\":1," + - " \"topiacreatedate\":\"2019-07-19T10:00:30.962\"," + - " \"emailaddress\":\"admin@chorem.org\"," + - " \"pgppublickey\":null," + - " \"validated\":true," + - " \"pollenuser\":\"PollenUser_6qdaqbgBTyCBa8Dvz5SeHQ\"" + - "}"; - - public static final String USER_JSON = "{" + - " \"name\":\"admin\"," + - " \"administrator\":true," + - " \"language\":null," + - " \"password\":\"m7LAmO/AeLrjPI6kkzS0wTmU6fpbG/nxptfi/P7fg0BToZoIAV6xVre3tcttYxnLTDrXjtq7YOpggTFRz7mTjA==\"," + - " \"banned\":false," + - " \"gtuvalidationdate\":null," + - " \"premiumto\":null," + - " \"cancreatepoll\":false," + - " \"emailaddresses\":[" + - " {" + - " \"topiaid\":\"PollenUserEmailAddress_M-wGbZ74QQCUr_hwl6JXmw\"," + - " \"topiaversion\":1," + - " \"topiacreatedate\":\"2019-07-19T10:00:30.962\"," + - " \"emailaddress\":\"admin@chorem.org\"," + - " \"pgppublickey\":null," + - " \"validated\":true," + - " \"pollenuser\":\"PollenUser_6qdaqbgBTyCBa8Dvz5SeHQ\"" + - " }" + - " ]," + - " \"defaultemailaddress\":" + - " {" + - " \"topiaid\":\"PollenUserEmailAddress_M-wGbZ74QQCUr_hwl6JXmw\"," + - " \"topiaversion\":1," + - " \"topiacreatedate\":\"2019-07-19T10:00:30.962\"," + - " \"emailaddress\":\"admin@chorem.org\"," + - " \"pgppublickey\":null," + - " \"validated\":true," + - " \"pollenuser\":\"PollenUser_6qdaqbgBTyCBa8Dvz5SeHQ\"" + - " }" + - "}"; - - @Test - public void testEmailDeserialization() throws Exception { - - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); - PollenUserEmailAddress email = mapper.readValue(EMAIL_JSON, PollenUserEmailAddress.class); - - Assert.assertNotNull(email); - Assert.assertEquals("admin@chorem.org", email.getEmailAddress()); - } - - @Test - public void testUserDeserialization() throws Exception { - - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); - PollenUser pollenUser = mapper.readValue(USER_JSON, PollenUser.class); - - Assert.assertNotNull(pollenUser); - Assert.assertNotNull(pollenUser.getEmailAddresses()); - Assert.assertNotNull(pollenUser.getDefaultEmailAddress()); - Assert.assertEquals("admin@chorem.org", pollenUser.getDefaultEmailAddress().getEmailAddress()); - Assert.assertEquals("admin", pollenUser.getName()); - Assert.assertTrue(pollenUser.isAdministrator()); - } - - @Test - public void testUserDeserializationCallDB() { - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - PollenUser[] pollenUser = spgeedDummyService.getallPollenUser(); - Assert.assertNotNull(pollenUser); - } - - @Test - public void testPoll() { - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - Poll[] polls = spgeedDummyService.getallPoll(); - PollenUser[] user = spgeedDummyService.getallPollenUser(); - - System.out.println(spgeedDummyService.getPollenUsercount()); - Assert.assertNotNull(polls); - } - - public List<Poll> getTopiaPolls() { - List<Poll> topiaPoll = null; - - try (PollenTopiaApplicationContext topiaApplicationContext = application.getTopiaApplicationContext()) { - try (PollenTopiaPersistenceContext topiaPersistenceContext = topiaApplicationContext.newPersistenceContext()) { - for (int i = 0; i < 1; i++) { - PollTopiaDao pollDao = topiaPersistenceContext.getPollDao(); - topiaPoll = pollDao.findAll(); - for (int j = 0; j < topiaPoll.size(); j++) { - Assert.assertNotNull(topiaPoll.get(j)); - Assert.assertNotNull(topiaPoll.get(j).getCreator()); - Assert.assertNotNull(topiaPoll.get(j).getCreator().getPollenUser()); - Assert.assertNotNull(topiaPoll.get(j).getCreator().getPollenUser().getDefaultEmailAddress()); - Assert.assertNotNull(topiaPoll.get(j).getCreator().getPollenUser().getDefaultEmailAddress().getEmailAddress()); - topiaPoll.get(j).getTitle(); - topiaPoll.get(j).getEndDate(); - topiaPoll.get(j).getVoteVisibility(); - topiaPoll.get(j).getCommentVisibility(); - topiaPoll.get(j).getResultVisibility(); - topiaPoll.get(j).getBeginDate(); - topiaPoll.get(j).getPollType(); - topiaPoll.get(j).getNotifyMeHoursBeforePollEnds(); - topiaPoll.get(j).getFeedContent(); - topiaPoll.get(j).getNotificationLocale(); - topiaPoll.get(j).getDescription(); - topiaPoll.get(j).getEmailAddressSuffixes(); - topiaPoll.get(j).getGtuValidationDate(); - topiaPoll.get(j).getClass(); - topiaPoll.get(j).getTopiaVersion(); - topiaPoll.get(j).getTopiaId(); - topiaPoll.get(j).getTopiaCreateDate(); - } - } - } - } - return topiaPoll; - } - - public Poll[] getSpgeedPolls() { - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - Poll[] spgeedPollArray = null; - - for (int i = 0; i < 1; i++) { - spgeedPollArray = spgeedDummyService.getallPoll(); - } - return spgeedPollArray; - } - - - @Test - public void testPollLink() { - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - Poll[] PollArray = spgeedDummyService.getallPoll(); - /* Testing foreign key value */ - Assert.assertNotNull(PollArray); - Assert.assertNotNull(PollArray[0]); - Assert.assertNotNull(PollArray[0].getCreator().getPollenUser()); - Assert.assertNotNull(PollArray[0].getCreator().getPollenUser().getEmailAddresses()); - Assert.assertNotNull(PollArray[0].getCreator().getPollenUser().getDefaultEmailAddress()); - - /* Testing Poll filling */ - Assert.assertNotNull(PollArray[0].getTitle()); - Assert.assertNotNull(PollArray[0].getEndDate()); - Assert.assertNotNull(PollArray[0].getVoteVisibility()); - Assert.assertNotNull(PollArray[0].getCommentVisibility()); - Assert.assertNotNull(PollArray[0].getResultVisibility()); - Assert.assertNotNull(PollArray[0].getBeginDate()); - Assert.assertNotNull(PollArray[0].getNotifyMeHoursBeforePollEnds()); - Assert.assertNotNull(PollArray[0].getFeedContent()); - Assert.assertNotNull(PollArray[0].getNotificationLocale()); - Assert.assertNotNull(PollArray[0].getEmailAddressSuffixes()); - Assert.assertNotNull(PollArray[0].getGtuValidationDate()); - Assert.assertNotNull(PollArray[0].getTopiaId()); - Assert.assertNotNull(PollArray[0].getClass()); - Assert.assertNotNull(PollArray[0].getTopiaVersion()); - Assert.assertNotNull(PollArray[0].getTopiaCreateDate()); - Assert.assertNotNull(PollArray[0].getDescription()); - Assert.assertNotNull(PollArray[0].getCreator()); - } - @Test - public void testPerformance() { - Poll[] spgeedPollArray; - List<Poll> topiaPoll; - long beforSpgeed = System.currentTimeMillis(); - - spgeedPollArray = getSpgeedPolls(); - - long afterSpgeed = System.currentTimeMillis(); - - topiaPoll = getTopiaPolls(); - - long topiaExecutionTime = System.currentTimeMillis() - afterSpgeed; - Assert.assertNotNull(spgeedPollArray); - Assert.assertNotNull(topiaPoll); - Assert.assertEquals(topiaPoll.size(), spgeedPollArray.length); - long spgeedExecutionTime = afterSpgeed - beforSpgeed; - System.out.println(topiaExecutionTime + " "+spgeedExecutionTime); - Assert.assertTrue(topiaExecutionTime > spgeedExecutionTime); - } -} \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 f17637d3ac43cb8f1c073ef4d7a6915d37268385 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:27:07 2019 +0200 adding test to compare performance between (topia+hibernate and spgeed) + test for foreign key link --- .../org/chorem/pollen/services/SpgeedTest.java | 171 ++++++++++++++++----- 1 file changed, 129 insertions(+), 42 deletions(-) diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java index c3fa52b9..0f9b77e7 100644 --- a/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java +++ b/pollen-services/src/test/java/org/chorem/pollen/services/SpgeedTest.java @@ -3,32 +3,24 @@ package org.chorem.pollen.services; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import org.chorem.pollen.persistence.Dao.PollenUserSpgeedDao; import org.chorem.pollen.persistence.PollenTopiaApplicationContext; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.PollenUser; -import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; -import org.chorem.pollen.services.config.PollenServicesConfig; -import org.chorem.pollen.services.config.PollenServicesConfigOption; -import org.chorem.pollen.services.service.PollenServiceSupport; +import org.chorem.pollen.persistence.PollenTopiaPersistenceContext; +import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.service.security.SpgeedDummyService; import org.chorem.pollen.services.test.FakePollenApplicationContext; -import org.chorem.pollen.services.test.FakePollenServiceContext; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.persistence.BeanTopiaConfiguration; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; - -import java.io.File; -import java.util.Date; -import java.util.Map; -import java.util.Properties; - -/** - * @author ymartel (martel@codelutin.com) - */ +import org.nuiton.spgeed.SqlSession; + +import java.util.List; + public class SpgeedTest { + @Rule + public final FakePollenApplicationContext application = new FakePollenApplicationContext("pollen-rest-api.properties"); + public static final String EMAIL_JSON = "{ " + " \"topiaid\":\"PollenUserEmailAddress_M-wGbZ74QQCUr_hwl6JXmw\"," + " \"topiaversion\":1," + @@ -101,36 +93,131 @@ public class SpgeedTest { @Test public void testUserDeserializationCallDB() { - Date now = new Date(); - long start = now.getTime(); SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); PollenUser[] pollenUser = spgeedDummyService.getallPollenUser(); - now = new Date(); - long spgeed_time = now.getTime(); - FakePollenApplicationContext applicationContext = new FakePollenApplicationContext("pollen-service.properties"); - applicationContext.init(); - TopiaApplicationContext topiaApplicationContext = applicationContext.getTopiaApplicationContext(); - PollenServiceContext serviceContext = topiaApplicationContext.getServices(); - //PollTopiaDao dao = get - //PollenUser[] topiauser = getAll; - now = new Date(); - long topia_hibernate_time = now.getTime(); - - System.out.println(spgeed_time - start); - System.out.println("Spgeed time: "+ (spgeed_time - start) + "\nTopia & hibernate time: "+(topia_hibernate_time - spgeed_time)); - Assert.assertTrue(spgeed_time - start < topia_hibernate_time - spgeed_time); + Assert.assertNotNull(pollenUser); } @Test - public void testPoll() { + public void testPollLink() { SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - Poll[] polls = spgeedDummyService.getallPoll(); + Poll[] PollArray = spgeedDummyService.getallPoll(); + System.out.println(PollArray.length); + /* Testing foreign key value */ + Assert.assertNotNull(PollArray); + Assert.assertNotNull(PollArray[0]); + Assert.assertNotNull(PollArray[0].getCreator().getPollenUser()); + Assert.assertNotNull(PollArray[0].getCreator().getPollenUser().getEmailAddresses()); + Assert.assertNotNull(PollArray[0].getCreator().getPollenUser().getDefaultEmailAddress()); + + /* Testing Poll filling */ + Assert.assertNotNull(PollArray[0].getTitle()); + Assert.assertNotNull(PollArray[0].getEndDate()); + Assert.assertNotNull(PollArray[0].getVoteVisibility()); + Assert.assertNotNull(PollArray[0].getCommentVisibility()); + Assert.assertNotNull(PollArray[0].getResultVisibility()); + Assert.assertNotNull(PollArray[0].getBeginDate()); + Assert.assertNotNull(PollArray[0].getNotifyMeHoursBeforePollEnds()); + Assert.assertNotNull(PollArray[0].getFeedContent()); + Assert.assertNotNull(PollArray[0].getNotificationLocale()); + Assert.assertNotNull(PollArray[0].getTopiaId()); + Assert.assertNotNull(PollArray[0].getClass()); + Assert.assertNotNull(PollArray[0].getTopiaVersion()); + Assert.assertNotNull(PollArray[0].getTopiaCreateDate()); + Assert.assertNotNull(PollArray[0].getDescription()); + Assert.assertNotNull(PollArray[0].getCreator()); + /* Undefined in db so NULL */ + //Assert.assertNotNull(PollArray[0].getEmailAddressSuffixes()); + //Assert.assertNotNull(PollArray[0].getGtuValidationDate()); + } - Assert.assertNotNull(polls); - Poll first = polls[0]; - Assert.assertEquals(polls.length, 1); - Assert.assertEquals(first.getTitle(), "Sondage"); - Assert.assertEquals(first.getDescription(), "cc"); + public void testPoll(Poll poll) { + if (poll.getCreator() != null) { + poll.getCreator().getEmail(); + poll.getCreator().getPermission(); + poll.getCreator().getName(); + poll.getCreator().getTopiaId(); + poll.getCreator().getTopiaCreateDate(); + poll.getCreator().getTopiaVersion(); + poll.getCreator().getClass(); + if (poll.getCreator().getPollenUser() != null) { + poll.getCreator().getPollenUser().getName(); + poll.getCreator().getPollenUser().getPassword(); + poll.getCreator().getPollenUser().getPremiumTo(); + poll.getCreator().getPollenUser().getGtuValidationDate(); + poll.getCreator().getPollenUser().getLanguage(); + poll.getCreator().getPollenUser().getSalt(); + poll.getCreator().getPollenUser().getTopiaId(); + poll.getCreator().getPollenUser().getTopiaCreateDate(); + poll.getCreator().getPollenUser().getTopiaVersion(); + poll.getCreator().getPollenUser().getClass(); + if (poll.getCreator().getPollenUser().getDefaultEmailAddress() != null) + Assert.assertTrue(true); + if (poll.getCreator().getPollenUser().getEmailAddresses() != null) + Assert.assertTrue(true); + } + } + poll.getTitle(); + poll.getEndDate(); + poll.getVoteVisibility(); + poll.getCommentVisibility(); + poll.getResultVisibility(); + poll.getBeginDate(); + poll.getPollType(); + poll.getNotifyMeHoursBeforePollEnds(); + poll.getFeedContent(); + poll.getNotificationLocale(); + poll.getDescription(); + poll.getEmailAddressSuffixes(); + poll.getGtuValidationDate(); + poll.getClass(); + poll.getTopiaVersion(); + poll.getTopiaId(); + poll.getTopiaCreateDate(); } + + @Test + public void testGetUser() { + String userId = "PollenUser_tzpzGUD2T--Je5vUXarfdA"; + SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); + PollenUser user = spgeedDummyService.getSpgeedDao(PollenUserSpgeedDao.class).getUser(userId); + + Assert.assertEquals(user.getName(), "Étienne Rozé"); + System.out.println(user.getTopiaId()); + } + + @Test + public void testPerformance() { + Poll[] spgeedPollArray; + List<Poll> topiaPoll; + long beforSpgeed = System.currentTimeMillis(); + + SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); + spgeedPollArray = spgeedDummyService.getallPoll(); + + for (int i = 0; i < spgeedPollArray.length; i++) { + testPoll(spgeedPollArray[i]); + } + + long afterSpgeed = System.currentTimeMillis(); + + try (PollenTopiaApplicationContext topiaApplicationContext = application.getTopiaApplicationContext()) { + try(PollenTopiaPersistenceContext topiaPersistenceContext=topiaApplicationContext.newPersistenceContext()) { + PollTopiaDao pollDao=topiaPersistenceContext.getPollDao(); + topiaPoll = pollDao.findAll(); + for (int i = 0; i < topiaPoll.size(); i++) { + testPoll(topiaPoll.get(i)); + } + } + } + + long topiaExecutionTime = System.currentTimeMillis() - afterSpgeed; + Assert.assertNotNull(spgeedPollArray); + Assert.assertNotNull(topiaPoll); + Assert.assertEquals(topiaPoll.size(), spgeedPollArray.length); + long spgeedExecutionTime = afterSpgeed - beforSpgeed; + System.out.println(topiaExecutionTime + " "+spgeedExecutionTime); + Assert.assertTrue(topiaExecutionTime > spgeedExecutionTime); + } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 d65651d566ae9d5757b15ce773436e541140ed16 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 10:41:35 2019 +0200 remove useless file --- .../resources/#pollen-rest-api-test.properties# | 31 ---------------------- .../resources/.#pollen-rest-api-test.properties | 1 - 2 files changed, 32 deletions(-) diff --git a/pollen-rest-api/src/test/resources/#pollen-rest-api-test.properties# b/pollen-rest-api/src/test/resources/#pollen-rest-api-test.properties# deleted file mode 100644 index 1674773a..00000000 --- a/pollen-rest-api/src/test/resources/#pollen-rest-api-test.properties# +++ /dev/null @@ -1,31 +0,0 @@ -### -# #%L -# Pollen :: Service -# %% -# Copyright (C) 2009 - 2017 Code Lutin, Tony Chemit -# %% -# This program 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.dialect=org.hibernate.dialect.postgreSQLDialect -hibernate.connection.url=jdbc:postgresql://localhost:5432/pollenprod?allowMultiQueries=true -hibernate.connection.username=pollen -hibernate.connection.password=pollen -hibernate.connection.driver_class=org.postgresql.Driver -#hibernate.hbm2ddl.auto=update -pollen.version=${project.version} -topia.persistence.topiaIdFactoryClassName=org.nuiton.topia.persistence.internal.ShortTopiaIdFactory -topia.service.migration=org.chorem.pollen.persistence.PollenFlywayServiceImpl -pollen.devMode=true diff --git a/pollen-rest-api/src/test/resources/.#pollen-rest-api-test.properties b/pollen-rest-api/src/test/resources/.#pollen-rest-api-test.properties deleted file mode 120000 index db2ccc70..00000000 --- a/pollen-rest-api/src/test/resources/.#pollen-rest-api-test.properties +++ /dev/null @@ -1 +0,0 @@ -Killian_H@localhost.localdomain.4769:1566378066 \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 ab91f0ab42bd94e569a1166fd2d01261bc607aad Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:00:32 2019 +0200 passing service test to embedded postgres --- pollen-services/pom.xml | 5 ++++ .../test/FakePollenApplicationContext.java | 29 +++++++++++++++++++--- .../src/test/resources/pollen-services.properties | 10 ++++---- pom.xml | 6 +++++ 4 files changed, 41 insertions(+), 9 deletions(-) diff --git a/pollen-services/pom.xml b/pollen-services/pom.xml index 0bc5add8..77bfad20 100644 --- a/pollen-services/pom.xml +++ b/pollen-services/pom.xml @@ -55,6 +55,11 @@ <artifactId>pollen-votecounting-borda</artifactId> <version>${project.version}</version> </dependency> + + <dependency> + <groupId>ru.yandex.qatools.embed</groupId> + <artifactId>postgresql-embedded</artifactId> + </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>pollen-votecounting-instant-runoff</artifactId> 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 ea75fa6d..28261d1f 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 @@ -24,6 +24,8 @@ package org.chorem.pollen.services.test; import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.base.StandardSystemProperty; +import com.google.common.collect.ImmutableList; +import de.flapdoodle.embed.process.config.IRuntimeConfig; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -40,16 +42,20 @@ 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; +import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.util.DateUtil; import org.nuiton.util.FileUtil; +import ru.yandex.qatools.embed.postgresql.EmbeddedPostgres; +import ru.yandex.qatools.embed.postgresql.distribution.Version; +import ru.yandex.qatools.embed.postgresql.distribution.Version.Main; import java.io.File; import java.io.IOException; +import java.io.UncheckedIOException; import java.net.ServerSocket; import java.util.LinkedList; import java.util.List; @@ -112,7 +118,7 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA File tempDirectoryFile = new File(javaIoTmpDir); FileUtil.createDirectoryIfNecessary(tempDirectoryFile); - String path = Joiner.on(File.separator).join(TIMESTAMP, description.getTestClass().getName(), description.getMethodName(), "h2"); + String path = Joiner.on(File.separator).join(TIMESTAMP, description.getTestClass().getName(), description.getMethodName(), "postgres"); // get test directory testBasedir = new File(tempDirectoryFile, path); @@ -124,6 +130,23 @@ public class FakePollenApplicationContext extends TestWatcher implements PollenA log.debug("testBasedir: " + testBasedir); } + + EmbeddedPostgres embeddedPostgres = new EmbeddedPostgres(Main.V9_6); + IRuntimeConfig cachedRuntimeConfig = EmbeddedPostgres.cachedRuntimeConfig(testBasedir.toPath()); + + String jdbcConnectionUrl; + try { + jdbcConnectionUrl = embeddedPostgres.start(cachedRuntimeConfig, "127.0.0.1", currentPortNumber, "pollen", "pollen", "pollen", ImmutableList.of("-E", "UTF-8")); + } catch (IOException e) { + throw new UncheckedIOException("ne peut pas démarrer postgresql", e); + } + + TopiaConfiguration topiaConfiguration = new TopiaConfigurationBuilder() + .forPostgresqlDatabase(jdbcConnectionUrl, "pollen", "pollen") + .useFlyway() + .validateSchemaOnStartup() + .useDefaultConnectionPool() + .build(); init(); } @@ -140,8 +163,6 @@ 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/pollen-services/src/test/resources/pollen-services.properties b/pollen-services/src/test/resources/pollen-services.properties index 26598cf5..791f869e 100644 --- a/pollen-services/src/test/resources/pollen-services.properties +++ b/pollen-services/src/test/resources/pollen-services.properties @@ -18,11 +18,11 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.url=jdbc:h2:file:${pollen.data.directory}/db/pollen-rest-api -hibernate.connection.username=sa -hibernate.connection.password=sa -hibernate.connection.driver_class=org.h2.Driver +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.connection.url=jdbc:postgresql://localhost:5432/pollenprod?allowMultiQueries=true +hibernate.connection.username=pollen +hibernate.connection.password=pollen +hibernate.connection.driver_class=org.postgresql.Driver #hibernate.hbm2ddl.auto=update pollen.version=${project.version} pollen.devMode=true diff --git a/pom.xml b/pom.xml index 87a20642..f469c81b 100644 --- a/pom.xml +++ b/pom.xml @@ -364,6 +364,12 @@ <version>${postgresqlVersion}</version> </dependency> + <dependency> + <groupId>ru.yandex.qatools.embed</groupId> + <artifactId>postgresql-embedded</artifactId> + <version>2.10</version> + </dependency> + <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 7043bb9940c803b5eb7677921bf31c043f62c846 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:01:19 2019 +0200 patching error --- .../src/main/java/org/chorem/pollen/services/PollenFixtures.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/PollenFixtures.java b/pollen-services/src/main/java/org/chorem/pollen/services/PollenFixtures.java index 22a3fd79..b7391173 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/PollenFixtures.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/PollenFixtures.java @@ -60,7 +60,7 @@ public class PollenFixtures { reader.getConfig().setClassTag("vote", VoteImpl.class); reader.getConfig().setClassTag("pollen-principal", PollenPrincipalImpl.class); reader.getConfig().setClassTag("pollenUIContext", PollenUIContext.class); - reader.getConfig().setClassTag("email-address", ChildFavoriteListTopiaDao.PollenUserEmailAddressImpl.class); + reader.getConfig().setClassTag("email-address", PollenUserEmailAddressImpl.class); reader.getConfig().setClassTag("array-list", ArrayList.class); try { -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
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 02a161e40ada8ebeac9830a67fd108502079bc93 Author: Killian <killian.herbreteau@epitech.eu> Date: Mon Sep 30 11:02:00 2019 +0200 start changing service from topia to spgeed --- .../pollen/services/service/PollenUserService.java | 14 +++++----- .../services/service/security/SpgeedDao.java | 31 ---------------------- .../service/security/SpgeedDummyService.java | 19 ++++++++++--- 3 files changed, 24 insertions(+), 40 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java index ef6ee3c2..f7f5eda1 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java @@ -26,6 +26,8 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.persistence.Dao.PollenPollSpgeedDao; +import org.chorem.pollen.persistence.Dao.PollenUserSpgeedDao; import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.bean.PaginationParameterBean; @@ -36,11 +38,7 @@ import org.chorem.pollen.services.bean.PollenUserEmailAddressBean; import org.chorem.pollen.services.bean.UserCredentialBean; import org.chorem.pollen.services.bean.UsersRight; import org.chorem.pollen.services.bean.resource.ResourceFileBean; -import org.chorem.pollen.services.service.security.PollenDefaultEmailAddressException; -import org.chorem.pollen.services.service.security.PollenEmailNotValidatedException; -import org.chorem.pollen.services.service.security.PollenInvalidEmailActivationTokenException; -import org.chorem.pollen.services.service.security.PollenInvalidPasswordException; -import org.chorem.pollen.services.service.security.PollenSecurityContext; +import org.chorem.pollen.services.service.security.*; import org.nuiton.util.pagination.PaginationOrder; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; @@ -64,6 +62,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer public PollenUserBean toPollenUserBean(PollenUser entity) { PollenUserBean bean = new PollenUserBean(); + System.out.println(entity); bean.setEntityId(entity.getTopiaId()); bean.setName(entity.getName()); @@ -144,7 +143,10 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer if (!userId.equals(pollenUser.getTopiaId())) { checkIsAdmin(); - pollenUser = getUser0(userId); + SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); + //pollenUser = spgeedDummyService.getSpgeedDao(PollenUserSpgeedDao.class).getUser(userId); + //pollenUser = getUser0(userId); + System.out.println(pollenUser); } return toPollenUserBean(pollenUser); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDao.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDao.java deleted file mode 100644 index 8d3dd98b..00000000 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDao.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.chorem.pollen.persistence.Dao; - -import org.chorem.pollen.persistence.PollenSpgeedApplicationContext; - -import javax.sql.DataSource; - -public class SpgeedDao { - - DataSource dataSource = null; - - public DataSource getdb() { - - if (dataSource == null) { - PollenSpgeedApplicationContext pollenSpgeedApplicationContext = new PollenSpgeedApplicationContext(); - - PollenServicesConfig pollenServicesConfig = new PollenServicesConfig("pollen-rest-api.properties"); - - String dburl = pollenServicesConfig.getDataSourceUrl(); - String dbpassword = pollenServicesConfig.getDataSourcePassword(); - String dbuser = pollenServicesConfig.getDataSourceUser(); - - pollenSpgeedApplicationContext.setDataSource(dburl, dbuser, dbpassword); - this.dataSource = pollenSpgeedApplicationContext.getDataSource(); - } - return (dataSource); - } - - public static SpgeedUserDao getUserDao() { - - } -} \ No newline at end of file diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java index 5fb09f43..5bbfafc6 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SpgeedDummyService.java @@ -1,13 +1,13 @@ package org.chorem.pollen.services.service.security; +import org.chorem.pollen.persistence.Dao.PollenSpgeedDao; +import org.chorem.pollen.persistence.PollenMapper; import org.chorem.pollen.persistence.PollenSpgeedApplicationContext; import org.chorem.pollen.persistence.Dao.PollenUserSpgeedDao; import org.chorem.pollen.persistence.Dao.PollenPollSpgeedDao; import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.PollenUserEmailAddress; -import org.chorem.pollen.persistence.entity.Polls; -import org.chorem.pollen.services.PollenServiceContext; import org.chorem.pollen.services.PollenTechnicalException; import org.chorem.pollen.services.config.PollenServicesConfig; import org.nuiton.spgeed.SqlSession; @@ -36,10 +36,23 @@ public class SpgeedDummyService { return (dataSource); } + public <E extends PollenSpgeedDao> E getSpgeedDao(Class<E> daoClass) { + DataSource ds = getdb(); + + try (SqlSession session = new SqlSession(ds)) { + session.setDefaultMapper(PollenMapper.class); + + return session.getDao(daoClass); + } catch(SQLException e) { + throw new PollenTechnicalException("erreur lors du chargement du Dao de Spgeed", e); + } + } + public Poll[] getallPoll() { DataSource ds = getdb(); try (SqlSession session = new SqlSession(ds)) { + session.setDefaultMapper(PollenMapper.class); PollenPollSpgeedDao dao = session.getDao(PollenPollSpgeedDao.class); @@ -57,7 +70,7 @@ public class SpgeedDummyService { PollenUserSpgeedDao dao = session.getDao(PollenUserSpgeedDao.class); - return (dao.getUser()); + return (dao.getFirstUser()); } catch(SQLException e) { throw new PollenTechnicalException("erreur lors du chargement d'un utilisateur", e); } -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm