diff --git a/.classpath b/.classpath
index df3408d..c97c8e3 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -22,13 +22,13 @@
-
+
-
+
@@ -36,22 +36,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 4e4a3ad..cac0df4 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -3,7 +3,9 @@ org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index e3f678d..5dd063a 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,11 +1,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.java b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.java
index 4f4f63c..00f3936 100755
--- a/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.java
+++ b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.java
@@ -55,7 +55,6 @@ import gwt.material.design.client.constants.IconType;
import gwt.material.design.client.constants.Position;
import gwt.material.design.client.ui.MaterialAnchorButton;
import gwt.material.design.client.ui.MaterialBadge;
-import gwt.material.design.client.ui.MaterialCollection;
import gwt.material.design.client.ui.MaterialFAB;
import gwt.material.design.client.ui.MaterialLink;
import gwt.material.design.client.ui.MaterialProgress;
@@ -88,10 +87,12 @@ public class ApplicationView extends Composite {
@UiField MaterialFAB FAB;
@UiField MaterialLink menu, newMessage, switcher;
@UiField MaterialAnchorButton replyAll, reply, forward;
- @UiField MaterialCollection messagesCollection;
@UiField MaterialProgress messageLoader, messagesLoader;
@UiField MaterialBadge badge;
-
+ @UiField ShowMorePagerPanel pagerPanel;
+
+ MyMaterialCollection messagesCollection;
+
private ConvMessage currentSelected;
private DisplayMessage displayMessage;
private WriteMessage newMessageDisplay;
@@ -160,7 +161,6 @@ public class ApplicationView extends Composite {
});
}
private void showErrorOccurred() {
- messagesCollection.clear();
messagesLoader.setVisible(false);
messageLoader.setVisible(false);
hideSidePanel();
@@ -172,18 +172,21 @@ public class ApplicationView extends Composite {
* @param sent
*/
public void showMessages(ArrayList messages, boolean sent) {
- messagesCollection.clear();
messagesLoader.setVisible(false);
- messagesCollection.setVisible(true);
int scrollerHeight = Window.getClientHeight() - 100;
- scrollerPanel.setHeight(scrollerHeight+"px");
+ scrollerPanel.setHeight(scrollerHeight+"px");
+ pagerPanel.setHeight(scrollerHeight+"px");
+ GWT.log("message returned are "+messages.size());
+ messagesCollection= new MyMaterialCollection<>(messages, c -> new MessageItem(c, messagesCollection, this, sent));
+ messagesCollection.init();
+ pagerPanel.setDisplay(messagesCollection);
for (ConvMessage convMessage : messages) {
- messagesCollection.add(new MessageItem(convMessage, messagesCollection, this, sent));
if (! (sent || convMessage.isRead()))
unreadMessages++;
totalMessages++;
}
if (messages.size() > 0) {
+ GWT.log("message returned are "+messages.size());
MessageItem first = (MessageItem) messagesCollection.getChildrenList().get(0);
first.setSelected(true);
} else {
@@ -247,7 +250,6 @@ public class ApplicationView extends Composite {
}
private void displayMessage(String messageId, final boolean sent) {
- messageLoader.setColor(Utils.getRandomColor());
messageLoader.setVisible(true);
scrollerPanel.clear();
convService.getMessageById(messageId, toggleSwitch, new AsyncCallback() {
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.ui.xml b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.ui.xml
index a9fb246..e023952 100755
--- a/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.ui.xml
+++ b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/ApplicationView.ui.xml
@@ -1,7 +1,9 @@
+ xmlns:mc="urn:import:org.gcube.portets.user.message_conversations.client.autocomplete"
+ xmlns:my="urn:import:org.gcube.portets.user.message_conversations.client.ui">
.animation {
@@ -41,42 +43,47 @@
-
-
-
-
-
+
+
+
+
+ showOn="SHOW_ON_MED_DOWN" iconType="MESSAGE"
+ textColor="LIGHT_BLUE_DARKEN_2" waves="LIGHT" />
-
-
-
-
-
+
+
+
+
-
+
-
+
+ waves="LIGHT" backgroundColor="BLUE" ui:field="forward"
+ iconType="FORWARD" />
+ waves="LIGHT" backgroundColor="AMBER" ui:field="replyAll"
+ iconType="REPLY_ALL" />
+ waves="LIGHT" backgroundColor="TEAL" ui:field="reply"
+ iconType="REPLY" />
+
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/client/ui/MyMaterialCollection.java b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/MyMaterialCollection.java
new file mode 100644
index 0000000..282f745
--- /dev/null
+++ b/src/main/java/org/gcube/portets/user/message_conversations/client/ui/MyMaterialCollection.java
@@ -0,0 +1,113 @@
+package org.gcube.portets.user.message_conversations.client.ui;
+
+import java.util.ArrayList;
+import java.util.function.Function;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.view.client.HasRows;
+import com.google.gwt.view.client.Range;
+import com.google.gwt.view.client.RangeChangeEvent.Handler;
+
+import gwt.material.design.client.ui.MaterialCollection;
+
+public class MyMaterialCollection extends MaterialCollection implements HasRows {
+
+ private final int DEFAULT_LENGTH= 20;
+
+ private boolean init_called = false;
+
+ ArrayList objects = new ArrayList<>();
+
+ Function converter;
+
+ public MyMaterialCollection(ArrayList objects, Function function) {
+ this.objects = objects;
+ this.converter = function;
+ }
+
+ int start=0;
+ int length=DEFAULT_LENGTH;
+
+ public void init(){
+ if (init_called) GWT.log("init already called");
+ else {
+ init_called = true;
+ onRangeChanged();
+ }
+ }
+
+ private void onRangeChanged() {
+ int widgetCountIndex = super.getWidgetCount()-1;
+ int index = widgetCountIndex-1>start ? widgetCountIndex: start;
+ int finish = length>objects.size()? objects.size():length ;
+
+ for (int i =index; i= lastScrollPos) {
+ return;
+ }
+
+ HasRows display = getDisplay();
+ if (display == null) {
+ return;
+ }
+ int maxScrollTop = scrollable.getWidget().getOffsetHeight()
+ - scrollable.getOffsetHeight();
+ if (lastScrollPos >= maxScrollTop) {
+ // We are near the end, so increase the page size.
+ int newPageSize = Math.min(
+ display.getVisibleRange().getLength() + incrementSize,
+ display.getRowCount());
+ display.setVisibleRange(0, newPageSize);
+ }
+ }
+ });
+ }
+
+ /**
+ * Get the number of rows by which the range is increased when the scrollbar
+ * reaches the bottom.
+ *
+ * @return the increment size
+ */
+ public int getIncrementSize() {
+ return incrementSize;
+ }
+
+ @Override
+ public void setDisplay(HasRows display) {
+ assert display instanceof Widget : "display must extend Widget";
+ scrollable.setWidget((Widget) display);
+ scrollable.scrollToTop();
+ super.setDisplay(display);
+ }
+
+ /**
+ * Set the number of rows by which the range is increased when the scrollbar
+ * reaches the bottom.
+ *
+ * @param incrementSize the incremental number of rows
+ */
+ public void setIncrementSize(int incrementSize) {
+ GWT.log("increment of "+ incrementSize);
+ this.incrementSize = incrementSize;
+ }
+
+ @Override
+ protected void onRangeOrRowCountChanged() {
+ GWT.log("range changed ...");
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/server/ConvService.java b/src/main/java/org/gcube/portets/user/message_conversations/server/ConvService.java
new file mode 100644
index 0000000..e9b1962
--- /dev/null
+++ b/src/main/java/org/gcube/portets/user/message_conversations/server/ConvService.java
@@ -0,0 +1,79 @@
+package org.gcube.portets.user.message_conversations.server;
+
+import java.util.ArrayList;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.gcube.portets.user.message_conversations.client.MessageService;
+import org.gcube.portets.user.message_conversations.shared.ConvMessage;
+import org.gcube.portets.user.message_conversations.shared.CurrUserAndPortalUsersWrapper;
+import org.gcube.portets.user.message_conversations.shared.WSUser;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+
+@SuppressWarnings("serial")
+public class ConvService extends RemoteServiceServlet implements MessageService, HttpServletRetriever {
+
+ MessageService delegate;
+
+ public void init() {
+ delegate = new ConvServiceImpl(this);
+ }
+
+ @Override
+ public ArrayList getMessages(boolean sent) {
+ return delegate.getMessages(sent);
+ }
+
+ @Override
+ public ConvMessage getMessageById(String messageId, boolean sent) {
+ return delegate.getMessageById(messageId, sent);
+ }
+
+ @Override
+ public CurrUserAndPortalUsersWrapper getWorkspaceUsers() {
+ return delegate.getWorkspaceUsers();
+ }
+
+ @Override
+ public ArrayList getUsersInfo(String[] usernames) {
+ return delegate.getUsersInfo(usernames);
+ }
+
+ @Override
+ public ArrayList searchUsers(String keyword) {
+ return delegate.searchUsers(keyword);
+ }
+
+ @Override
+ public boolean sendToById(ArrayList recipientIds, ArrayList listAttachmentsId, String subject,
+ String body) {
+ return delegate.sendToById(recipientIds, listAttachmentsId, subject, body);
+ }
+
+ @Override
+ public boolean deleteMessageById(String messageId, boolean sent) {
+ return delegate.deleteMessageById(messageId, sent);
+ }
+
+ @Override
+ public String getAttachmentDownloadURL(String itemId) {
+ return delegate.getAttachmentDownloadURL(itemId);
+ }
+
+ @Override
+ public boolean saveAttachmentToWorkspaceFolder(String itemId, String destinationFolderId) {
+ return delegate.saveAttachmentToWorkspaceFolder(itemId, destinationFolderId);
+ }
+
+ @Override
+ public boolean markMessageUnread(String messageId, boolean sent) {
+ return delegate.markMessageUnread(messageId, sent);
+ }
+
+ @Override
+ public HttpServletRequest getRequest() {
+ return getThreadLocalRequest();
+ }
+
+}
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/server/ConvServiceImpl.java b/src/main/java/org/gcube/portets/user/message_conversations/server/ConvServiceImpl.java
index aa8c515..e13f1c1 100644
--- a/src/main/java/org/gcube/portets/user/message_conversations/server/ConvServiceImpl.java
+++ b/src/main/java/org/gcube/portets/user/message_conversations/server/ConvServiceImpl.java
@@ -37,7 +37,6 @@ import org.gcube.vomanagement.usermanagement.util.ManagementUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.model.User;
@@ -47,16 +46,18 @@ import com.liferay.portal.util.PortalUtil;
/**
* @author Massimiliano Assante, CNR-ISTI
*/
-@SuppressWarnings("serial")
-public class ConvServiceImpl extends RemoteServiceServlet implements MessageService {
+public class ConvServiceImpl implements MessageService {
private static final Logger _log = LoggerFactory.getLogger(ConvServiceImpl.class);
private PortalContext pContext;
private UserManager um;
- public void init() {
+ private HttpServletRetriever requestRetriever;
+
+ ConvServiceImpl(HttpServletRetriever servletRetriever) {
um = new LiferayUserManager();
pContext = PortalContext.getConfiguration();
+ requestRetriever= servletRetriever;
}
/**
*
@@ -89,7 +90,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
return null;
}
} else {
- return pContext.getCurrentUser(getThreadLocalRequest());
+ return pContext.getCurrentUser(requestRetriever.getRequest());
}
}
@@ -97,10 +98,10 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
public ArrayList getMessages(boolean sent) {
ArrayList toReturn = new ArrayList<>();
try {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
pContext = PortalContext.getConfiguration();
_log.debug("*** Reading user = " +user.getFullname());
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
ScopeProvider.instance.set(scope);
String token = pContext.getCurrentUserToken(scope, user.getUserId());
SecurityTokenProvider.instance.set(token);
@@ -186,8 +187,8 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
@Override
public boolean markMessageUnread(String messageId, boolean sent) {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
try {
MessageManagerClient client = AbstractPlugin.messages().build();
@@ -203,9 +204,9 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
public ConvMessage getMessageById(String messageId, boolean sent) {
ConvMessage toReturn = null;
try {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
_log.debug("*** Reading user from liferay session = " +user.getFullname());
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
LiferayUserManager um = new LiferayUserManager();
MessageManagerClient client = AbstractPlugin.messages().build();
@@ -262,8 +263,8 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
@Override
public String getAttachmentDownloadURL(String itemId) {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
_log.info("getAttachmentDownloadURL for user "+user.getUsername() + " file id="+itemId);
try {
@@ -278,8 +279,8 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
}
@Override
public boolean saveAttachmentToWorkspaceFolder(String itemId, String destinationFolderId) {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
try {
StorageHubClient shc = new StorageHubClient();
@@ -294,9 +295,9 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
@Override
public boolean deleteMessageById(String messageId, boolean sent) {
- GCubeUser user = getCurrentUser(getThreadLocalRequest());
+ GCubeUser user = getCurrentUser(requestRetriever.getRequest());
_log.debug("deleteMessageById reading user from liferay session = " +user.getFullname() + " m id = " + messageId);
- String scope = pContext.getCurrentScope(getThreadLocalRequest());
+ String scope = pContext.getCurrentScope(requestRetriever.getRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
try {
MessageManagerClient client = AbstractPlugin.messages().build();
@@ -313,7 +314,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
public ArrayList searchUsers(String keyword) {
ArrayList toReturn = new ArrayList<>();
if (isWithinPortal()) {
- long gatewayGroupId = pContext.getCurrentGroupId(this.getThreadLocalRequest());
+ long gatewayGroupId = pContext.getCurrentGroupId(this.requestRetriever.getRequest());
try {
_log.debug("Searching " + keyword);
List users = um.searchUsersByGroup(keyword, gatewayGroupId);
@@ -357,7 +358,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
@Override
public boolean sendToById(ArrayList recipientIds, ArrayList listAttachmentsId, String subject, String body) {
PortalContext pContext = PortalContext.getConfiguration();
- GCubeUser currentUser = pContext.getCurrentUser(getThreadLocalRequest());
+ GCubeUser currentUser = pContext.getCurrentUser(requestRetriever.getRequest());
MessageManagerClient client = AbstractPlugin.messages().build();
try {
_log.info("Sending message to: " + recipientIds.toString());
@@ -375,7 +376,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
List recipients = getUsersbyUserId(recipientIds);
- NotificationsManager nm = new ApplicationNotificationsManager(new SocialNetworkingSite(getThreadLocalRequest()), pContext.getCurrentScope(getThreadLocalRequest()),
+ NotificationsManager nm = new ApplicationNotificationsManager(new SocialNetworkingSite(requestRetriever.getRequest()), pContext.getCurrentScope(requestRetriever.getRequest()),
new SocialNetworkingUser(
currentUser.getUsername(),
currentUser.getEmail(),
@@ -472,7 +473,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
public CurrUserAndPortalUsersWrapper getWorkspaceUsers() {
PortalContext pContext = PortalContext.getConfiguration();
- GCubeUser currentUser = pContext.getCurrentUser(getThreadLocalRequest());
+ GCubeUser currentUser = pContext.getCurrentUser(requestRetriever.getRequest());
_log.debug("trying to get WorkspaceUsers ..");
WSUser currUser = null;
ArrayList portalUsers = new ArrayList();
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/server/FakeConvServiceImpl.java b/src/main/java/org/gcube/portets/user/message_conversations/server/FakeConvServiceImpl.java
new file mode 100644
index 0000000..14daf64
--- /dev/null
+++ b/src/main/java/org/gcube/portets/user/message_conversations/server/FakeConvServiceImpl.java
@@ -0,0 +1,144 @@
+package org.gcube.portets.user.message_conversations.server;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.gcube.portets.user.message_conversations.client.MessageService;
+import org.gcube.portets.user.message_conversations.shared.ConvMessage;
+import org.gcube.portets.user.message_conversations.shared.CurrUserAndPortalUsersWrapper;
+import org.gcube.portets.user.message_conversations.shared.MessageUserModel;
+import org.gcube.portets.user.message_conversations.shared.WSUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FakeConvServiceImpl implements MessageService{
+
+ private static final Logger _log = LoggerFactory.getLogger(FakeConvServiceImpl.class);
+
+
+ ArrayList receivedMessages;
+ ArrayList sentMessages;
+
+ Map receivedMessagesMap = new HashMap<>();
+ Map sentMessagesMap = new HashMap<>();
+
+
+ final int messageReceivedNumberToTest = 200;
+ final int messageSentNumberToTest = 11;
+
+ public FakeConvServiceImpl() {
+ Calendar cal = Calendar.getInstance();
+ MessageUserModel mu = new MessageUserModel("andrea.rossi");
+
+ List recipients = Arrays.asList(new MessageUserModel("lucio.lelii"));
+
+ String prefix ="received";
+ receivedMessages = new ArrayList<>();
+ for (int i =0; i();
+ for (int i =0; i getMessages(boolean sent) {
+ if (sent) {
+ _log.info("sent messages call with sent {}",sent);
+ return new ArrayList<>(sentMessages);
+ }
+ else {
+ _log.info("received messages call with sent {}",sent);
+ return new ArrayList<>(receivedMessages);
+ }
+ }
+
+ @Override
+ public ConvMessage getMessageById(String messageId, boolean sent) {
+ _log.info("get messageById called with id {} and sent {}", messageId,sent );
+
+ ConvMessage msg;
+ if (sent)
+ msg = sentMessagesMap.get(messageId);
+ else msg = receivedMessagesMap.get(messageId);
+ msg.setRead(true);
+ return msg;
+ }
+
+ @Override
+ public CurrUserAndPortalUsersWrapper getWorkspaceUsers() {
+ _log.debug("trying to get WorkspaceUsers ..");
+ WSUser currUser = new WSUser("andrea.rossi", "andrea.rossi", "Andrea Rossi", "m.assante@gmail.com");
+ ArrayList portalUsers = new ArrayList();
+
+ for (int i = 0; i < 10; i++) {
+ portalUsers.add(new WSUser(""+i, "username"+i, "userGetFullname()"+i, "user.getEmail()"+i));
+ }
+
+ CurrUserAndPortalUsersWrapper toReturn = new CurrUserAndPortalUsersWrapper(currUser, portalUsers);
+ return toReturn;
+ }
+
+ @Override
+ public ArrayList getUsersInfo(String[] usernames) {
+ return new ArrayList<>(Arrays.asList(new WSUser("andrea.rossi", "andrea.rossi", "Andrea Rossi", "m.assante@gmail.com")));
+ }
+
+ @Override
+ public ArrayList searchUsers(String keyword) {
+ return new ArrayList<>(Arrays.asList(new WSUser("andrea.rossi", "andrea.rossi", "Andrea Rossi", "m.assante@gmail.com")));
+
+ }
+
+ @Override
+ public boolean sendToById(ArrayList recipientIds, ArrayList listAttachmentsId, String subject,
+ String body) {
+ _log.info("email sent");
+ return true;
+ }
+
+ @Override
+ public boolean deleteMessageById(String messageId, boolean sent) {
+ _log.info("message deleted");
+ return true;
+ }
+
+ @Override
+ public String getAttachmentDownloadURL(String itemId) {
+ return "www.google.it";
+ }
+
+ @Override
+ public boolean saveAttachmentToWorkspaceFolder(String itemId, String destinationFolderId) {
+ _log.info("attachment saved");
+ return true;
+ }
+
+ @Override
+ public boolean markMessageUnread(String messageId, boolean sent) {
+ _log.info("message marked");
+ return true;
+ }
+
+
+
+}
diff --git a/src/main/java/org/gcube/portets/user/message_conversations/server/HttpServletRetriever.java b/src/main/java/org/gcube/portets/user/message_conversations/server/HttpServletRetriever.java
new file mode 100644
index 0000000..e5befe1
--- /dev/null
+++ b/src/main/java/org/gcube/portets/user/message_conversations/server/HttpServletRetriever.java
@@ -0,0 +1,8 @@
+package org.gcube.portets.user.message_conversations.server;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface HttpServletRetriever {
+
+ HttpServletRequest getRequest();
+}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index b256492..0c7b12f 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -7,7 +7,7 @@
convServlet
- org.gcube.portets.user.message_conversations.server.ConvServiceImpl
+ org.gcube.portets.user.message_conversations.server.ConvService
@@ -20,7 +20,7 @@
com.liferay.portal.kernel.servlet.PortalDelegateServlet
servlet-class
- org.gcube.portets.user.message_conversations.server.ConvServiceImpl
+ org.gcube.portets.user.message_conversations.server.ConvService
sub-context