You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Tobias Soloschenko <to...@googlemail.com> on 2015/05/24 13:48:07 UTC

Update to WICKET-5819 - memory usage

Hello everyone,

I just want to introduce a new fluent method to PackageResource / 
PackageResourceReference which is called readPartially(boolean). It 
adresses a memory consumption issue while reading media files (audio, 
video) or other large resource files.

Before this implementation the content of each file shipped with a 
PackageResourceReference were copied into memory and then the part the 
client requested (Content-Range, Range, Accept-Range) was transfered to 
the client.

Now only the part the client requested is read and transfered directly 
to the response, without storing it into memory (ByteArrayInputStream, 
byte[]) - For normal the PackageResourceReference is reading it from disk.

If the method isn't invoked or invoked with false the old behavior is used.

The only limitation is that no 
org.apache.wicket.resource.ITextResourceCompressor will be used if the 
flag is set to true, because the content will not be analyzed.

I decided to first put it into a branch and discuss it here:

Branch: https://github.com/apache/wicket/compare/WICKET-5819_Improvements
Ticket: https://issues.apache.org/jira/browse/WICKET-5819

What do you think?

kind regards

Tobias

Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi Martin,

I changed the wording of the method readPartially to readBuffered. 
(default true) it is much better for understanding this way.

The change you mentioned (WICKET-5819 - Do not close stream if read 
partially) is important, because in case of ByteArrayInputStream 
(readBuffered = true) the stream can be closed because it is wrapped 
into a new ByteArrayInputStream. If the original InputStream is used the 
resource is going to be read from disk directly to response. So it must 
not closed, because the PartWriterCallback is writing the stuff based on 
that stream. (otherwise there would be a stream closed exception while 
writing the content to response)

See:
  https://github.com/apache/wicket/blob/7e3fed6dce27d1cc5c68c7901eecec08091d59c4/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java#L342

kind regards

Tobias

P.S.: Changes that targets your suggestions (sorry that they are split 
into three commits - but they are rather easy to review):

https://github.com/apache/wicket/commit/7a837f605f0df3777f5a3a2b70d3f1142f32a1f4
https://github.com/apache/wicket/commit/3d935e5d483b4f9cb8415d16fc4e94c94e843abd
https://github.com/apache/wicket/commit/86bedde28dbdc32e1a9dfbc92a903b8733e96549


Am 25.05.15 um 22:05 schrieb Martin Grigorov:
> Hi Tobias,
>
> "readPartially" sounds to me like related to "Partial content, code 206",
> i.e. related to the functionality about ranges.
> Maybe "readBuffered"?
>
> The change at
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
> is not very clear to me. Why it is needed exactly?
> How the buffering leads to the need to not closing the resource stream?
>
> I've made some comments in GitHub about small things in the javadoc
> improvements. Did you receive notifications?
>
>
>
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hello everyone,
>>
>> I just want to introduce a new fluent method to PackageResource /
>> PackageResourceReference which is called readPartially(boolean). It
>> adresses a memory consumption issue while reading media files (audio,
>> video) or other large resource files.
>>
>> Before this implementation the content of each file shipped with a
>> PackageResourceReference were copied into memory and then the part the
>> client requested (Content-Range, Range, Accept-Range) was transfered to the
>> client.
>>
>> Now only the part the client requested is read and transfered directly to
>> the response, without storing it into memory (ByteArrayInputStream, byte[])
>> - For normal the PackageResourceReference is reading it from disk.
>>
>> If the method isn't invoked or invoked with false the old behavior is used.
>>
>> The only limitation is that no
>> org.apache.wicket.resource.ITextResourceCompressor will be used if the flag
>> is set to true, because the content will not be analyzed.
>>
>> I decided to first put it into a branch and discuss it here:
>>
>> Branch: https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>
>> What do you think?
>>
>> kind regards
>>
>> Tobias
>>


Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
It's integrated. I am going to delete the branch (WICKET-5819_Improvements)

Thanks a lot for the review Martin! :-)

kind regards

Tobias

