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 >
