On Mon, May 25, 2015 at 11:38 PM, <tsolosche...@apache.org> wrote:

> Repository: wicket
> Updated Branches:
>   refs/heads/WICKET-5819_Improvements 7343727ce -> 7a837f605
>
>
> WICKET-5819 - renamed readPartially to readBuffered (default true)
>
> Some minor fixes.
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7a837f60
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7a837f60
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7a837f60
>
> Branch: refs/heads/WICKET-5819_Improvements
> Commit: 7a837f605f0df3777f5a3a2b70d3f1142f32a1f4
> Parents: 7343727
> Author: Tobias Soloschenko <tsolosche...@apache.org>
> Authored: Mon May 25 22:37:30 2015 +0200
> Committer: Tobias Soloschenko <tsolosche...@apache.org>
> Committed: Mon May 25 22:37:30 2015 +0200
>
> ----------------------------------------------------------------------
>  .../apache/wicket/markup/html/image/Image.java  |  2 +-
>  .../request/resource/PackageResource.java       | 30 ++++++++++----------
>  .../resource/PackageResourceReference.java      | 24 ++++++++--------
>  .../org/apache/wicket/examples/media/Home.java  |  2 +-
>  .../src/docs/guide/resources/resources_3.gdoc   |  4 +--
>  5 files changed, 31 insertions(+), 31 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/7a837f60/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
> index f9484ed..ac88b46 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
> @@ -595,7 +595,7 @@ public class Image extends WebComponent implements
> IResourceListener
>          * <b>USE_CREDENTIALS</b>: Cross-origin CORS requests for the
> element will have the credentials
>          * flag set.<br>
>          * <br>
> -        * <b>no_cores</b>: The empty string is also a valid keyword, and
> maps to the Anonymous state.
> +        * <b>NO_CORES</b>: The empty string is also a valid keyword, and
> maps to the Anonymous state.
>

NO_CORS, without 'E'


>          * The attribute's invalid value default is the Anonymous state.
> The missing value default, used
>          * when the attribute is omitted, is the No CORS state
>          *
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/7a837f60/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
> b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
> index 5e1fc2f..e2cbe02 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
> @@ -147,9 +147,9 @@ public class PackageResource extends AbstractResource
> implements IStaticCacheabl
>         private String textEncoding = null;
>
>         /**
> -        * Reads the resource partially - the content is not copied into
> memory
> +        * Reads the resource buffered - the content is not copied into
> memory
>          */
> -       private boolean readPartially = false;
> +       private boolean readBuffered = true;
>

Why 'true' by default?
Usually applications use PackageResourceReference for JS, CSS and images.
I guess PRR is very rarely used for big files.
I wouldn't put big files in Git and/or in the .war file. I'd put them in
separate service serving static content.

On the other side it is OK to serve the JS/CSS/images with buffering too.
What bothers me in your branch is the removal of resourceStream.close() in
this case.