Am 26.05.15 um 08:24 schrieb Martin Grigorov:
> Sounds good!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi again,
>>
>> The only thing which is left to be done is to close the inputstream after
>> the PartWriterCallback has finished writing. (Because it is not done via
>> ResourceStream)
>>
>> What do you think?
>>
>> After that change and some tests / review the branch can be merged I think.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>
>>> Hi Tobias,
>>>
>>> "readPartially" sounds to me like related to "Partial content, code 206",
>>> i.e. related to the functionality about ranges.
>>> Maybe "readBuffered"?
>>>
>>> The change at
>>>
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>> is not very clear to me. Why it is needed exactly?
>>> How the buffering leads to the need to not closing the resource stream?
>>>
>>> I've made some comments in GitHub about small things in the javadoc
>>> improvements. Did you receive notifications?
>>>
>>>
>>>
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> I just want to introduce a new fluent method to PackageResource /
>>>> PackageResourceReference which is called readPartially(boolean). It
>>>> adresses a memory consumption issue while reading media files (audio,
>>>> video) or other large resource files.
>>>>
>>>> Before this implementation the content of each file shipped with a
>>>> PackageResourceReference were copied into memory and then the part the
>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>> the
>>>> client.
>>>>
>>>> Now only the part the client requested is read and transfered directly
>> to
>>>> the response, without storing it into memory (ByteArrayInputStream,
>> byte[])
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>
>>>> If the method isn't invoked or invoked with false the old behavior is
>> used.
>>>> The only limitation is that no
>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>> flag
>>>> is set to true, because the content will not be analyzed.
>>>>
>>>> I decided to first put it into a branch and discuss it here:
>>>>
>>>> Branch:
>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>
>>>> What do you think?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>


Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

ok it's finished now. Every stream is going to be closed if readBuffered 
is set to true / false. So I think the branch can be merged If no one 
does not agree with readBuffered.

https://github.com/apache/wicket/commit/0df9ae2fc97c8e143a5a58330a65b140f85714e3

I tested the playback with Safari / Chrome / FireFox and everywhere it 
is working like a charm - with both options. :-)

kind regards

Tobias

Am 26.05.15 um 08:24 schrieb Martin Grigorov:
> Sounds good!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi again,
>>
>> The only thing which is left to be done is to close the inputstream after
>> the PartWriterCallback has finished writing. (Because it is not done via
>> ResourceStream)
>>
>> What do you think?
>>
>> After that change and some tests / review the branch can be merged I think.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>
>>> Hi Tobias,
>>>
>>> "readPartially" sounds to me like related to "Partial content, code 206",
>>> i.e. related to the functionality about ranges.
>>> Maybe "readBuffered"?
>>>
>>> The change at
>>>
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>> is not very clear to me. Why it is needed exactly?
>>> How the buffering leads to the need to not closing the resource stream?
>>>
>>> I've made some comments in GitHub about small things in the javadoc
>>> improvements. Did you receive notifications?
>>>
>>>
>>>
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> I just want to introduce a new fluent method to PackageResource /
>>>> PackageResourceReference which is called readPartially(boolean). It
>>>> adresses a memory consumption issue while reading media files (audio,
>>>> video) or other large resource files.
>>>>
>>>> Before this implementation the content of each file shipped with a
>>>> PackageResourceReference were copied into memory and then the part the
>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>> the
>>>> client.
>>>>
>>>> Now only the part the client requested is read and transfered directly
>> to
>>>> the response, without storing it into memory (ByteArrayInputStream,
>> byte[])
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>
>>>> If the method isn't invoked or invoked with false the old behavior is
>> used.
>>>> The only limitation is that no
>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>> flag
>>>> is set to true, because the content will not be analyzed.
>>>>
>>>> I decided to first put it into a branch and discuss it here:
>>>>
>>>> Branch:
>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>
>>>> What do you think?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>


Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Yaayy! Now, that I know the git command is right I put it to my favs. ;-)

kind regards

Tobias

