Now I know where to check :) Thanks! On Wed, Mar 29, 2017 at 9:15 PM, Andrea Del Bene <[email protected]> wrote: > Right when we will return to "success" :-) > > https://ci.apache.org/builders/wicket-master > > On Wed, Mar 29, 2017 at 4:07 PM, Maxim Solodovnik <[email protected]> > wrote: > >> Wow, Thanks a lot! >> Could you please let me know when SNAPSHOT with the fix will be available? >> >> On Wed, Mar 29, 2017 at 8:50 PM, Sven Meier <[email protected]> wrote: >> > Hi, >> > >> > so we have to change the Location.Blob to use XMLHttpRequest directly, >> > because jQuery does not support blob downloads :/. >> > >> > I've change the JavaScript and now downloading of the zip works fine. >> > >> > FileSystemResource might not be the best candidate (because it's not >> > serializable), but you can use an indirection to prevent it being >> serialized >> > along with AjaxDownload: >> > >> > final AjaxDownload download = new AjaxDownload( >> > new IResource() >> > { >> > @Override >> > public void respond(Attributes attributes) >> > { >> > new >> > FileSystemResource(zipFile.toPath()).respond(attributes); >> > } >> > } >> > ); >> > >> > Have fun >> > Sven >> > >> > >> > >> > On 29.03.2017 15:12, Maxim Solodovnik wrote: >> >> >> >> Filename is minor issue .... >> >> Main problem is invalid file :( >> >> >> >> How can I serve the file from file system? I thought filesystemreference >> >> if >> >> the best candidate ..... >> >> >> >> WBR, Maxim >> >> (from mobile, sorry for the typos) >> >> >> >> On Mar 29, 2017 8:08 PM, "Sven Meier" <[email protected]> wrote: >> >> >> >>> Hi Maxim, >> >>> >> >>> three things: >> >>> >> >>> - filename ... no one sets the file name :P >> >>> >> >>> - serializable error ... FileSystemResource holds a reference to the >> >>> path, >> >>> which is not serializable >> >>> >> >>> - corruct zip ... my bad, it seems that Location.Blob mangles the file >> on >> >>> the client side >> >>> >> >>> I'll see what I can do about Location.Blob - it might be an encoding >> >>> issue. >> >>> >> >>> Have fun >> >>> Sven >> >>> >> >>> >> >>> On 29.03.2017 14:15, Maxim Solodovnik wrote: >> >>> >> >>>> here you are: https://github.com/solomax/ajax-download >> >>>> Absolutely don't understand what is going on :( >> >>>> >> >>>> On Wed, Mar 29, 2017 at 6:30 PM, Maxim Solodovnik < >> [email protected]> >> >>>> wrote: >> >>>> >> >>>>> Yep, zip file is valid >> >>>>> Breakpoint at AjaxDownload.ResourceBehavior#onRequest() is not hit >> :( >> >>>>> Will try to create quickstart >> >>>>> >> >>>>> something extremely weird >> >>>>> >> >>>>> On Wed, Mar 29, 2017 at 2:22 AM, Martin Grigorov < >> [email protected]> >> >>>>> wrote: >> >>>>> >> >>>>>> Hi Maxim, >> >>>>>> >> >>>>>> On Tue, Mar 28, 2017 at 11:06 AM, Maxim Solodovnik < >> >>>>>> [email protected]> >> >>>>>> wrote: >> >>>>>> >> >>>>>> Thanks a lot Martin for detailed explanation >> >>>>>>> >> >>>>>>> I do have this functionality working with old version of >> AjaxDownload >> >>>>>>> >> >>>>>>> And here is my first try to migrate to the new internal wicket >> >>>>>>> AjaxDownload: >> >>>>>>> https://github.com/apache/openmeetings/commit/ >> >>>>>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f >> >>>>>>> >> >>>>>>> I would appreciate if you can take a look at this tiny commit. >> >>>>>>> >> >>>>>>> Something really doesn't work as expected .... >> >>>>>>> >> >>>>>>> Commited version behaves wrong: >> >>>>>>> 1) file downloaded has wrong name >> >>>>>>> >> >>>>>>> You do not set file name anywhere! >> >>>>>> >> >>>>>> Keep a reference to the constructed ResourceResponse and call its >> >>>>>> #setFileName(...) >> >>>>>> >> >>>>>> >> >>>>>> 2) is not valid zip file (cannot be opened) >> >>>>>>> >> >>>>>>> Is the backupPath representing a ZIP file ? >> >>>>>> >> >>>>>> >> >>>>>> 3) for some reason I'm not able to get to breakpoint at line 115 [1] >> >>>>>>> >> >>>>>>> Put a breakpoint at >> >>>>>>> AjaxDownload.ResourceBehavior#onResourceRequested() >> >>>>>> >> >>>>>> and >> >>>>>> see what happens >> >>>>>> >> >>>>>> >> >>>>>> Additionally I got NotSerializable exception in case I made >> "download" >> >>>>>>> >> >>>>>>> class final variable >> >>>>>>> >> >>>>>>> java.nio.file.Path is not Serializable! >> >>>>>> >> >>>>>> >> >>>>>> What am I doing wrong? >> >>>>>>> >> >>>>>>> [1] https://github.com/apache/openmeetings/commit/ >> >>>>>>> 5fa2c87f212e4eecdd1368f2ae7fa8762832838f#diff- >> >>>>>>> 0a499c88998a93ceb51c347836aa6195R115 >> >>>>>>> >> >>>>>>> On Thu, Mar 23, 2017 at 3:16 AM, Martin Grigorov >> >>>>>>> <[email protected] >> >>>>>>> wrote: >> >>>>>>> >> >>>>>>>> On Wed, Mar 22, 2017 at 12:59 PM, Maxim Solodovnik < >> >>>>>>>> [email protected] >> >>>>>>>> >> >>>>>>>> wrote: >> >>>>>>>> >> >>>>>>>> Actually I have 2 example use cases: >> >>>>>>>>> >> >>>>>>>>> 1) user selects files on file tree >> >>>>>>>>> 2) as soon as file is selected and download is enabled for it, >> used >> >>>>>>>>> can >> >>>>>>>>> press ajax download button and get the file >> >>>>>>>>> >> >>>>>>>>> Another case: >> >>>>>>>>> User requests system backup >> >>>>>>>>> As soon as backup is created (Progress complete) >> >>>>>>>>> Download of newly created file should be initiated >> >>>>>>>>> >> >>>>>>>>> I can't create ResourceReference and override getResourceStream >> of >> >>>>>>>>> it >> >>>>>>>>> >> >>>>>>>> since >> >>>>>>>> I only have resource just before download >> >>>>>>>>> >> >>>>>>>>> Wicket IResource is an abstraction over the real resource. >> >>>>>>>> >> >>>>>>>> In my case i also create the response on the fly. It is either a >> >>>>>>>> single >> >>>>>>>> File or a Zip file with several entries. >> >>>>>>>> The ResourceReference is more or less just an endpoint with almost >> >>>>>>>> no >> >>>>>>>> >> >>>>>>> logic >> >>>>>>> >> >>>>>>>> at all. It just creates the IResource. >> >>>>>>>> The IResource uses the information from the request parameters / >> >>>>>>>> session >> >>>>>>>> >> >>>>>>> / >> >>>>>>> >> >>>>>>>> somewhere else to create the actual response (the files). >> >>>>>>>> >> >>>>>>>> AjaxDownload is an Ajax behavior that you can use to trigger the >> >>>>>>>> creation >> >>>>>>>> of the files and by using its callback methods you can show >> feedback >> >>>>>>>> to >> >>>>>>>> >> >>>>>>> the >> >>>>>>> >> >>>>>>>> user. To show progress bar you will need to employ ProgressBar >> from >> >>>>>>>> wicket-extentions or use WebSockets. >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> On Wed, Mar 22, 2017 at 6:53 PM, Martin Grigorov < >> >>>>>>>>> >> >>>>>>>>> [email protected]> >> >>>>>>>>> wrote: >> >>>>>>>>> >> >>>>>>>>> Hi Maxim, >> >>>>>>>>>> >> >>>>>>>>>> I use the new AjaxDownload with a ResourceReference, i.e. >> >>>>>>>>>> AjaxDownload#AjaxDownload(org.apache.wicket.request. >> >>>>>>>>>> resource.ResourceReference, >> >>>>>>>>>> org.apache.wicket.request.mapper.parameter.PageParameters) >> >>>>>>>>>> The ResourceReference has >> >>>>>>>>>> >> >>>>>>>>>> public IResource getResource() { >> >>>>>>>>>> return new StatementDownloadResource(); >> >>>>>>>>>> } >> >>>>>>>>>> >> >>>>>>>>>> StatementDownloadResource extends ResourceStreamResource and >> >>>>>>>>>> provides >> >>>>>>>>>> implementation of #getResourceStream(). There I have a logic >> that >> >>>>>>>>>> >> >>>>>>>>> returns >> >>>>>>>> >> >>>>>>>> either FileResourceStream or ZipResourceStream. >> >>>>>>>>>> >> >>>>>>>>>> Martin Grigorov >> >>>>>>>>>> Wicket Training and Consulting >> >>>>>>>>>> https://twitter.com/mtgrigorov >> >>>>>>>>>> >> >>>>>>>>>> On Wed, Mar 22, 2017 at 12:30 PM, Maxim Solodovnik < >> >>>>>>>>>> >> >>>>>>>>> [email protected] >> >>>>>>>> >> >>>>>>>> wrote: >> >>>>>>>>>> >> >>>>>>>>>> Just have tried to switch to this AjaxDownload component >> >>>>>>>>>>> >> >>>>>>>>>>> And it seems I cannot find proper way to use it with dynamic >> >>>>>>>>>>> file, >> >>>>>>>>>>> >> >>>>>>>>>> i.e. >> >>>>>>>> >> >>>>>>>> previously >> >>>>>>>>>>> >> >>>>>>>>>>> I created AjaxDownload, >> >>>>>>>>>>> added it to the page >> >>>>>>>>>>> then at the moment I know what file should be served, I set the >> >>>>>>>>>>> >> >>>>>>>>>> stream >> >>>>>>>> >> >>>>>>>> and >> >>>>>>>>>>> >> >>>>>>>>>>> initiate the download >> >>>>>>>>>>> (for example one of use cases: I need to create zip file >> >>>>>>>>>>> >> >>>>>>>>>>> right now this seems to be impossible :( >> >>>>>>>>>>> Can you give me a hint how this dynamic nature can be >> >>>>>>>>>>> implemented? >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>>> -- >> >>>>>>>>>>> WBR >> >>>>>>>>>>> Maxim aka solomax >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> -- >> >>>>>>>>> WBR >> >>>>>>>>> Maxim aka solomax >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>> -- >> >>>>>>> WBR >> >>>>>>> Maxim aka solomax >> >>>>>>> >> >>>>>>> >> >>>>> -- >> >>>>> WBR >> >>>>> Maxim aka solomax >> >>>>> >> >>>> >> >>>> >> > >> >> >> >> -- >> WBR >> Maxim aka solomax >>
-- WBR Maxim aka solomax
