james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Charles <e...@apache.org>
Subject Re: [GSOC2012] Hupa evolution
Date Sat, 21 Apr 2012 05:31:50 GMT
Hi echo,
My sincerest condolences for your grandmother.
All the best,
Eric


On 04/21/2012 02:57 AM, echo wrote:
> I am sorry for not contacting with this channel, because my grandma got the
> lung cancer and passed away the other day. I am too sad to do anything
> until now.
> However, I pick up my spirits to continue the project and my life. Pls
> believe in me.
> Thank you.
>
> On Thu, Apr 19, 2012 at 10:58 PM, Luis Slocker<slockerboss@gmail.com>wrote:
>
>> Great!, Manolo, thank you very much.
>>
>> This new contribution is serving me a lot to get to understand the
>> architecture of Hupa, and to know where they fit the pieces of this
>> interesting puzzle.
>>
>> 2012/4/19 Manuel Carrasco Moñino<manolo@apache.org>
>>
>>> Hi Eric,
>>>
>>> Actually hupa has everything decoupled, this is the reason why we use MVP
>>> and Command patterns.
>>> Let me explain how hupa is designed, and why the imap latency your
>> realize.
>>>
>>> - Server side
>>> Everything in server-side is agnostic about the client-side (browser), we
>>> use handlers for each service and they are very well unit tested. We
>> offer
>>> those services via ajax, rigth now with a gwt-dispatch servlet, although
>> we
>>> could easily add other servlets to allow rpc via ajax (json) for non-gwt
>>> client applications.
>>> The main problem now in the server side is that we are not doing imap
>>> caching nor we access directly to the mailbox.
>>> So each time a user interacts with the ui, hupa have to ask the
>> imap-server
>>> and download headers or messages just in case (this is very expensive in
>>> far-off imap servers like gmail, large inboxes or messages with
>>> attachments).
>>>
>>> I have in mind to use directly the james mailbox instead of imap, this
>>> should increase considerably the performance like gmail does with
>>> mailboxes.
>>> Even we could have a mailbox implementation in James which could be an
>>> imap/pop client  (something like fetchmail) and it should be feasible
>> that
>>> a user in James could configure other mail sources (like gmail does)
>>>
>>> There are many things to do in the server side though, think that we just
>>> have coded a simple imap client so as we could develop faster the visual
>>> part.
>>>
>>> - Client side
>>> It is gwt, so everything is converted into javascript resulting a pure
>>> desktop-like app made with javascript which requests services via ajax to
>>> the server. Note that we don't have any jsp parser not html generator.
>>>
>>> The goal of using gwt is that instead of coding in javascript (jquery +
>>> plugins + widgets etc) we code in Java, so as we can take advantage of
>> the
>>> full java ecosystem: first we have a featured IDE (refactoring, coverage,
>>> javadoc...), second a way to decouple code modules using libs and maven
>>> dependencies, and finally we can use real patterns and object oriented
>>> programing because of java.
>>>
>>> The main pattern we use in client side is MVP (model-view-presenter) with
>>> allows completely decouple the views from the client-application logic,
>> so
>>> as we can mock the view and test every single method (including the ajax
>>> dialog with the server).
>>> With this pattern, testing does not need to start a servlet container so
>> as
>>> we can run integration tests very fast.
>>>
>>> Instead of using ajax json or xml, and because the server side is java,
>> we
>>> use a special ajax serialization which comes with gwt, so as we can use
>> the
>>> same objects in both server and client sides (here we use the command
>>> pattern).
>>>
>>> We have a set of very simple views styled with css, but we could enrich
>>> them very easily either using css3 or replacing with more rich widgets
>> like
>>> gxt, smartgwt, etc.
>>>
>>> Of course, like you say, we could replace gwt by any other approach to
>>> build a web application, in this case the only reusable part is the imap
>>> client in the server part. But this is a very small part of the all the
>>> Hupa code.
>>> What we pretended with hupa is to develop a very rich desktop-like app to
>>> run in the browser, the only way to do that is using profusely javascript
>>> (apart from java applets, flash, etc). There are many technologies to do
>>> that:
>>> 1.- codding javascript by hand (you have js libraries like jquery with
>>> makes the work easier.
>>> 2.- using java and converting it to js using gwt-compiler (there is also
>> a
>>> scala to js compiler)
>>> 3.- using frameworks like jsf-2, rails, grails, lift, etc which injects
>>> javascript portions into html templates.
>>>
>>> Based in my experience,
>>> #1 You have full control over the generated js, but you need good skills
>> in
>>> js (most people who uses js tend to copy pieces from here and there) and
>>> deep knowledge of obfuscation and compression js tools to produce  good
>>> performance apps.
>>> #2 There is a learning curve to understand well that your java code wont
>> be
>>> run in a jvm but in a browser, but the IDE helps a lot and gwt-compiler
>>> will take care of generating good quality js (optimized, reduced, etc).
>>> #3 It's very good for traditional apps based on a page per view with some
>>> kind of ajax to update, edit, etc. But when you want a
>>> single-page-application, sooner than later you have to deal with
>>> javascript.
>>>
>>>
>>> I hope this clarifies a bit the architecture or Hupa.
>>>
>>> - Manolo
>>>
>>>
>>> On Thu, Apr 19, 2012 at 5:50 AM, Eric Charles<eric@apache.org>  wrote:
>>>
>>>> Hupa should also focus to decouple the 'services' from the 'ui'.
>>>>
>>>> If we have independent services for efficient IMAP mailbox read/write,
>>>> contact management, authentication/authorization..**. (name any), we
>> can:
>>>>
>>>> 1.- Focus on those libraries without the ui concern - for example, my
>>>> current experience with hupa is that the mailboxes reading sometimes
>>> fails
>>>> due to (I think) latency,...
>>>>
>>>> 2.- Put any ui on top, GWT being the first developed, but any other one
>>>> could be further added.
>>>>
>>>> Thx,
>>>> Eric
>>>>
>>>>
>>>>
>>>> On 04/18/2012 05:20 PM, Manuel Carrasco Moñino wrote:
>>>>
>>>>> I've been taking a look to the demo, it looks pretty nice because of
a
>>>>> good
>>>>> selection of css, I'll  deep into the code when I had a while.
>>>>>
>>>>> You can see Hupa in action in either servers:
>>>>> http://hupa.alcala.org (it's a shared server I use, it could be down
>>>>> sometimes)
>>>>> http://james.zones.apache.org  (it's a recent instance deployed in
>> the
>>>>> James jail server).
>>>>>
>>>>> In order to use hupa you have to login with any gmail user (previously
>>> you
>>>>> have to enable imap in that user).
>>>>>
>>>>> - Manolo
>>>>>
>>>>> On Wed, Apr 18, 2012 at 3:44 PM, Ioan Eugen Stan<
>> stan.ieugen@gmail.com
>>>> **
>>>>> wrote:
>>>>>
>>>>>   Hi Dhurbo, Manolo,
>>>>>>
>>>>>> I think the developer doing the work should choose whatever platform
>>>>>> he is most comfortable with. Good code has to come out of his hands
>>>>>> and comfort aids that. Having both with be great (but most likely
>> hard
>>>>>> to maintain in the long run).
>>>>>>
>>>>>> As a user I would like to see something usable that looks nice. I
>>>>>> wouldn't care if it where implemented in a specific platform.
>>>>>>
>>>>>> MyFaces mailbox demo looks very nice. I haven't checked Hupa demo
(I
>>>>>> know Manolo has one installed, but I don't have a gmail test account
>>>>>> and I didn't see any SSL), maybe we should have a mocked HUPA install
>>>>>> like MyFaces one available online. I wonder what it will take to
do
>>>>>> that?
>>>>>>
>>>>>> My cents ;).
>>>>>> Cheers,
>>>>>>
>>>>>> 2012/4/18 Dhrubo<dhrubo.kayal@gmail.com>**:
>>>>>>
>>>>>>> Manolo -
>>>>>>> Primefaces Mailbox template ---
>>>>>>> http://www.primefaces.org/**showcase-labs/ui/**layoutMailbox.jsf<
>>> http://www.primefaces.org/showcase-labs/ui/layoutMailbox.jsf>
>>>>>>>
>>>>>>> Its basic but good starting point. They have very rich component
>> suite
>>>>>>>
>>>>>> also
>>>>>>
>>>>>>> you can look into Primefaces extensions for more layouts and
Rich
>>> editor
>>>>>>> support besides what is provided by Primefaces itself.
>>>>>>> The extensions project is hosted here -
>>>>>>> http://code.google.com/p/**primefaces-extensions/<
>>> http://code.google.com/p/primefaces-extensions/>
>>>>>>>
>>>>>>> They also have their entire showcase online.
>>>>>>>
>>>>>>> Slight deviation - following the principles of Zimbra we can
easily
>>>>>>> (hopefully) we can turn this webmail app into a desktop app like
MS
>>>>>>>
>>>>>> OUTLOOK
>>>>>>
>>>>>>> or Thunderbird by embeding Jetty with Mozilla Prism (is it a
dead
>>>>>>>
>>>>>> project i
>>>>>>
>>>>>>> guess) or some kind of XULRunner.
>>>>>>>
>>>>>>> Also I am available for any consultancy or help on Primefaces,
JSF
>> 2,
>>>>>>> Spring. I can also do lot of  development as well provided I
have a
>>>>>>>
>>>>>> commit
>>>>>>
>>>>>>> privilege on SVN :) . One big advantage I see using JSF 2 is
modular
>>> app
>>>>>>> development. Please check this link -
>>>>>>> https://community.jboss.org/**wiki/ModularWebAppsWithJSF2?_**sscc=t
>> <
>>> https://community.jboss.org/wiki/ModularWebAppsWithJSF2?_sscc=t>
>>>>>>>
>>>>>>> This can be further extended with Spring and Ant style
>> configuration.
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Apr 18, 2012 at 3:37 PM, Manuel Carrasco Moñino
>>>>>>> <manolo@apache.org>wrote:
>>>>>>>
>>>>>>>   Dhrubo, Is there a site running the the webmail example of
>>> primefaces?,
>>>>>>>>
>>>>>>> or
>>>>>>
>>>>>>> is there a way to download the .war file?, I'd like to take a
look.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> - Manolo
>>>>>>>>
>>>>>>>> On Wed, Apr 18, 2012 at 9:41 AM, Dhrubo<dhrubo.kayal@gmail.com>
>>>>>>>>   wrote:
>>>>>>>>
>>>>>>>>   I do not intend to launch a debate on GWT v JSF 2. But
JSF 2 is
>> the
>>>>>>>>>
>>>>>>>> JEE
>>>>>>
>>>>>>> standard for UI and Primefaces comes with sample layout for webmail
>>>>>>>>>
>>>>>>>> which
>>>>>>
>>>>>>> may help you get started very fast.
>>>>>>>>>
>>>>>>>>> On Wed, Apr 18, 2012 at 12:37 PM, Dhrubo<dhrubo.kayal@gmail.com>
>>>>>>>>>
>>>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>>>   These days with JSF 2 frameworks like Primefaces et
all we do not
>>>>>>>>>>
>>>>>>>>> really
>>>>>>>>
>>>>>>>>> need any js , ajax is out of the box and we need little
html know
>>>>>>>>>>
>>>>>>>>> how
>>>>>>
>>>>>>> too.
>>>>>>>>>
>>>>>>>>>> Also they come with more than standard layouts and
theme support.
>>>>>>>>>>
>>>>>>>>>> James being an Apache product and Apache also develops
JSF 2 imp,
>>> we
>>>>>>>>>> should use JSF 2 with easiest and huge set of components
like in
>>>>>>>>>>
>>>>>>>>> Primefaces
>>>>>>>>>
>>>>>>>>>> which is excellent documented highly active community.
>>>>>>>>>>
>>>>>>>>>> So my two cents
>>>>>>>>>> +1 Primefaces
>>>>>>>>>> -1 GWT
>>>>>>>>>>
>>>>>>>>>> Please note I have no affiliation or neither work
for Prime
>>>>>>>>>>
>>>>>>>>> Teknoloji
>>>>>>
>>>>>>> :)
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 18, 2012 at 12:29 PM, Manuel Carrasco
Moñino<
>>>>>>>>>> manolo@apache.org>   wrote:
>>>>>>>>>>
>>>>>>>>>>   -1  JSF2
>>>>>>>>>>> +1 GWT
>>>>>>>>>>>
>>>>>>>>>>> Like JSF2, GWT is a proved technology, open sourced,
and
>> apache-2
>>>>>>>>>>> licensed.
>>>>>>>>>>>
>>>>>>>>>>> GWT adds a set of benefices to James, mainly
we continue being
>>> java
>>>>>>>>>>> centric
>>>>>>>>>>> and we dont need serious javascript, ajax nor
html skills to
>>>>>>>>>>>
>>>>>>>>>> understand
>>>>>>>>
>>>>>>>>> the
>>>>>>>>>>> project, secondly we can deliver a product which
is unit tested
>>> and
>>>>>>>>>>> javadoc-ed in all its components.
>>>>>>>>>>>
>>>>>>>>>>> I don't want to expose the benefices of developing
large rich
>> apps
>>>>>>>>>>>
>>>>>>>>>> with
>>>>>>>>
>>>>>>>>> gwt
>>>>>>>>>>> vs hand-written js because there is a lot of
literature along
>> the
>>>>>>>>>>>
>>>>>>>>>> web.
>>>>>>
>>>>>>>
>>>>>>>>>>> - Manolo
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Apr 13, 2012 at 6:05 AM, Dhrubo<dhrubo.kayal@gmail.com>
>>>>>>>>>>>
>>>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>   I think we should move to JSF 2 than GWT which
is mostly
>>>>>>>>>>>>
>>>>>>>>>>> controlled
>>>>>>
>>>>>>> by
>>>>>>>>
>>>>>>>>> one
>>>>>>>>>>>
>>>>>>>>>>>> company.
>>>>>>>>>>>> Apache with its vision and endeavor for OSS
 we should use -
