james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Manuel Carrasco Moñino <man...@apache.org>
Subject Re: [GSOC2012] Hupa evolution
Date Tue, 10 Apr 2012 07:51:33 GMT
Hi Echo

I've been reading your application and it looks right to me.
One thing I see is that you have selected gwt-platform instead of the
core mvp in gwt but you don't say any reason about why you prefer the
first option.
Also I'd like a deeper description of how you pretend to face new
features, I mean components, persistence, customization etc.

- Manolo

On Thu, Apr 5, 2012 at 1:01 PM, echo <echowdx@gmail.com> wrote:
> Hi, Manolo
> My "[GSOC2012] Hupa evolution" proposal has been updated in
> http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/echo/1.
> Could you give me some advices about it? If it looks Ok, I am gonna to cope
> with some beginning stuff. If not, however, I will have to change something
> through your suggests.
> Many thanks for your consideration.
> -Echo
> On 03/30/2012 06:08 PM, Manuel Carrasco Moñino wrote:
> Hi Echo
> I'm CCing the mailing list because other developers could be
> interested in these questions.
> Proly you can not login into gmail because of either cacerts issues or
> you have not enabled imap in your gmail account.
> Yesterday, I committed a fix to the default config.properties removing
> the 'TrustStore' line so as hupa can use the default java cacerts
> file.
> If you are using openjdk, you should check that cacerts file is complete.
> There are several MVP articles, the one you say is a good start point.
> There are different approaches of how implement MVP, hupa is using
> gwt-presenter which is similar to the stuff in gwt-2.4 so the idea is
> to replace it with gwt-2.4 although we could consider other nice
> libraries like mvp4g or gwtp. I recomend to you to read everything you
> find in order to write a good proposal.
> gwt-dispatcher is used in client and server sides because it is the
> framework used to comunicate both sides (this is the reason why you
> can see it in many modules). We used it instead of RPC in order to use
> the command pattern and facilitate testing of remote procedures in the
> jvm. This library is not very used nowadays because people uses the
> new RequestFactory stuff. The evolution of gwt-dispatcher is in the
> gwtp library.
> Although RequestFactory is though to be used with ddbb entities, I
> think we can consider our objects (emails, folders, etc) like entities
> and take advantage of this pattern. Anyway, you could consider other
> library like gwtp if it simplifies the code or the developing of new
> features in hupa.
> Gin is the only way to have injection in client side. Gin syntax is
> the same than Guice and you have to use both to test client presenters
> and code in the jvm. Note that one of the main goals in MVP is to test
> in the jvm client code, so we need a way to decouple presenters, etc
> and inject the necessary stuff to test them in the jvm.
> We use gwt-dnd because it was the only available library those days.
> It is necessary to move messages to folders. Now gwt has dnd support
> although Cell widgets do not support it, may be we had to use
> gwtquery-dnd etc. when we replace the message celltable.
> gwtquery brings the simplicity of jquery to gwt, specially when
> dealing with dom elements or html content, note that it doesn't need
> jquery at all. I think gquery can help to display messages (clean
> them, resize, etc). I maintain this library so feel free to ask me any
> question you had about it.
> All of these new features you suggest are welcome. Note that hupa does
> not have any ddbb in server side, we are storing stuff in a hidden
> message in the imap server, it is experimental, so maybe you could
> consider to add a ddbb to handle this info (we use derby in james
> server as the default one).
> The project is big and it is difficult to estimate the effort for each
> thing. But I think your schedule could be a good start point.
> Cheers
> - Manolo
> On Thu, Mar 29, 2012 at 3:43 PM, echo <echowdx@gmail.com> wrote:
> Hi, Manuel Carrasco
> Hupa is an Rich IMAP-based Webmail application written in GWT, but there is
> no release delivered yet
> We propose that gsoc student/s take the actual Hupa code and make it fully
> functional adding many features which are missing and removing out-of-dated
> dependencies in favor of the new stuff in the latest GWT version.
> ** Hupa Status
>     - Hupa has been entirely written in java to be coherent with the
> language used in the James project.
> The Hupa has been checked out and deployed successfully on my
> ArchLinux+openjdk6+eclipse,even though I could not login with my gmail
> account and password which can access http://hupa.alcala.org. Maybe it need
> config the .hupa/config.properties, I think.
>     - Time ago, Hupa was a reference of a GWT MVP pattern application.
>     - Hupa MVP design is based of a set of libraries available for gwt a
> couple of years ago when Gwt-core didn't have support for MVP
>         Gwt-presenter: for the MVP and EventBus patterns.
>         Gwt-dispatch: for the Command pattern
>         Gin + Guice: for dependency injection.
>     - Hupa was developed before GWT-2.0 was released, when LayoutPanels,
> uibinders, Cells, RF, etc. were not available.
>     - Although Hupa is using the last GWT release, it still depends on some
> unmaintained libraries because they have an equivalent feature in modern
> GWT.
>     - In summary, Hupa is a functional and well designed email client, ready
> to read, send and manage messages, but it lacks many of the nice features
> any email client nowadays has.
> I also found some examples or instructions on GWT's own MVP architectrue at
> here, it can be as a reference in my opinion, can it?
> It is found that gwt-dispatch is used in more places than the others, since
> almost every maven module(sever, client, share, etc.) needs it. So I believe
> it will take more time to change it by Command Pattern(RequestFactory as
> below) than the others.
> Acutally I have no idea about "Gin + Guice: for dependency injection." which
> needs to deeply discuss with you.
> ** Hupa roadmap
>    - Replace out-of-date dependencies with GWT-2.4.0 stuff
>         Replace gwt-dispatch by RequestFactory
>         Replace gwt-presenter with the available stuff in GWT-2.4
>         Remove gwt-incubator dependency in favor of CellTable and CellTree
>         Use LayoutPanels and DecoratorPanels of css workarounds
>         Use Gwt DnD
> It is necessary for the theme to be improved by nearly all the recent apis
> and I think it also need some time to be familiar with those new features.
> Another thing I found in the code base is gwt-dnd-3.1.1 has been imported in
> the maven dependencies, while I am not sure whether it is using or not.
>     - Performance
>         Use gQuery in client side to enhance message view, specially to
> parse html messages and remove dangerous tags, instead of expensive parsing
> in server side
>         Implement Server cache and client storage
> I played with gQuery roughly yesterday and am familiar with its concept of
> JQuery in GWT.
>     - New features
>         Contact management.
>         Authentication: Oauth
>         Message filtering, grouping, sorting and labeling.
>         User settings: name, emails, signature.
>         Theming.
> And some other small but user-friendly stuffs such as "archive", "draft
> save", user cookies(maybe HTML5 local storage) and so forth.
> All right, this is very first draft of the my plan on Hupa:
> [From now to the announcement of GSoC] get started to be familiar with both
> of the Hupa and GWT.
> [Week 1~4] replace gwt-dispatch by RequestFactory, after which I will get
> more familiar with Hupa.
> Deliverable #1: the improved Hupa after replacing something.
> [Week 5] Remove gwt-incubator dependency in favor of CellTable and CellTree.
> [Week 6~7] Replace gwt-presenter with the available stuff in GWT-2.4
> Deliverable #2: the improved Hupa with almost all GWT-2.4 owning
> [Week 8~9] make several prototypes of new features(Contact management,
> Message filtering, grouping, sorting and labeling, etc.). And then try to
> commit to the mail list for quickly feedback.
> [Week 10~11] develop Oauth and User settings, meanwhile update the feedback
> from Week8~9.
> Deliverable #3: the improved Hupa with some new features.
> [Week 12] suggested "pencils down" date: write documentation, test
> everything...
> To be honest, I am not really sure about it(probably two few things to do or
> priorities to change and not very well specified). So could you tell me how
> do you think? Any advices will be welcome.
> --
> cheers,
> echo
> --
> cheers,
> echo

To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org

View raw message