You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/10/31 19:14:13 UTC
svn commit: r1029438 -
/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
Author: mgrigorov
Date: Sun Oct 31 18:14:13 2010
New Revision: 1029438
URL: http://svn.apache.org/viewvc?rev=1029438&view=rev
Log:
WICKET-3135 Improve JavaScriptPackageResource#toString() to show filename instead of default Object#toString()
Javadoc and formatting
No functional changes
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java?rev=1029438&r1=1029437&r2=1029438&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java Sun Oct 31 18:14:13 2010
@@ -24,6 +24,7 @@ import org.apache.wicket.ThreadContext;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.html.IPackageResourceGuard;
import org.apache.wicket.request.http.WebResponse;
+import org.apache.wicket.settings.IResourceSettings;
import org.apache.wicket.util.io.IOUtils;
import org.apache.wicket.util.lang.Packages;
import org.apache.wicket.util.lang.WicketObjects;
@@ -33,6 +34,27 @@ import org.apache.wicket.util.time.Time;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Represents a localizable static resource.
+ * <p>
+ * Use like eg:
+ *
+ * <pre>
+ * MyPackageResource IMG_UNKNOWN = new MyPackageResource(EditPage.class, "questionmark.gif");
+ * </pre>
+ *
+ * where the static resource references image 'questionmark.gif' from the the package that EditPage
+ * is in to get a package resource.
+ * </p>
+ *
+ * Access to resources can be granted or denied via a {@link IPackageResourceGuard}. Please see
+ * {@link IResourceSettings#getPackageResourceGuard()} as well.
+ *
+ * @author Jonathan Locke
+ * @author Eelco Hillenius
+ * @author Juergen Donnerstag
+ * @author Matej Knopp
+ */
public class PackageResource extends AbstractResource
{
private static final Logger log = LoggerFactory.getLogger(PackageResource.class);
@@ -48,8 +70,9 @@ public class PackageResource extends Abs
/**
* Construct.
- *
- * @param message error message
+ *
+ * @param message
+ * error message
*/
public PackageResourceBlockedException(String message)
{
@@ -90,16 +113,21 @@ public class PackageResource extends Abs
/**
* Hidden constructor.
- *
- * @param scope This argument will be used to get the class loader for loading the package
- * resource, and to determine what package it is in
- * @param name The relative path to the resource
- * @param locale The locale of the resource
- * @param style The style of the resource
- * @param variation The component's variation (of the style)
+ *
+ * @param scope
+ * This argument will be used to get the class loader for loading the package
+ * resource, and to determine what package it is in
+ * @param name
+ * The relative path to the resource
+ * @param locale
+ * The locale of the resource
+ * @param style
+ * The style of the resource
+ * @param variation
+ * The component's variation (of the style)
*/
protected PackageResource(final Class<?> scope, final String name, final Locale locale,
- final String style, final String variation)
+ final String style, final String variation)
{
// Convert resource path to absolute path relative to base package
absolutePath = Packages.absolutePath(scope, name);
@@ -107,11 +135,11 @@ public class PackageResource extends Abs
if (!accept(scope, name))
{
throw new PackageResourceBlockedException(
- "Access denied to (static) package resource " + absolutePath +
- ". See IPackageResourceGuard");
+ "Access denied to (static) package resource " + absolutePath +
+ ". See IPackageResourceGuard");
}
- // TODO NG: Check path for ../
+ // TODO WICKET-NG: Check path for ../
scopeName = scope.getName();
path = name;
@@ -122,7 +150,7 @@ public class PackageResource extends Abs
/**
* Gets the scoping class, used for class loading and to determine the package.
- *
+ *
* @return the scoping class
*/
public final Class<?> getScope()
@@ -132,7 +160,7 @@ public class PackageResource extends Abs
/**
* Gets the style.
- *
+ *
* @return the style
*/
public final String getStyle()
@@ -142,8 +170,9 @@ public class PackageResource extends Abs
/**
* creates a new resource response based on the request attributes
- *
- * @param attributes current request attributes from client
+ *
+ * @param attributes
+ * current request attributes from client
* @return resource response for answering request
*/
@Override
@@ -166,7 +195,7 @@ public class PackageResource extends Abs
// add Last-Modified header (to support HEAD requests and If-Modified-Since)
final Time lastModified = resourceStream.lastModifiedTime();
- if(lastModified != null)
+ if (lastModified != null)
resourceResponse.setLastModified(lastModified.toDate());
try
@@ -209,7 +238,7 @@ public class PackageResource extends Abs
}
// if timestamps are enabled on resource we can maximize caching with no pain
- if(Application.get().getResourceSettings().getUseTimestampOnResources())
+ if (Application.get().getResourceSettings().getUseTimestampOnResources())
{
resourceResponse.setCacheDurationToMaximum();
resourceResponse.setCacheScope(WebResponse.CacheScope.PUBLIC);
@@ -220,16 +249,21 @@ public class PackageResource extends Abs
/**
* send resource specific error message and write log entry
- *
- * @param resourceResponse resource response
- * @param errorCode error code (=http status)
- * @param errorMessage error message (=http error message)
+ *
+ * @param resourceResponse
+ * resource response
+ * @param errorCode
+ * error code (=http status)
+ * @param errorMessage
+ * error message (=http error message)
* @return resource response for method chaining
*/
- private ResourceResponse sendResourceError(ResourceResponse resourceResponse, int errorCode, String errorMessage)
+ private ResourceResponse sendResourceError(ResourceResponse resourceResponse, int errorCode,
+ String errorMessage)
{
- String msg = String.format("resource [path = %s, style = %s, variation = %s, locale = %s]: %s (status=%d)",
- absolutePath, style, variation, locale, errorMessage, errorCode);
+ String msg = String.format(
+ "resource [path = %s, style = %s, variation = %s, locale = %s]: %s (status=%d)",
+ absolutePath, style, variation, locale, errorMessage, errorCode);
log.warn(msg);
@@ -239,51 +273,59 @@ public class PackageResource extends Abs
/**
* locate resource stream for current resource
- *
+ *
* @return resource stream or <code>null</code> if not found
*/
private IResourceStream getResourceStream()
{
// Locate resource
return ThreadContext.getApplication()
- .getResourceSettings()
- .getResourceStreamLocator()
- .locate(getScope(), absolutePath, style, variation, locale, null);
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .locate(getScope(), absolutePath, style, variation, locale, null);
}
/**
- * @param scope resource scope
- * @param path resource path
+ * @param scope
+ * resource scope
+ * @param path
+ * resource path
* @return <code>true<code> if resource access is granted
*/
private boolean accept(Class<?> scope, String path)
{
IPackageResourceGuard guard = ThreadContext.getApplication()
- .getResourceSettings()
- .getPackageResourceGuard();
+ .getResourceSettings()
+ .getPackageResourceGuard();
return guard.accept(scope, path);
}
/**
* Gets whether a resource for a given set of criteria exists.
- *
- * @param scope This argument will be used to get the class loader for loading the package
- * resource, and to determine what package it is in. Typically this is the class in
- * which you call this method
- * @param path The path to the resource
- * @param locale The locale of the resource
- * @param style The style of the resource (see {@link org.apache.wicket.Session})
- * @param variation The component's variation (of the style)
+ *
+ * @param scope
+ * This argument will be used to get the class loader for loading the package
+ * resource, and to determine what package it is in. Typically this is the class in
+ * which you call this method
+ * @param path
+ * The path to the resource
+ * @param locale
+ * The locale of the resource
+ * @param style
+ * The style of the resource (see {@link org.apache.wicket.Session})
+ * @param variation
+ * The component's variation (of the style)
* @return true if a resource could be loaded, false otherwise
*/
public static boolean exists(final Class<?> scope, final String path, final Locale locale,
- final String style, final String variation)
+ final String style, final String variation)
{
String absolutePath = Packages.absolutePath(scope, path);
return ThreadContext.getApplication()
- .getResourceSettings()
- .getResourceStreamLocator()
- .locate(scope, absolutePath, style, variation, locale, null) != null;
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .locate(scope, absolutePath, style, variation, locale, null) != null;
}
+
}