> Am 28.05.2015 um 08:30 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Seems to have been a delay ;-)
> It's gone now.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Wed, May 27, 2015 at 11:27 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Okay - seems to be a bug.
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 27.05.2015 um 22:12 schrieb Martin Grigorov <mg...@apache.org>:
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=summary
>>> doesn't list it.
>>> We can ask Apache Infra team if it doesn't disappear soon.
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Wed, May 27, 2015 at 9:11 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> I invoked (wicket-apache-origin is the apache wicket git repo - not the
>>>> mirrored from github):
>>>> 
>>>> git push wicket-apache-origin --delete WICKET-5819_Improvements
>>>> 
>>>> the consolse shows:
>>>> 
>>>> - [deleted]         WICKET-5819_Improvements
>>>> 
>>>> Branch still existis (at github)
>>>> 
>>>> Something I made wrong? :-o
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 26.05.15 um 08:24 schrieb Martin Grigorov:
>>>>> 
>>>>> Sounds good!
>>>>> 
>>>>> 
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>> 
>>>>> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>> Hi again,
>>>>>> 
>>>>>> The only thing which is left to be done is to close the inputstream
>> after
>>>>>> the PartWriterCallback has finished writing. (Because it is not done
>> via
>>>>>> ResourceStream)
>>>>>> 
>>>>>> What do you think?
>>>>>> 
>>>>>> After that change and some tests / review the branch can be merged I
>>>>>> think.
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>>>>>> 
>>>>>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mgrigorov@apache.org
>>> :
>>>>>>> 
>>>>>>> Hi Tobias,
>>>>>>> 
>>>>>>> "readPartially" sounds to me like related to "Partial content, code
>>>>>>> 206",
>>>>>>> i.e. related to the functionality about ranges.
>>>>>>> Maybe "readBuffered"?
>>>>>>> 
>>>>>>> The change at
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>>>>> 
>>>>>>> is not very clear to me. Why it is needed exactly?
>>>>>>> How the buffering leads to the need to not closing the resource
>> stream?
>>>>>>> 
>>>>>>> I've made some comments in GitHub about small things in the javadoc
>>>>>>> improvements. Did you receive notifications?
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>> 
>>>>>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>>>> 
>>>>>>> Hello everyone,
>>>>>>>> 
>>>>>>>> I just want to introduce a new fluent method to PackageResource /
>>>>>>>> PackageResourceReference which is called readPartially(boolean). It
>>>>>>>> adresses a memory consumption issue while reading media files
>> (audio,
>>>>>>>> video) or other large resource files.
>>>>>>>> 
>>>>>>>> Before this implementation the content of each file shipped with a
>>>>>>>> PackageResourceReference were copied into memory and then the part
>> the
>>>>>>>> client requested (Content-Range, Range, Accept-Range) was
>> transfered to
>>>>>>> the
>>>>>> 
>>>>>>> client.
>>>>>>>> 
>>>>>>>> Now only the part the client requested is read and transfered
>> directly
>>>>>>> to
>>>>>> 
>>>>>>> the response, without storing it into memory (ByteArrayInputStream,
>>>>>>> byte[])
>>>>>> 
>>>>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>>>>> 
>>>>>>>> If the method isn't invoked or invoked with false the old behavior
>> is
>>>>>>> used.
>>>>>> 
>>>>>>> The only limitation is that no
>>>>>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if
>> the
>>>>>>> flag
>>>>>> 
>>>>>>> is set to true, because the content will not be analyzed.
>>>>>>>> 
>>>>>>>> I decided to first put it into a branch and discuss it here:
>>>>>>>> 
>>>>>>>> Branch:
>>>>>>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>>>> 
>>>>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>>>>> 
>>>>>>>> What do you think?
>>>>>>>> 
>>>>>>>> kind regards
>>>>>>>> 
>>>>>>>> Tobias
>> 

Re: Update to WICKET-5819 - memory usage

