WICKET-5819 Support for HTML 5 media tags (audio / video)

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ac7cf808
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ac7cf808
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ac7cf808

Branch: refs/heads/pr-86-media_tags
Commit: ac7cf808d07440a039d9b0c70d5903109ee16303
Parents: 154b5d1
Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Authored: Sun Feb 15 19:28:44 2015 +0200
Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Committed: Sun Feb 15 19:28:44 2015 +0200

----------------------------------------------------------------------
 .../markup/html/media/MediaComponent.java       | 165 ++++++++++---------
 .../media/MediaStreamingResourceReference.java  |  52 +++---
 .../wicket/markup/html/media/MediaUtils.java    |  49 ------
 .../markup/html/media/PartWriterCallback.java   |  55 +++----
 .../apache/wicket/markup/html/media/Source.java |  66 +++-----
 .../apache/wicket/markup/html/media/Track.java  |  74 ++++-----
 .../wicket/markup/html/media/audio/Audio.java   |  12 --
 .../wicket/markup/html/media/video/Video.java   |  26 +--
 .../wicket/markup/html/media/Application.java   |  37 -----
 .../html/media/MediaTagsExtendedTestPage.java   |   2 -
 .../wicket/markup/html/media/MediaTagsTest.java |  75 ++++-----
 .../markup/html/media/MediaTagsTestPage.java    |   3 +-
 12 files changed, 235 insertions(+), 381 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java
index 4131439..20f39ec 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java
@@ -23,7 +23,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 /**
- * The media component is used to provide basic functionality to the video and 
audo component. The
+ * The media component is used to provide basic functionality to the video and 
audio component. The
  * given media streaming resource reference supports Content-Ranges and other 
stuff to make the
  * audio and video playback smooth.
  * 
@@ -32,11 +32,10 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  */
 public abstract class MediaComponent extends WebMarkupContainer
 {
-
        private static final long serialVersionUID = 1L;
 
        /**
-        * To be used for the crossorigin attribute
+        * To be used for the <em>crossorigin</em> attribute
         * 
         * @see {@link #setCrossOrigin(Cors)}
         */
@@ -44,7 +43,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
        {
                ANONYMOUS("anonymous"), USER_CREDENTIALS("user-credentials"), 
NO_CORS("");
 
-               private String realName;
+               private final String realName;
 
                private Cors(String realName)
                {
@@ -58,7 +57,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
        }
 
        /**
-        * To be used for the preload attribute
+        * To be used for the <em>preload</em> attribute
         * 
         * @see {@link #setPreload(Preload)}
         */
@@ -66,7 +65,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
        {
                NONE("none"), METADATA("metadata"), AUTO("auto");
 
-               public String realName;
+               public final String realName;
 
                private Preload(String realname)
                {
@@ -79,14 +78,13 @@ public abstract class MediaComponent extends 
WebMarkupContainer
                }
        }
 
-       // use Boolean instead of elementary data types to get a lightweight 
component
-       private Boolean autoplay;
+       private boolean autoplay;
 
-       private Boolean loop;
+       private boolean loop;
 
-       private Boolean muted;
+       private boolean muted;
 
-       private Boolean controls;
+       private boolean controls = true;
 
        private Preload preload;
 
@@ -98,138 +96,147 @@ public abstract class MediaComponent extends 
WebMarkupContainer
 
        private Cors crossOrigin;
 
-       private PageParameters pageParameters;
+       private final PageParameters pageParameters;
 
-       private MediaStreamingResourceReference mediaStreamingResourceReference;
+       private final MediaStreamingResourceReference 
mediaStreamingResourceReference;
 
-       private String url;
+       private final String url;
 
+       /**
+        * Constructor.
+        *
+        * @param id
+        *          The component id
+        */
        public MediaComponent(String id)
        {
-               super(id);
+               this(id, null, null, null, null);
        }
 
+       /**
+        * Constructor.
+        *
+        * @param id
+        *          The component id
+        * @param model
+        *          The component model
+        */
        public MediaComponent(String id, IModel<?> model)
        {
-               super(id, model);
+               this(id, model, null, null, null);
        }
 
+       /**
+        * Constructor.
+        *
+        * @param id
+        *          The component id
+        * @param mediaStreamingResourceReference
+        */
        public MediaComponent(String id, MediaStreamingResourceReference 
mediaStreamingResourceReference)
        {
-               this(id);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
+               this(id, null, null, null,mediaStreamingResourceReference);
        }
 
        public MediaComponent(String id, IModel<?> model,
                MediaStreamingResourceReference mediaStreamingResourceReference)
        {
-               this(id, model);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
+               this(id, model, null, null, mediaStreamingResourceReference);
        }
 
        public MediaComponent(String id,
                MediaStreamingResourceReference mediaStreamingResourceReference,
                PageParameters pageParameters)
        {
-               this(id);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
-               this.pageParameters = pageParameters;
+               this(id, null, null, pageParameters, 
mediaStreamingResourceReference);
        }
 
        public MediaComponent(String id, IModel<?> model,
                MediaStreamingResourceReference mediaStreamingResourceReference,
                PageParameters pageParameters)
        {
-               this(id, model);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
-               this.pageParameters = pageParameters;
+               this(id, model, null, pageParameters, 
mediaStreamingResourceReference);
        }
 
        public MediaComponent(String id, String url)
        {
-               this(id);
-               this.url = url;
+               this(id, null, url, null, null);
        }
 
        public MediaComponent(String id, IModel<?> model, String url)
        {
-               this(id, model);
-               this.url = url;
-       }
-
-       public MediaComponent(String id, String url, PageParameters 
pageParameters)
-       {
-               this(id);
-               this.url = url;
-               this.pageParameters = pageParameters;
+               this(id, model, url, null, null);
        }
 
-       public MediaComponent(String id, IModel<?> model, String url, 
PageParameters pageParameters)
+       private MediaComponent(String id, IModel<?> model, String url, 
PageParameters pageParameters,
+                              MediaStreamingResourceReference 
mediaStreamingResourceReference)
        {
-               this(id, model);
+               super(id, model);
                this.url = url;
                this.pageParameters = pageParameters;
+               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
        }
 
        @Override
        protected void onComponentTag(ComponentTag tag)
        {
                super.onComponentTag(tag);
+
                // The time management is used to set the start / stop
                // time in seconds of the movie to be played back
                String timeManagement = "";
                if (startTime != null)
                {
-                       timeManagement = timeManagement += "#t=" + startTime +
+                       timeManagement += "#t=" + startTime +
                                (endTime != null ? "," + endTime : "");
                }
 
                if (mediaStreamingResourceReference != null)
                {
-                       tag.put("src",
-                               
RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters) +
-                                       timeManagement);
+                       CharSequence urlToMediaReference = 
RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters);
+                       tag.put("src", urlToMediaReference + timeManagement);
                }
-
-               if (url != null)
+               else if (url != null)
                {
                        tag.put("src", url + timeManagement);
                }
 
-               if (mediaGroup != null)
+               String mg = getMediaGroup();
+               if (mg != null)
                {
-                       tag.put("mediagroup", mediaGroup);
+                       tag.put("mediagroup", mg);
                }
 
-               if (autoplay != null && autoplay)
+               if (isAutoplay())
                {
                        tag.put("autoplay", "autoplay");
                }
 
-               if (loop != null && loop)
+               if (isLooping())
                {
                        tag.put("loop", "loop");
                }
 
-               if (muted != null && muted)
+               if (isMuted())
                {
                        tag.put("muted", "muted");
                }
 
-               // Use getter here because controls should be visible by default
-               if (getControls())
+               if (hasControls())
                {
                        tag.put("controls", "controls");
                }
 
-               if (preload != null)
+               Preload _preload = getPreload();
+               if (_preload != null)
                {
-                       tag.put("preload", preload.getRealName());
+                       tag.put("preload", _preload.getRealName());
                }
 
-               if (crossOrigin != null)
+               Cors cors = getCrossOrigin();
+               if (cors != null)
                {
-                       tag.put("crossorigin", crossOrigin.getRealName());
+                       tag.put("crossorigin", cors.getRealName());
                }
        }
 
