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 do...@apache.org on 2013/09/12 04:10:18 UTC
svn commit: r1522123 - in /james/hupa/trunk:
client/src/main/java/org/apache/hupa/client/activity/
client/src/main/java/org/apache/hupa/client/rf/
server/src/main/java/org/apache/hupa/server/
server/src/main/java/org/apache/hupa/server/domain/ server/s...
Author: dongxu
Date: Thu Sep 12 02:10:17 2013
New Revision: 1522123
URL: http://svn.apache.org/r1522123
Log:
As the FetchFolders RequestFactory, but can not run correctly.
Maybe the procedure is wrong somewhere.
Added:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderProxy.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderRequestContext.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserDaoLocator.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserLocator.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/IMAPFolderService.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/UserDao.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/HupaRequestFactory.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserProxy.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserRequest.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/domain/User.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderService.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java Thu Sep 12 02:10:17 2013
@@ -85,7 +85,6 @@ public class LoginActivity extends AppBa
=======
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-import com.google.inject.Provider;
public class LoginActivity extends AbstractActivity {
@@ -180,6 +179,25 @@ public class LoginActivity extends Abstr
return;
display.setLoading(true);
+// HupaRequestFactory rf = GWT.create(HupaRequestFactory.class);
+// rf.initialize(eventBus);
+// UserRequest userRequest = rf.userRequest();
+// UserProxy user1 = userRequest.create(UserProxy.class);
+// user1.setName(user);
+// user1.setPassword(pass);
+// userRequest.save(user1).fire(new Receiver<UserProxy>(){
+//
+// @Override
+// public void onSuccess(UserProxy user) {
+// display.setLoading(false);
+// LoginActivity.this.placeController.goTo(new MailFolderPlace().with(null));
+// doReset();
+// }
+//
+// });
+
+
+
dispatcher.execute(new LoginUser(user, pass), new HupaEvoCallback<LoginUserResult>(dispatcher, eventBus,
display) {
public void callback(LoginUserResult result) {
@@ -208,6 +226,7 @@ public class LoginActivity extends Abstr
doReset();
}
});
+
}
/**
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java Thu Sep 12 02:10:17 2013
@@ -256,6 +256,9 @@ import org.apache.hupa.client.evo.HupaEv
import org.apache.hupa.client.place.IMAPMessagePlace;
import org.apache.hupa.client.place.MailFolderPlace;
import org.apache.hupa.client.place.MessageSendPlace;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.rf.IMAPFolderProxy;
+import org.apache.hupa.client.rf.IMAPFolderRequestContext;
import org.apache.hupa.client.ui.WidgetContainerDisplayable;
import org.apache.hupa.client.widgets.HasDialog;
import org.apache.hupa.client.widgets.IMAPTreeItem;
@@ -290,8 +293,6 @@ import org.apache.hupa.shared.events.Sen
import org.apache.hupa.shared.events.SentMessageEventHandler;
import org.apache.hupa.shared.rpc.CreateFolder;
import org.apache.hupa.shared.rpc.DeleteFolder;
-import org.apache.hupa.shared.rpc.FetchFolders;
-import org.apache.hupa.shared.rpc.FetchFoldersResult;
import org.apache.hupa.shared.rpc.GenericResult;
import org.apache.hupa.shared.rpc.GetMessageDetails;
import org.apache.hupa.shared.rpc.GetMessageDetailsResult;
@@ -318,6 +319,7 @@ import com.google.gwt.user.client.ui.Acc
import com.google.gwt.user.client.ui.TreeItem;
import com.google.inject.Inject;
import com.google.inject.Provider;
+import com.google.web.bindery.requestfactory.shared.Receiver;
public class WestActivity extends AbstractActivity {
@@ -370,16 +372,44 @@ public class WestActivity extends Abstra
protected void loadTreeItems() {
display.setLoadingFolders(true);
- dispatcher.execute(new FetchFolders(), new HupaEvoCallback<FetchFoldersResult>(dispatcher, eventBus, display) {
- public void callback(FetchFoldersResult result) {
- display.bindTreeItems(createTreeNodes(result.getFolders()));
- // disable
- display.getDeleteEnable().setEnabled(false);
- display.getRenameEnable().setEnabled(false);
- display.setLoadingFolders(false);
-
- }
- });
+
+ HupaRequestFactory rf = GWT.create(HupaRequestFactory.class);
+ rf.initialize(eventBus);
+ IMAPFolderRequestContext folderRequest = rf.folderRequest();
+// IMAPFolderProxy folder = folderRequest.create(IMAPFolderProxy.class);
+// folderRequest.echo("..........Hi++++").fire(new Receiver<String>(){
+//
+// @Override
+// public void onSuccess(String response) {
+// System.out.println(response);
+//
+// }});
+ folderRequest.requestFolders().fire(new Receiver<List<IMAPFolderProxy>>() {
+
+ @Override
+ public void onSuccess(List<IMAPFolderProxy> response) {
+System.out.println("1111111"+response);
+ display.bindTreeItems(null);
+// // disable
+ display.getDeleteEnable().setEnabled(false);
+ display.getRenameEnable().setEnabled(false);
+ display.setLoadingFolders(false);
+
+ }
+
+ });
+
+// dispatcher.execute(new FetchFolders(), new HupaEvoCallback<FetchFoldersResult>(dispatcher, eventBus, display) {
+// public void callback(FetchFoldersResult result) {
+// display.bindTreeItems(createTreeNodes(result.getFolders()));
+// // disable
+// display.getDeleteEnable().setEnabled(false);
+// display.getRenameEnable().setEnabled(false);
+// display.setLoadingFolders(false);
+//
+// }
+// });
+
}
/**
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/HupaRequestFactory.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/HupaRequestFactory.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/HupaRequestFactory.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/HupaRequestFactory.java Thu Sep 12 02:10:17 2013
@@ -61,5 +61,10 @@ public interface HupaRequestFactory exte
SetFlagRequest setFlagRequest();
=======
SubjectRequest subjectRequest();
+<<<<<<< HEAD
>>>>>>> first commit
+=======
+ UserRequest userRequest();
+ IMAPFolderRequestContext folderRequest();
+>>>>>>> As the FetchFolders RequestFactory, but can not run correctly.
}
\ No newline at end of file
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderProxy.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderProxy.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderProxy.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderProxy.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,15 @@
+package org.apache.hupa.client.rf;
+
+import java.util.List;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+
+import com.google.web.bindery.requestfactory.shared.EntityProxy;
+import com.google.web.bindery.requestfactory.shared.ProxyFor;
+
+@ProxyFor(IMAPFolder.class)
+public interface IMAPFolderProxy extends EntityProxy {
+// List<IMAPFolder> requestFolders();
+ Long getId();
+ Long getVersion();
+}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderRequestContext.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderRequestContext.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderRequestContext.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/IMAPFolderRequestContext.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,15 @@
+package org.apache.hupa.client.rf;
+
+import java.util.List;
+
+import org.apache.hupa.server.service.IMAPFolderService;
+
+import com.google.web.bindery.requestfactory.shared.Request;
+import com.google.web.bindery.requestfactory.shared.RequestContext;
+import com.google.web.bindery.requestfactory.shared.Service;
+
+@Service(IMAPFolderService.class)
+public interface IMAPFolderRequestContext extends RequestContext {
+ Request<List<IMAPFolderProxy>> requestFolders();
+ Request<String> echo(String s);
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserProxy.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserProxy.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserProxy.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserProxy.java Thu Sep 12 02:10:17 2013
@@ -1,11 +1,20 @@
package org.apache.hupa.client.rf;
+
+
import org.apache.hupa.server.domain.User;
+import org.apache.hupa.server.locator.UserLocator;
import com.google.web.bindery.requestfactory.shared.EntityProxy;
import com.google.web.bindery.requestfactory.shared.ProxyFor;
-@ProxyFor(value = User.class)
+@ProxyFor(value = User.class, locator=UserLocator.class)
public interface UserProxy extends EntityProxy {
-
+ public Long getId();
+ public String getName();
+ public void setName(String name);
+
+ public String getPassword();
+ public void setPassword(String password);
+
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserRequest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserRequest.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserRequest.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/rf/UserRequest.java Thu Sep 12 02:10:17 2013
@@ -1,11 +1,15 @@
package org.apache.hupa.client.rf;
-import org.apache.hupa.server.domain.User;
+import org.apache.hupa.server.locator.UserDaoLocator;
+import org.apache.hupa.server.service.UserDao;
+import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.Service;
-@Service(User.class)
+@Service(value = UserDao.class, locator=UserDaoLocator.class)
public interface UserRequest extends RequestContext {
-
+ Request<UserProxy> findById(Long id);
+ Request<UserProxy> save(UserProxy user);
+
}
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=1522123&r1=1522122&r2=1522123&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 Thu Sep 12 02:10:17 2013
@@ -147,6 +147,7 @@ public class InMemoryIMAPStoreCache impl
if (cstore.getStore().isConnected() == false) {
try {
cstore.getStore().connect(address, port, username, password);
+ System.out.println(address +"ImMemory"+ port);
} catch (MessagingException e) {
throw (e);
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/domain/User.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/domain/User.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/domain/User.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/domain/User.java Thu Sep 12 02:10:17 2013
@@ -19,7 +19,6 @@
package org.apache.hupa.server.domain;
-import java.io.Serializable;
import java.util.Date;
@@ -30,7 +29,6 @@ import java.util.Date;
*/
public class User implements Identifiable, Versionable{
- private static final long serialVersionUID = -573674209289821920L;
private String name;
private String password;
private Date loginDate;
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserDaoLocator.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserDaoLocator.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserDaoLocator.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserDaoLocator.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,14 @@
+package org.apache.hupa.server.locator;
+
+import org.apache.hupa.server.service.UserDao;
+
+import com.google.web.bindery.requestfactory.shared.ServiceLocator;
+
+public class UserDaoLocator implements ServiceLocator {
+
+ @Override
+ public Object getInstance(Class<?> clazz) {
+ return new UserDao();
+ }
+
+}
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserLocator.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserLocator.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserLocator.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/locator/UserLocator.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,40 @@
+package org.apache.hupa.server.locator;
+
+import org.apache.hupa.server.domain.User;
+import org.apache.hupa.server.service.UserDao;
+
+import com.google.web.bindery.requestfactory.shared.Locator;
+
+public class UserLocator extends Locator<User, Long>{
+
+ @Override
+ public User create(Class<? extends User> clazz) {
+ return new User();
+ }
+
+ @Override
+ public User find(Class<? extends User> clazz, Long id) {
+ return new UserDao().findById(id);
+ }
+
+ @Override
+ public Class<User> getDomainType() {
+ return User.class;
+ }
+
+ @Override
+ public Long getId(User domainObject) {
+ return domainObject.getId();
+ }
+
+ @Override
+ public Class<Long> getIdType() {
+ return Long.class;
+ }
+
+ @Override
+ public Object getVersion(User domainObject) {
+ return domainObject.getVersion();
+ }
+
+}
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/IMAPFolderService.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/IMAPFolderService.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/IMAPFolderService.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/IMAPFolderService.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,99 @@
+package org.apache.hupa.server.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+import javax.mail.NoSuchProviderException;
+import javax.mail.Session;
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.User;
+
+import com.google.web.bindery.requestfactory.server.RequestFactoryServlet;
+import com.sun.mail.imap.IMAPStore;
+
+public class IMAPFolderService {
+
+ private static boolean useSSL = false;
+
+ public static String echo(String s){
+ return s;
+ }
+
+ public static List<IMAPFolder> requestFolders() throws MessagingException, ActionException{
+ HttpSession session = RequestFactoryServlet.getThreadLocalRequest().getSession();
+ Session mailSession = Session.getDefaultInstance(new Properties(), null);
+ IMAPStore store = (IMAPStore)mailSession.getStore(useSSL ? "imaps" : "imap");
+
+ User user = (User) session.getAttribute(SConsts.USER_SESS_ATTR);
+ store.connect("imap.gmail.com", 993, user.getName(), user.getPassword());
+
+
+ com.sun.mail.imap.IMAPFolder folder = (com.sun.mail.imap.IMAPFolder) store.getDefaultFolder();
+
+ // List of mail 'root' imap folders
+ List<IMAPFolder> imapFolders = new ArrayList<IMAPFolder>();
+
+ // Create IMAPFolder tree list
+ for (Folder f : folder.list()) {
+ IMAPFolder imapFolder = createIMAPFolder(f);
+ imapFolders.add(imapFolder);
+ walkFolders(f, imapFolder);
+ }
+ return imapFolders;
+ }
+
+ /**
+ * Walk through the folder's sub-folders and add sub-folders to current imapFolder
+ *
+ * @param folder Folder to walk
+ * @param imapFolder Current IMAPFolder
+ * @throws ActionException If an error occurs
+ * @throws MessagingException If an error occurs
+ */
+ private static void walkFolders(Folder folder, IMAPFolder imapFolder) throws MessagingException{
+ for (Folder f : folder.list()) {
+ IMAPFolder iFolder = createIMAPFolder(f);
+ imapFolder.getChildIMAPFolders().add(iFolder);
+ walkFolders(f, iFolder);
+ }
+ }
+
+ /**
+ * Create a new IMAPFolder from the given Folder
+ *
+ * @param folder Current folder
+ * @return imapFolder Created IMAPFolder
+ * @throws ActionException If an error occurs
+ * @throws MessagingException If an error occurs
+ */
+ private static IMAPFolder createIMAPFolder(Folder folder){
+
+ String fullName = folder.getFullName();
+ String delimiter;
+ IMAPFolder iFolder = null;
+
+ try {
+ System.out.println("Creating folder: " + fullName + " for user: ");
+ delimiter = String.valueOf(folder.getSeparator());
+ iFolder = new IMAPFolder(fullName);
+ iFolder.setDelimiter(delimiter);
+ if("[Gmail]".equals(folder.getFullName()))
+ return iFolder;
+ iFolder.setMessageCount(folder.getMessageCount());
+ iFolder.setSubscribed(folder.isSubscribed());
+ iFolder.setUnseenMessageCount(folder.getUnreadMessageCount());
+ } catch (MessagingException e) {
+ e.printStackTrace();
+ }
+
+ return iFolder;
+ }
+}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderService.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderService.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderService.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/ImapFolderService.java Thu Sep 12 02:10:17 2013
@@ -1,28 +1,99 @@
-/****************************************************************
- * 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.service;
-
-import java.util.List;
-
-import org.apache.hupa.shared.domain.ImapFolder;
-
-public interface ImapFolderService {
- List<ImapFolder> requestFolders() throws Exception;
-}
+package org.apache.hupa.server.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.mail.Folder;
+import javax.mail.MessagingException;
+import javax.mail.NoSuchProviderException;
+import javax.mail.Session;
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.User;
+
+import com.google.web.bindery.requestfactory.server.RequestFactoryServlet;
+import com.sun.mail.imap.IMAPStore;
+
+public class IMAPFolderService {
+
+ private static boolean useSSL = false;
+
+ public static String echo(String s){
+ return s;
+ }
+
+ public static List<IMAPFolder> requestFolders() throws MessagingException, ActionException{
+ HttpSession session = RequestFactoryServlet.getThreadLocalRequest().getSession();
+ Session mailSession = Session.getDefaultInstance(new Properties(), null);
+ IMAPStore store = (IMAPStore)mailSession.getStore(useSSL ? "imaps" : "imap");
+
+ User user = (User) session.getAttribute(SConsts.USER_SESS_ATTR);
+ store.connect("imap.gmail.com", 993, user.getName(), user.getPassword());
+
+
+ com.sun.mail.imap.IMAPFolder folder = (com.sun.mail.imap.IMAPFolder) store.getDefaultFolder();
+
+ // List of mail 'root' imap folders
+ List<IMAPFolder> imapFolders = new ArrayList<IMAPFolder>();
+
+ // Create IMAPFolder tree list
+ for (Folder f : folder.list()) {
+ IMAPFolder imapFolder = createIMAPFolder(f);
+ imapFolders.add(imapFolder);
+ walkFolders(f, imapFolder);
+ }
+ return imapFolders;
+ }
+
+ /**
+ * Walk through the folder's sub-folders and add sub-folders to current imapFolder
+ *
+ * @param folder Folder to walk
+ * @param imapFolder Current IMAPFolder
+ * @throws ActionException If an error occurs
+ * @throws MessagingException If an error occurs
+ */
+ private static void walkFolders(Folder folder, IMAPFolder imapFolder) throws MessagingException{
+ for (Folder f : folder.list()) {
+ IMAPFolder iFolder = createIMAPFolder(f);
+ imapFolder.getChildIMAPFolders().add(iFolder);
+ walkFolders(f, iFolder);
+ }
+ }
+
+ /**
+ * Create a new IMAPFolder from the given Folder
+ *
+ * @param folder Current folder
+ * @return imapFolder Created IMAPFolder
+ * @throws ActionException If an error occurs
+ * @throws MessagingException If an error occurs
+ */
+ private static IMAPFolder createIMAPFolder(Folder folder){
+
+ String fullName = folder.getFullName();
+ String delimiter;
+ IMAPFolder iFolder = null;
+
+ try {
+ System.out.println("Creating folder: " + fullName + " for user: ");
+ delimiter = String.valueOf(folder.getSeparator());
+ iFolder = new IMAPFolder(fullName);
+ iFolder.setDelimiter(delimiter);
+ if("[Gmail]".equals(folder.getFullName()))
+ return iFolder;
+ iFolder.setMessageCount(folder.getMessageCount());
+ iFolder.setSubscribed(folder.isSubscribed());
+ iFolder.setUnseenMessageCount(folder.getUnreadMessageCount());
+ } catch (MessagingException e) {
+ e.printStackTrace();
+ }
+
+ return iFolder;
+ }
+}
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/UserDao.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/UserDao.java?rev=1522123&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/UserDao.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/service/UserDao.java Thu Sep 12 02:10:17 2013
@@ -0,0 +1,27 @@
+package org.apache.hupa.server.service;
+
+import javax.servlet.http.HttpSession;
+
+import org.apache.hupa.server.domain.User;
+import org.apache.hupa.server.utils.SessionUtils;
+
+import com.google.web.bindery.requestfactory.server.RequestFactoryServlet;
+
+public class UserDao {
+
+ private HttpSession session;
+
+ public User findById(Long id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ User save(User user){
+ System.out.println("+++++++");
+ session = RequestFactoryServlet.getThreadLocalRequest().getSession();
+
+ SessionUtils.cleanSessionAttributes(session);
+ return user;
+ }
+
+}
Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java?rev=1522123&r1=1522122&r2=1522123&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java Thu Sep 12 02:10:17 2013
@@ -21,14 +21,42 @@ package org.apache.hupa.shared.data;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.servlet.http.HttpSession;
+
+import com.google.web.bindery.requestfactory.server.RequestFactoryServlet;
/**
* IMAPFolder
*
*/
public class IMAPFolder implements Serializable {
+
+ private Long id;
+ private Long version;
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getVersion() {
+ return version;
+ }
+
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
+
- /**
+ /**
*
*/
private static final long serialVersionUID = 2084188092060266479L;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org