Posted by Martin Grigorov <mg...@apache.org>.
Seems to have been a delay ;-)
It's gone now.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, May 27, 2015 at 11:27 PM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Okay - seems to be a bug.
>
> kind regards
>
> Tobias
>
> > Am 27.05.2015 um 22:12 schrieb Martin Grigorov <mg...@apache.org>:
> >
> >
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=summary
> > doesn't list it.
> > We can ask Apache Infra team if it doesn't disappear soon.
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, May 27, 2015 at 9:11 PM, Tobias Soloschenko <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> >> I invoked (wicket-apache-origin is the apache wicket git repo - not the
> >> mirrored from github):
> >>
> >> git push wicket-apache-origin --delete WICKET-5819_Improvements
> >>
> >> the consolse shows:
> >>
> >> - [deleted]         WICKET-5819_Improvements
> >>
> >> Branch still existis (at github)
> >>
> >> Something I made wrong? :-o
> >>
> >> kind regards
> >>
> >> Tobias
> >>
> >>> Am 26.05.15 um 08:24 schrieb Martin Grigorov:
> >>>
> >>> Sounds good!
> >>>
> >>>
> >>> Martin Grigorov
> >>> Wicket Training and Consulting
> >>> https://twitter.com/mtgrigorov
> >>>
> >>> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> >>> tobiassoloschenko@googlemail.com> wrote:
> >>>
> >>> Hi again,
> >>>>
> >>>> The only thing which is left to be done is to close the inputstream
> after
> >>>> the PartWriterCallback has finished writing. (Because it is not done
> via
> >>>> ResourceStream)
> >>>>
> >>>> What do you think?
> >>>>
> >>>> After that change and some tests / review the branch can be merged I
> >>>> think.
> >>>>
> >>>> kind regards
> >>>>
> >>>> Tobias
> >>>>
> >>>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mgrigorov@apache.org
> >:
> >>>>>
> >>>>> Hi Tobias,
> >>>>>
> >>>>> "readPartially" sounds to me like related to "Partial content, code
> >>>>> 206",
> >>>>> i.e. related to the functionality about ranges.
> >>>>> Maybe "readBuffered"?
> >>>>>
> >>>>> The change at
> >>>>
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
> >>>>
> >>>>> is not very clear to me. Why it is needed exactly?
> >>>>> How the buffering leads to the need to not closing the resource
> stream?
> >>>>>
> >>>>> I've made some comments in GitHub about small things in the javadoc
> >>>>> improvements. Did you receive notifications?
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> Martin Grigorov
> >>>>> Wicket Training and Consulting
> >>>>> https://twitter.com/mtgrigorov
> >>>>>
> >>>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
> >>>>> tobiassoloschenko@googlemail.com> wrote:
> >>>>>
> >>>>> Hello everyone,
> >>>>>>
> >>>>>> I just want to introduce a new fluent method to PackageResource /
> >>>>>> PackageResourceReference which is called readPartially(boolean). It
> >>>>>> adresses a memory consumption issue while reading media files
> (audio,
> >>>>>> video) or other large resource files.
> >>>>>>
> >>>>>> Before this implementation the content of each file shipped with a
> >>>>>> PackageResourceReference were copied into memory and then the part
> the
> >>>>>> client requested (Content-Range, Range, Accept-Range) was
> transfered to
> >>>>> the
> >>>>
> >>>>> client.
> >>>>>>
> >>>>>> Now only the part the client requested is read and transfered
> directly
> >>>>> to
> >>>>
> >>>>> the response, without storing it into memory (ByteArrayInputStream,
> >>>>> byte[])
> >>>>
> >>>>> - For normal the PackageResourceReference is reading it from disk.
> >>>>>>
> >>>>>> If the method isn't invoked or invoked with false the old behavior
> is
> >>>>> used.
> >>>>
> >>>>> The only limitation is that no
> >>>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if
> the
> >>>>> flag
> >>>>
> >>>>> is set to true, because the content will not be analyzed.
> >>>>>>
> >>>>>> I decided to first put it into a branch and discuss it here:
> >>>>>>
> >>>>>> Branch:
> >>>>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
> >>>>
> >>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
> >>>>>>
> >>>>>> What do you think?
> >>>>>>
> >>>>>> kind regards
> >>>>>>
> >>>>>> Tobias
> >>
>

Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Okay - seems to be a bug.

kind regards

Tobias