@@ -238,9 +245,9 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * 
         * @return If the playback is autoplayed on load
         */
-       public Boolean getAutoplay()
+       public boolean isAutoplay()
        {
-               return autoplay != null ? autoplay : false;
+               return autoplay;
        }
 
        /**
@@ -249,7 +256,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * @param autoplay
         *            If the playback is autoplayed on load
         */
-       public void setAutoplay(Boolean autoplay)
+       public void setAutoplay(boolean autoplay)
        {
                this.autoplay = autoplay;
        }
@@ -259,9 +266,9 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * 
         * @return If the playback is looped
         */
-       public Boolean getLoop()
+       public boolean isLooping()
        {
-               return loop != null ? loop : false;
+               return loop;
        }
 
        /**
@@ -270,7 +277,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * @param loop
         *            If the playback is looped
         */
-       public void setLoop(Boolean loop)
+       public void setLooping(boolean loop)
        {
                this.loop = loop;
        }
@@ -280,9 +287,9 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * 
         * @return If the playback is muted initially
         */
-       public Boolean getMuted()
+       public boolean isMuted()
        {
-               return muted != null ? muted : false;
+               return muted;
        }
 
        /**
@@ -291,7 +298,7 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * @param muted
         *            If the playback is muted initially
         */
-       public void setMuted(Boolean muted)
+       public void setMuted(boolean muted)
        {
                this.muted = muted;
        }
@@ -301,9 +308,9 @@ public abstract class MediaComponent extends 
WebMarkupContainer
         * 
         * @return if the controls are going to displayed
         */
-       public Boolean getControls()
+       public boolean hasControls()
        {
-               return controls != null ? controls : true;
+               return controls;
        }
 
        /**
@@ -330,21 +337,23 @@ public abstract class MediaComponent extends 
WebMarkupContainer
        }
 
        /**
-        * Sets the type of preload <br>
-        * <br>
-        * <b>none</b>: Hints to the user agent that either the author does not 
expect the user to need
-        * the media resource, or that the server wants to minimise unnecessary 
traffic.<br>
-        * <br>
-        * <b>metadata</b>: Hints to the user agent that the author does not 
expect the user to need the
+        * Sets the type of preload.
+        * <ul>
+        * <li><b>none</b>: Hints to the user agent that either the author does 
not expect the user to need
+        * the media resource, or that the server wants to minimise unnecessary 
traffic.</li>
+        *
+        * <li><b>metadata</b>: Hints to the user agent that the author does 
not expect the user to need the
         * media resource, but that fetching the resource metadata (dimensions, 
first frame, track list,
-        * duration, etc) is reasonable.<br>
-        * <br>
-        * <b>auto</b>: Hints to the user agent that the user agent can put the 
user's needs first
+        * duration, etc) is reasonable.</li>
+        *
+        * <li><b>auto</b>: Hints to the user agent that the user agent can put 
the user's needs first
         * without risk to the server, up to and including optimistically 
downloading the entire
-        * resource.
+        * resource.</li>
+        * </ul>
+        * </p>
         * 
         * @param preload
-        *            the preload
+        *            the type of the preload
         */
        public void setPreload(Preload preload)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
