It called only once, Correct file name is being set But file is being downloaded with UUID as name
On Wed, Apr 12, 2017 at 4:10 PM, Martin Grigorov <[email protected]> wrote: > Hi Maxim, > > Put a breakpoint at ResourceResponse.setFileName(String) and see how many > times it is called and with what values. > > Martin Grigorov > Wicket Training and Consulting > https://twitter.com/mtgrigorov > > On Wed, Apr 12, 2017 at 11:07 AM, Maxim Solodovnik <[email protected]> > wrote: > > > Hello All, > > > > I have updated my project > > https://github.com/solomax/ajax-download/commit/ > > 453663a55f390e54354381ab0f009d194e37e87c > > To set filename > > But file being downloaded has random UUID as file name, what am I doing > > wrong? > > > > On Wed, Mar 29, 2017 at 9:31 PM, Maxim Solodovnik <[email protected]> > > wrote: > > > > > Will try to migrate all my use cases on a SNAPSHOT first > > > Then will do > > > Thanks Martin! > > > > > > On Wed, Mar 29, 2017 at 9:28 PM, Martin Grigorov <[email protected] > > > > > wrote: > > > > Maxim, you can use Location.IFrame or Location.SameWindow too in -M5 > > (to > > > be > > > > released!). > > > > > > > > Martin Grigorov > > > > Wicket Training and Consulting > > > > https://twitter.com/mtgrigorov > > > > > > > > On Wed, Mar 29, 2017 at 4:26 PM, Sven Meier <[email protected]> wrote: > > > > > > > >> In a minute :P > > > >> > > > >> Sven > > > >> > > > >> > > > >> > > > >> On 29.03.2017 16:15, Andrea Del Bene 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 > > > > > > > > > > > -- > > WBR > > Maxim aka solomax > > > -- WBR Maxim aka solomax