> Am 27.05.2015 um 22:12 schrieb Martin Grigorov <mg...@apache.org>:
> 
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=summary
> doesn't list it.
> We can ask Apache Infra team if it doesn't disappear soon.
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Wed, May 27, 2015 at 9:11 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> I invoked (wicket-apache-origin is the apache wicket git repo - not the
>> mirrored from github):
>> 
>> git push wicket-apache-origin --delete WICKET-5819_Improvements
>> 
>> the consolse shows:
>> 
>> - [deleted]         WICKET-5819_Improvements
>> 
>> Branch still existis (at github)
>> 
>> Something I made wrong? :-o
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 26.05.15 um 08:24 schrieb Martin Grigorov:
>>> 
>>> Sounds good!
>>> 
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>> Hi again,
>>>> 
>>>> The only thing which is left to be done is to close the inputstream after
>>>> the PartWriterCallback has finished writing. (Because it is not done via
>>>> ResourceStream)
>>>> 
>>>> What do you think?
>>>> 
>>>> After that change and some tests / review the branch can be merged I
>>>> think.
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>>> 
>>>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>>> 
>>>>> Hi Tobias,
>>>>> 
>>>>> "readPartially" sounds to me like related to "Partial content, code
>>>>> 206",
>>>>> i.e. related to the functionality about ranges.
>>>>> Maybe "readBuffered"?
>>>>> 
>>>>> The change at
>>>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>>> 
>>>>> is not very clear to me. Why it is needed exactly?
>>>>> How the buffering leads to the need to not closing the resource stream?
>>>>> 
>>>>> I've made some comments in GitHub about small things in the javadoc
>>>>> improvements. Did you receive notifications?
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> Martin Grigorov
>>>>> Wicket Training and Consulting
>>>>> https://twitter.com/mtgrigorov
>>>>> 
>>>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>> 
>>>>> Hello everyone,
>>>>>> 
>>>>>> I just want to introduce a new fluent method to PackageResource /
>>>>>> PackageResourceReference which is called readPartially(boolean). It
>>>>>> adresses a memory consumption issue while reading media files (audio,
>>>>>> video) or other large resource files.
>>>>>> 
>>>>>> Before this implementation the content of each file shipped with a
>>>>>> PackageResourceReference were copied into memory and then the part the
>>>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>>>>> the
>>>> 
>>>>> client.
>>>>>> 
>>>>>> Now only the part the client requested is read and transfered directly
>>>>> to
>>>> 
>>>>> the response, without storing it into memory (ByteArrayInputStream,
>>>>> byte[])
>>>> 
>>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>>> 
>>>>>> If the method isn't invoked or invoked with false the old behavior is
>>>>> used.
>>>> 
>>>>> The only limitation is that no
>>>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>>>>> flag
>>>> 
>>>>> is set to true, because the content will not be analyzed.
>>>>>> 
>>>>>> I decided to first put it into a branch and discuss it here:
>>>>>> 
>>>>>> Branch:
>>>>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> 
>>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>>> 
>>>>>> What do you think?
>>>>>> 
>>>>>> kind regards
>>>>>> 
>>>>>> Tobias
>> 

Re: Update to WICKET-5819 - memory usage

Posted by Martin Grigorov <mg...@apache.org>.
https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=summary
doesn't list it.
We can ask Apache Infra team if it doesn't disappear soon.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, May 27, 2015 at 9:11 PM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> I invoked (wicket-apache-origin is the apache wicket git repo - not the
> mirrored from github):
>
>  git push wicket-apache-origin --delete WICKET-5819_Improvements
>
> the consolse shows:
>
>  - [deleted]         WICKET-5819_Improvements
>
> Branch still existis (at github)
>
> Something I made wrong? :-o
>
> kind regards
>
> Tobias
>
> Am 26.05.15 um 08:24 schrieb Martin Grigorov:
>
>> Sounds good!
>>
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>>  Hi again,
>>>
>>> The only thing which is left to be done is to close the inputstream after
>>> the PartWriterCallback has finished writing. (Because it is not done via
>>> ResourceStream)
>>>
>>> What do you think?
>>>
>>> After that change and some tests / review the branch can be merged I
>>> think.
>>>
>>> kind regards
>>>
>>> Tobias
>>>
>>>  Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>>
>>>> Hi Tobias,
>>>>
>>>> "readPartially" sounds to me like related to "Partial content, code
>>>> 206",
>>>> i.e. related to the functionality about ranges.
>>>> Maybe "readBuffered"?
>>>>
>>>> The change at
>>>>
>>>>
>>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>>
>>>> is not very clear to me. Why it is needed exactly?
>>>> How the buffering leads to the need to not closing the resource stream?
>>>>
>>>> I've made some comments in GitHub about small things in the javadoc
>>>> improvements. Did you receive notifications?
>>>>
>>>>
>>>>
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>>> tobiassoloschenko@googlemail.com> wrote:
>>>>
>>>>  Hello everyone,
>>>>>
>>>>> I just want to introduce a new fluent method to PackageResource /
>>>>> PackageResourceReference which is called readPartially(boolean). It
>>>>> adresses a memory consumption issue while reading media files (audio,
>>>>> video) or other large resource files.
>>>>>
>>>>> Before this implementation the content of each file shipped with a
>>>>> PackageResourceReference were copied into memory and then the part the
>>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>>>>>
>>>> the
>>>
>>>> client.
>>>>>
>>>>> Now only the part the client requested is read and transfered directly
>>>>>
>>>> to
>>>
>>>> the response, without storing it into memory (ByteArrayInputStream,
>>>>>
>>>> byte[])
>>>
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>>
>>>>> If the method isn't invoked or invoked with false the old behavior is
>>>>>
>>>> used.
>>>
>>>> The only limitation is that no
>>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>>>>>
>>>> flag
>>>
>>>> is set to true, because the content will not be analyzed.
>>>>>
>>>>> I decided to first put it into a branch and discuss it here:
>>>>>
>>>>> Branch:
>>>>>
>>>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>>
>>>>> What do you think?
>>>>>
>>>>> kind regards
>>>>>
>>>>> Tobias
>>>>>
>>>>>
>

Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
I invoked (wicket-apache-origin is the apache wicket git repo - not the 
mirrored from github):

  git push wicket-apache-origin --delete WICKET-5819_Improvements

