james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From echo <echo...@gmail.com>
Subject Re: [GSOC2012] Hupa evolution
Date Thu, 05 Apr 2012 11:01:53 GMT
Hi, Manolo
My "[GSOC2012] Hupa evolution" proposal has been updated in


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.


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


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message