>> JSF
>>>>>>>>>>>>
>>>>>>>>>>> 2 -
>>>>>>
>>>>>>> Tomahawk (or Mojarra) + Primefaces
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Apr 12, 2012 at 6:37 PM, Ioan Eugen
Stan<
>>>>>>>>>>>>
>>>>>>>>>>> stan.ieugen@gmail.com
>>>>>>>>>
>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>   Pe 11.04.2012 18:48, echo a scris:
>>>>>>>>>>>>>
>>>>>>>>>>>>>   Hi Manolo
>>>>>>>>>>>>>> Very glad to see your reply. The
reason why I want to choose
>>>>>>>>>>>>>>
>>>>>>>>>>>>> the
>>>>>>
>>>>>>> gwt-platform
>>>>>>>>>>>>>> was that it is more smoothly to update
from current Hupa's
>>>>>>>>>>>>>> state(gwt-presenter).
>>>>>>>>>>>>>> However, I like the native one rather
than gwtp since it will
>>>>>>>>>>>>>>
>>>>>>>>>>>>> import
>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>>>>
>>>>>>>>>>>> other
>>>>>>>>>>>>>> resources. What I really want to
do is to replace the MVP by
>>>>>>>>>>>>>>
>>>>>>>>>>>>> gwt
>>>>>>
>>>>>>> itself.
>>>>>>>>>>>
>>>>>>>>>>>> I was
>>>>>>>>>>>>>> just afraid whether I can complete
the proposal before the
>>>>>>>>>>>>>>
>>>>>>>>>>>>> deadline
>>>>>>>>
>>>>>>>>> of
>>>>>>>>>>>
>>>>>>>>>>>> GSoC, so
>>>>>>>>>>>>>> I asked for you advices. If possible,
I want to use the core
>>>>>>>>>>>>>>
>>>>>>>>>>>>> mvp
>>>>>>
>>>>>>> in
>>>>>>>>
>>>>>>>>> gwt
>>>>>>>>>>>
>>>>>>>>>>>> to
>>>>>>>>>>>>
>>>>>>>>>>>>> realize it. Over these days, I have been
researching the Hupa
>>>>>>>>>>>>>>
>>>>>>>>>>>>> project
>>>>>>>>>
>>>>>>>>>> and
>>>>>>>>>>>>
>>>>>>>>>>>>> GWT
>>>>>>>>>>>>>> technology and later on I want to
show you something I am
>>>>>>>>>>>>>>
>>>>>>>>>>>>> changing.
>>>>>>>>
>>>>>>>>> To the new features, I would like to implement as many
>>>>>>>>>>>>>>
>>>>>>>>>>>>> features,
>>>>>>
>>>>>>> that a
>>>>>>>>>>>
>>>>>>>>>>>> current
>>>>>>>>>>>>>> email client should have,  as possible
not only during the
>>>>>>>>>>>>>>
>>>>>>>>>>>>> GSoC
>>>>>>
>>>>>>> period,
>>>>>>>>>>>
>>>>>>>>>>>> but also
>>>>>>>>>>>>>> after that. And I am also keeping
my eyes open on the Hupa's
>>>>>>>>>>>>>>
>>>>>>>>>>>>> JIRA,
>>>>>>>>
>>>>>>>>> where
>>>>>>>>>>>
>>>>>>>>>>>> some
>>>>>>>>>>>>>> wonderful ideas come out gradually.
Sure I will give my
>> deeper
>>>>>>>>>>>>>> discription after
>>>>>>>>>>>>>> my researching. I don't think it
will be late.
>>>>>>>>>>>>>> Thanks a lot :)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Wish you a happy
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>    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.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   Cheers
>>>>>>>>>>>>>>>   - Manolo
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   --
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> cheers,
>>>>>>>>>>>>>> echo
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>   Hello Echo,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Sound good. I'm not familiar with GWT
and I would like to know
>>>>>>>>>>>>>
>>>>>>>>>>>> more.
>>>>>>>>
>>>>>>>>> Good
>>>>>>>>>>>
>>>>>>>>>>>> luck with your research and send us the findings.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cheers.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Ioan Eugen Stan
>>>>>>>>>>>>> http://ieugen.blogspot.com
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>   ------------------------------****----------------------------**
>>>>>> --**---------
>>>>>>
>>>>>>> To unsubscribe, e-mail: server-dev-unsubscribe@james.****
>>>>>>>>>>>>>
>>>>>>>>>>>> apache.org
>>>>>>
>>>>>>> <
>>>>>>>>
>>>>>>>>> server-dev-unsubscribe@james.**apache.org<
>>> server-dev-unsubscribe@james.apache.org>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> For additional commands, e-mail: server-dev-help@james.apache.
>>>>>>>>>>>>>
>>>>>>>>>>>> **org<
>>>>>>>>>
>>>>>>>>>> server-dev-help@james.apache.**org<
>>> server-dev-help@james.apache.org>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Kind Regards... Dhrubo
>>>>>>>>>>>>
>>>>>>>>>>>> <http://www.linkedin.com/in/**dhrubo<
>>> http://www.linkedin.com/in/dhrubo>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Kind Regards... Dhrubo
>>>>>>>>>>
>>>>>>>>>> <http://www.linkedin.com/in/**dhrubo<
>>> http://www.linkedin.com/in/dhrubo>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Kind Regards... Dhrubo
>>>>>>>>>
>>>>>>>>> <http://www.linkedin.com/in/**dhrubo<
>>> http://www.linkedin.com/in/dhrubo>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Kind Regards... Dhrubo
>>>>>>>
>>>>>>> <http://www.linkedin.com/in/**dhrubo<
>>> http://www.linkedin.com/in/dhrubo>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ioan Eugen Stan
>>>>>> http://ieugen.blogspot.com/
>>>>>>
>>>>>> ------------------------------**------------------------------**
>>>>>> ---------
>>>>>> To unsubscribe, e-mail: server-dev-unsubscribe@james.**apache.org<
>>> server-dev-unsubscribe@james.apache.org>
>>>>>> For additional commands, e-mail: server-dev-help@james.apache.**org<
>>> server-dev-help@james.apache.org>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>> --
>>>> eric | http://about.echarles.net | @echarles
>>>>
>>>>
>>>>
>> ------------------------------**------------------------------**---------
>>>> To unsubscribe, e-mail: server-dev-unsubscribe@james.**apache.org<
>>> server-dev-unsubscribe@james.apache.org>
>>>> For additional commands, e-mail: server-dev-help@james.apache.**org<
>>> server-dev-help@james.apache.org>
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Correo de Luis R. Slocker
>>
>
>
>

-- 
eric | http://about.echarles.net | @echarles

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


Mime
View raw message