the consolse shows:

  - [deleted]         WICKET-5819_Improvements

Branch still existis (at github)

Something I made wrong? :-o

kind regards

Tobias

Am 26.05.15 um 08:24 schrieb Martin Grigorov:
> Sounds good!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi again,
>>
>> The only thing which is left to be done is to close the inputstream after
>> the PartWriterCallback has finished writing. (Because it is not done via
>> ResourceStream)
>>
>> What do you think?
>>
>> After that change and some tests / review the branch can be merged I think.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>
>>> Hi Tobias,
>>>
>>> "readPartially" sounds to me like related to "Partial content, code 206",
>>> i.e. related to the functionality about ranges.
>>> Maybe "readBuffered"?
>>>
>>> The change at
>>>
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>> is not very clear to me. Why it is needed exactly?
>>> How the buffering leads to the need to not closing the resource stream?
>>>
>>> I've made some comments in GitHub about small things in the javadoc
>>> improvements. Did you receive notifications?
>>>
>>>
>>>
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> I just want to introduce a new fluent method to PackageResource /
>>>> PackageResourceReference which is called readPartially(boolean). It
>>>> adresses a memory consumption issue while reading media files (audio,
>>>> video) or other large resource files.
>>>>
>>>> Before this implementation the content of each file shipped with a
>>>> PackageResourceReference were copied into memory and then the part the
>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>> the
>>>> client.
>>>>
>>>> Now only the part the client requested is read and transfered directly
>> to
>>>> the response, without storing it into memory (ByteArrayInputStream,
>> byte[])
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>
>>>> If the method isn't invoked or invoked with false the old behavior is
>> used.
>>>> The only limitation is that no
>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>> flag
>>>> is set to true, because the content will not be analyzed.
>>>>
>>>> I decided to first put it into a branch and discuss it here:
>>>>
>>>> Branch:
>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>
>>>> What do you think?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>


Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

ok it's finished now. Every stream is going to be closed if readBuffered 
is set to true / false. So I think the branch can be merged If no one 
does not agree with readBuffered.

https://github.com/apache/wicket/commit/0df9ae2fc97c8e143a5a58330a65b140f85714e3

I tested the playback with Safari / Chrome / FireFox and everywhere it 
is working like a charm - with both options. :-)

kind regards

Tobias

Am 26.05.15 um 08:24 schrieb Martin Grigorov:
> Sounds good!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
>> Hi again,
>>
>> The only thing which is left to be done is to close the inputstream after
>> the PartWriterCallback has finished writing. (Because it is not done via
>> ResourceStream)
>>
>> What do you think?
>>
>> After that change and some tests / review the branch can be merged I think.
>>
>> kind regards
>>
>> Tobias
>>
>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>>
>>> Hi Tobias,
>>>
>>> "readPartially" sounds to me like related to "Partial content, code 206",
>>> i.e. related to the functionality about ranges.
>>> Maybe "readBuffered"?
>>>
>>> The change at
>>>
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>> is not very clear to me. Why it is needed exactly?
>>> How the buffering leads to the need to not closing the resource stream?
>>>
>>> I've made some comments in GitHub about small things in the javadoc
>>> improvements. Did you receive notifications?
>>>
>>>
>>>
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> I just want to introduce a new fluent method to PackageResource /
>>>> PackageResourceReference which is called readPartially(boolean). It
>>>> adresses a memory consumption issue while reading media files (audio,
>>>> video) or other large resource files.
>>>>
>>>> Before this implementation the content of each file shipped with a
>>>> PackageResourceReference were copied into memory and then the part the
>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>> the
>>>> client.
>>>>
>>>> Now only the part the client requested is read and transfered directly
>> to
>>>> the response, without storing it into memory (ByteArrayInputStream,
>> byte[])
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>>
>>>> If the method isn't invoked or invoked with false the old behavior is
>> used.
>>>> The only limitation is that no
>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>> flag
>>>> is set to true, because the content will not be analyzed.
>>>>
>>>> I decided to first put it into a branch and discuss it here:
>>>>
>>>> Branch:
>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>>
>>>> What do you think?
>>>>
>>>> kind regards
>>>>
>>>> Tobias
>>>>


Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Okidoki :-)

