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

Reply via email to