you're wellcome On Wed, Mar 29, 2017 at 4:20 PM, Maxim Solodovnik <[email protected]> wrote:
> 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 >
