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

Reply via email to