Last commit to this topic this evening.

kind regards

Tobias

> Am 26.05.2015 um 08:24 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Sounds good!
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hi again,
>> 
>> The only thing which is left to be done is to close the inputstream after
>> the PartWriterCallback has finished writing. (Because it is not done via
>> ResourceStream)
>> 
>> What do you think?
>> 
>> After that change and some tests / review the branch can be merged I think.
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
>>> 
>>> Hi Tobias,
>>> 
>>> "readPartially" sounds to me like related to "Partial content, code 206",
>>> i.e. related to the functionality about ranges.
>>> Maybe "readBuffered"?
>>> 
>>> The change at
>> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
>>> is not very clear to me. Why it is needed exactly?
>>> How the buffering leads to the need to not closing the resource stream?
>>> 
>>> I've made some comments in GitHub about small things in the javadoc
>>> improvements. Did you receive notifications?
>>> 
>>> 
>>> 
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
>>> tobiassoloschenko@googlemail.com> wrote:
>>> 
>>>> Hello everyone,
>>>> 
>>>> I just want to introduce a new fluent method to PackageResource /
>>>> PackageResourceReference which is called readPartially(boolean). It
>>>> adresses a memory consumption issue while reading media files (audio,
>>>> video) or other large resource files.
>>>> 
>>>> Before this implementation the content of each file shipped with a
>>>> PackageResourceReference were copied into memory and then the part the
>>>> client requested (Content-Range, Range, Accept-Range) was transfered to
>> the
>>>> client.
>>>> 
>>>> Now only the part the client requested is read and transfered directly
>> to
>>>> the response, without storing it into memory (ByteArrayInputStream,
>> byte[])
>>>> - For normal the PackageResourceReference is reading it from disk.
>>>> 
>>>> If the method isn't invoked or invoked with false the old behavior is
>> used.
>>>> 
>>>> The only limitation is that no
>>>> org.apache.wicket.resource.ITextResourceCompressor will be used if the
>> flag
>>>> is set to true, because the content will not be analyzed.
>>>> 
>>>> I decided to first put it into a branch and discuss it here:
>>>> 
>>>> Branch:
>> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>>>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>>>> 
>>>> What do you think?
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>> 

Re: Update to WICKET-5819 - memory usage

Posted by Martin Grigorov <mg...@apache.org>.
Sounds good!

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Tue, May 26, 2015 at 12:32 AM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi again,
>
> The only thing which is left to be done is to close the inputstream after
> the PartWriterCallback has finished writing. (Because it is not done via
> ResourceStream)
>
> What do you think?
>
> After that change and some tests / review the branch can be merged I think.
>
> kind regards
>
> Tobias
>
> > Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
> >
> > Hi Tobias,
> >
> > "readPartially" sounds to me like related to "Partial content, code 206",
> > i.e. related to the functionality about ranges.
> > Maybe "readBuffered"?
> >
> > The change at
> >
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
> > is not very clear to me. Why it is needed exactly?
> > How the buffering leads to the need to not closing the resource stream?
> >
> > I've made some comments in GitHub about small things in the javadoc
> > improvements. Did you receive notifications?
> >
> >
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> >> Hello everyone,
> >>
> >> I just want to introduce a new fluent method to PackageResource /
> >> PackageResourceReference which is called readPartially(boolean). It
> >> adresses a memory consumption issue while reading media files (audio,
> >> video) or other large resource files.
> >>
> >> Before this implementation the content of each file shipped with a
> >> PackageResourceReference were copied into memory and then the part the
> >> client requested (Content-Range, Range, Accept-Range) was transfered to
> the
> >> client.
> >>
> >> Now only the part the client requested is read and transfered directly
> to
> >> the response, without storing it into memory (ByteArrayInputStream,
> byte[])
> >> - For normal the PackageResourceReference is reading it from disk.
> >>
> >> If the method isn't invoked or invoked with false the old behavior is
> used.
> >>
> >> The only limitation is that no
> >> org.apache.wicket.resource.ITextResourceCompressor will be used if the
> flag
> >> is set to true, because the content will not be analyzed.
> >>
> >> I decided to first put it into a branch and discuss it here:
> >>
> >> Branch:
> https://github.com/apache/wicket/compare/WICKET-5819_Improvements
> >> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
> >>
> >> What do you think?
> >>
> >> kind regards
> >>
> >> Tobias
> >>
>

