You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2010/11/14 09:56:08 UTC
svn commit: r1034959 - in /wicket/trunk:
wicket-examples/src/main/java/org/apache/wicket/examples/hangman/
wicket-util/src/main/java/org/apache/wicket/util/resource/
wicket/src/main/java/org/apache/wicket/markup/
wicket/src/main/java/org/apache/wicket/...
Author: jdonnerstag
Date: Sun Nov 14 08:56:07 2010
New Revision: 1034959
URL: http://svn.apache.org/viewvc?rev=1034959&view=rev
Log:
fixed WICKET-2713 Locate .properties files using the same convention as markup files
and some minor cleanup
Issue: WICKET-2713
Modified:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/WordGenerator.java
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStream.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/DefaultMarkupResourceStreamProvider.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/XsltTransformer.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/Properties.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/PackageResourceStream.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/resource/ResourceTest.java
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/WordGenerator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/WordGenerator.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/WordGenerator.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/WordGenerator.java Sun Nov 14 08:56:07 2010
@@ -54,7 +54,7 @@ public class WordGenerator implements IC
{
final IResourceStream resource = new ResourceStreamLocator().locate(null,
"org/apache/wicket/examples/hangman/WordList", null, null, Locale.getDefault(),
- ".txt");
+ ".txt", false);
final String wordlist = Streams.readString(resource.getInputStream());
words = Arrays.asList(wordlist.split("\\s+"));
shuffle();
Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStream.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStream.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStream.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/resource/IResourceStream.java Sun Nov 14 08:56:07 2010
@@ -81,7 +81,7 @@ public interface IResourceStream extends
Locale getLocale();
/**
- * This method shouldn't be used for the outside, It is used by the Loaders to set the resolved
+ * This method shouldn't be used from the outside. It is used by the Loaders to set the resolved
* locale.
*
* @param locale
@@ -95,7 +95,7 @@ public interface IResourceStream extends
String getStyle();
/**
- * This method shouldn't be used for the outside, It is used by the Loaders to set the resolved
+ * This method shouldn't be used from the outside. It is used by the Loaders to set the resolved
* Style.
*
* @param style
@@ -109,7 +109,7 @@ public interface IResourceStream extends
String getVariation();
/**
- * This method shouldn't be used for the outside, It is used by the Loaders to set the resolved
+ * This method shouldn't be used from the outside. It is used by the Loaders to set the resolved
* variation.
*
* @param variation
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/DefaultMarkupResourceStreamProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/DefaultMarkupResourceStreamProvider.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/DefaultMarkupResourceStreamProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/DefaultMarkupResourceStreamProvider.java Sun Nov 14 08:56:07 2010
@@ -81,7 +81,7 @@ public class DefaultMarkupResourceStream
{
String path = containerClass.getName().replace('.', '/');
IResourceStream resourceStream = locator.locate(container.getClass(), path, style,
- variation, locale, ext);
+ variation, locale, ext, false);
// Did we find it already?
if (resourceStream != null)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java Sun Nov 14 08:56:07 2010
@@ -195,7 +195,7 @@ public class MarkupComponentBorder exten
{
String path = containerClass.getName().replace('.', '/');
IResourceStream resourceStream = locator.locate(containerClass, path, style, variation,
- locale, markupType);
+ locale, markupType, false);
// Did we find it already?
if (resourceStream != null)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/XsltTransformer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/XsltTransformer.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/XsltTransformer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/transformer/XsltTransformer.java Sun Nov 14 08:56:07 2010
@@ -143,9 +143,11 @@ public class XsltTransformer implements
"/" + component.getId();
}
- resourceStream = Application.get().getResourceSettings().getResourceStreamLocator().locate(
- getClass(), filePath, component.getStyle(), component.getVariation(),
- component.getLocale(), XsltTransformer.extension);
+ resourceStream = Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .locate(getClass(), filePath, component.getStyle(), component.getVariation(),
+ component.getLocale(), XsltTransformer.extension, false);
return resourceStream;
}
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=1034959&r1=1034958&r2=1034959&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 Nov 14 08:56:07 2010
@@ -282,7 +282,7 @@ public class PackageResource extends Abs
return ThreadContext.getApplication()
.getResourceSettings()
.getResourceStreamLocator()
- .locate(getScope(), absolutePath, style, variation, locale, null);
+ .locate(getScope(), absolutePath, style, variation, locale, null, false);
}
/**
@@ -325,7 +325,7 @@ public class PackageResource extends Abs
return ThreadContext.getApplication()
.getResourceSettings()
.getResourceStreamLocator()
- .locate(scope, absolutePath, style, variation, locale, null) != null;
+ .locate(scope, absolutePath, style, variation, locale, null, false) != null;
}
@Override
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/Properties.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/Properties.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/Properties.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/Properties.java Sun Nov 14 08:56:07 2010
@@ -76,6 +76,6 @@ public final class Properties
@Override
public final String toString()
{
- return key;
+ return "unique key:" + key;
}
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/PropertiesFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/PropertiesFactory.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/PropertiesFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/PropertiesFactory.java Sun Nov 14 08:56:07 2010
@@ -57,7 +57,7 @@ public class PropertiesFactory implement
private final List<IPropertiesChangeListener> afterReloadListeners = new ArrayList<IPropertiesChangeListener>();
/** Cache for all property files loaded */
- private final Map<String, Properties> propertiesCache = new ConcurrentHashMap<String, Properties>();
+ private final Map<String, Properties> propertiesCache = newPropertiesCache();
/** This is necessary since the ModificationWatcher runs in a separate thread */
private final Application application;
@@ -93,6 +93,14 @@ public class PropertiesFactory implement
}
/**
+ * @return new Cache implementation
+ */
+ protected Map<String, Properties> newPropertiesCache()
+ {
+ return new ConcurrentHashMap<String, Properties>();
+ }
+
+ /**
* @see org.apache.wicket.resource.IPropertiesFactory#addListener(org.apache.wicket.resource.IPropertiesChangeListener)
*/
public void addListener(final IPropertiesChangeListener listener)
@@ -109,7 +117,10 @@ public class PropertiesFactory implement
*/
public final void clearCache()
{
- propertiesCache.clear();
+ if (propertiesCache != null)
+ {
+ propertiesCache.clear();
+ }
// clear the localizer cache as well
application.getResourceSettings().getLocalizer().clearCache();
@@ -122,7 +133,12 @@ public class PropertiesFactory implement
public Properties load(final Class<?> clazz, final String path)
{
// Check the cache
- Properties properties = propertiesCache.get(path);
+ Properties properties = null;
+ if (propertiesCache != null)
+ {
+ properties = propertiesCache.get(path);
+ }
+
if (properties == null)
{
IResourceSettings resourceSettings = Application.get().getResourceSettings();
@@ -134,9 +150,8 @@ public class PropertiesFactory implement
String fullPath = path + loader.getFileExtension();
// If not in the cache than try to load properties
- final IResourceStream resourceStream = resourceSettings.getResourceStreamLocator()
+ IResourceStream resourceStream = resourceSettings.getResourceStreamLocator()
.locate(clazz, fullPath);
-
if (resourceStream == null)
{
continue;
@@ -157,14 +172,17 @@ public class PropertiesFactory implement
}
// Cache the lookup
- if (properties == null)
- {
- // Could not locate properties, store a placeholder
- propertiesCache.put(path, Properties.EMPTY_PROPERTIES);
- }
- else
+ if (propertiesCache != null)
{
- propertiesCache.put(path, properties);
+ if (properties == null)
+ {
+ // Could not locate properties, store a placeholder
+ propertiesCache.put(path, Properties.EMPTY_PROPERTIES);
+ }
+ else
+ {
+ propertiesCache.put(path, properties);
+ }
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java Sun Nov 14 08:56:07 2010
@@ -29,6 +29,7 @@ import org.apache.wicket.markup.html.Web
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.resource.IPropertiesFactory;
import org.apache.wicket.resource.Properties;
+import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
import org.apache.wicket.util.resource.locator.ResourceNameIterator;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
@@ -131,42 +132,20 @@ public class ComponentStringResourceLoad
String path = clazz.getName().replace('.', '/');
// Iterator over all the combinations
- ResourceNameIterator iter = new ResourceNameIterator(path, style, variation, locale,
- null, false);
+ ResourceNameIterator iter = newResourceNameIterator(path, locale, style, variation);
while (iter.hasNext())
{
String newPath = iter.next();
- final Properties props = propertiesFactory.load(clazz, newPath);
+ Properties props = propertiesFactory.load(clazz, newPath);
if (props != null)
{
// Lookup the value
String value = props.getString(key);
if (value != null)
{
- if (log.isDebugEnabled())
- {
- log.debug("Found property '" + key + "' in: '" + props + "'" +
- "; value: '" + value + "'");
- }
-
return value;
}
- else
- {
- if (log.isDebugEnabled())
- {
- log.debug("Found properties file: '" + newPath +
- "' but it doesn't contain the property");
- }
- }
- }
- else
- {
- if (log.isDebugEnabled())
- {
- log.debug("Properties file not found: '" + newPath + "'");
- }
}
}
@@ -191,6 +170,25 @@ public class ComponentStringResourceLoad
}
/**
+ * @see IResourceStreamLocator#newResourceNameIterator(String, Locale, String, String, String,
+ * boolean)
+ *
+ * @param path
+ * @param locale
+ * @param style
+ * @param variation
+ * @return resource name iterator
+ */
+ protected ResourceNameIterator newResourceNameIterator(final String path, final Locale locale,
+ final String style, final String variation)
+ {
+ return Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .newResourceNameIterator(path, locale, style, variation, null, false);
+ }
+
+ /**
* Get the properties file factory which loads the properties based on locale and style from
* *.properties and *.xml files
*
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java Sun Nov 14 08:56:07 2010
@@ -21,6 +21,7 @@ import java.util.Locale;
import org.apache.wicket.Application;
import org.apache.wicket.resource.IPropertiesFactory;
import org.apache.wicket.resource.Properties;
+import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
import org.apache.wicket.util.resource.locator.ResourceNameIterator;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
@@ -93,24 +94,18 @@ public class PackageStringResourceLoader
}
// Iterator over all the combinations
- ResourceNameIterator iter = new ResourceNameIterator(path, style, variation,
- locale, null, false);
+ ResourceNameIterator iter = newResourceNameIterator(path, locale, style, variation);
while (iter.hasNext())
{
String newPath = iter.next();
- final Properties props = propertiesFactory.load(clazz, newPath);
+ Properties props = propertiesFactory.load(clazz, newPath);
if (props != null)
{
// Lookup the value
String value = props.getString(key);
if (value != null)
{
- if (log.isDebugEnabled())
- {
- log.debug("Found resource from: " + props + "; key: " + key);
- }
-
return value;
}
}
@@ -152,4 +147,24 @@ public class PackageStringResourceLoader
{
this.filename = filename;
}
+
+ /**
+ * @see IResourceStreamLocator#newResourceNameIterator(String, Locale, String, String, String,
+ * boolean)
+ *
+ * @param locale
+ * @param style
+ * @param variation
+ * @param path
+ * @return resource name iterator
+ */
+ @Override
+ protected ResourceNameIterator newResourceNameIterator(final String path, final Locale locale,
+ final String style, final String variation)
+ {
+ return Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .newResourceNameIterator(path, locale, style, variation, null, false);
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/PackageResourceStream.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/PackageResourceStream.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/PackageResourceStream.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/PackageResourceStream.java Sun Nov 14 08:56:07 2010
@@ -54,8 +54,10 @@ public class PackageResourceStream exten
public PackageResourceStream(Class<?> scope, String path)
{
String absolutePath = Packages.absolutePath(scope, path);
- resourceStream = Application.get().getResourceSettings().getResourceStreamLocator().locate(
- scope, absolutePath, null, null, null, null);
+ resourceStream = Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator()
+ .locate(scope, absolutePath, null, null, null, null, false);
if (resourceStream == null)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java Sun Nov 14 08:56:07 2010
@@ -29,7 +29,7 @@ import org.apache.wicket.util.resource.I
public interface IResourceStreamLocator
{
/**
- * Loads a resource, given a path and class. Typically this method is either called by external
+ * Locate a resource, given a path and class. Typically this method is either called by external
* clients if they are not interested in a lookup that takes the style and locale into account,
* or it is called by the implementation of
* {@link #locate(Class, String, String, Locale, String)} where the latter just takes care of
@@ -43,10 +43,11 @@ public interface IResourceStreamLocator
*
* @return The resource or null
*/
- public IResourceStream locate(Class<?> clazz, String path);
+ IResourceStream locate(Class<?> clazz, String path);
/**
- * Loads a resource, given a path, style, variation, locale and extension.
+ * Locate a resource by combining the given path, style, variation, locale and extension
+ * parameters. The exact search order depends on the implementation.
*
* @param clazz
* The class loader for delegating the loading of the resource
@@ -59,18 +60,19 @@ public interface IResourceStreamLocator
* @param locale
* The locale of the resource to load
* @param extension
- * The extension of the resource
- *
+ * A comma separate list of extensions
+ * @param strict
+ * whether the specified attributes must match exactly
* @return The resource or null
*/
- public IResourceStream locate(Class<?> clazz, String path, String style, String variation,
- Locale locale, String extension);
+ IResourceStream locate(Class<?> clazz, String path, String style, String variation,
+ Locale locale, String extension, boolean strict);
/**
- * Loads a resource, given a path, style, variation, locale and extension.
+ * Markup resources and Properties files both need to iterate over different combinations of
+ * locale, style, etc.. And though no single locate(..) method exists which is used by both,
+ * they both use ResourceNameIterators.
*
- * @param clazz
- * The class loader for delegating the loading of the resource
* @param path
* The path of the resource
* @param style
@@ -80,13 +82,11 @@ public interface IResourceStreamLocator
* @param locale
* The locale of the resource to load
* @param extension
- * The extension of the resource
- *
+ * A comma separate list of extensions
* @param strict
* whether the specified attributes must match exactly
- *
- * @return The resource or null
+ * @return resource name iterator
*/
- public IResourceStream locate(Class<?> clazz, String path, String style, String variation,
- Locale locale, String extension, boolean strict);
+ ResourceNameIterator newResourceNameIterator(String path, Locale locale, String style,
+ String variation, String extension, boolean strict);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java Sun Nov 14 08:56:07 2010
@@ -85,7 +85,7 @@ public class ResourceNameIterator implem
* @param strict
* If false, weaker combinations of style, locale, etc. are tested as well
*/
- public ResourceNameIterator(final String path, final String style, final String variation,
+ ResourceNameIterator(final String path, final String style, final String variation,
final Locale locale, final String extensions, boolean strict)
{
this.locale = locale;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java Sun Nov 14 08:56:07 2010
@@ -23,8 +23,8 @@ import org.apache.wicket.Application;
import org.apache.wicket.util.file.IResourceFinder;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.ResourceUtils;
-import org.apache.wicket.util.resource.UrlResourceStream;
import org.apache.wicket.util.resource.ResourceUtils.PathLocale;
+import org.apache.wicket.util.resource.UrlResourceStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -110,18 +110,6 @@ public class ResourceStreamLocator imple
*
* @see org.apache.wicket.util.resource.locator.IResourceStreamLocator#locate(java.lang.Class,
* java.lang.String, java.lang.String, java.lang.String, java.util.Locale,
- * java.lang.String)
- */
- public IResourceStream locate(final Class<?> clazz, String path, final String style,
- final String variation, final Locale locale, final String extension)
- {
- return locate(clazz, path, style, variation, locale, extension, false);
- }
-
- /**
- *
- * @see org.apache.wicket.util.resource.locator.IResourceStreamLocator#locate(java.lang.Class,
- * java.lang.String, java.lang.String, java.lang.String, java.util.Locale,
* java.lang.String, boolean)
*/
public IResourceStream locate(final Class<?> clazz, String path, final String style,
@@ -136,7 +124,7 @@ public class ResourceStreamLocator imple
}
// Try the various combinations of style, locale and extension to find the resource.
- ResourceNameIterator iter = new ResourceNameIterator(path, style, variation, locale,
+ ResourceNameIterator iter = newResourceNameIterator(path, locale, style, variation,
extension, strict);
while (iter.hasNext())
{
@@ -244,4 +232,15 @@ public class ResourceStreamLocator imple
// Try to find file resource on the path supplied
return finder.find(clazz, path);
}
+
+ /**
+ *
+ * @see org.apache.wicket.util.resource.locator.IResourceStreamLocator#newResourceNameIterator(java.lang.String,
+ * java.util.Locale, java.lang.String, java.lang.String, java.lang.String, boolean)
+ */
+ public ResourceNameIterator newResourceNameIterator(final String path, final Locale locale,
+ final String style, final String variation, final String extension, final boolean strict)
+ {
+ return new ResourceNameIterator(path, style, variation, locale, extension, strict);
+ }
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Sun Nov 14 08:56:07 2010
@@ -182,7 +182,7 @@ public final class MarkupParserTest exte
final String extension)
{
IResourceStream resource = locator.locate(c, c.getName().replace('.', '/'), style,
- variation, locale, extension);
+ variation, locale, extension, false);
MarkupResourceStream res = new MarkupResourceStream(resource, null, null);
return res;
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/resource/loader/ComponentStringResourceLoaderTest.java Sun Nov 14 08:56:07 2010
@@ -16,11 +16,14 @@
*/
package org.apache.wicket.resource.loader;
+import java.util.Map;
+
import org.apache.wicket.Application;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.WicketTestCase;
import org.apache.wicket.resource.IPropertiesFactory;
import org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader;
+import org.apache.wicket.resource.Properties;
import org.apache.wicket.resource.PropertiesFactory;
/**
@@ -68,6 +71,19 @@ public class ComponentStringResourceLoad
}
/**
+ * @throws Exception
+ */
+ public void testDisabledCache() throws Exception
+ {
+ IPropertiesFactory myFac = new DisabledCachePropertiesFactory(tester.getApplication());
+ tester.getApplication().getResourceSettings().setPropertiesFactory(myFac);
+
+ executeTest(TestPage_1.class, "TestPageExpectedResult_1.xml");
+
+ myFac.clearCache();
+ }
+
+ /**
*
*/
private class MyPropertiesFactory extends PropertiesFactory
@@ -85,4 +101,29 @@ public class ComponentStringResourceLoad
getPropertiesLoaders().add(new IsoPropertiesFilePropertiesLoader("properties"));
}
}
+
+ /**
+ *
+ */
+ private class DisabledCachePropertiesFactory extends PropertiesFactory
+ {
+ /**
+ * Construct.
+ *
+ * @param application
+ */
+ public DisabledCachePropertiesFactory(Application application)
+ {
+ super(application);
+ }
+
+ /**
+ * @see org.apache.wicket.resource.PropertiesFactory#newPropertiesCache()
+ */
+ @Override
+ protected Map<String, Properties> newPropertiesCache()
+ {
+ return null;
+ }
+ }
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/util/resource/ResourceTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/resource/ResourceTest.java?rev=1034959&r1=1034958&r2=1034959&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/util/resource/ResourceTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/util/resource/ResourceTest.java Sun Nov 14 08:56:07 2010
@@ -67,7 +67,7 @@ public class ResourceTest extends Wicket
IResourceStreamLocator locator = new ResourceStreamLocator(sourcePath);
IResourceStream resource = locator.locate(this.getClass(), this.getClass()
.getName()
- .replace('.', '/'), style, variation, locale, "txt");
+ .replace('.', '/'), style, variation, locale, "txt", false);
compareFilename(resource, extension);
}
@@ -115,8 +115,8 @@ public class ResourceTest extends Wicket
// Determine source path
IResourceStreamLocator locator = new ResourceStreamLocator();
- IResourceStream resource = locator.locate(getClass(), this.getClass().getName().replace(
- '.', '/'), null, null, null, "txt");
+ IResourceStream resource = locator.locate(getClass(),
+ this.getClass().getName().replace('.', '/'), null, null, null, "txt", false);
String path = getPath(resource);
path = Strings.beforeLastPathComponent(path, '/') + "/sourcePath";