From photark-dev-return-1233-apmail-incubator-photark-dev-archive=incubator.apache.org@incubator.apache.org Fri Feb 04 15:40:17 2011 Return-Path: Delivered-To: apmail-incubator-photark-dev-archive@minotaur.apache.org Received: (qmail 70340 invoked from network); 4 Feb 2011 15:40:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Feb 2011 15:40:17 -0000 Received: (qmail 62111 invoked by uid 500); 4 Feb 2011 15:40:17 -0000 Delivered-To: apmail-incubator-photark-dev-archive@incubator.apache.org Received: (qmail 62069 invoked by uid 500); 4 Feb 2011 15:40:15 -0000 Mailing-List: contact photark-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: photark-dev@incubator.apache.org Delivered-To: mailing list photark-dev@incubator.apache.org Received: (qmail 62058 invoked by uid 99); 4 Feb 2011 15:40:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Feb 2011 15:40:14 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of subashsdm@gmail.com designates 74.125.82.175 as permitted sender) Received: from [74.125.82.175] (HELO mail-wy0-f175.google.com) (74.125.82.175) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Feb 2011 15:40:10 +0000 Received: by wyb40 with SMTP id 40so2298089wyb.6 for ; Fri, 04 Feb 2011 07:39:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=XfLmU4SI6xm9TYZ2w43Svnez4q+XzSC/1FGQou9sfmE=; b=n6sxD84+hia21JLcqCieouF3+rJ+3fFlLu8M/lIhbHSVfR+8yGsWMzBgaYszH3d9In uOPeh3VnFhMgbCQ9ApU/UPdeLrQdV1tvsx+IbTzVs+ZbhwP6kSMjCm/x67WgpiFiHE7q c87DVicjS9nENWaypaQUak4eKI0NZdp2Zopl4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=EJiuG2KkqJLwmbXQOSrVWBq0HydYmwjguX85fUc6EHIdKRSdbLkQkqI67lbhcDbfmT +azjgTiwfCuIHv0Hd4Lcyf70Hq5T0D4XfJQMYDS01fKZRpG4tNbOUx1kpS8u0mCRwwMC 5+YK6oAeFVRl/TnHI0p8K8JH8QSpJq4ei/nE0= MIME-Version: 1.0 Received: by 10.216.199.81 with SMTP id w59mr758172wen.100.1296833875518; Fri, 04 Feb 2011 07:37:55 -0800 (PST) Received: by 10.216.121.148 with HTTP; Fri, 4 Feb 2011 07:37:55 -0800 (PST) In-Reply-To: References: Date: Fri, 4 Feb 2011 21:07:55 +0530 Message-ID: Subject: Re: Progress of UI support for remote album subscription with new local jcr structure in trunk From: Subash Chaturanga To: photark-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=0016e6daa93a7ba50c049b76aad4 --0016e6daa93a7ba50c049b76aad4 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Feb 4, 2011 at 7:36 PM, Avdhesh Yadav wrote: > I think at the time of subscribe what you are doing is going through all > the images for album and adding to jcr right ? Are you storing meta data of images also in the jcr? Yes. Adding only meta data such as name, type and url. Not image itself. > I am thinking of doing > lazy fetching of images > I mean instead of fetching images at the time of subscribe just save the > album url at the time of subscribe > and when anyone view the remote album from the gallery..we should fetch the > meta-data of image and cache it into the JCR. > it make a bit complicated but improves the user experience.later on any way > we have to add the sync feature > so your idea is also good and it work.but suppose if an album has 1000 > images..it would make bad experience if user have to wait after clicking > subscribing to albums. > In my implementation as an initial step I planned to make the remote subscription thing as much as simple where it follows almost the same model as how local albums deals except few stuff. It led me to give the ui support for remote albums in less effort and less complexity. But seems like your suggestion is also a pretty good way which can be added as a future enhancement to this, which will give a better user experience in performance where you fetch image by image at the view time. And sync problem also solved. gallery.js functions related to remote albums will have to be changed bit more, may be from scratch. I will look in to it. Thank you very much for reviewing the patch with in your busy schedules. > > > On Mon, Jan 31, 2011 at 7:59 PM, Suhothayan Sriskandarajah < > suhothayan@gmail.com> wrote: > > > On 31 January 2011 19:29, Subash Chaturanga wrote: > > > > > Hi all, > > > > > > Last few weeks I was working on two jira issues in photark trunk > > > 1.Provide UI support for remote album subscription [1] > > > 2.Change local jcr structure in trunk [2] > > > > > > where I needed to complete the work on jira[2], to finish jira [1] in a > > > better way. > > > > > > I think the above two jira issues are finished and they all work fine > > > without any errors. I run it with a cleaned tomcat and worked fine for > > me. > > > I > > > also added client side validations for remote subscriptions.. > > > So now, in my patch [3], photark trunk UI supports remote album > > > subscription with the new local jcr structure. > > > > > > The structure is as follows. > > > > > > Local albums - /albums/local > > > Remote Albums - /albums/remote > > > > > > - I have added a AlbumSubscriptionManager who acquire remote albums > from > > > corresponding album providers and store them (as Luciano suggested). > > > > > > - I didn't touch the local gallery service and kept it as it is, and > > > created > > > a new remote gallery service where it only deals with the remote > albums. > > > > > > - I have added JCRAlbumAggregator, who is capable of aggregating all > > types > > > of albums.(currently only remote gallery service deals with this, and > > local > > > gallery service works its own way). > > > > > > - Above facts make my life easy to change the gallery UI, where local > > > albums > > > and remote albums works alone separately inside their own html tables. > > > > > > It will be really feel great for me, if photark can apply this to trunk > ( > > > if > > > this is good enough ) . Please try the patch in your free time and > > provide > > > any pros and cons of this patch, so that I can make further changes as > > > photark needs. > > > > > > Good job Subash > > > > Before committing there is a small issue to fix, > > After adding picasa album and then when I view the album from the gallery > > by pressing the slideshow mode I get an error : > > > > javax.jcr.PathNotFoundException: BB > > at org.apache.jackrabbit.core.NodeImpl.getNode(NodeImpl.java:2683) > > at > > > > > org.apache.photark.jcr.services.JCRImageCollectionImpl.get(JCRImageCollectionImpl.java:86) > > at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source) > > at > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > > > org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:113) > > at > > > > > org.apache.tuscany.sca.binding.http.provider.HTTPBindingListenerServlet.doGet(HTTPBindingListenerServlet.java:104) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > > at > > > > > org.apache.tuscany.sca.binding.http.provider.HTTPBindingListenerServlet.service(HTTPBindingListenerServlet.java:72) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > at > > > > > org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:110) > > at > > > > > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94) > > at > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > > at > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > > at > > > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465) > > at > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > > at > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > at > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) > > at > > > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > > at java.lang.Thread.run(Thread.java:662) > > 31-Jan-2011 19:52:32 > > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter > > doFilter > > SEVERE: null > > java.lang.NullPointerException > > at > > > > > org.apache.tuscany.sca.binding.http.provider.HTTPBindingListenerServlet.doGet(HTTPBindingListenerServlet.java:141) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > > at > > > > > org.apache.tuscany.sca.binding.http.provider.HTTPBindingListenerServlet.service(HTTPBindingListenerServlet.java:72) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > at > > > > > org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:110) > > at > > > > > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94) > > at > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > at > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > at > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > > at > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > > at > > > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465) > > at > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > > at > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > at > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) > > at > > > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > > at java.lang.Thread.run(Thread.java:662) > > > > > > > > I think you are calling the old (local album) slide show. Please update > > that. > > > > Other than that I think its good for the commit > > > > Thoughts? > > > > > > Suho > > > > [1] - https://issues.apache.org/jira/browse/PHOTARK-62 > > > [2] - https://issues.apache.org/jira/browse/PHOTARK-66 > > > [3] - > > > > > > > > > https://issues.apache.org/jira/secure/attachment/12469819/uiSubscriptionWithNewStructureCompleted.patch > > > > > > > > > Regards > > > /subash > > > > > > > > > -- > Avdhesh Yadav > http://www.avdheshyadav.com > http://twitter.com/yadavavdhesh > Thanks /subash --0016e6daa93a7ba50c049b76aad4--