Author: norman
Date: Tue Aug 18 17:59:33 2009
New Revision: 805516
URL: http://svn.apache.org/viewvc?rev=805516&view=rev
Log:
Add Handler for renaming folder
Added:
labs/hupa/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
labs/hupa/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java
Modified: labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java?rev=805516&r1=805515&r2=805516&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java Tue
Aug 18 17:59:33 2009
@@ -37,6 +37,7 @@
import org.apache.hupa.server.handler.LogoutUserHandler;
import org.apache.hupa.server.handler.MoveMessageHandler;
import org.apache.hupa.server.handler.NoopHandler;
+import org.apache.hupa.server.handler.RenameFolderHandler;
import org.apache.hupa.server.handler.ReplyMessageHandler;
import org.apache.hupa.server.handler.SendMessageHandler;
import org.apache.hupa.server.servlet.DownloadAttachmentServlet;
@@ -68,6 +69,7 @@
bindHandler(NoopHandler.class);
bindHandler(LoginSessionHandler.class);
bindHandler(MoveMessageHandler.class);
+ bindHandler(RenameFolderHandler.class);
bind(FileItemRegistry.class).in(Singleton.class);
bind(IMAPStoreCache.class).in(Singleton.class);
bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
Added:
labs/hupa/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java?rev=805516&view=auto
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
(added)
+++
labs/hupa/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
Tue Aug 18 17:59:33 2009
@@ -0,0 +1,83 @@
+/****************************************************************
+ * 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.mail.Folder;
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.server.ExecutionContext;
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.EmptyResult;
+import org.apache.hupa.shared.rpc.RenameFolder;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.sun.mail.imap.IMAPStore;
+
+public class RenameFolderHandler extends AbstractSessionHandler<RenameFolder,
EmptyResult>{
+
+ @Inject
+ public RenameFolderHandler(IMAPStoreCache cache, Log logger,
+ Provider<HttpSession> sessionProvider) {
+ super(cache, logger, sessionProvider);
+ }
+
+ @Override
+ protected EmptyResult executeInternal(RenameFolder action,
+ ExecutionContext context) throws ActionException {
+ User user = getUser(action.getSessionId());
+ IMAPFolder folder = action.getFolder();
+ String newName = action.getNewName();
+ try {
+ IMAPStore store = cache.get(user);
+ com.sun.mail.imap.IMAPFolder iFolder =
(com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
+ Folder newFolder = store.getFolder(newName);
+
+ if (iFolder.isOpen()) {
+ iFolder.close(false);
+ }
+ if (iFolder.renameTo(newFolder)) {
+ return new EmptyResult();
+ }
+ throw new ActionException("Unable to rename Folder " +
folder.getFullName() + " to " + newName + " for user " + user);
+
+ } catch (Exception e) {
+ logger.error("Error while renaming Folder " +
folder.getFullName() + " to " + newName + " for user " + user,e);
+ throw new ActionException("Error while renaming Folder
" + folder.getFullName() + " to " + newName + " for user " + user,e);
+ }
+
+ }
+
+ public Class<RenameFolder> getActionType() {
+ return RenameFolder.class;
+ }
+
+ public void rollback(RenameFolder arg0, EmptyResult arg1,
+ ExecutionContext arg2) throws ActionException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java?rev=805516&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java Tue
Aug 18 17:59:33 2009
@@ -0,0 +1,31 @@
+package org.apache.hupa.shared.rpc;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+
+public class RenameFolder extends Session<EmptyResult>{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1924419911921600320L;
+ private IMAPFolder folder;
+ private String newName;
+
+ public RenameFolder(String sessionUid,IMAPFolder folder, String
newName) {
+ super(sessionUid);
+ this.folder = folder;
+ this.newName = newName;
+ }
+
+ protected RenameFolder() {
+
+ }
+
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+ public String getNewName() {
+ return newName;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]