index 54d9442..6231eed 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
@@ -21,16 +21,15 @@ import java.util.Locale;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.core.util.resource.PackageResourceStream;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.http.WebResponse;
-import org.apache.wicket.request.resource.AbstractResource;
 import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.PackageResource;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.string.Strings;
 
 /**
  * The media streaming resource reference is used to provided streamed data 
based on bytes requested
@@ -38,9 +37,8 @@ import org.apache.wicket.request.resource.ResourceReference;
  * 
  * @author Tobias Soloschenko
  */
-public class MediaStreamingResourceReference extends ResourceReference
+public class MediaStreamingResourceReference extends PackageResourceReference
 {
-
        private static final long serialVersionUID = 1L;
 
        public MediaStreamingResourceReference(Class<?> scope, String name, 
Locale locale,
@@ -51,7 +49,7 @@ public class MediaStreamingResourceReference extends 
ResourceReference
 
        public MediaStreamingResourceReference(Class<?> scope, String name)
        {
-               super(scope, name, RequestCycle.get().getRequest().getLocale(), 
null, null);
+               this(scope, name, null, null, null);
        }
 
        public MediaStreamingResourceReference(Key key)
@@ -65,16 +63,16 @@ public class MediaStreamingResourceReference extends 
ResourceReference
        }
 
        @Override
-       public IResource getResource()
+       public PackageResource getResource()
        {
-               AbstractResource mediaStreamingResource = new AbstractResource()
+               return new PackageResource(getScope(), getName(), getLocale(), 
getStyle(), getVariation())
                {
                        private static final long serialVersionUID = 1L;
 
                        @Override
                        protected ResourceResponse 
newResourceResponse(Attributes attributes)
                        {
-                               PackageResourceStream packageResourceStream = 
null;
+                               IResourceStream packageResourceStream = 
getResourceStream();
                                Long startbyte = null;
                                Long endbyte = null;
                                try
@@ -85,20 +83,12 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                        if (!(request instanceof WebRequest) || 
!(response instanceof WebResponse))
                                        {
                                                throw new IllegalStateException(
-                                                       "Either the request is 
no web request or the response is no web response");
+                                                       "Web request/response 
are required! Request: " + request + ", response: " + response);
                                        }
 
                                        WebRequest webRequest = 
(WebRequest)request;
                                        WebResponse webResponse = 
(WebResponse)response;
 
-                                       packageResourceStream = new 
PackageResourceStream(
-                                               
MediaStreamingResourceReference.this.getScope(),
-                                               
MediaStreamingResourceReference.this.getName(),
-                                               
MediaStreamingResourceReference.this.getLocale(),
-                                               
MediaStreamingResourceReference.this.getStyle(),
-                                               
MediaStreamingResourceReference.this.getVariation());
-
-
                                        long length = 
packageResourceStream.length().bytes();
 
                                        ResourceResponse resourceResponse = new 
ResourceResponse();
@@ -107,13 +97,13 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                        
resourceResponse.setContentDisposition(ContentDisposition.ATTACHMENT);
                                        
resourceResponse.setLastModified(packageResourceStream.lastModifiedTime());
 
-                                       // We accept ranges, so that the player 
can
+                                       // accept ranges, so that the player can
                                        // load and play content from a 
specific byte position
                                        webResponse.setHeader("Accept-Range", 
"bytes");
 
                                        // Calculating the response code and 
the byte range to be played
                                        String rangeHeader = 
webRequest.getHeader("range");
-                                       if (rangeHeader == null || 
"".equals(rangeHeader))
+                                       if (Strings.isEmpty(rangeHeader))
                                        {
                                                
resourceResponse.setStatusCode(200);
                                                
resourceResponse.setContentLength(length);
@@ -121,7 +111,6 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                        else
                                        {
                                                rangeHeader = 
rangeHeader.replaceAll(" ", "");
-                                               // If the range header is 
filled 206 for
                                                // partial content has to be 
returned
                                                
resourceResponse.setStatusCode(206);
 
@@ -131,11 +120,11 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                                // 
http://stackoverflow.com/questions/8293687/sample-http-range-request-session
                                                String range = 
rangeHeader.substring(rangeHeader.indexOf('=') + 1,
                                                        rangeHeader.length());
-                                               String[] rangeParts = 
range.split("-");
-                                               if (rangeParts[0].equals("0"))
+                                               String[] rangeParts = 
Strings.split(range, '-');
+                                               if ("0".equals(rangeParts[0]))
                                                {
-                                                       
webResponse.setHeader("Content-Range", "bytes 0-" + (length - 1) + "/" +
-                                                               length);
+                                                       
webResponse.setHeader("Content-Range",
+                                                                       "bytes 
0-" + (length - 1) + "/" + length);
                                                        
resourceResponse.setContentLength(length);
                                                }
                                                else
@@ -149,8 +138,8 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                                        {
                                                                endbyte = 
length - 1;
                                                        }
-                                                       
webResponse.setHeader("Content-Range", "bytes " + startbyte + "-" +
-                                                               endbyte + "/" + 
length);
+                                                       
webResponse.setHeader("Content-Range",
+                                                                       "bytes 
" + startbyte + '-' + endbyte + '/' + length);
                                                        
resourceResponse.setContentLength((endbyte - startbyte) + 1);
                                                }
                                        }
@@ -183,14 +172,13 @@ public class MediaStreamingResourceReference extends 
ResourceReference
                                }
                        }
                };
-               return mediaStreamingResource;
 
        }
 
        /**
-        * Gets the type of the media this resource reference belongs to
+        * Returns the mime type of the media this resource reference belongs to
         * 
-        * @return the type of this media
+        * @return the mime type of this media
         */
        public String getType()
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
deleted file mode 100755
index d06a704..0000000
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.markup.html.media;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.markup.html.IPackageResourceGuard;
-import org.apache.wicket.markup.html.SecurePackageResourceGuard;
-
-/**
- * Helper method to provide access to basic media files like subtitles
- * 
- * @author Tobias Soloschenko
- * 
- */
-public class MediaUtils
-{
-
-       /**
-        * Method that has to be called within the init method of the web 
application to make
-        * translation files accessible
-        */
-       public static void init()
-       {
-               IPackageResourceGuard packageResourceGuard = Application.get()
-                       .getResourceSettings()
-                       .getPackageResourceGuard();
-               if (packageResourceGuard instanceof SecurePackageResourceGuard)
-               {
-                       SecurePackageResourceGuard securePackageResourceGuard = 
(SecurePackageResourceGuard)packageResourceGuard;
-                       securePackageResourceGuard.addPattern("+*.vtt");
-                       securePackageResourceGuard.addPattern("+*.srt");
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
index 694544d..b5467ff 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
@@ -21,10 +21,10 @@ import java.io.InputStream;
 import java.io.OutputStream;
 
 import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.core.util.resource.PackageResourceStream;
 import org.apache.wicket.protocol.http.servlet.ResponseIOException;
 import org.apache.wicket.request.resource.AbstractResource.WriteCallback;
 import org.apache.wicket.request.resource.IResource.Attributes;
+import org.apache.wicket.util.resource.IResourceStream;
 
 /**
  * Used to read a part of the package resource stream and write it to the 
output stream of the
@@ -35,24 +35,24 @@ import 
org.apache.wicket.request.resource.IResource.Attributes;
  */
 public class PartWriterCallback extends WriteCallback
 {
-       private PackageResourceStream packageResourceStream;
+       private final IResourceStream resourceStream;
 
-       private Long startbyte;
+       private final Long startbyte;
 
        private Long endbyte;
 
-       private Integer buffer;
+       private int bufferSize;
 
        /**
         * Creates a part writer callback.<br>
         * <br>
-        * Reads a part of the given package resource stream. If the startbyte 
parameter is not null the
+        * Reads a part of the given resource stream. If the startbyte 
parameter is not null the
         * number of bytes are skipped till the stream is read. If the endbyte 
is not null the stream is
         * read till endbyte, else to the end of the whole stream. If startbyte 
and endbyte is null the
         * whole stream is read.
         * 
-        * @param packageResourceStream
-        *            the package resource stream to be read
+        * @param resourceStream
+        *            the resource stream to read
         * @param startbyte
         *            the start position to read from (if not null the number 
of bytes are skipped till
         *            the stream is read)
@@ -60,10 +60,10 @@ public class PartWriterCallback extends WriteCallback
         *            the end position to read to (if not null the stream is 
going to be read till
         *            endbyte, else to the end of the whole stream)
         */
-       public PartWriterCallback(PackageResourceStream packageResourceStream, 
Long startbyte,
+       public PartWriterCallback(IResourceStream resourceStream, Long 
startbyte,
                Long endbyte)
        {
-               this.packageResourceStream = packageResourceStream;
+               this.resourceStream = resourceStream;
                this.startbyte = startbyte;
                this.endbyte = endbyte;
        }
@@ -71,7 +71,7 @@ public class PartWriterCallback extends WriteCallback
        /**
         * Writes the data
         * 
-        * @param Attributes
+        * @param attributes
         *            the attributes to get the output stream of the response
         */
        @Override
@@ -79,9 +79,9 @@ public class PartWriterCallback extends WriteCallback
        {
                try
                {
-                       InputStream inputStream = 
packageResourceStream.getInputStream();
+                       InputStream inputStream = 
resourceStream.getInputStream();
                        OutputStream outputStream = 
attributes.getResponse().getOutputStream();
-                       byte[] buffer = new byte[getBuffer()];
+                       byte[] buffer = new byte[getBufferSize()];
 
                        if (startbyte != null || endbyte != null)
                        {
@@ -95,11 +95,11 @@ public class PartWriterCallback extends WriteCallback
                                // If there are no end bytes given read the 
whole stream till the end
                                if (endbyte == null)
                                {
-                                       endbyte = 
packageResourceStream.length().bytes();
+                                       endbyte = 
resourceStream.length().bytes();
                                }
 
                                long totalBytes = 0;
-                               int actualReadBytes = 0;
+                               int actualReadBytes;
 
                                while ((actualReadBytes = 
inputStream.read(buffer)) != -1)
                                {
@@ -107,7 +107,7 @@ public class PartWriterCallback extends WriteCallback
                                        long lowerBuffer = endbyte - totalBytes;
                                        if (lowerBuffer <= 0)
                                        {
-                                               buffer = 
(byte[])resizeArray(buffer, actualReadBytes);
+                                               buffer = resizeArray(buffer, 
actualReadBytes);
                                                outputStream.write(buffer);
                                                break;
                                        }
@@ -151,15 +151,14 @@ public class PartWriterCallback extends WriteCallback
         * @return A new array with the same contents.
         */
        @SuppressWarnings("rawtypes")
-       private static Object resizeArray(Object oldArray, int newSize)
+       private static byte[] resizeArray(byte[] oldArray, int newSize)
        {
-               int oldSize = java.lang.reflect.Array.getLength(oldArray);
-               Class elementType = oldArray.getClass().getComponentType();
-               Object newArray = 
java.lang.reflect.Array.newInstance(elementType, newSize);
-               int preserveLength = Math.min(oldSize, newSize);
-               if (preserveLength > 0)
+               int oldSize = oldArray.length;
+               byte[] newArray = new byte[newSize];
+               int minLength = Math.min(oldSize, newSize);
+               if (minLength > 0)
                {
-                       System.arraycopy(oldArray, 0, newArray, 0, 
preserveLength);
+                       System.arraycopy(oldArray, 0, newArray, 0, minLength);
                }
                return newArray;
        }
@@ -167,22 +166,22 @@ public class PartWriterCallback extends WriteCallback
        /**
         * Sets the buffer size used to send the data to the client
         * 
-        * @return the buffer size used to send the data to the client (default 
is 4048)
+        * @return the buffer size used to send the data to the client (default 
is 4096)
         */
-       public Integer getBuffer()
+       public int getBufferSize()
        {
-               return buffer != null ? buffer : 4048;
+               return bufferSize > 0 ? bufferSize : 4096;
        }
 
        /**
         * Sets the buffer size used to send the data to the client
         * 
-        * @param buffer
+        * @param bufferSize
         *            the buffer size used to send the data to the client
         */
-       public void setBuffer(Integer buffer)
+       public void setBufferSize(int bufferSize)
        {
-               this.buffer = buffer;
+               this.bufferSize = bufferSize;
        }
 
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
index 8926609..c3fc50f 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
@@ -27,89 +27,74 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  * 
  * @author Tobias Soloschenko
  * @author Andrew Lombardi
- * 
  */
 public class Source extends WebMarkupContainer
 {
-
        private static final long serialVersionUID = 1L;
 
-       private Boolean displayType;
+       private boolean displayType;
 
        private String type;
 
        private String media;
 
-       private MediaStreamingResourceReference mediaStreamingResourceReference;
+       private final MediaStreamingResourceReference 
mediaStreamingResourceReference;
 
-       private PageParameters pageParameters;
+       private final PageParameters pageParameters;
 
-       private String url;
+       private final String url;
 
        public Source(String id)
        {
-               super(id);
+               this(id, null, null, null, null);
        }
 
        public Source(String id, IModel<?> model)
        {
-               super(id, model);
+               this(id, model, null, null, null);
        }
 
        public Source(String id, MediaStreamingResourceReference 
mediaStreamingResourceReference)
        {
-               this(id);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
+               this(id, null, null, null, mediaStreamingResourceReference);
        }
 
        public Source(String id, IModel<?> model,
                MediaStreamingResourceReference mediaStreamingResourceReference)
        {
-               this(id, model);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
+               this(id, model, null, null, mediaStreamingResourceReference);
        }
 
        public Source(String id, MediaStreamingResourceReference 
mediaStreamingResourceReference,
                PageParameters pageParameters)
        {
-               this(id);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
-               this.pageParameters = pageParameters;
+               this(id, null, null, pageParameters, 
mediaStreamingResourceReference);
        }
 
        public Source(String id, IModel<?> model,
                MediaStreamingResourceReference mediaStreamingResourceReference,
                PageParameters pageParameters)
        {
-               this(id, model);
-               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
-               this.pageParameters = pageParameters;
+               this(id, model, null, pageParameters, 
mediaStreamingResourceReference);
        }
 
        public Source(String id, String url)
        {
-               this(id);
-               this.url = url;
+               this(id, null, url, null, null);
        }
 
        public Source(String id, IModel<?> model, String url)
        {
-               this(id, model);
-               this.url = url;
+               this(id, model, url, null, null);
        }
 
-       public Source(String id, String url, PageParameters pageParameters)
+       private Source(String id, IModel<?> model, String url, PageParameters 
pageParameters,
+                      MediaStreamingResourceReference 
mediaStreamingResourceReference)
        {
-               this(id);
-               this.url = url;
-               this.pageParameters = pageParameters;
-       }
-
-       public Source(String id, IModel<?> model, String url, PageParameters 
pageParameters)
-       {
-               this(id, model);
+               super(id, model);
                this.url = url;
                this.pageParameters = pageParameters;
+               this.mediaStreamingResourceReference = 
mediaStreamingResourceReference;
        }
 
        @Override
@@ -120,11 +105,9 @@ public class Source extends WebMarkupContainer
 
                if (mediaStreamingResourceReference != null)
                {
-                       tag.put("src",
-                               
RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters));
-               }
-
-               if (url != null)
+                       CharSequence url = 
RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters);
+                       tag.put("src", url);
+               } else if (url != null)
                {
                        tag.put("src", url);
                }
@@ -141,9 +124,10 @@ public class Source extends WebMarkupContainer
                        }
                }
 
-               if (media != null)
+               String _media = getMedia();
+               if (_media != null)
                {
-                       tag.put("media", media);
+                       tag.put("media", _media);
                }
 
        }
@@ -153,9 +137,9 @@ public class Source extends WebMarkupContainer
         * 
         * @return If the type is going to be displayed
         */
-       public Boolean getDisplayType()
+       public boolean getDisplayType()
        {
-               return displayType != null ? displayType : false;
+               return displayType;
        }
 
        /**
@@ -164,7 +148,7 @@ public class Source extends WebMarkupContainer
         * @param displayType
         *            if the type is going to be displayed
         */
-       public void setDisplayType(Boolean displayType)
+       public void setDisplayType(boolean displayType)
        {
                this.displayType = displayType;
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
index 8871b23..1dc5b52 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
@@ -30,88 +30,72 @@ import org.apache.wicket.request.resource.ResourceReference;
  * media component
  * 
  * @author Tobias Soloschenko
- * 
  */
 public class Track extends WebMarkupContainer
 {
-
        private static final long serialVersionUID = 1L;
 
        private Kind kind;
 
        private String label;
 
-       private Boolean defaultTrack;
+       private boolean defaultTrack;
 
        private Locale srclang;
 
-       private ResourceReference resourceReference;
+       private final ResourceReference resourceReference;
 
-       private String url;
+       private final String url;
 
-       private PageParameters pageParameters;
+       private final PageParameters pageParameters;
 
        public Track(String id)
        {
-               super(id);
+               this(id, null, null, null, null);
        }
 
        public Track(String id, IModel<?> model)
        {
-               super(id, model);
+               this(id, model, null, null, null);
        }
 
        public Track(String id, ResourceReference resourceReference)
        {
-               this(id);
-               this.resourceReference = resourceReference;
+               this(id, null, null, null, resourceReference);
        }
 
        public Track(String id, IModel<?> model, ResourceReference 
resourceReference)
        {
-               this(id, model);
-               this.resourceReference = resourceReference;
+               this(id, model, null, null, resourceReference);
        }
 
        public Track(String id, ResourceReference resourceReference, 
PageParameters pageParameters)
        {
-               this(id);
-               this.resourceReference = resourceReference;
-               this.pageParameters = pageParameters;
+               this(id, null, null, pageParameters, resourceReference);
        }
 
        public Track(String id, IModel<?> model, ResourceReference 
resourceReference,
                PageParameters pageParameters)
        {
-               this(id, model);
-               this.resourceReference = resourceReference;
-               this.pageParameters = pageParameters;
+               this(id, model, null, pageParameters, resourceReference);
        }
 
        public Track(String id, String url)
        {
-               this(id);
-               this.url = url;
+               this(id, null, url, null, null);
        }
 
        public Track(String id, IModel<?> model, String url)
        {
-               this(id, model);
-               this.url = url;
+               this(id, model, url, null, null);
        }
 
-       public Track(String id, String url, PageParameters pageParameters)
+       private Track(String id, IModel<?> model, String url, PageParameters 
pageParameters, ResourceReference resourceReference)
        {
-               this(id);
-               this.url = url;
-               this.pageParameters = pageParameters;
-       }
-
-       public Track(String id, IModel<?> model, String url, PageParameters 
pageParameters)
-       {
-               this(id, model);
+               super(id, model);
                this.url = url;
                this.pageParameters = pageParameters;
+               this.resourceReference = resourceReference;
        }
 
        @Override
@@ -124,23 +108,24 @@ public class Track extends WebMarkupContainer
                {
                        tag.put("src", 
RequestCycle.get().urlFor(resourceReference, pageParameters));
                }
-
-               if (url != null)
+               else if (url != null)
                {
                        tag.put("src", url);
                }
 
-               if (kind != null)
+               Kind _kind = getKind();
+               if (_kind != null)
                {
-                       tag.put("kind", kind.name());
+                       tag.put("kind", _kind.name());
                }
 
-               if (label != null)
+               String _label = getLabel();
+               if (_label != null)
                {
-                       tag.put("label", label);
+                       tag.put("label", _label);
                }
 
-               if (defaultTrack != null && defaultTrack)
+               if (defaultTrack)
                {
                        tag.put("default", "default");
                }
@@ -148,9 +133,10 @@ public class Track extends WebMarkupContainer
                // if the srclang field is set use this, else if the
                // resource reference provides a locale use the language
                // of the resource reference
-               if (srclang != null)
+               Locale _srclang = getSrclang();
+               if (_srclang != null)
                {
-                       tag.put("srclang", srclang.getLanguage());
+                       tag.put("srclang", _srclang.getLanguage());
                }
                else if (resourceReference != null && 
resourceReference.getLocale() != null)
                {
@@ -193,8 +179,8 @@ public class Track extends WebMarkupContainer
         * <b>metadata</b>: Tracks intended for use from script. Not displayed 
by the user agent.<br>
         * <br>
         * 
-        * @param the
-        *            kind
+        * @param kind
+        *          the kind
         */
        public void setKind(Kind kind)
        {
@@ -227,9 +213,9 @@ public class Track extends WebMarkupContainer
         * 
         * @return if the track is the default track
         */
-       public Boolean getDefaultTrack()
+       public boolean isDefaultTrack()
        {
-               return defaultTrack != null ? defaultTrack : false;
+               return defaultTrack;
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
index 0bcef1c..3ab9615 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
@@ -27,11 +27,9 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  * 
  * @author Tobias Soloschenko
  * @author Andrew Lombardi
- * 
  */
 public class Audio extends MediaComponent
 {
-
        private static final long serialVersionUID = 1L;
 
        public Audio(String id)
@@ -78,16 +76,6 @@ public class Audio extends MediaComponent
                super(id, model, url);
        }
 
-       public Audio(String id, String url, PageParameters pageParameters)
-       {
-               super(id, url, pageParameters);
-       }
-
-       public Audio(String id, IModel<?> model, String url, PageParameters 
pageParameters)
-       {
-               super(id, model, url, pageParameters);
-       }
-
        @Override
        protected void onComponentTag(ComponentTag tag)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
index 79a8d7e..5a8b167 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
@@ -32,7 +32,6 @@ import org.apache.wicket.request.resource.ResourceReference;
  */
 public class Video extends MediaComponent
 {
-
        private static final long serialVersionUID = 1L;
 
        private Integer width;
@@ -87,35 +86,28 @@ public class Video extends MediaComponent
                super(id, model, url);
        }
 
-       public Video(String id, String url, PageParameters pageParameters)
-       {
-               super(id, url, pageParameters);
-       }
-
-       public Video(String id, IModel<?> model, String url, PageParameters 
pageParameters)
-       {
-               super(id, model, url, pageParameters);
-       }
-
        @Override
        protected void onComponentTag(ComponentTag tag)
        {
                checkComponentTag(tag, "video");
                super.onComponentTag(tag);
 
-               if (width != null)
+               Integer _width = getWidth();
+               if (_width != null)
                {
-                       tag.put("width", width);
+                       tag.put("width", _width);
                }
 
-               if (height != null)
+               Integer _height = getHeight();
+               if (_height != null)
                {
-                       tag.put("height", height);
+                       tag.put("height", _height);
                }
 
-               if (poster != null)
+               ResourceReference _poster = getPoster();
+               if (_poster != null)
                {
-                       tag.put("poster", RequestCycle.get().urlFor(poster, 
posterPageParameters));
+                       tag.put("poster", RequestCycle.get().urlFor(_poster, 
getPosterPageParameters()));
                }
        }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
deleted file mode 100755
index 7a15513..0000000
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.markup.html.media;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.protocol.http.WebApplication;
-
-public class Application extends WebApplication
-{
-
-       @Override
-       public Class<? extends Page> getHomePage()
-       {
-               return MediaTagsTestPage.class;
-       }
-       
-       @Override
-       protected void init()
-       {
-               super.init();
-               MediaUtils.init();
-       }
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
index 3f17ad7..b21b4bb 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
@@ -25,12 +25,10 @@ import 
org.apache.wicket.request.resource.PackageResourceReference;
 
 public class MediaTagsExtendedTestPage extends WebPage
 {
-
        private static final long serialVersionUID = 1L;
 
        public MediaTagsExtendedTestPage()
        {
-
                Video video = new Video("video", new 
MediaStreamingResourceReference(
                        MediaTagsTestPage.class, "dummyVideo.m4a"));
                

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
index 0863365..7c50031 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
@@ -16,80 +16,77 @@
  */
 package org.apache.wicket.markup.html.media;
 
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.util.tester.TagTester;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 
-public class MediaTagsTest
+public class MediaTagsTest extends WicketTestCase
 {
-       private WicketTester wicketTester;
-
-       @Before
-       public void setup()
+       @Override
+       protected WebApplication newApplication()
        {
-               wicketTester = new WicketTester(new Application());
+               return new MediaComponentsApplication();
        }
 
        @Test
-       public void testAudioTagIsRenderedRight()
+       public void audioTagIsRenderedRight()
        {
-               wicketTester.startPage(MediaTagsTestPage.class);
-               String lastResponseAsString = 
wicketTester.getLastResponse().getDocument();
+               tester.startPage(MediaTagsTestPage.class);
+               String lastResponseAsString = 
tester.getLastResponse().getDocument();
                TagTester createTagByAttribute = 
TagTester.createTagByAttribute(lastResponseAsString,
                        "audio");
-               
Assert.assertTrue(createTagByAttribute.hasAttribute("autoplay"));
-               
Assert.assertTrue(createTagByAttribute.hasAttribute("controls"));
-               Assert.assertTrue(createTagByAttribute.hasAttribute("loop"));
-               Assert.assertTrue(createTagByAttribute.hasAttribute("muted"));
-               Assert.assertEquals("user-credentials", 
createTagByAttribute.getAttribute("crossorigin"));
+               assertTrue(createTagByAttribute.hasAttribute("autoplay"));
+               assertTrue(createTagByAttribute.hasAttribute("controls"));
+               assertTrue(createTagByAttribute.hasAttribute("loop"));
+               assertTrue(createTagByAttribute.hasAttribute("muted"));
+               assertEquals("user-credentials", 
createTagByAttribute.getAttribute("crossorigin"));
                String attribute = createTagByAttribute.getAttribute("src");
-               Assert.assertTrue("The time period is set right in the src 
attribute",
+               assertTrue("The time period is set right in the src attribute",
                        attribute.contains("#t=5,10"));
-               Assert.assertTrue("page parameter is in the url of the src 
attribute",
+               assertTrue("page parameter is in the url of the src attribute",
                        attribute.contains("test=test"));
        }
 
        @Test
-       public void testVideoTagIsRenderedRight()
+       public void videoTagIsRenderedRight()
        {
-               wicketTester.startPage(MediaTagsTestPage.class);
-               String lastResponseAsString = 
wicketTester.getLastResponse().getDocument();
+               tester.startPage(MediaTagsTestPage.class);
+               String lastResponseAsString = 
tester.getLastResponse().getDocument();
                TagTester createTagByAttribute = 
TagTester.createTagByAttribute(lastResponseAsString,
                        "video");
                String attribute = createTagByAttribute.getAttribute("poster");
-               Assert.assertTrue("page parameter is in the url of the poster",
+               assertTrue("page parameter is in the url of the poster",
                        attribute.contains("test2=test2"));
                String attributesrc = createTagByAttribute.getAttribute("src");
-               Assert.assertTrue("video url is in the src attribute",
+               assertTrue("video url is in the src attribute",
                        attributesrc.contains("dummyVideo.m4a"));
-               Assert.assertEquals("500", 
createTagByAttribute.getAttribute("width"));
-               Assert.assertEquals("400", 
createTagByAttribute.getAttribute("height"));
+               assertEquals("500", createTagByAttribute.getAttribute("width"));
+               assertEquals("400", 
createTagByAttribute.getAttribute("height"));
        }
 
        @Test
-       public void testextendedVideoTagIsRenderedRight()
+       public void extendedVideoTagIsRenderedRight()
        {
-               wicketTester.startPage(MediaTagsExtendedTestPage.class);
-               String lastResponseAsString = 
wicketTester.getLastResponse().getDocument();
+               tester.startPage(MediaTagsExtendedTestPage.class);
+               String lastResponseAsString = 
tester.getLastResponse().getDocument();
                TagTester createTagByAttribute = 
TagTester.createTagByAttribute(lastResponseAsString,
                        "video");
-               Assert.assertTrue(createTagByAttribute.hasChildTag("source"));
-               Assert.assertTrue(createTagByAttribute.hasChildTag("track"));
+               assertTrue(createTagByAttribute.hasChildTag("source"));
+               assertTrue(createTagByAttribute.hasChildTag("track"));
                
                
                TagTester sourceTag = 
TagTester.createTagByAttribute(lastResponseAsString, "source");
-               Assert.assertEquals("video/mp4", 
sourceTag.getAttribute("type")); 
-               Assert.assertEquals("screen and (device-width:500px)", 
sourceTag.getAttribute("media")); 
-               Assert.assertEquals("http://www.mytestpage.xc/video.m4a";, 
sourceTag.getAttribute("src")); 
+               assertEquals("video/mp4", sourceTag.getAttribute("type")); 
+               assertEquals("screen and (device-width:500px)", 
sourceTag.getAttribute("media")); 
+               assertEquals("http://www.mytestpage.xc/video.m4a";, 
sourceTag.getAttribute("src")); 
                
                TagTester trackTag = 
TagTester.createTagByAttribute(lastResponseAsString, "track");
                
-               
Assert.assertTrue(trackTag.getAttribute("src").contains("dummySubtitles")); 
-               Assert.assertEquals("subtitles", 
trackTag.getAttribute("kind")); 
-               Assert.assertEquals("Subtitles of video", 
trackTag.getAttribute("label")); 
-               Assert.assertEquals("default", 
trackTag.getAttribute("default")); 
-               Assert.assertEquals("de", trackTag.getAttribute("srclang")); 
+               
assertTrue(trackTag.getAttribute("src").contains("dummySubtitles")); 
+               assertEquals("subtitles", trackTag.getAttribute("kind")); 
+               assertEquals("Subtitles of video", 
trackTag.getAttribute("label")); 
+               assertEquals("default", trackTag.getAttribute("default")); 
+               assertEquals("de", trackTag.getAttribute("srclang")); 
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
index 6bb6619..e8dbdd8 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
@@ -25,7 +25,6 @@ import 
org.apache.wicket.request.resource.PackageResourceReference;
 
 public class MediaTagsTestPage extends WebPage
 {
-
        private static final long serialVersionUID = 1L;
 
        public MediaTagsTestPage()
@@ -37,7 +36,7 @@ public class MediaTagsTestPage extends WebPage
                audio.setAutoplay(true);
                audio.setControls(true);
                audio.setCrossOrigin(Cors.USER_CREDENTIALS);
-               audio.setLoop(true);
+               audio.setLooping(true);
                audio.setMuted(true);
                audio.setStartTime("5");
                audio.setEndTime("10");

Reply via email to