This is an automated email from the git hooks/post-receive script. unknown user pushed a commit to branch devel in repository Pollen. commit d74003c1a7ca877cd6bd7e8d86cebbb267187005 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri May 23 18:46:54 2014 +0200 encode ids --- .../persistence/PollenTopiaApplicationContext.java | 22 +++++ .../org/chorem/pollen/rest/api/PollenRender.java | 28 +++++- .../rest/api/PollenRestApiApplicationListener.java | 21 +++-- .../chorem/pollen/rest/api/PollenRestApiUtil.java | 56 ++++++++++- .../rest/api/converter/JsonArrayConverter.java | 9 +- .../pollen/rest/api/converter/JsonConverter.java | 17 ++-- .../org/chorem/pollen/rest/api/AuthApiTest.java | 5 +- .../org/chorem/pollen/rest/api/PollApiTest.java | 7 +- .../chorem/pollen/rest/api/PollenUserApiTest.java | 3 +- .../rest/api/converter/JsonArrayConverterTest.java | 7 +- .../rest/api/converter/JsonConverterTest.java | 5 +- .../chorem/pollen/services/bean/ChoiceBean.java | 8 +- .../chorem/pollen/services/bean/CommentBean.java | 8 +- .../chorem/pollen/services/bean/CreateBeanRef.java | 7 ++ .../pollen/services/bean/FavoriteListBean.java | 8 +- .../services/bean/FavoriteListMemberBean.java | 6 +- .../org/chorem/pollen/services/bean/PollBean.java | 8 +- .../chorem/pollen/services/bean/PollenBean.java | 35 +++++-- .../chorem/pollen/services/bean/PollenBeanId.java | 104 +++++++++++++++++++++ .../pollen/services/bean/PollenUserBean.java | 8 +- .../org/chorem/pollen/services/bean/VoteBean.java | 8 +- .../pollen/services/bean/VoteToChoiceBean.java | 8 +- .../chorem/pollen/services/bean/VoterListBean.java | 8 +- .../pollen/services/bean/VoterListMemberBean.java | 6 +- .../pollen/services/service/ChoiceService.java | 10 +- .../pollen/services/service/CommentService.java | 8 +- .../services/service/FavoriteListService.java | 6 +- .../pollen/services/service/PollService.java | 12 ++- .../services/service/PollenServiceSupport.java | 36 ------- .../pollen/services/service/PollenUserService.java | 4 +- .../pollen/services/service/VoteService.java | 10 +- .../pollen/services/service/VoterListService.java | 8 +- .../pollen/services/service/PollServiceTest.java | 44 ++++----- .../services/service/PollenUserServiceTest.java | 2 +- .../services/service/VoteCountingServiceTest.java | 10 +- 35 files changed, 393 insertions(+), 159 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenTopiaApplicationContext.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenTopiaApplicationContext.java new file mode 100644 index 0000000..f19a22f --- /dev/null +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/PollenTopiaApplicationContext.java @@ -0,0 +1,22 @@ +package org.chorem.pollen.persistence; + +import org.nuiton.topia.persistence.TopiaIdFactory; + +import java.util.Map; +import java.util.Properties; + +public class PollenTopiaApplicationContext extends AbstractPollenTopiaApplicationContext { + + public PollenTopiaApplicationContext(Properties properties) { + super(properties); + } + + public PollenTopiaApplicationContext(Map<String, String> configuration) { + super(configuration); + } + + @Override + public TopiaIdFactory getTopiaIdFactory() { + return super.getTopiaIdFactory(); + } +} diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRender.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRender.java index e2ee51a..bae0a13 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRender.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRender.java @@ -25,11 +25,14 @@ package org.chorem.pollen.rest.api; import com.google.common.collect.Multimap; import com.google.gson.Gson; +import org.chorem.pollen.services.bean.CreateBeanRef; +import org.chorem.pollen.services.bean.PollenBeanId; import org.chorem.pollen.services.service.InvalidFormException; import org.debux.webmotion.server.call.Call; import org.debux.webmotion.server.call.HttpContext; import org.debux.webmotion.server.mapping.Mapping; import org.debux.webmotion.server.render.Render; +import org.nuiton.topia.persistence.TopiaIdFactory; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; @@ -59,6 +62,10 @@ public class PollenRender<T> extends Render { HttpServletResponse response = context.getResponse(); response.setContentType("application/json"); + PollenRestApiApplicationContext applicationContext = + PollenRestApiApplicationContext.getApplicationContext(context.getServletContext()); + TopiaIdFactory topiaIdFactory = applicationContext.getTopiaApplicationContext().getTopiaIdFactory(); + Object map; if (model instanceof InvalidFormException) { @@ -67,13 +74,13 @@ public class PollenRender<T> extends Render { } - map = toMap(model); + map = toMap(topiaIdFactory, model); + - PollenRestApiApplicationContext applicationContext = - PollenRestApiApplicationContext.getApplicationContext(context.getServletContext()); boolean devMode = applicationContext.getApplicationConfig().isDevMode(); - Gson gson = PollenRestApiUtil.newGson(devMode); + + Gson gson = PollenRestApiUtil.newGson(topiaIdFactory, devMode); String json = gson.toJson(map); PrintWriter out = context.getOut(); @@ -81,7 +88,7 @@ public class PollenRender<T> extends Render { } - protected <M> Object toMap(M model) { + protected <M> Object toMap(TopiaIdFactory topiaIdFactory, M model) { if (model instanceof InvalidFormException) { @@ -98,6 +105,17 @@ public class PollenRender<T> extends Render { } + if (model instanceof CreateBeanRef) { + + // encode id + CreateBeanRef createBeanRef = (CreateBeanRef) model; + String encodeId = PollenBeanId.encodeId(topiaIdFactory, createBeanRef.getId()); + + CreateBeanRef result = CreateBeanRef.of(encodeId, createBeanRef.getPermission()); + return result; + + } + return model; } diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationListener.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationListener.java index d5be352..832fdfd 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationListener.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiApplicationListener.java @@ -42,6 +42,7 @@ import org.debux.webmotion.server.call.HttpContext; import org.debux.webmotion.server.call.ServerContext; import org.debux.webmotion.server.handler.ExecutorParametersInjectorHandler; import org.debux.webmotion.server.mapping.Mapping; +import org.nuiton.topia.persistence.TopiaIdFactory; import java.lang.reflect.Type; import java.util.Date; @@ -70,15 +71,25 @@ public class PollenRestApiApplicationListener implements WebMotionServerListener @Override public void onStart(Mapping mapping, ServerContext serverContext) { + // --- init application context --- // + + PollenRestApiApplicationContext applicationContext = + PollenRestApiApplicationContext.getApplicationContext(); + + PollenRestApiApplicationContext.setApplicationContext( + serverContext.getServletContext(), applicationContext); + + TopiaIdFactory topiaIdFactory = applicationContext.getTopiaApplicationContext().getTopiaIdFactory(); + // --- init converters --- // serverContext.addConverter(new DateConverter(), Date.class); for (Class<?> beanType : BEAN_TYPES) { - serverContext.addConverter(JsonConverter.newConverter(beanType), beanType); + serverContext.addConverter(JsonConverter.newConverter(topiaIdFactory, beanType), beanType); - JsonArrayConverter<?> converter = JsonArrayConverter.newConverter(beanType); + JsonArrayConverter<?> converter = JsonArrayConverter.newConverter(topiaIdFactory, beanType); serverContext.addConverter(converter, converter.getDefaultType()); } @@ -119,13 +130,7 @@ public class PollenRestApiApplicationListener implements WebMotionServerListener } }); - // --- init application context --- // - PollenRestApiApplicationContext applicationContext = - PollenRestApiApplicationContext.getApplicationContext(); - - PollenRestApiApplicationContext.setApplicationContext( - serverContext.getServletContext(), applicationContext); } diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiUtil.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiUtil.java index 5a9c6ae..0fb1cdf 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiUtil.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiUtil.java @@ -1,6 +1,8 @@ package org.chorem.pollen.rest.api; import com.google.common.collect.Lists; +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonDeserializationContext; @@ -12,9 +14,12 @@ import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import org.apache.commons.lang3.StringUtils; +import org.chorem.pollen.services.bean.PollenBeanId; import org.debux.webmotion.server.call.HttpContext; +import org.nuiton.topia.persistence.TopiaIdFactory; import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.Date; import java.util.List; @@ -42,9 +47,9 @@ public class PollenRestApiUtil { return list; } - public static String entitiesToString(Object o) { + public static String entitiesToString(TopiaIdFactory topiaIdFactory, Object o) { - return newGson(true).toJson(o); + return newGson(topiaIdFactory, true).toJson(o); } @@ -85,9 +90,20 @@ public class PollenRestApiUtil { } } - public static Gson newGson(boolean prettyPrint) { + public static Gson newGson(final TopiaIdFactory idFactory, boolean prettyPrint) { GsonBuilder gsonBuilder = new GsonBuilder(); + gsonBuilder.setExclusionStrategies(new ExclusionStrategy() { + @Override + public boolean shouldSkipField(FieldAttributes f) { + return false; + } + + @Override + public boolean shouldSkipClass(Class<?> clazz) { + return clazz == Class.class; + } + }); gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { @Override @@ -99,6 +115,18 @@ public class PollenRestApiUtil { } }); + gsonBuilder.registerTypeAdapter(PollenBeanId.class, new JsonSerializer<PollenBeanId>() { + + @Override + public JsonElement serialize(PollenBeanId src, Type typeOfSrc, JsonSerializationContext context) { + if (src == null || src.getEntityId() == null) { + return JsonNull.INSTANCE; + } + src.encodeId(idFactory); + return new JsonPrimitive(src.getEncodedId()); + } + + }); gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { @Override @@ -107,6 +135,28 @@ public class PollenRestApiUtil { } }); + gsonBuilder.registerTypeAdapter(PollenBeanId.class, new JsonDeserializer<PollenBeanId>() { + + @Override + public PollenBeanId deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + Type[] actualTypeArguments = ((ParameterizedType) typeOfT).getActualTypeArguments(); + PollenBeanId id = new PollenBeanId<>((Class) actualTypeArguments[0]); + + String asString = json.getAsString(); + + if (asString != null) { + + id.setEncodedId(asString); + id.decodeId(idFactory); + + } + + return id; + + } + + }); if (prettyPrint) { gsonBuilder.setPrettyPrinting(); diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonArrayConverter.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonArrayConverter.java index 6dac6ca..f7907b3 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonArrayConverter.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonArrayConverter.java @@ -3,6 +3,7 @@ package org.chorem.pollen.rest.api.converter; import com.google.gson.Gson; import org.apache.commons.beanutils.converters.AbstractConverter; import org.chorem.pollen.rest.api.PollenRestApiUtil; +import org.nuiton.topia.persistence.TopiaIdFactory; import java.lang.reflect.Array; @@ -18,13 +19,13 @@ public class JsonArrayConverter<O> extends AbstractConverter { protected final Gson gson; - public static <O> JsonArrayConverter<O> newConverter(Class<O> objectType) { - return new JsonArrayConverter<>(objectType); + public static <O> JsonArrayConverter<O> newConverter(TopiaIdFactory topiaIdFactory, Class<O> objectType) { + return new JsonArrayConverter<>(topiaIdFactory, objectType); } - public JsonArrayConverter(Class<O> entityType) { + public JsonArrayConverter(TopiaIdFactory topiaIdFactory, Class<O> entityType) { this.arrayType = getArrayClass(entityType); - this.gson = PollenRestApiUtil.newGson(false); + this.gson = PollenRestApiUtil.newGson(topiaIdFactory, false); } <T> Class<T[]> getArrayClass(Class<T> clazz) { diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonConverter.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonConverter.java index abe3f4d..8d2fc9e 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonConverter.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/JsonConverter.java @@ -26,6 +26,7 @@ import org.apache.commons.beanutils.converters.AbstractConverter; import org.chorem.pollen.persistence.PollenEntityEnum; import org.chorem.pollen.rest.api.PollenRestApiUtil; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaIdFactory; /** * Created on 5/6/14. @@ -41,23 +42,23 @@ public class JsonConverter<O> extends AbstractConverter { protected final Gson gson; - public static <O> JsonConverter<O> newConverter(Class<O> objectType) { - return newConverter(objectType, objectType); + public static <O> JsonConverter<O> newConverter(TopiaIdFactory topiaIdFactory , Class<O> objectType) { + return newConverter(topiaIdFactory, objectType, objectType); } - public static <E extends TopiaEntity> JsonConverter<E> newEntityConverter(Class<E> objectType) { + public static <E extends TopiaEntity> JsonConverter<E> newEntityConverter(TopiaIdFactory topiaIdFactory , Class<E> objectType) { Class<E> implementationClass = PollenEntityEnum.getImplementationClass(objectType); - return newConverter(objectType, implementationClass); + return newConverter(topiaIdFactory, objectType, implementationClass); } - public static <O> JsonConverter<O> newConverter(Class<O> objectType, Class<O> implementationClass) { - return new JsonConverter<>(objectType, implementationClass); + public static <O> JsonConverter<O> newConverter(TopiaIdFactory topiaIdFactory, Class<O> objectType, Class<O> implementationClass) { + return new JsonConverter<>(topiaIdFactory, objectType, implementationClass); } - public JsonConverter(Class<O> objectType, Class<O> implementationClass) { + public JsonConverter(TopiaIdFactory topiaIdFactory, Class<O> objectType, Class<O> implementationClass) { this.objectType = objectType; - this.gson = PollenRestApiUtil.newGson(false); + this.gson = PollenRestApiUtil.newGson(topiaIdFactory, false); this.implementationClass = implementationClass; } diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java index 94bb6af..89ad8ff 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/AuthApiTest.java @@ -2,10 +2,12 @@ package org.chorem.pollen.rest.api; import org.apache.http.client.fluent.Request; import org.apache.http.client.fluent.Response; +import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.rest.api.converter.JsonConverter; import org.chorem.pollen.services.bean.CreateBeanRef; import org.junit.Assert; import org.junit.Test; +import org.nuiton.topia.persistence.internal.DefaultTopiaIdFactory; import java.io.IOException; import java.net.URISyntaxException; @@ -45,7 +47,7 @@ public class AuthApiTest extends AbstractPollenRestApiTest { showTestResult(loginContent); Assert.assertNotNull(loginContent); - JsonConverter<CreateBeanRef> jsonConverter = JsonConverter.newConverter(CreateBeanRef.class); + JsonConverter<CreateBeanRef> jsonConverter = JsonConverter.newConverter(new DefaultTopiaIdFactory(), CreateBeanRef.class); CreateBeanRef createBeanRef = jsonConverter.convert(CreateBeanRef.class, loginContent); Assert.assertNotNull(createBeanRef); @@ -56,7 +58,6 @@ public class AuthApiTest extends AbstractPollenRestApiTest { showTestResult(logoutContent); Assert.assertNotNull(logoutContent); - } @Test diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java index df703a1..07bfec7 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java @@ -35,6 +35,7 @@ import org.chorem.pollen.services.PollenFixtures; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +import org.nuiton.topia.persistence.TopiaIdFactory; import java.io.IOException; import java.net.URISyntaxException; @@ -136,8 +137,10 @@ public class PollApiTest extends AbstractPollenRestApiTest { choice2.setName("choiceB"); choices.add(choice2); - String choiceStr = PollenRestApiUtil.entitiesToString(choices); - String pollStr = PollenRestApiUtil.entitiesToString(poll); + TopiaIdFactory topiaIdFactory = application.getTopiaApplicationContext().getTopiaIdFactory(); + + String choiceStr = PollenRestApiUtil.entitiesToString(topiaIdFactory, choices); + String pollStr = PollenRestApiUtil.entitiesToString(topiaIdFactory, poll); Request request = createRequest("/v1/polls") .addParameter("poll", pollStr) diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java index 234e267..2fa7fad 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollenUserApiTest.java @@ -30,6 +30,7 @@ import org.chorem.pollen.services.bean.CreateBeanRef; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; +import org.nuiton.topia.persistence.internal.DefaultTopiaIdFactory; import java.io.IOException; import java.net.URISyntaxException; @@ -58,7 +59,7 @@ public class PollenUserApiTest extends AbstractPollenRestApiTest { .Post(); String loginContent = loginRequest.execute().returnContent().asString(); - JsonConverter<CreateBeanRef> jsonConverter = JsonConverter.newConverter(CreateBeanRef.class); + JsonConverter<CreateBeanRef> jsonConverter = JsonConverter.newConverter(new DefaultTopiaIdFactory(), CreateBeanRef.class); CreateBeanRef createBeanRef = jsonConverter.convert(CreateBeanRef.class, loginContent); return createBeanRef.getPermission(); diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonArrayConverterTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonArrayConverterTest.java index 89128e1..c216d62 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonArrayConverterTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonArrayConverterTest.java @@ -4,16 +4,17 @@ import org.chorem.pollen.persistence.entity.ChoiceType; import org.chorem.pollen.services.bean.ChoiceBean; import org.junit.Assert; import org.junit.Test; +import org.nuiton.topia.persistence.internal.DefaultTopiaIdFactory; public class JsonArrayConverterTest { @Test public void convertToType() throws Exception { - String choicesStr = "[ {name: \"choice1\", choiceType: \"TEXT\", choiceOrder: 1}, " + - "{name: \"choice2\", choiceType: \"IMAGE\", choiceOrder: 2} ]"; + String choicesStr = "[ {id: \"AAAA\", name: \"choice1\", choiceType: \"TEXT\", choiceOrder: 1}, " + + " {id: \"BBBB\", name: \"choice2\", choiceType: \"IMAGE\", choiceOrder: 2} ]"; - JsonArrayConverter converter = JsonArrayConverter.newConverter(ChoiceBean.class); + JsonArrayConverter converter = JsonArrayConverter.newConverter(new DefaultTopiaIdFactory(), ChoiceBean.class); ChoiceBean[] choices = converter.convert(ChoiceBean[].class, choicesStr); Assert.assertNotNull(choices); diff --git a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonConverterTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonConverterTest.java index b98812b..b34e74d 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonConverterTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/converter/JsonConverterTest.java @@ -29,6 +29,7 @@ import org.chorem.pollen.services.bean.VoteBean; import org.chorem.pollen.services.bean.VoteToChoiceBean; import org.junit.Assert; import org.junit.Test; +import org.nuiton.topia.persistence.internal.DefaultTopiaIdFactory; public class JsonConverterTest { @@ -37,7 +38,7 @@ public class JsonConverterTest { String pollStr = "{voterId:\"voterId\",voterName:\"toto\",anonymous:true,choice:[{voteValue:1.5,choiceId:\"AA\"}]}"; - JsonConverter<VoteBean> converter = JsonConverter.newConverter(VoteBean.class); + JsonConverter<VoteBean> converter = JsonConverter.newConverter(new DefaultTopiaIdFactory(), VoteBean.class); VoteBean voteBean = converter.convert(VoteBean.class, pollStr); @@ -67,7 +68,7 @@ public class JsonConverterTest { "{name: \"choice2\", choiceType: \"IMAGE\"} ], voteVisibility: \"ANONYMOUS\", " + "commentVisibility:\"NOBODY\", pollType: \"FREE\" }"; - JsonConverter<Poll> converter = JsonConverter.newEntityConverter(Poll.class); + JsonConverter<Poll> converter = JsonConverter.newEntityConverter(new DefaultTopiaIdFactory(), Poll.class); Poll poll = converter.convert(Poll.class, pollStr); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ChoiceBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ChoiceBean.java index 59666d5..dc5ceff 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ChoiceBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ChoiceBean.java @@ -24,10 +24,14 @@ public class ChoiceBean extends PollenBean<Choice> { protected String description; + public ChoiceBean() { + super(Choice.class); + } + @Override public void fromEntity(Choice entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); if (entity.getCreator() == null || entity.getCreator().getPermission() == null) { setPermission(null); @@ -50,7 +54,7 @@ public class ChoiceBean extends PollenBean<Choice> { Choice entity = new ChoiceImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setName(getName()); entity.setDescription(getDescription()); entity.setChoiceType(getChoiceType()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CommentBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CommentBean.java index c05aa21..7f03bb3 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CommentBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CommentBean.java @@ -24,10 +24,14 @@ public class CommentBean extends PollenBean<Comment> { protected Date postDate; + public CommentBean() { + super(Comment.class); + } + @Override public void fromEntity(Comment entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); if (entity.getAuthor() == null || entity.getAuthor().getPermission() == null) { @@ -55,7 +59,7 @@ public class CommentBean extends PollenBean<Comment> { Comment entity = new CommentImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setText(getText()); entity.setPostDate(getPostDate()); PollenPrincipalImpl author = new PollenPrincipalImpl(); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java index f34ec39..08d8cfe 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/CreateBeanRef.java @@ -94,6 +94,13 @@ public class CreateBeanRef implements Serializable { } + public static CreateBeanRef of(String id, String permission) { + + CreateBeanRef ref = new CreateBeanRef(id, permission); + return ref; + + } + protected CreateBeanRef(String id, String permission) { setId(id); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java index 0b65831..03b6fdb 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListBean.java @@ -23,10 +23,14 @@ public class FavoriteListBean extends PollenBean<FavoriteList> { protected Set<FavoriteListMemberBean> member = new HashSet<>(); + public FavoriteListBean() { + super(FavoriteList.class); + } + @Override public void fromEntity(FavoriteList entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setName(entity.getName()); member.clear(); @@ -43,7 +47,7 @@ public class FavoriteListBean extends PollenBean<FavoriteList> { public FavoriteList toEntity() { FavoriteList entity = new FavoriteListImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setName(getName()); for (FavoriteListMemberBean voterListMemberBean : member) { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListMemberBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListMemberBean.java index 5b482e2..17b2be8 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListMemberBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FavoriteListMemberBean.java @@ -17,10 +17,14 @@ public class FavoriteListMemberBean extends PollenBean<FavoriteListMember> { protected String email; + public FavoriteListMemberBean() { + super(FavoriteListMember.class); + } + @Override public void fromEntity(FavoriteListMember entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setName(entity.getName()); setEmail(entity.getEmail()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java index 89c80c3..c154074 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java @@ -22,6 +22,10 @@ public class PollBean extends PollenBean<Poll> { private static final long serialVersionUID = 1L; + public PollBean() { + super(Poll.class); + } + public static boolean isPollFree(PollBean poll) { return Objects.equals(PollType.FREE, poll.getPollType()); } @@ -73,7 +77,7 @@ public class PollBean extends PollenBean<Poll> { @Override public void fromEntity(Poll entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); if (entity.getCreator() == null || entity.getCreator().getPermission() == null) { @@ -114,7 +118,7 @@ public class PollBean extends PollenBean<Poll> { public Poll toEntity() { Poll entity = new PollImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); PollenPrincipal creator = new PollenPrincipalImpl(); creator.setName(getCreatorName()); creator.setEmail(getCreatorEmail()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBean.java index b0e9dc2..f2e3448 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBean.java @@ -1,6 +1,5 @@ package org.chorem.pollen.services.bean; -import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.persistence.TopiaEntity; import java.io.Serializable; @@ -15,38 +14,54 @@ public abstract class PollenBean<E extends TopiaEntity> implements Serializable private static final long serialVersionUID = 1L; - protected String id; + protected final Class<E> entityType; - public boolean isPersisted() { - return StringUtils.isNotBlank(id); + protected PollenBeanId<E> id; + + protected PollenBean(Class<E> entityType) { + this.entityType = entityType; } - public String getId() { + public PollenBeanId<E> getId() { + if (id == null) { + id = new PollenBeanId<>(entityType); + } return id; } - public void setId(String id) { + public void setId(PollenBeanId<E> id) { this.id = id; } + public boolean isPersisted() { + return getId().isNotEmpty(); + } + + public String getEntityId() { + return getId().getEntityId(); + } + + public void setEntityId(String id) { + getId().setEntityId(id); + } + public abstract void fromEntity(E entity); public abstract E toEntity(); - @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof PollenBean)) return false; - PollenBean pollenBean = (PollenBean) o; + PollenBean that = (PollenBean) o; - return id != null && id.equals(pollenBean.id); + return getId().equals(that.getId()); } @Override public int hashCode() { - return id != null ? id.hashCode() : 0; + return getId().hashCode(); } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBeanId.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBeanId.java new file mode 100644 index 0000000..1f57427 --- /dev/null +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenBeanId.java @@ -0,0 +1,104 @@ +package org.chorem.pollen.services.bean; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaIdFactory; + +import java.io.Serializable; + +/** + * Created on 5/23/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.0 + */ +public class PollenBeanId<E extends TopiaEntity> implements Serializable { + + private static final long serialVersionUID = 1L; + + protected final Class<E> entityType; + + protected String encodedId; + + protected String entityId; + + public static String encodeId(TopiaIdFactory topiaIdFactory, String entityId) { + + String randomPart = topiaIdFactory.getRandomPart(entityId); + String encodedId = new String(Base64.encodeBase64URLSafe(randomPart.getBytes())); + return encodedId; + + } + + public PollenBeanId(Class<E> entityType) { + this.entityType = entityType; + } + + public boolean isNotEmpty() { + return StringUtils.isNotEmpty(encodedId) || StringUtils.isNotEmpty(entityId); + } + + public String getEncodedId() { + return encodedId; + } + + public String getEntityId() { + return entityId; + } + + public void setEncodedId(String encodedId) { + this.encodedId = encodedId; + } + + public void setEntityId(String entityId) { + this.entityId = entityId; + } + + public void encodeId(TopiaIdFactory topiaIdFactory) { + + if (entityId != null) { + + String id = encodeId(topiaIdFactory, entityId); + setEncodedId(id); + + } + + } + + public void decodeId(TopiaIdFactory topiaIdFactory) { + + if (encodedId != null) { + + String decodedId = new String(Base64.decodeBase64(encodedId)); + String id = topiaIdFactory.newTopiaId(entityType, decodedId); + setEntityId(id); + + } + + } + + @Override + public boolean equals(Object o) { + + if (this == o) return true; + if (!(o instanceof PollenBeanId)) return false; + + PollenBeanId that = (PollenBeanId) o; + + return entityType.equals(that.entityType) + && encodedId != null && encodedId.equals(that.encodedId) + || entityId != null && entityId.equals(that.entityId); + + } + + @Override + public int hashCode() { + + int result = entityType.hashCode(); + result = 31 * result + (encodedId != null ? encodedId.hashCode() : 0); + result = 31 * result + (entityId != null ? entityId.hashCode() : 0); + return result; + + } +} diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java index e7b0fca..4ee51bb 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenUserBean.java @@ -25,10 +25,14 @@ public class PollenUserBean extends PollenBean<PollenUser> { protected String password; + public PollenUserBean() { + super(PollenUser.class); + } + @Override public void fromEntity(PollenUser entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setName(entity.getName()); setLogin(entity.getLogin()); @@ -44,7 +48,7 @@ public class PollenUserBean extends PollenBean<PollenUser> { PollenUser entity = new PollenUserImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setName(getName()); entity.setLanguage(getLogin()); entity.setAdministrator(isAdministrator()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java index 6cf20cd..62ef064 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java @@ -39,10 +39,14 @@ public class VoteBean extends PollenBean<Vote> { protected Set<VoteToChoiceBean> choice = new LinkedHashSet<>(); + public VoteBean() { + super(Vote.class); + } + @Override public void fromEntity(Vote vote) { - setId(vote.getTopiaId()); + setEntityId(vote.getTopiaId()); if (vote.getVoter() == null || vote.getVoter().getPermission() == null) { @@ -83,7 +87,7 @@ public class VoteBean extends PollenBean<Vote> { Vote entity = new VoteImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setAnonymous(getAnonymous() != null && getAnonymous()); entity.setWeight(getWeight()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteToChoiceBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteToChoiceBean.java index 6ed4dbf..2251190 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteToChoiceBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteToChoiceBean.java @@ -18,10 +18,14 @@ public class VoteToChoiceBean extends PollenBean<VoteToChoice> { protected Double voteValue; + public VoteToChoiceBean() { + super(VoteToChoice.class); + } + @Override public void fromEntity(VoteToChoice entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setVoteValue(entity.getVoteValue()); setChoiceId(entity.getChoice().getTopiaId()); @@ -31,7 +35,7 @@ public class VoteToChoiceBean extends PollenBean<VoteToChoice> { public VoteToChoice toEntity() { VoteToChoice entity = new VoteToChoiceImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setVoteValue(getVoteValue()); entity.setChoice(new ChoiceImpl()); entity.getChoice().setTopiaId(getChoiceId()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java index 0c3baaa..1fb2679 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListBean.java @@ -23,10 +23,14 @@ public class VoterListBean extends PollenBean<VoterList> { protected Set<VoterListMemberBean> member = new HashSet<>(); + public VoterListBean() { + super(VoterList.class); + } + @Override public void fromEntity(VoterList entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setName(entity.getName()); setWeight(entity.getWeight()); @@ -44,7 +48,7 @@ public class VoterListBean extends PollenBean<VoterList> { public VoterList toEntity() { VoterList entity = new VoterListImpl(); - entity.setTopiaId(getId()); + entity.setTopiaId(getEntityId()); entity.setName(getName()); entity.setWeight(getWeight()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListMemberBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListMemberBean.java index f926424..85ca451 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListMemberBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoterListMemberBean.java @@ -19,10 +19,14 @@ public class VoterListMemberBean extends PollenBean<VoterListMember> { protected double weight; + public VoterListMemberBean() { + super(VoterListMember.class); + } + @Override public void fromEntity(VoterListMember entity) { - setId(entity.getTopiaId()); + setEntityId(entity.getTopiaId()); setName(entity.getName()); setEmail(entity.getEmail()); setWeight(entity.getWeight()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java index 2be031d..07ea92a 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java @@ -56,7 +56,7 @@ public class ChoiceService extends PollenServiceSupport { for (ChoiceBean choiceBean : choiceBeans) { - if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getId())) { + if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getEntityId())) { choiceBean.setPermission(null); } @@ -77,7 +77,7 @@ public class ChoiceService extends PollenServiceSupport { Choice choice = getChoice(poll, choiceId); ChoiceBean choiceBean = copy(ChoiceBean.class, choice); - if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getId())) { + if (isNotPermitted(PermissionVerb.editChoice, choiceBean.getEntityId())) { choiceBean.setPermission(null); } @@ -141,7 +141,7 @@ public class ChoiceService extends PollenServiceSupport { checkNotNull(choice); checkIsPersisted(choice); - checkPermission(PermissionVerb.editChoice, choice.getId()); + checkPermission(PermissionVerb.editChoice, choice.getEntityId()); Poll poll = getPollService().getPoll0(pollId); List<Choice> existingChoices = getChoiceDao().findAll(poll); @@ -211,7 +211,7 @@ public class ChoiceService extends PollenServiceSupport { // get existing choice - toSave = getChoice(poll, choice.getId()); + toSave = getChoice(poll, choice.getEntityId()); } else { @@ -275,7 +275,7 @@ public class ChoiceService extends PollenServiceSupport { for (Choice choice1 : existingChoices) { if (choiceExists && - choice1.getTopiaId().equals(choice.getId())) { + choice1.getTopiaId().equals(choice.getEntityId())) { continue; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java index 5add5c0..29cf6a9 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java @@ -49,7 +49,7 @@ public class CommentService extends PollenServiceSupport { List<CommentBean> commentBeans = copyAsList(CommentBean.class, comments); for (CommentBean commentBean : commentBeans) { - if (isNotPermitted(PermissionVerb.readComment, commentBean.getId())) { + if (isNotPermitted(PermissionVerb.readComment, commentBean.getEntityId())) { commentBean.setPermission(null); } } @@ -69,7 +69,7 @@ public class CommentService extends PollenServiceSupport { Comment comment = getComment(poll, commentId); CommentBean commentBean = copy(CommentBean.class, comment); - if (isNotPermitted(PermissionVerb.readComment, commentBean.getId())) { + if (isNotPermitted(PermissionVerb.readComment, commentBean.getEntityId())) { commentBean.setPermission(null); } @@ -103,7 +103,7 @@ public class CommentService extends PollenServiceSupport { checkNotNull(pollId); checkNotNull(comment); checkIsPersisted(comment); - checkPermission(PermissionVerb.editComment, comment.getId()); + checkPermission(PermissionVerb.editComment, comment.getEntityId()); ErrorMap errorMap = checkComment(comment); errorMap.failIfNotEmpty(); @@ -169,7 +169,7 @@ public class CommentService extends PollenServiceSupport { if (commentExists) { - toSave = getCommentDao().findByTopiaId(comment.getId()); + toSave = getCommentDao().findByTopiaId(comment.getEntityId()); } else { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java index 0f940c8..de556ba 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FavoriteListService.java @@ -479,7 +479,7 @@ public class FavoriteListService extends PollenServiceSupport { if (persisted) { // get existing favorite list - toSave = getFavoriteList(user, favoriteList.getId()); + toSave = getFavoriteList(user, favoriteList.getEntityId()); } else { @@ -506,7 +506,7 @@ public class FavoriteListService extends PollenServiceSupport { if (persisted) { // get existing favorite list - toSave = getFavoriteListMember(favoriteList, favoriteListMember.getId()); + toSave = getFavoriteListMember(favoriteList, favoriteListMember.getEntityId()); } else { @@ -542,7 +542,7 @@ public class FavoriteListService extends PollenServiceSupport { for (FavoriteList favoriteList1 : existingFavoriteLists) { if (favoriteListExists && - favoriteList1.getTopiaId().equals(favoriteList.getId())) { + favoriteList1.getTopiaId().equals(favoriteList.getEntityId())) { continue; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java index b0f74dd..de3811c 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java @@ -105,7 +105,7 @@ public class PollService extends PollenServiceSupport { Poll poll = getPoll0(pollId); PollBean pollBean = copy(PollBean.class, poll); - if (isNotPermitted(PermissionVerb.editPoll, pollBean.getId())) { + if (isNotPermitted(PermissionVerb.editPoll, pollBean.getEntityId())) { pollBean.setPermission(null); pollBean.setCreatorEmail(null); pollBean.setCreatorName(null); @@ -142,7 +142,8 @@ public class PollService extends PollenServiceSupport { } - return copy(PollBean.class, result); + PollBean pollBean = copy(PollBean.class, result); + return pollBean; } @@ -171,7 +172,7 @@ public class PollService extends PollenServiceSupport { checkNotNull(poll); checkIsPersisted(poll); - checkPermission(PermissionVerb.editPoll, poll.getId()); + checkPermission(PermissionVerb.editPoll, poll.getEntityId()); ErrorMap errorMap = checkPoll(poll); errorMap.failIfNotEmpty(); @@ -181,7 +182,8 @@ public class PollService extends PollenServiceSupport { getNotificationService().onPollEdited(savedPoll); - return copy(PollBean.class, savedPoll); + PollBean pollBean = copy(PollBean.class, savedPoll); + return pollBean; } @@ -251,7 +253,7 @@ public class PollService extends PollenServiceSupport { if (pollExists) { - toSave = getPoll0(poll.getId()); + toSave = getPoll0(poll.getEntityId()); existingChoices = getChoiceDao().findAll(toSave); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index 6e1d273..daab70b 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -46,7 +46,6 @@ import org.chorem.pollen.persistence.entity.VoterListTopiaDao; import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.PollenServiceContext; import org.chorem.pollen.services.PollenTechnicalException; -import org.chorem.pollen.services.TopiaEntityCopyVisitor; import org.chorem.pollen.services.bean.PollenBean; import org.chorem.pollen.services.config.PollenServiceConfig; import org.chorem.pollen.services.service.mail.EmailService; @@ -385,41 +384,6 @@ public abstract class PollenServiceSupport implements PollenService { } - protected <T extends TopiaEntity> T copy(T entity) { - - T copy = null; - - if (entity != null) { - - copy = TopiaEntityCopyVisitor.copy(serviceContext.getTopiaApplicationContext(), entity); - } - - return copy; - - } - - protected <T extends TopiaEntity> ImmutableList<T> copyAsList(Collection<T> entity) { - - Collection<T> copy = TopiaEntityCopyVisitor.copy(serviceContext.getTopiaApplicationContext(), entity); - - ImmutableList<T> result = ImmutableList.copyOf(copy); - - return result; - - } - - protected <T extends TopiaEntity> ImmutableSet<T> copyAsSet(Collection<T> entity) { - - Collection<T> copy = TopiaEntityCopyVisitor.copy(serviceContext.getTopiaApplicationContext(), entity); - - copy = ImmutableSet.copyOf(copy); - - ImmutableSet<T> result = ImmutableSet.copyOf(copy); - - return result; - - } - protected <T extends TopiaEntity, B extends PollenBean<T>> B copy(Class<B> beanType, T entity) { try { 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 fcb1f55..6a8083a 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 @@ -192,7 +192,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer ErrorMap errors = new ErrorMap(); boolean userExists = user.isPersisted(); - PollenUser persisted = userExists ? getUser0(user.getId()) : null; + PollenUser persisted = userExists ? getUser0(user.getEntityId()) : null; PollenUserTopiaDao dao = getPollenUserDao(); String userLogin = user.getLogin(); @@ -264,7 +264,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer if (userExists) { - toSave = getUser0(user.getId()); + toSave = getUser0(user.getEntityId()); boolean emailChanged = !Objects.equals(toSave.getEmail(), cleanMail); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java index 129cc61..51b5d72 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java @@ -58,7 +58,7 @@ public class VoteService extends PollenServiceSupport { List<VoteBean> voteBeans = copyAsList(VoteBean.class, votes); for (VoteBean voteBean : voteBeans) { - if (isNotPermitted(PermissionVerb.editVote, voteBean.getId())) { + if (isNotPermitted(PermissionVerb.editVote, voteBean.getEntityId())) { voteBean.setPermission(null); } @@ -77,7 +77,7 @@ public class VoteService extends PollenServiceSupport { Vote result = getVote(poll, voteId); VoteBean voteBean = copy(VoteBean.class, result); - if (isNotPermitted(PermissionVerb.editVote, voteBean.getId())) { + if (isNotPermitted(PermissionVerb.editVote, voteBean.getEntityId())) { voteBean.setPermission(null); } @@ -111,7 +111,7 @@ public class VoteService extends PollenServiceSupport { checkNotNull(vote); checkIsPersisted(vote); - checkPermission(PermissionVerb.editVote, vote.getId()); + checkPermission(PermissionVerb.editVote, vote.getEntityId()); Poll poll = getPollService().getPoll0(pollId); @@ -174,7 +174,7 @@ public class VoteService extends PollenServiceSupport { //TODO Finish save if (voteExist) { - toSave = getVote(poll, vote.getId()); + toSave = getVote(poll, vote.getEntityId()); } else { @@ -285,7 +285,7 @@ public class VoteService extends PollenServiceSupport { if (source.isPersisted()) { - result = getVoteToChoice(vote, source.getId()); + result = getVoteToChoice(vote, source.getEntityId()); } else { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java index dd6ceb9..398b642 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java @@ -305,7 +305,7 @@ public class VoterListService extends PollenServiceSupport { if (voterListExists) { - toSave = getVoterList(poll, voterList.getId()); + toSave = getVoterList(poll, voterList.getEntityId()); } else { @@ -336,7 +336,7 @@ public class VoterListService extends PollenServiceSupport { if (voterListMemberExists) { - toSave = getVoterListMember(voterList, voterListMember.getId()); + toSave = getVoterListMember(voterList, voterListMember.getEntityId()); } else { @@ -368,7 +368,7 @@ public class VoterListService extends PollenServiceSupport { for (VoterList voterList1 : existingVoterLists) { if (voterListExists && - voterList1.getTopiaId().equals(voterList.getId())) { + voterList1.getTopiaId().equals(voterList.getEntityId())) { continue; } @@ -435,7 +435,7 @@ public class VoterListService extends PollenServiceSupport { for (VoterListMember voterListMember1 : existingVoterListMembers) { if (voterListMemberExists && - voterListMember1.getTopiaId().equals(voterListMember.getId())) { + voterListMember1.getTopiaId().equals(voterListMember.getEntityId())) { continue; } diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java index ba5960f..4fe1751 100644 --- a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java +++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollServiceTest.java @@ -114,9 +114,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice1 = createdChoices.get(0); Assert.assertNotNull(createdChoice1); - Assert.assertNotNull(createdChoice1.getId()); + Assert.assertNotNull(createdChoice1.getEntityId()); - ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getId()); + ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getEntityId()); Assert.assertEquals(createdChoice1, reloadedChoice1); Assert.assertEquals(choice1.getName(), createdChoice1.getName()); @@ -125,9 +125,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice2 = createdChoices.get(1); Assert.assertNotNull(createdChoice2); - Assert.assertNotNull(createdChoice2.getId()); + Assert.assertNotNull(createdChoice2.getEntityId()); - ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getId()); + ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getEntityId()); Assert.assertEquals(createdChoice2, reloadedChoice2); Assert.assertEquals(choice2.getName(), createdChoice2.getName()); @@ -200,7 +200,7 @@ public class PollServiceTest extends AbstractPollenServiceTest { Assert.assertNotNull(createdPoll.getId()); PollBean reloadedPoll = service.getPoll(createdPoll.getId()); - Assert.assertEquals(createdPoll.getId(), reloadedPoll.getId()); + Assert.assertEquals(createdPoll.getId(), reloadedPoll.getEntityId()); Assert.assertEquals(getServiceContext().getNow(), reloadedPoll.getBeginDate()); @@ -220,9 +220,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice1 = createdChoices.get(0); Assert.assertNotNull(createdChoice1); - Assert.assertNotNull(createdChoice1.getId()); + Assert.assertNotNull(createdChoice1.getEntityId()); - ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getId()); + ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getEntityId()); Assert.assertEquals(createdChoice1, reloadedChoice1); Assert.assertEquals(choice1.getName(), createdChoice1.getName()); @@ -230,9 +230,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice2 = createdChoices.get(1); Assert.assertNotNull(createdChoice2); - Assert.assertNotNull(createdChoice2.getId()); + Assert.assertNotNull(createdChoice2.getEntityId()); - ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getId()); + ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getEntityId()); Assert.assertEquals(createdChoice2, reloadedChoice2); Assert.assertEquals(choice2.getName(), createdChoice2.getName()); @@ -297,7 +297,7 @@ public class PollServiceTest extends AbstractPollenServiceTest { Assert.assertTrue(true); } - FakePollenSecurityContext securityContext = (FakePollenSecurityContext) serviceContext.getSecurityContext(); + FakePollenSecurityContext securityContext = serviceContext.getSecurityContext(); PollenPrincipal principal = securityService.getPollenPrincipalByPermissionToken(createdPoll.getPermission()); securityContext.setMainPrincipal(principal); @@ -319,9 +319,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice1 = createdChoices.get(0); Assert.assertNotNull(createdChoice1); - Assert.assertNotNull(createdChoice1.getId()); + Assert.assertNotNull(createdChoice1.getEntityId()); - ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getId()); + ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getEntityId()); Assert.assertEquals(createdChoice1, reloadedChoice1); Assert.assertEquals(choice1.getName(), createdChoice1.getName()); @@ -330,9 +330,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice2 = createdChoices.get(1); Assert.assertNotNull(createdChoice2); - Assert.assertNotNull(createdChoice2.getId()); + Assert.assertNotNull(createdChoice2.getEntityId()); - ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getId()); + ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getEntityId()); Assert.assertEquals(createdChoice2, reloadedChoice2); Assert.assertEquals(choice2.getName(), createdChoice2.getName()); @@ -345,9 +345,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { Assert.assertEquals(1, createdVoterLists.size()); VoterListBean createdVoterList = createdVoterLists.get(0); Assert.assertNotNull(createdVoterList); - Assert.assertNotNull(createdVoterList.getId()); + Assert.assertNotNull(createdVoterList.getEntityId()); - VoterListBean reloadedVoterList = voterListService.getVoterList(createdPoll.getId(), createdVoterList.getId()); + VoterListBean reloadedVoterList = voterListService.getVoterList(createdPoll.getId(), createdVoterList.getEntityId()); Assert.assertEquals(createdVoterList, reloadedVoterList); Assert.assertEquals(voterList.getName(), createdVoterList.getName()); @@ -488,9 +488,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice1 = createdChoices.get(0); Assert.assertNotNull(createdChoice1); - Assert.assertNotNull(createdChoice1.getId()); + Assert.assertNotNull(createdChoice1.getEntityId()); - ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getId()); + ChoiceBean reloadedChoice1 = choiceService.getChoice(createdPoll.getId(), createdChoice1.getEntityId()); Assert.assertEquals(createdChoice1, reloadedChoice1); Assert.assertEquals(choice1.getName(), createdChoice1.getName()); @@ -499,9 +499,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { ChoiceBean createdChoice2 = createdChoices.get(1); Assert.assertNotNull(createdChoice2); - Assert.assertNotNull(createdChoice2.getId()); + Assert.assertNotNull(createdChoice2.getEntityId()); - ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getId()); + ChoiceBean reloadedChoice2 = choiceService.getChoice(createdPoll.getId(), createdChoice2.getEntityId()); Assert.assertEquals(createdChoice2, reloadedChoice2); Assert.assertEquals(choice2.getName(), createdChoice2.getName()); @@ -514,9 +514,9 @@ public class PollServiceTest extends AbstractPollenServiceTest { Assert.assertEquals(1, createdVoterLists.size()); VoterListBean createdVoterList = createdVoterLists.get(0); Assert.assertNotNull(createdVoterList); - Assert.assertNotNull(createdVoterList.getId()); + Assert.assertNotNull(createdVoterList.getEntityId()); - VoterListBean reloadedVoterList = voterListService.getVoterList(createdPoll.getId(), createdVoterList.getId()); + VoterListBean reloadedVoterList = voterListService.getVoterList(createdPoll.getId(), createdVoterList.getEntityId()); Assert.assertEquals(createdVoterList, reloadedVoterList); Assert.assertEquals(voterList.getName(), createdVoterList.getName()); diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java index 3449281..461bfe2 100644 --- a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java +++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUserServiceTest.java @@ -171,7 +171,7 @@ public class PollenUserServiceTest extends AbstractPollenServiceTest { user.setPassword("fake"); service.editUser(user); - PollenUserBean savedUser = service.getUser(user.getId()); + PollenUserBean savedUser = service.getUser(user.getEntityId()); Assert.assertNotNull(savedUser); Assert.assertEquals(originalLogin, savedUser.getLogin()); Assert.assertEquals(email, savedUser.getEmail()); diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java index 15c8554..2a6e520 100644 --- a/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java +++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/VoteCountingServiceTest.java @@ -2,7 +2,6 @@ package org.chorem.pollen.services.service; import org.apache.commons.lang3.time.DateUtils; import org.chorem.pollen.persistence.entity.ChoiceType; -import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.services.AbstractPollenServiceTest; import org.chorem.pollen.services.bean.ChoiceBean; import org.chorem.pollen.services.bean.CreateBeanRef; @@ -15,7 +14,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.math.BigDecimal; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; @@ -87,7 +85,7 @@ public class VoteCountingServiceTest extends AbstractPollenServiceTest { vote1.setVoterName("voter1"); VoteToChoiceBean vote1Choice1 = new VoteToChoiceBean(); - vote1Choice1.setChoiceId(createdChoiceBean1.getId()); + vote1Choice1.setChoiceId(createdChoiceBean1.getEntityId()); vote1Choice1.setVoteValue(1d); vote1.addChoice(vote1Choice1); voteService.addVote(pollId, vote1); @@ -96,7 +94,7 @@ public class VoteCountingServiceTest extends AbstractPollenServiceTest { VoteBean vote2 = new VoteBean(); vote2.setVoterName("voter2"); VoteToChoiceBean vote2Choice2 = new VoteToChoiceBean(); - vote2Choice2.setChoiceId(createdChoiceBean2.getId()); + vote2Choice2.setChoiceId(createdChoiceBean2.getEntityId()); vote2Choice2.setVoteValue(1d); vote2.addChoice(vote2Choice2); voteService.addVote(pollId, vote2); @@ -105,7 +103,7 @@ public class VoteCountingServiceTest extends AbstractPollenServiceTest { VoteBean vote3 = new VoteBean(); vote3.setVoterName("voter3"); VoteToChoiceBean vote3Choice1 = new VoteToChoiceBean(); - vote3Choice1.setChoiceId(createdChoiceBean1.getId()); + vote3Choice1.setChoiceId(createdChoiceBean1.getEntityId()); vote3Choice1.setVoteValue(1d); vote3.addChoice(vote3Choice1); voteService.addVote(pollId, vote3); @@ -118,7 +116,7 @@ public class VoteCountingServiceTest extends AbstractPollenServiceTest { Assert.assertEquals(1, mainResult.getTopRanking().size()); ChoiceScore choiceScore = mainResult.getTopRanking().get(0); - Assert.assertEquals(createdChoiceBean1.getId(), choiceScore.getChoiceId()); + Assert.assertEquals(createdChoiceBean1.getEntityId(), choiceScore.getChoiceId()); Assert.assertEquals(2, choiceScore.getScoreValue().intValue()); } -- To stop receiving notification emails like this one, please contact Chorem.org SCM administrator <admin+scm@chorem.org>.