Re: Update to WICKET-5819 - memory usage

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi again,

The only thing which is left to be done is to close the inputstream after the PartWriterCallback has finished writing. (Because it is not done via ResourceStream)

What do you think?

After that change and some tests / review the branch can be merged I think.

kind regards

Tobias

> Am 25.05.2015 um 22:05 schrieb Martin Grigorov <mg...@apache.org>:
> 
> Hi Tobias,
> 
> "readPartially" sounds to me like related to "Partial content, code 206",
> i.e. related to the functionality about ranges.
> Maybe "readBuffered"?
> 
> The change at
> https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
> is not very clear to me. Why it is needed exactly?
> How the buffering leads to the need to not closing the resource stream?
> 
> I've made some comments in GitHub about small things in the javadoc
> improvements. Did you receive notifications?
> 
> 
> 
> 
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
> 
> On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
> 
>> Hello everyone,
>> 
>> I just want to introduce a new fluent method to PackageResource /
>> PackageResourceReference which is called readPartially(boolean). It
>> adresses a memory consumption issue while reading media files (audio,
>> video) or other large resource files.
>> 
>> Before this implementation the content of each file shipped with a
>> PackageResourceReference were copied into memory and then the part the
>> client requested (Content-Range, Range, Accept-Range) was transfered to the
>> client.
>> 
>> Now only the part the client requested is read and transfered directly to
>> the response, without storing it into memory (ByteArrayInputStream, byte[])
>> - For normal the PackageResourceReference is reading it from disk.
>> 
>> If the method isn't invoked or invoked with false the old behavior is used.
>> 
>> The only limitation is that no
>> org.apache.wicket.resource.ITextResourceCompressor will be used if the flag
>> is set to true, because the content will not be analyzed.
>> 
>> I decided to first put it into a branch and discuss it here:
>> 
>> Branch: https://github.com/apache/wicket/compare/WICKET-5819_Improvements
>> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>> 
>> What do you think?
>> 
>> kind regards
>> 
>> Tobias
>> 

Re: Update to WICKET-5819 - memory usage

Posted by Martin Grigorov <mg...@apache.org>.
Hi Tobias,

"readPartially" sounds to me like related to "Partial content, code 206",
i.e. related to the functionality about ranges.
Maybe "readBuffered"?

The change at
https://git1-us-west.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=7e3fed6dce27d1cc5c68c7901eecec08091d59c4;hp=b3c9843f805560f6685106b97cd2f9ddab8c28a9
is not very clear to me. Why it is needed exactly?
How the buffering leads to the need to not closing the resource stream?

I've made some comments in GitHub about small things in the javadoc
improvements. Did you receive notifications?




Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Sun, May 24, 2015 at 2:48 PM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hello everyone,
>
> I just want to introduce a new fluent method to PackageResource /
> PackageResourceReference which is called readPartially(boolean). It
> adresses a memory consumption issue while reading media files (audio,
> video) or other large resource files.
>
> Before this implementation the content of each file shipped with a
> PackageResourceReference were copied into memory and then the part the
> client requested (Content-Range, Range, Accept-Range) was transfered to the
> client.
>
> Now only the part the client requested is read and transfered directly to
> the response, without storing it into memory (ByteArrayInputStream, byte[])
> - For normal the PackageResourceReference is reading it from disk.
>
> If the method isn't invoked or invoked with false the old behavior is used.
>
> The only limitation is that no
> org.apache.wicket.resource.ITextResourceCompressor will be used if the flag
> is set to true, because the content will not be analyzed.
>
> I decided to first put it into a branch and discuss it here:
>
> Branch: https://github.com/apache/wicket/compare/WICKET-5819_Improvements
> Ticket: https://issues.apache.org/jira/browse/WICKET-5819
>
> What do you think?
>
> kind regards
>
> Tobias
>