>         /**
>          * Hidden constructor.
> @@ -338,14 +338,14 @@ public class PackageResource extends
> AbstractResource implements IStaticCacheabl
>
>                                 byte[] bytes = null;
>                                 // send Content-Length header
> -                               if (readPartially)
> +                               if (readBuffered)
>                                 {
> -
>  resourceResponse.setContentLength(resourceStream.length().bytes());
> +                                       bytes =
> IOUtils.toByteArray(inputStream);
> +
>  resourceResponse.setContentLength(new Long(bytes.length));
>                                 }
>                                 else
>                                 {
> -                                       bytes =
> IOUtils.toByteArray(inputStream);
> -
>  resourceResponse.setContentLength(new Long(bytes.length));
> +
>  resourceResponse.setContentLength(resourceStream.length().bytes());
>                                 }
>
>                                 // get content range information
> @@ -372,7 +372,7 @@ public class PackageResource extends AbstractResource
> implements IStaticCacheabl
>
>                                 try
>                                 {
> -                                       if (!readPartially)
> +                                       if (readBuffered)
>                                         {
>
> IOUtils.close(resourceStream);
>                                         }
> @@ -528,7 +528,7 @@ public class PackageResource extends AbstractResource
> implements IStaticCacheabl
>                         byte[] bytes = null;
>                         InputStream inputStream = super.getInputStream();
>
> -                       if (!readPartially)
> +                       if (readBuffered)
>                         {
>                                 try
>                                 {
> @@ -755,21 +755,21 @@ public class PackageResource extends
> AbstractResource implements IStaticCacheabl
>         }
>
>         /**
> -        * If the packaage resource should be read partially.<br>
> +        * If the package resource should be read buffered.<br>
>          * <br>
> -        * WARNING - if the stream is read partially compressors will not
> work, because they require the
> -        * whole content to be read <br>
> +        * WARNING - if the stream is not read buffered compressors will
> not work, because they require the
> +        * whole content to be read into memory.<br>
>          * ({@link org.apache.wicket.javascript.IJavaScriptCompressor},
> <br>
>          * {@link org.apache.wicket.css.ICssCompressor}, <br>
>          * {@link
> org.apache.wicket.resource.IScopeAwareTextResourceProcessor})
>          *
> -        * @param readPartially
> -        *            if the package resource should be read partially
> +        * @param readBuffered
> +        *            if the package resource should be read buffered
>          * @return the current package resource
>          */
> -       public PackageResource readPartially(boolean readPartially)
> +       public PackageResource readBuffered(boolean readBuffered)
>         {
> -               this.readPartially = readPartially;
> +               this.readBuffered = readBuffered;
>                 return this;
>         }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/7a837f60/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
> b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
> index c4aa6be..22aaaed 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
> @@ -47,9 +47,9 @@ public class PackageResourceReference extends
> ResourceReference
>         private transient ConcurrentMap<UrlAttributes, UrlAttributes>
> urlAttributesCacheMap;
>
>         /**
> -        * Reads the resource partially - the content is not copied into
> memory
> +        * Reads the resource buffered - the content is not copied into
> memory
>          */
> -       private boolean readPartially = false;
> +       private boolean readBuffered = true;
>
>         /**
>          * Cache for existence of minified version of the resource to
> avoid repetitive calls to
> @@ -123,17 +123,17 @@ public class PackageResourceReference extends
> ResourceReference
>                 if (CSS_EXTENSION.equals(extension))
>                 {
>                         resource = new CssPackageResource(getScope(),
> getName(), getLocale(), getStyle(),
> -
>  getVariation()).readPartially(readPartially);
> +                               getVariation()).readBuffered(readBuffered);
>                 }
>                 else if (JAVASCRIPT_EXTENSION.equals(extension))
>                 {
>                         resource = new
> JavaScriptPackageResource(getScope(), getName(), getLocale(),
> -                               getStyle(),
> getVariation()).readPartially(readPartially);
> +                               getStyle(),
> getVariation()).readBuffered(readBuffered);
>                 }
>                 else
>                 {
>                         resource = new PackageResource(getScope(),
> getName(), getLocale(), getStyle(),
> -
>  getVariation()).readPartially(readPartially);
> +                               getVariation()).readBuffered(readBuffered);
>                 }
>
>                 removeCompressFlagIfUnnecessary(resource);
> @@ -287,21 +287,21 @@ public class PackageResourceReference extends
> ResourceReference
>         }
>
>         /**
> -        * If the packaage resource should be read partially.<br>
> +        * If the package resource should be read buffered.<br>
>          * <br>
> -        * WARNING - if the stream is read partially compressors will not
> work, because they require the
> -        * whole content to be read <br>
> +        * WARNING - if the stream is not read buffered compressors will
> not work, because they require the
> +        * whole content to be read into memory.<br>
>          * ({@link org.apache.wicket.javascript.IJavaScriptCompressor},
> <br>
>          * {@link org.apache.wicket.css.ICssCompressor}, <br>
>          * {@link
> org.apache.wicket.resource.IScopeAwareTextResourceProcessor})
>          *
> -        * @param readPartially
> -        *            if the package resource should be read partially
> +        * @param readBuffered
> +        *            if the package resource should be read buffered
>          * @return the current package resource
>          */
> -       public PackageResourceReference readPartially(boolean
> readPartially)
> +       public PackageResourceReference readBuffered(boolean readBuffered)
>         {
> -               this.readPartially = readPartially;
> +               this.readBuffered = readBuffered;
>                 return this;
>         }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/7a837f60/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java
> b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java
> index c1de448..d9892f6 100644
> ---
> a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java
> +++
> b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java
> @@ -50,7 +50,7 @@ public final class Home extends WicketExamplePage
>                 // Internal video with several options
>
>                 Video video1 = new Video("video1", new
> PackageResourceReference(Home.class,
> -                       "video1.mp4").readPartially(true));
> +                       "video1.mp4").readBuffered(false));
>                 video1.setAutoplay(false);
>                 video1.setControls(true);
>                 video1.setLooping(false);
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/7a837f60/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
> ----------------------------------------------------------------------
> diff --git a/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
> b/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
> index 3344a08..7315892 100644
> --- a/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
> +++ b/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
> @@ -129,7 +129,7 @@ h3. Media tags - resource references with content
> range support
>
>  Since Wicket 7.0.0 the PackageResource and the PackageResourceReference
> support "Range" HTTP header for the request and "Content-Range" /
> "Accept-Range" HTTP headers for the response, which are used for videos /
> audio tags. The "Range" header allows the client to only request a specific
> byte range of the resource. The server provides the "Content-Range" and
> tells the client which bytes are going to be send.
>
> -If you want the resource not to be load into memory apply
> readPartially(true). By using this flag the stream is written directly to
> the response - @org.apache.wicket.resource.ITextResourceCompressor@ will
> not be applied if the readPartially is set to true.
> +If you want the resource not to be load into memory apply
> readBuffered(false) - this way the stream is written directly to the
> response. (@org.apache.wicket.resource.ITextResourceCompressor@ will not
> be applied if readBuffered is set to false)
>
>  *HTML:*
>  {code:html}
> @@ -141,7 +141,7 @@ If you want the resource not to be load into memory
> apply readPartially(true). B
>  *Java Code:*
>  {code}
>  ...
> -    Video video = new Video("video", new
> PackageResourceReference(getClass(),"video.mp4").readPartially(true));
> +    Video video = new Video("video", new
> PackageResourceReference(getClass(),"video.mp4").readBuffered(false));
>  ...
>  {code}
>
>
>

Reply via email to