You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2009/10/02 14:22:29 UTC
svn commit: r820986 [1/2] - in /james/hupa/trunk: ./
client/src/main/java/org/apache/hupa/client/
client/src/main/java/org/apache/hupa/client/mvp/
server/src/main/java/org/apache/hupa/server/
server/src/main/java/org/apache/hupa/server/guice/ server/sr...
Author: norman
Date: Fri Oct 2 12:22:26 2009
New Revision: 820986
URL: http://svn.apache.org/viewvc?rev=820986&view=rev
Log:
Remove usage of Session and LoginSession (HUPA-32)
Detect server status and reuse server session (HUPA-30)
Support demo mode (HUPA-31)
*** All three patches were contributed by Manuel Carrasco. Thx a bunch:) ***
Added:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java
Removed:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginSessionHandler.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/LoginSession.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/Session.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
james/hupa/trunk/pom.xml
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/User.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteFolder.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchFolders.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessages.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/FetchRecentMessages.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetails.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/LoginUser.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUser.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/Noop.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/NoopResult.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/RawMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ReplyMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/SendMessage.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/SetFlag.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/TagMessage.java
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,80 @@
+package org.apache.hupa.client;
+
+import net.customware.gwt.dispatch.client.DispatchAsync;
+import net.customware.gwt.presenter.client.EventBus;
+
+import org.apache.hupa.shared.events.LogoutEvent;
+import org.apache.hupa.shared.events.ServerStatusEvent;
+import org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus;
+import org.apache.hupa.shared.rpc.CheckSession;
+import org.apache.hupa.shared.rpc.CheckSessionResult;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.inject.Inject;
+
+public abstract class HupaCallback<T> implements AsyncCallback<T> {
+
+ private DispatchAsync dispatcher = null;
+ private EventBus eventBus = null;
+ private ServerStatusEvent available = new ServerStatusEvent(ServerStatus.Available);
+ private ServerStatusEvent unavailable = new ServerStatusEvent(ServerStatus.Unavailable);
+
+ @Inject
+ public HupaCallback(DispatchAsync dispatcher, EventBus bus) {
+ this.dispatcher = dispatcher;
+ this.eventBus = bus;
+ }
+
+ /**
+ * If you override this method, remember to call super.onFailure()
+ */
+ public void onFailure(final Throwable originalCaught) {
+ // Server's response is invalid due to:
+ // server unaccessible, session error or server exception
+ dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
+ public void onFailure(Throwable caught) {
+ // The server is unaccessible
+ eventBus.fireEvent(unavailable);
+ callbackError(originalCaught);
+ }
+ public void onSuccess(CheckSessionResult result) {
+ if (!result.isValid()) {
+ // Server's connection is fine, but the user has not a valid session
+ eventBus.fireEvent(new LogoutEvent(null));
+ } else {
+ // Server's connection is fine, and the user has a valid session
+ // So the original action failed because a server's exception
+ eventBus.fireEvent(available);
+ }
+ callbackError(originalCaught);
+ }
+ });
+ }
+
+ /**
+ * If you override this method, remember to call super.onSuccess()
+ */
+ public void onSuccess(T result) {
+ // Server's response is valid,
+ eventBus.fireEvent(available);
+ // Execute the original method
+ callback(result);
+ }
+
+ /**
+ * The callback code
+ * @param result
+ */
+ public abstract void callback(T result);
+
+ /**
+ * The callback code in the case of error
+ * Override this method, if you need this feature.
+ *
+ * @param result
+ */
+ public void callbackError(Throwable caught) {
+ GWT.log("Error", caught);
+ }
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java Fri Oct 2 12:22:26 2009
@@ -27,16 +27,19 @@
import net.customware.gwt.presenter.client.widget.WidgetDisplay;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
-import org.apache.hupa.client.SessionAsyncCallback;
+import org.apache.hupa.client.HupaCallback;
import org.apache.hupa.shared.data.User;
import org.apache.hupa.shared.events.LoginEvent;
import org.apache.hupa.shared.events.LoginEventHandler;
import org.apache.hupa.shared.events.LogoutEvent;
import org.apache.hupa.shared.events.LogoutEventHandler;
+import org.apache.hupa.shared.events.ServerStatusEvent;
+import org.apache.hupa.shared.events.ServerStatusEventHandler;
import org.apache.hupa.shared.events.SessionExpireEvent;
import org.apache.hupa.shared.events.SessionExpireEventHandler;
-import org.apache.hupa.shared.rpc.LoginSession;
-import org.apache.hupa.shared.rpc.LoginUserResult;
+import org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus;
+import org.apache.hupa.shared.rpc.CheckSession;
+import org.apache.hupa.shared.rpc.CheckSessionResult;
import org.apache.hupa.shared.rpc.LogoutUser;
import org.apache.hupa.shared.rpc.LogoutUserResult;
import org.apache.hupa.shared.rpc.Noop;
@@ -46,7 +49,6 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.ClosingEvent;
@@ -58,19 +60,23 @@
public class AppPresenter extends WidgetPresenter<AppPresenter.Display>{
+ private static final int NOOP_INTERVAL = 15000;
+
public interface Display extends WidgetDisplay {
public HasClickHandlers getLogoutClick();
public void showTopNavigation(boolean show);
public void setMain(Widget w);
public HasText getUserText();
+ public void setServerStatus(ServerStatus status);
}
private LoginPresenter loginPresenter;
private MainPresenter mainPresenter;
- private Timer noopTimer;
+ private Timer noopTimer = new NoopTimer();
+
private DispatchAsync dispatcher;
private User user;
-
+ private ServerStatus serverStatus = ServerStatus.Available;
@Inject
public AppPresenter(Display display, DispatchAsync dispatcher,final EventBus bus, LoginPresenter loginPresenter, MainPresenter mainPresenter) {
@@ -93,7 +99,6 @@
loginPresenter.bind();
display.showTopNavigation(false);
display.setMain(loginPresenter.getDisplay().asWidget());
-
}
@Override
@@ -109,37 +114,17 @@
public void onLogin(LoginEvent event) {
user = event.getUser();
display.getUserText().setText(event.getUser().getName());
-
- Cookies.setCookie("sessionId", user.getSessionId());
- noopTimer = new Timer() {
-
- @Override
- public void run() {
- dispatcher.execute(new Noop(user.getSessionId()), new SessionAsyncCallback<NoopResult>(new AsyncCallback<NoopResult>() {
-
- public void onFailure(Throwable caught) {
- GWT.log("Error while NOOP", caught);
- }
-
- public void onSuccess(NoopResult result) {
- }
-
- }, eventBus, user));
- }
-
- };
- noopTimer.scheduleRepeating(30000);
+ noopTimer.scheduleRepeating(NOOP_INTERVAL);
showMain(user);
}
+
}));
+
registerHandler(eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
public void onLogout(LogoutEvent event) {
- Cookies.removeCookie("sessionId");
showLogin();
- if (noopTimer != null) {
- noopTimer.cancel();
- }
+ noopTimer.cancel();
}
}));
@@ -153,7 +138,11 @@
registerHandler(Window.addWindowClosingHandler(new ClosingHandler() {
public void onWindowClosing(ClosingEvent event) {
- doLogout();
+ // TODO: When the application is loaded, it checks if there is already a valid session in the server.
+ // Executing here doLogout makes the application remove the user session when
+ // the user closes the window or reloads the application.
+ // It is better let the user decide when to logout instead of do it automatically
+ // doLogout();
}
}));
@@ -164,54 +153,24 @@
}
}));
-
- checkForCookie();
- }
-
- private void doLogout() {
- if (user != null) {
- dispatcher.execute(new LogoutUser(user.getSessionId()), new AsyncCallback<LogoutUserResult>() {
-
- public void onFailure(Throwable caught) {
- GWT.log("ERROR",caught);
- }
-
- public void onSuccess(LogoutUserResult result) {
- Cookies.removeCookie("sessionId");
-
- eventBus.fireEvent(new LogoutEvent(result.getUser()));
- }
+ registerHandler(eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() {
- });
- }
- }
-
-
- private void checkForCookie() {
- String sessionId = Cookies.getCookie("sessionId");
- if (sessionId != null) {
- dispatcher.execute(new LoginSession(sessionId), new AsyncCallback<LoginUserResult>() {
-
- public void onFailure(Throwable caught) {
- // show login and remove cookie
- Cookies.removeCookie("sessionId");
- showLogin();
-
+ public void onServerStatusChange(ServerStatusEvent event) {
+ if (event.getStatus() != serverStatus) {
+ GWT.log("Server status has hanged from " + serverStatus + " to" + event.getStatus(), null);
+ serverStatus = event.getStatus();
+ display.setServerStatus(serverStatus);
}
+ }
+
+ }));
- public void onSuccess(LoginUserResult result) {
- eventBus.fireEvent(new LoginEvent(result.getUser()));
- }
-
- });
- } else {
- showLogin();
- }
+ checkSession();
}
+
@Override
protected void onPlaceRequest(PlaceRequest request) {
// TODO Auto-generated method stub
-
}
@Override
@@ -229,4 +188,50 @@
// TODO Auto-generated method stub
}
+
+ private void doLogout() {
+ if (user != null) {
+ dispatcher.execute(new LogoutUser(), new HupaCallback<LogoutUserResult>(dispatcher, eventBus) {
+ public void callback(LogoutUserResult result) {
+ eventBus.fireEvent(new LogoutEvent(result.getUser()));
+ }
+ });
+ }
+ }
+
+ private void checkSession() {
+ dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
+ public void onFailure(Throwable caught) {
+ serverStatus = ServerStatus.Unavailable;
+ display.setServerStatus(serverStatus);
+ showLogin();
+ }
+ public void onSuccess(CheckSessionResult result) {
+ serverStatus = ServerStatus.Available;
+ display.setServerStatus(serverStatus);
+ if (result.isValid()) {
+ eventBus.fireEvent(new LoginEvent(result.getUser()));
+ } else {
+ showLogin();
+ }
+ }
+ });
+ }
+
+ private class NoopTimer extends Timer {
+ boolean running = false;
+ public void run() {
+ if (!running) {
+ running = true;
+ dispatcher.execute(new Noop(), new HupaCallback<NoopResult>(dispatcher, eventBus) {
+ public void callback(NoopResult result) {
+ running = false;
+ // Noop
+ // TODO: put code here to read new events from server (new messages ...)
+ }
+ });
+ }
+ }
+ };
+
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java Fri Oct 2 12:22:26 2009
@@ -20,6 +20,7 @@
package org.apache.hupa.client.mvp;
import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -29,6 +30,7 @@
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -42,6 +44,27 @@
private HTML dummy = new HTML(" ");
private Label userName = new Label();
private HorizontalPanel loginInfoPanel = new HorizontalPanel();
+ private ServerStatusPanel serverStatusPanel = new ServerStatusPanel();
+
+ private class ServerStatusPanel extends PopupPanel {
+ HTML messageLabel = new HTML("");
+ ServerStatusPanel() {
+ add(messageLabel);
+ addStyleName("hupa-server-status");
+ setPopupPosition(400, 1);
+ setAnimationEnabled(true);
+ }
+ // TODO: i18n (take a look to gmail's messages when the server is unacessible)
+ public void setStatus(ServerStatus status) {
+ if (status == ServerStatus.Available) {
+ messageLabel.setHTML("<h2>Server is available now.</h2>");
+ hide();
+ } else {
+ messageLabel.setHTML("<h2>Server unavailable</h2>");
+ show();
+ }
+ }
+ }
public AppView() {
VerticalPanel vPanel = new VerticalPanel();
@@ -138,4 +161,8 @@
return userName;
}
+ public void setServerStatus(ServerStatus status) {
+ serverStatusPanel.setStatus(status);
+ }
+
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java Fri Oct 2 12:22:26 2009
@@ -103,7 +103,7 @@
}
protected void loadTreeItems() {
- dispatcher.execute(new FetchFolders(user.getSessionId()), new SessionAsyncCallback<FetchFoldersResult>(new DisplayCallback<FetchFoldersResult>(display) {
+ dispatcher.execute(new FetchFolders(), new SessionAsyncCallback<FetchFoldersResult>(new DisplayCallback<FetchFoldersResult>(display) {
@Override
protected void handleFailure(Throwable e) {
@@ -145,7 +145,7 @@
IMAPFolder iFolder = new IMAPFolder((String)event.getOldValue());
final String newName = (String)event.getNewValue();
if (iFolder.getFullName().equalsIgnoreCase(newName) == false) {
- dispatcher.execute(new RenameFolder(user.getSessionId(), iFolder, newName), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new RenameFolder(iFolder, newName), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
record.cancelEdit();
@@ -284,7 +284,7 @@
registerHandler(display.getDeleteConfirmClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- dispatcher.execute(new DeleteFolder(user.getSessionId(),folder), new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new DeleteFolder(folder), new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
GWT.log("ERROR while deleting", caught);
@@ -308,7 +308,7 @@
final IMAPTreeItem item = (IMAPTreeItem)event.getSource();
final String newValue = (String) event.getNewValue();
if (event.getEventType().equals(EditEvent.EventType.Stop)) {
- dispatcher.execute(new CreateFolder(user.getSessionId(),new IMAPFolder(newValue.trim())), new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new CreateFolder(new IMAPFolder(newValue.trim())), new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
GWT.log("Error while create folder",caught);
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java Fri Oct 2 12:22:26 2009
@@ -126,7 +126,7 @@
public void onMoveMessageHandler(MoveMessageEvent event) {
final Message message = event.getMessage();
- dispatcher.execute(new MoveMessage(event.getUser().getSessionId(),event.getOldFolder(),event.getNewFolder(),message.getUid()), new SessionAsyncCallback<MoveMessageResult>(new AsyncCallback<MoveMessageResult>() {
+ dispatcher.execute(new MoveMessage(event.getOldFolder(), event.getNewFolder(), message.getUid()), new SessionAsyncCallback<MoveMessageResult>(new AsyncCallback<MoveMessageResult>() {
public void onFailure(Throwable caught) {
GWT.log("ERROR while moving",caught);
@@ -199,7 +199,7 @@
registerHandler(display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- dispatcher.execute(new DeleteAllMessages(user.getSessionId(),folder), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
+ dispatcher.execute(new DeleteAllMessages(folder), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
public void onFailure(Throwable caught) {
GWT.log("E=", caught);
@@ -225,7 +225,7 @@
selectedMessages.remove(m);
}
}
- dispatcher.execute(new SetFlag(user.getSessionId(), folder, IMAPFlag.SEEN, true, uids), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, uids), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
GWT.log("ERR=", caught);
}
@@ -262,7 +262,7 @@
}
}
- dispatcher.execute(new SetFlag(user.getSessionId(), folder, IMAPFlag.SEEN, false, uids), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, false, uids), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
GWT.log("ERR=", caught);
}
@@ -312,11 +312,10 @@
for (int i = 0; i < selectedMessages.size(); i++) {
uids.add(selectedMessages.get(i).getUid());
}
- dispatcher.execute(new DeleteMessageByUid(user.getSessionId(),folder,uids), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
+ dispatcher.execute(new DeleteMessageByUid(folder,uids), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
-
}
public void onSuccess(DeleteMessageResult result) {
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Fri Oct 2 12:22:26 2009
@@ -374,7 +374,7 @@
});
}
- dispatcher.execute(new FetchMessages(user.getSessionId(),folder,request.getStartRow(),request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
+ dispatcher.execute(new FetchMessages(folder, request.getStartRow(), request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
public void onFailure(Throwable caught) {
callback.onFailure(caught);
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Fri Oct 2 12:22:26 2009
@@ -74,7 +74,7 @@
public HasClickHandlers getReplyAllButtonClick();
public HasClickHandlers getForwardButtonClick();
public HasClickHandlers getBackButtonClick();
- public void setAttachments(List<MessageAttachment> attachements, String sessionId, String folder, long uid);
+ public void setAttachments(List<MessageAttachment> attachements, String folder, long uid);
}
public static final Place PLACE = new Place("IMAPMessage");
@@ -113,7 +113,7 @@
con = Util.toHtml(con);
}
display.getContent().setHTML(con);
- display.setAttachments(messageDetails.getMessageAttachments(),user.getSessionId(), folder.getFullName(),message.getUid());
+ display.setAttachments(messageDetails.getMessageAttachments(), folder.getFullName(),message.getUid());
}
@Override
@@ -128,7 +128,7 @@
public void onClick(ClickEvent event) {
ArrayList<Long> uidList = new ArrayList<Long>();
uidList.add(message.getUid());
- dispatcher.execute(new DeleteMessageByUid(user.getSessionId(),folder,uidList), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
+ dispatcher.execute(new DeleteMessageByUid(folder, uidList), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
@@ -177,7 +177,7 @@
registerHandler(display.getShowRawMessageClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- dispatcher.executeWithCache(new RawMessage(user.getSessionId(),folder,message.getUid()), new SessionAsyncCallback<RawMessageResult>(new DisplayCallback<RawMessageResult>(display) {
+ dispatcher.executeWithCache(new RawMessage(folder, message.getUid()), new SessionAsyncCallback<RawMessageResult>(new DisplayCallback<RawMessageResult>(display) {
@Override
protected void handleFailure(Throwable e) {
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Fri Oct 2 12:22:26 2009
@@ -218,7 +218,7 @@
}
public void setAttachments(List<MessageAttachment> attachements,
- final String sessionUid, final String folder,
+ final String folder,
final long uid) {
attachments.clear();
if (attachements != null) {
@@ -233,8 +233,7 @@
.getElement(), "src", GWT.getModuleBaseURL()
+ "downloadAttachmentServlet?attachment_name="
+ a.getName() + "&folder_name=" + folder
- + "&message_uuid="
- + uid + "&sessionId=" + sessionUid);
+ + "&message_uuid=" + uid);
}
});
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java Fri Oct 2 12:22:26 2009
@@ -59,7 +59,6 @@
VerticalPanel vPanel = new VerticalPanel();
vPanel.setSpacing(5);
- vPanel.setWidth("100%");
vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
vPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
@@ -84,10 +83,8 @@
usernameTextBox.addKeyUpHandler(this);
usernameTextBox.setFocus(true);
- usernameTextBox.setWidth("150px");
passwordTextBox.addKeyUpHandler(this);
- passwordTextBox.setWidth("150px");
formPanel.add(grid);
formPanel.add(loading);
@@ -105,13 +102,18 @@
errorLabel.setStyleName("hupa-ErrorLabel");
formPanel.add(errorLabel);
- RoundedPanel rPanel = new RoundedPanel(RoundedPanel.ALL,1);
- rPanel.setBorder();
- rPanel.setWidth("250px");
+ RoundedPanel rPanel = new RoundedPanel(RoundedPanel.ALL,1);
+ rPanel.setBorder();
rPanel.add(formPanel);
vPanel.add(rPanel);
vPanel.add(loading);
initWidget(vPanel);
+
+ // TODO: move width to style sheet to be customizable
+ vPanel.setWidth("100%");
+ rPanel.setWidth("400px");
+ usernameTextBox.setWidth("250px");
+ passwordTextBox.setWidth("250px");
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Fri Oct 2 12:22:26 2009
@@ -207,7 +207,7 @@
} else {
decreaseUnseen = false;
}
- cachingDispatcher.executeWithCache(new GetMessageDetails(event.getUser().getSessionId(),event.getFolder(),message.getUid()), new SessionAsyncCallback<GetMessageDetailsResult>(new DisplayCallback<GetMessageDetailsResult>(display) {
+ cachingDispatcher.executeWithCache(new GetMessageDetails(event.getFolder(),message.getUid()), new SessionAsyncCallback<GetMessageDetailsResult>(new DisplayCallback<GetMessageDetailsResult>(display) {
@Override
protected void handleFailure(Throwable e) {
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java Fri Oct 2 12:22:26 2009
@@ -204,7 +204,7 @@
message.setMessageAttachments(aList);
if (type.equals(Type.NEW)) {
- dispatcher.execute(new SendMessage(user.getSessionId(),message), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new SendMessage(message), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
@@ -218,7 +218,7 @@
}, eventBus,user));
} else if(type.equals(Type.FORWARD)) {
- dispatcher.execute(new ForwardMessage(user.getSessionId(),message,folder,oldmessage.getUid()), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new ForwardMessage(message, folder, oldmessage.getUid()), new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
@@ -234,7 +234,7 @@
} else if(type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
boolean replyAll = type.equals(Type.REPLY_ALL);
- dispatcher.execute(new ReplyMessage(user.getSessionId(),message,folder,oldmessage.getUid(),replyAll),new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
+ dispatcher.execute(new ReplyMessage(message, folder, oldmessage.getUid(), replyAll),new SessionAsyncCallback<EmptyResult>(new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
Modified: james/hupa/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/pom.xml?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/pom.xml (original)
+++ james/hupa/trunk/pom.xml Fri Oct 2 12:22:26 2009
@@ -133,7 +133,7 @@
</pluginRepositories>
<properties>
- <gwtVersion>1.7.1</gwtVersion>
+ <gwtVersion>1.7.0</gwtVersion>
</properties>
<build>
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java Fri Oct 2 12:22:26 2009
@@ -39,6 +39,8 @@
@Singleton
public class InMemoryIMAPStoreCache implements IMAPStoreCache{
+ public static final String DEMO_MODE = "demo-mode";
+
private Properties props = new Properties();
private Session session;
protected Log logger;
@@ -77,7 +79,7 @@
* (non-Javadoc)
* @see org.apache.hupa.server.IMAPStoreCache#get(java.lang.String, java.lang.String)
*/
- public synchronized IMAPStore get(String username,String password) throws MessagingException {
+ public synchronized IMAPStore get(String username, String password) throws MessagingException {
CachedIMAPStore cstore = pool.get(username);
if (cstore == null) {
logger.debug("No cached store found for user " +username);
@@ -92,9 +94,18 @@
}
if (cstore.getStore().isConnected() == false) {
- cstore.getStore().connect(address, port, username,password);
+ // TODO: Full demo-mode able to mock all actions (folders, messages ...)
+ // setting IMAPServerAddress=demo-mode allows login in the application using
+ // any user and password. It is thought to play the client application without
+ // having any imap/smtp server installed. Very useful while developing and testing.
+ try {
+ cstore.getStore().connect(address, port, username, password);
+ } catch (MessagingException e) {
+ if (!DEMO_MODE.equals(this.address))
+ throw (e);
+ }
}
- pool.put(username,cstore);
+ pool.put(username, cstore);
return cstore.getStore();
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java Fri Oct 2 12:22:26 2009
@@ -31,6 +31,7 @@
import org.apache.hupa.server.FileItemRegistry;
import org.apache.hupa.server.IMAPStoreCache;
import org.apache.hupa.server.InMemoryIMAPStoreCache;
+import org.apache.hupa.server.handler.CheckSessionHandler;
import org.apache.hupa.server.handler.CreateFolderHandler;
import org.apache.hupa.server.handler.DeleteAllMessagesHandler;
import org.apache.hupa.server.handler.DeleteFolderHandler;
@@ -41,7 +42,6 @@
import org.apache.hupa.server.handler.ForwardMessageHandler;
import org.apache.hupa.server.handler.GetMessageDetailsHandler;
import org.apache.hupa.server.handler.GetRawMessageHandler;
-import org.apache.hupa.server.handler.LoginSessionHandler;
import org.apache.hupa.server.handler.LoginUserHandler;
import org.apache.hupa.server.handler.LogoutUserHandler;
import org.apache.hupa.server.handler.MoveMessageHandler;
@@ -80,6 +80,7 @@
@Override
protected void configureHandlers() {
+ bindHandler(CheckSessionHandler.class);
bindHandler(LoginUserHandler.class);
bindHandler(FetchFoldersHandler.class);
bindHandler(FetchMessagesHandler.class);
@@ -92,7 +93,6 @@
bindHandler(ReplyMessageHandler.class);
bindHandler(ForwardMessageHandler.class);
bindHandler(NoopHandler.class);
- bindHandler(LoginSessionHandler.class);
bindHandler(MoveMessageHandler.class);
bindHandler(RenameFolderHandler.class);
bindHandler(DeleteFolderHandler.class);
@@ -116,7 +116,10 @@
Names.bindProperties(binder(), properties);
} catch (Exception e) {
- throw new RuntimeException("Unable to to configure", e);
+ throw new RuntimeException("Unable to to configure hupa server," +
+ "\nmake sure that you have a valid /etc/default/hupa file" +
+ "\nor the web container has been started with the appropriate parameter:" +
+ " -Dhupa.config.file=your_hupa_properties_file", e);
}
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -58,7 +58,7 @@
public DeleteMessageResult executeInternal(Action action,
ExecutionContext context) throws ActionException {
org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
- User user = getUser(action.getSessionId());
+ User user = getUser();
try {
IMAPStore store = cache.get(user);
com.sun.mail.imap.IMAPFolder f = (com.sun.mail.imap.IMAPFolder) store
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java Fri Oct 2 12:22:26 2009
@@ -58,7 +58,7 @@
@Override
protected FetchMessagesResult executeInternal(A action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
IMAPFolder folder = action.getFolder();
com.sun.mail.imap.IMAPFolder f = null;
try {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -273,7 +273,7 @@
Message message = createMessage(session, action);
message = fillBody(message,action);
- sendMessage(getUser(action.getSessionId()),session, message);
+ sendMessage(getUser(),session, message);
} catch (AddressException e) {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java Fri Oct 2 12:22:26 2009
@@ -22,25 +22,25 @@
import javax.servlet.http.HttpSession;
+import net.customware.gwt.dispatch.server.ActionHandler;
+import net.customware.gwt.dispatch.server.ExecutionContext;
+import net.customware.gwt.dispatch.shared.Action;
+import net.customware.gwt.dispatch.shared.ActionException;
+import net.customware.gwt.dispatch.shared.Result;
+
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
import org.apache.hupa.shared.data.User;
import org.apache.hupa.shared.exception.InvalidSessionException;
-import org.apache.hupa.shared.rpc.Session;
import com.google.inject.Inject;
import com.google.inject.Provider;
-
-import net.customware.gwt.dispatch.server.ActionHandler;
-import net.customware.gwt.dispatch.server.ExecutionContext;
-import net.customware.gwt.dispatch.shared.ActionException;
-import net.customware.gwt.dispatch.shared.Result;
/**
* Abstract class which take care of checking if the session is still valid before
* executing the handler
*
*/
-public abstract class AbstractSessionHandler<A extends Session<R>,R extends Result> implements ActionHandler<A, R> {
+public abstract class AbstractSessionHandler<A extends Action<R>,R extends Result> implements ActionHandler<A, R> {
protected final Provider<HttpSession> sessionProvider;
protected final IMAPStoreCache cache;
@@ -57,10 +57,10 @@
* Check if the session is valid, if that is true execute executeInternal method
*/
public R execute(A action, ExecutionContext context) throws ActionException {
- if (isValidSession(action.getSessionId())) {
+ if (isValidSession()) {
return executeInternal(action, context);
} else {
- throw new InvalidSessionException("Invalid SessionId=" +action.getSessionId());
+ throw new InvalidSessionException("Invalid Session");
}
}
@@ -84,11 +84,9 @@
* @param sessionId
* @return isValid
*/
- protected boolean isValidSession(String sessionId) {
- if (sessionProvider.get().getId().equals(sessionId)) {
- return true;
- }
- return false;
+ protected boolean isValidSession() {
+ // TODO: MCM delete or implement this method
+ return true;
}
/**
@@ -98,10 +96,10 @@
* @return user
* @throws ActionException
*/
- protected User getUser(String sessionId) throws ActionException{
+ protected User getUser() throws ActionException{
User user = (User) sessionProvider.get().getAttribute("user");
if (user == null) {
- throw new InvalidSessionException("User not found in session with id " + sessionId);
+ throw new InvalidSessionException("User not found in session with id " + sessionProvider.get().getId());
} else {
return user;
}
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,71 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+
+package org.apache.hupa.server.handler;
+
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.server.ActionHandler;
+import net.customware.gwt.dispatch.server.ExecutionContext;
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.CheckSession;
+import org.apache.hupa.shared.rpc.CheckSessionResult;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * Handler for asking the server if the session is valid
+ */
+public class CheckSessionHandler implements ActionHandler<CheckSession, CheckSessionResult> {
+
+ protected final Provider<HttpSession> sessionProvider;
+ protected final Log logger;
+
+ @Inject
+ public CheckSessionHandler(Log logger, Provider<HttpSession> provider) {
+ this.sessionProvider = provider;
+ this.logger = logger;
+ }
+
+ public CheckSessionResult execute(CheckSession arg0, ExecutionContext arg1) throws ActionException {
+ CheckSessionResult ret = new CheckSessionResult();
+ try {
+ User user = (User) sessionProvider.get().getAttribute("user");
+ if (user != null && user.getAuthenticated())
+ ret.setUser(user);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return ret;
+ }
+
+ public Class<CheckSession> getActionType() {
+ return CheckSession.class;
+ }
+
+ public void rollback(CheckSession arg0, CheckSessionResult arg1, ExecutionContext arg2) throws ActionException {
+ }
+
+
+}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java Fri Oct 2 12:22:26 2009
@@ -52,7 +52,7 @@
@Override
protected EmptyResult executeInternal(CreateFolder action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
IMAPFolder folder = action.getFolder();
try {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java Fri Oct 2 12:22:26 2009
@@ -50,7 +50,7 @@
*/
protected Message[] getMessagesToDelete(DeleteAllMessages action)
throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
try {
logger.info("Delete all messages in folder " + action.getFolder() + " for user " + user);
IMAPStore store =cache.get(user);
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java Fri Oct 2 12:22:26 2009
@@ -52,7 +52,7 @@
@Override
protected EmptyResult executeInternal(DeleteFolder action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
IMAPFolder folder = action.getFolder();
try {
IMAPStore store = cache.get(user);
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java Fri Oct 2 12:22:26 2009
@@ -65,7 +65,7 @@
throws ActionException {
IMAPFolder folder = action.getFolder();
ArrayList<Long> uids = action.getMessageUids();
- User user = getUser(action.getSessionId());
+ User user = getUser();
logger.info("Deleting messages with uids " + action.getMessageUids()
+ " for user " + user + " in folder " + action.getFolder());
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java Fri Oct 2 12:22:26 2009
@@ -57,7 +57,7 @@
*/
public FetchFoldersResult executeInternal(FetchFolders action, ExecutionContext arg1)
throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
ArrayList<IMAPFolder> fList = new ArrayList<IMAPFolder>();
try {
// get the store for the user
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -98,7 +98,7 @@
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
- IMAPStore store = cache.get(getUser(action.getSessionId()));
+ IMAPStore store = cache.get(getUser());
IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
if (folder.isOpen() == false) {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java Fri Oct 2 12:22:26 2009
@@ -68,8 +68,7 @@
*/
public GetMessageDetailsResult executeInternal(GetMessageDetails action,
ExecutionContext arg1) throws ActionException {
- return new GetMessageDetailsResult(exposeMessage(getUser(action
- .getSessionId()), action.getFolder(), action.getUid()));
+ return new GetMessageDetailsResult(exposeMessage(getUser(), action.getFolder(), action.getUid()));
}
/*
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -50,7 +50,7 @@
@Override
protected RawMessageResult executeInternal(RawMessage action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
long uid = action.getUid();
org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
try {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java Fri Oct 2 12:22:26 2009
@@ -77,7 +77,6 @@
user.setSettings(settingsProvider.get());
// store the session id for later usage
HttpSession session = sessionProvider.get();
- user.setSessionId(session.getId());
session.setAttribute("user", user);
return new LoginUserResult(user);
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java Fri Oct 2 12:22:26 2009
@@ -53,7 +53,7 @@
*/
public LogoutUserResult executeInternal(LogoutUser action, ExecutionContext arg1)
throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
user.setAuthenticated(false);
// delete cached store
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -57,7 +57,7 @@
*/
protected MoveMessageResult executeInternal(MoveMessage action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
try {
IMAPStore store = cache.get(user);
IMAPFolder folder = (IMAPFolder)store.getFolder(action.getOldFolder().getFullName());
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java Fri Oct 2 12:22:26 2009
@@ -26,11 +26,13 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.server.InMemoryIMAPStoreCache;
import org.apache.hupa.shared.rpc.Noop;
import org.apache.hupa.shared.rpc.NoopResult;
import com.google.inject.Inject;
import com.google.inject.Provider;
+import com.sun.mail.imap.IMAPStore;
/**
* Handle Noops
@@ -41,7 +43,7 @@
@Inject
- public NoopHandler(IMAPStoreCache cache, Log logger,Provider<HttpSession> provider) {
+ public NoopHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> provider) {
super(cache,logger,provider);
}
@@ -52,14 +54,16 @@
public NoopResult executeInternal(Noop action, ExecutionContext context)
throws ActionException {
try {
- // just send a noop to keep the connection alive
- cache.get(getUser(action.getSessionId())).idle();
+ IMAPStore store = cache.get(getUser());
+ if (store.getURLName() != null &&
+ !InMemoryIMAPStoreCache.DEMO_MODE.equals(store.getURLName().getHost()) ) {
+ // just send a noop to keep the connection alive
+ store.idle();
+ }
return new NoopResult();
} catch (Exception e) {
- logger.error("Error while sending NOOP",e);
- throw new ActionException("Unable to send NOOP");
+ throw new ActionException("Unable to send NOOP " + e.getMessage());
}
-
}
/*
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java Fri Oct 2 12:22:26 2009
@@ -54,7 +54,7 @@
*/
protected EmptyResult executeInternal(RenameFolder action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
IMAPFolder folder = action.getFolder();
String newName = action.getNewName();
try {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java Fri Oct 2 12:22:26 2009
@@ -62,7 +62,7 @@
*/
protected Message createMessage(Session session, ReplyMessage action)
throws AddressException, MessagingException, ActionException {
- IMAPStore store = cache.get(getUser(action.getSessionId()));
+ IMAPStore store = cache.get(getUser());
IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
if (folder.isOpen() == false) {
folder.open(Folder.READ_ONLY);
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java Fri Oct 2 12:22:26 2009
@@ -53,7 +53,7 @@
@Override
protected EmptyResult executeInternal(SetFlag action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
IMAPFolder folder = action.getFolder();
ArrayList<Long> uids = action.getUids();
com.sun.mail.imap.IMAPFolder f = null;
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java Fri Oct 2 12:22:26 2009
@@ -59,7 +59,7 @@
*/
protected EmptyResult executeInternal(TagMessage action,
ExecutionContext context) throws ActionException {
- User user = getUser(action.getSessionId());
+ User user = getUser();
ArrayList<Long> uids = action.getMessageUids();
Tag tag = action.getTag();
IMAPFolder folder = null;
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -65,7 +65,6 @@
User user = new User();
user.setName("test");
user.setPassword("password");
- user.setSessionId(VALID_ID);
user.setSettings(new Settings());
return user;
}
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -48,7 +48,7 @@
CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new CreateFolder(user.getSessionId(),folder), null);
+ handler.execute(new CreateFolder(folder), null);
Folder f = store.getFolder(folder.getFullName());
assertTrue("exists",f.exists());
@@ -73,26 +73,24 @@
CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new CreateFolder(user.getSessionId(),folder), null);
+ handler.execute(new CreateFolder(folder), null);
fail("Folder already exists");
} catch (ActionException e) {
// folder already exists
- e.printStackTrace();
+ // e.printStackTrace();
}
}
public void testInvalidSessionId() {
- User user = createUser();
- user.setSessionId("INVALID");
IMAPFolder folder = createFolder();
CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new CreateFolder(user.getSessionId(),folder), null);
+ handler.execute(new CreateFolder(folder), null);
fail("Invalid session");
} catch (InvalidSessionException e) {
- e.printStackTrace();
+ // e.printStackTrace();
} catch (ActionException e) {
e.printStackTrace();
fail();
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -47,7 +47,7 @@
DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new DeleteFolder(user.getSessionId(),folder), null);
+ handler.execute(new DeleteFolder(folder), null);
Folder f = store.getFolder(folder.getFullName());
assertFalse("not exists",f.exists());
@@ -67,24 +67,22 @@
DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new DeleteFolder(user.getSessionId(),folder), null);
+ handler.execute(new DeleteFolder(folder), null);
fail("Folder should not exist");
} catch (ActionException e) {
- e.printStackTrace();
+ //e.printStackTrace();
}
}
public void testInvalidSessionId() {
- User user = createUser();
- user.setSessionId("INVALID");
IMAPFolder folder = createFolder();
DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new DeleteFolder(user.getSessionId(),folder), null);
+ handler.execute(new DeleteFolder(folder), null);
fail("Invalid session");
} catch (InvalidSessionException e) {
- e.printStackTrace();
+ //e.printStackTrace();
} catch (ActionException e) {
e.printStackTrace();
fail();
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -49,13 +49,13 @@
session.setAttribute("user", user);
IMAPFolder folder = new IMAPFolder();
folder.setFullName("NOT_EXISTS");
- DeleteMessageByUid action = new DeleteMessageByUid(VALID_ID,folder,new ArrayList<Long>());
+ DeleteMessageByUid action = new DeleteMessageByUid(folder,new ArrayList<Long>());
try {
handler.execute(action, null);
fail("Folder should not exists!");
} catch (ActionException e) {
- e.printStackTrace();
+ //e.printStackTrace();
}
}
@@ -77,7 +77,7 @@
ArrayList<Long> uids = new ArrayList<Long>();
uids.add(new Long(1));
uids.add(new Long(3));
- DeleteMessageByUid action = new DeleteMessageByUid(VALID_ID, folder, uids);
+ DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
MockIMAPFolder f3 = (MockIMAPFolder) store.getFolder(user.getSettings().getTrashFolderName());
assertFalse("Trash folder not exists yet",f3.exists());
@@ -114,7 +114,7 @@
ArrayList<Long> uids = new ArrayList<Long>();
uids.add(new Long(1));
uids.add(new Long(3));
- DeleteMessageByUid action = new DeleteMessageByUid(VALID_ID, folder, uids);
+ DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
try {
DeleteMessageResult result = handler.execute(action, null);
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -38,14 +38,13 @@
public void testInvalidSessionId() {
User user = createUser();
- user.setSessionId("INVALID");
FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
try {
- handler.execute(new FetchFolders(user.getSessionId()), null);
+ handler.execute(new FetchFolders(), null);
fail("Invalid session");
} catch (InvalidSessionException e) {
- e.printStackTrace();
+ //e.printStackTrace();
} catch (ActionException e) {
e.printStackTrace();
fail();
@@ -58,7 +57,7 @@
storeCache.addValidUser(user.getName(), user.getPassword());
FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
try {
- FetchFoldersResult result = handler.execute(new FetchFolders(user.getSessionId()), null);
+ FetchFoldersResult result = handler.execute(new FetchFolders(), null);
assertTrue(result.getFolders().isEmpty());
} catch (ActionException e) {
e.printStackTrace();
@@ -78,7 +77,7 @@
FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
try {
- FetchFoldersResult result = handler.execute(new FetchFolders(user.getSessionId()), null);
+ FetchFoldersResult result = handler.execute(new FetchFolders(), null);
ArrayList<IMAPFolder> folders = result.getFolders();
assertFalse(folders.isEmpty());
assertEquals(3, folders.size());
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -41,7 +41,7 @@
handler.execute(new LoginUser("invalid","invalid"), null);
fail("Should throw an exception");
} catch (ActionException e) {
- e.printStackTrace();
+ //e.printStackTrace();
}
assertNull("no user stored in session", session.getAttribute("user"));
}
@@ -58,7 +58,6 @@
assertEquals("Authenticated", true, u.getAuthenticated());
assertEquals("Authenticated", username, u.getName());
assertEquals("Authenticated", password, u.getPassword());
- assertEquals("Authenticated", VALID_ID, u.getSessionId());
assertEquals("User stored in session", u, session.getAttribute("user"));
} catch (ActionException e) {
e.printStackTrace();
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -37,11 +37,10 @@
user.setName(username);
user.setPassword(password);
user.setAuthenticated(true);
- user.setSessionId(VALID_ID);
session.setAttribute("user", user);
LogoutUserHandler handler = new LogoutUserHandler(storeCache,new MockLog(),sessionProvider);
try {
- LogoutUserResult result = handler.execute(new LogoutUser(user.getSessionId()), null);
+ LogoutUserResult result = handler.execute(new LogoutUser(), null);
assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
assertNull("User removed", session.getAttribute("user"));
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java Fri Oct 2 12:22:26 2009
@@ -31,7 +31,7 @@
public void testNoop() {
NoopHandler handler = new NoopHandler(storeCache,new MockLog(),sessionProvider);
User user = createUser();
- Noop action = new Noop(user.getSessionId());
+ Noop action = new Noop();
storeCache.addValidUser(user.getName(), user.getPassword());
session.setAttribute("user", user);
try {
Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/User.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/User.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/User.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/User.java Fri Oct 2 12:22:26 2009
@@ -29,15 +29,11 @@
*/
public class User implements Serializable{
- /**
- *
- */
private static final long serialVersionUID = -573674209289821920L;
private String name;
private String password;
private Date loginDate;
private boolean auth;
- private String sessionId;
private Settings settings;
@@ -131,14 +127,6 @@
return auth;
}
- public String getSessionId() {
- return sessionId;
- }
-
- public void setSessionId(String sessionId) {
- this.sessionId = sessionId;
- }
-
public void setSettings(Settings settings) {
this.settings = settings;
}
Added: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java (added)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,50 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.hupa.shared.events;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class ServerStatusEvent extends GwtEvent<ServerStatusEventHandler> {
+ public static Type<ServerStatusEventHandler> TYPE = new Type<ServerStatusEventHandler>();
+
+ public enum ServerStatus {
+ Unknown, Available, Unavailable, Error
+ }
+
+ private ServerStatus status = ServerStatus.Unknown;
+ public ServerStatusEvent(ServerStatus status) {
+ this.status = status;
+ }
+
+ public ServerStatus getStatus() {
+ return status;
+ }
+
+ @Override
+ protected void dispatch(ServerStatusEventHandler handler) {
+ handler.onServerStatusChange(this);
+ }
+
+ @Override
+ public com.google.gwt.event.shared.GwtEvent.Type<ServerStatusEventHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+}
Added: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java (added)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,26 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.hupa.shared.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface ServerStatusEventHandler extends EventHandler{
+ public void onServerStatusChange(ServerStatusEvent event);
+}
Added: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java (added)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,29 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.hupa.shared.rpc;
+
+import net.customware.gwt.dispatch.shared.Action;
+
+
+public class CheckSession implements Action<CheckSessionResult> {
+
+ private static final long serialVersionUID = 2255166545722718094L;
+
+}
Added: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java?rev=820986&view=auto
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java (added)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java Fri Oct 2 12:22:26 2009
@@ -0,0 +1,44 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.hupa.shared.rpc;
+
+import org.apache.hupa.shared.data.User;
+
+import net.customware.gwt.dispatch.shared.Result;
+
+public class CheckSessionResult implements Result {
+
+ private static final long serialVersionUID = -4785233314922498952L;
+ boolean valid = false;
+
+ private User user;
+
+ public User getUser() {
+ return user;
+ }
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ public boolean isValid() {
+ return user != null && user.getAuthenticated();
+ }
+}
Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java?rev=820986&r1=820985&r2=820986&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java Fri Oct 2 12:22:26 2009
@@ -19,18 +19,16 @@
package org.apache.hupa.shared.rpc;
+import net.customware.gwt.dispatch.shared.Action;
+
import org.apache.hupa.shared.data.IMAPFolder;
-public class CreateFolder extends Session<EmptyResult>{
+public class CreateFolder implements Action<EmptyResult>{
- /**
- *
- */
private static final long serialVersionUID = -4966856616698265177L;
private IMAPFolder folder;
- public CreateFolder(String sessionId, IMAPFolder folder) {
- super(sessionId);
+ public CreateFolder(IMAPFolder folder) {
this.folder = folder;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org