You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by da...@apache.org on 2015/08/10 17:33:11 UTC
[1/3] wicket git commit: Fixed JavaDoc warning by adding @since tag
Repository: wicket
Updated Branches:
refs/heads/master d547fcd4f -> 877353179
Fixed JavaDoc warning by adding @since tag
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d7762cea
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d7762cea
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d7762cea
Branch: refs/heads/master
Commit: d7762cead0471799ccee0d462ef465f8e782b964
Parents: d547fcd
Author: Martijn Dashorst <ma...@gmail.com>
Authored: Mon Aug 10 15:54:51 2015 +0200
Committer: Martijn Dashorst <ma...@gmail.com>
Committed: Mon Aug 10 15:54:51 2015 +0200
----------------------------------------------------------------------
.../resource/locator/caching/CachingResourceStreamLocator.java | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d7762cea/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/caching/CachingResourceStreamLocator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/caching/CachingResourceStreamLocator.java b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/caching/CachingResourceStreamLocator.java
index 93fb0b3..ceeb59f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/caching/CachingResourceStreamLocator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/caching/CachingResourceStreamLocator.java
@@ -138,6 +138,11 @@ public class CachingResourceStreamLocator implements IResourceStreamLocator
return delegate.newResourceNameIterator(path, locale, style, variation, extension, strict);
}
+ /**
+ * Clears the resource cache.
+ *
+ * @since 6.16.0
+ */
public void clearCache()
{
cache.clear();
[3/3] wicket git commit: Fixed WICKET-5967 Unable to load i18n
minified js
Posted by da...@apache.org.
Fixed WICKET-5967 Unable to load i18n minified js
Moved location of minified (or not) resources to ResourceStreamLocator instead of the
resources themselves by adding a lookup for .min.<extension> before .<extension> in the list
of extensions to search for. This prioritizes the minified version before the non-minified version,
and allows for style_variation_locale resources to be located in minified versions as well.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/87735317
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/87735317
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/87735317
Branch: refs/heads/master
Commit: 8773531793092e302fa86ec61f3919c7008472d6
Parents: b87bc97
Author: Martijn Dashorst <ma...@gmail.com>
Authored: Mon Aug 10 17:35:23 2015 +0200
Committer: Martijn Dashorst <ma...@gmail.com>
Committed: Mon Aug 10 17:35:23 2015 +0200
----------------------------------------------------------------------
.../resource/locator/ResourceStreamLocator.java | 31 +++++++-
.../request/resource/CssPackageResource.java | 13 +++-
.../resource/JavaScriptPackageResource.java | 20 ++++-
.../resource/PackageResourceReference.java | 79 +-------------------
.../MinifiedAwareResourceReferenceTest.java | 9 ++-
.../resource/PackageResourceReferenceTest.java | 2 +-
.../resource/ResourceReferenceLocatingTest.java | 2 -
.../wicket/util/resource/ResourceUtils.java | 2 +
8 files changed, 72 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
index c555873..55a15c4 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ResourceStreamLocator.java
@@ -197,7 +197,17 @@ public class ResourceStreamLocator implements IResourceStreamLocator
// it could be an attack, so ignore it and pretend there are no resources
return new EmptyResourceNameIterator();
}
- extensions = Collections.singleton(realExtension);
+
+ // add a minimized file to the resource lookup if necessary
+ if (Application.exists() &&
+ Application.get().getResourceSettings().getUseMinifiedResources())
+ {
+ extensions = Arrays.asList("min." + realExtension, realExtension);
+ }
+ else
+ {
+ extensions = Collections.singleton(realExtension);
+ }
}
else
{
@@ -209,7 +219,24 @@ public class ResourceStreamLocator implements IResourceStreamLocator
else
{
String[] commaSeparated = Strings.split(extension, ',');
- extensions = Arrays.asList(commaSeparated);
+ List<String> nonMinifiedExtensions = Arrays.asList(commaSeparated);
+
+ // add a minimized file to the resource lookup if necessary
+ if (Application.exists() &&
+ Application.get().getResourceSettings().getUseMinifiedResources())
+ {
+ ArrayList<String> minifiedExtensions = new ArrayList<>();
+ for (String nonMinifiedExtension : nonMinifiedExtensions)
+ {
+ minifiedExtensions.add("min." + nonMinifiedExtension);
+ minifiedExtensions.add(nonMinifiedExtension);
+ }
+ extensions = minifiedExtensions;
+ }
+ else
+ {
+ extensions = nonMinifiedExtensions;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/main/java/org/apache/wicket/request/resource/CssPackageResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/CssPackageResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/CssPackageResource.java
index 356ee59..fd48eb8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/CssPackageResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/CssPackageResource.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.request.resource;
+import static org.apache.wicket.util.resource.ResourceUtils.MIN_POSTFIX_DEFAULT_AS_EXTENSION;
+
import java.util.Locale;
import org.apache.wicket.Application;
@@ -39,10 +41,16 @@ public class CssPackageResource extends PackageResource
* Construct.
*
* @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)
*/
public CssPackageResource(Class<?> scope, String name, Locale locale, String style,
String variation)
@@ -51,8 +59,9 @@ public class CssPackageResource extends PackageResource
this.name = name;
- // CSS resources can be compressed if there is configured ICssCompressor
- setCompress(true);
+ // CSS resources can be compressed if there is configured ICssCompressor, and the
+ // resource isn't already minified (the file already has .min. in its name).
+ setCompress(!name.contains(MIN_POSTFIX_DEFAULT_AS_EXTENSION));
}
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptPackageResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptPackageResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptPackageResource.java
index b2577ab..0692555 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptPackageResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/JavaScriptPackageResource.java
@@ -16,11 +16,14 @@
*/
package org.apache.wicket.request.resource;
+import static org.apache.wicket.util.resource.ResourceUtils.MIN_POSTFIX_DEFAULT_AS_EXTENSION;
+
import java.util.Locale;
import org.apache.wicket.Application;
import org.apache.wicket.javascript.IJavaScriptCompressor;
import org.apache.wicket.resource.IScopeAwareTextResourceProcessor;
+import org.apache.wicket.util.resource.ResourceUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +40,18 @@ public class JavaScriptPackageResource extends PackageResource
/**
* Construct.
+ *
+ * @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)
*/
public JavaScriptPackageResource(Class<?> scope, String name, Locale locale, String style,
String variation)
@@ -45,8 +60,9 @@ public class JavaScriptPackageResource extends PackageResource
this.name = name;
- // JS resources can be compressed if there is configured IJavaScriptCompressor
- setCompress(true);
+ // JS resources can be compressed if there is configured IJavaScriptCompressor, and the
+ // resource isn't already minified (the file already has .min. in its name).
+ setCompress(!name.contains(MIN_POSTFIX_DEFAULT_AS_EXTENSION));
}
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
index 8197ed6..40d7d0c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.request.resource;
+import static org.apache.wicket.util.resource.ResourceUtils.MIN_POSTFIX_DEFAULT_AS_EXTENSION;
+
import java.util.Locale;
import java.util.concurrent.ConcurrentMap;
@@ -55,19 +57,6 @@ public class PackageResourceReference extends ResourceReference
private boolean readBuffered = true;
/**
- * Cache for existence of minified version of the resource to avoid repetitive calls to
- * org.apache.wicket.util.resource.locator.IResourceStreamLocator#locate() and
- * #getMinifiedName().
- */
- private static final ConcurrentMap<PackageResourceReference, String> MINIFIED_NAMES_CACHE = Generics.newConcurrentHashMap();
-
- /**
- * A constant used to indicate that there is no minified version of the resource.
- */
- // WARNING: always compare by identity!
- private static final String NO_MINIFIED_NAME = new String();
-
- /**
* Construct.
*
* @param key
@@ -166,8 +155,8 @@ public class PackageResourceReference extends ResourceReference
*/
protected final void removeCompressFlagIfUnnecessary(final PackageResource resource)
{
- String minifiedName = MINIFIED_NAMES_CACHE.get(this);
- if (minifiedName != null && minifiedName != NO_MINIFIED_NAME)
+ String minifiedName = getName();
+ if (minifiedName != null && minifiedName.contains(MIN_POSTFIX_DEFAULT_AS_EXTENSION))
{
resource.setCompress(false);
}
@@ -248,38 +237,6 @@ public class PackageResourceReference extends ResourceReference
}
/**
- * Initializes the cache for the existence of the minified resource.
- *
- * @return the name of the minified resource or the special constant {@link #NO_MINIFIED_NAME}
- * if there is no minified version
- */
- private String internalGetMinifiedName()
- {
- String minifiedName = MINIFIED_NAMES_CACHE.get(this);
- if (minifiedName != null)
- {
- return minifiedName;
- }
-
- String name = getMinifiedName();
- IResourceStreamLocator locator = Application.get()
- .getResourceSettings()
- .getResourceStreamLocator();
- String absolutePath = Packages.absolutePath(getScope(), name);
- IResourceStream stream = locator.locate(getScope(), absolutePath, getStyle(),
- getVariation(), getLocale(), null, true);
-
- minifiedName = stream != null ? name : NO_MINIFIED_NAME;
- MINIFIED_NAMES_CACHE.put(this, minifiedName);
- if (minifiedName == NO_MINIFIED_NAME && log.isDebugEnabled())
- {
- log.debug("No minified version of '" + super.getName() +
- "' found, expected a file with the name '" + name + "', using full version");
- }
- return minifiedName;
- }
-
- /**
* @return How the minified file should be named.
*/
protected String getMinifiedName()
@@ -288,34 +245,6 @@ public class PackageResourceReference extends ResourceReference
return ResourceUtils.getMinifiedName(name, ResourceUtils.MIN_POSTFIX_DEFAULT);
}
- /**
- * Returns the name of the file: minified or full version. This method is called in a
- * multithreaded context, so it has to be thread safe.
- *
- * @see org.apache.wicket.request.resource.ResourceReference#getName()
- */
- @Override
- public String getName()
- {
- String name = null;
-
- if (Application.exists() &&
- Application.get().getResourceSettings().getUseMinifiedResources())
- {
- String minifiedName = internalGetMinifiedName();
- if (minifiedName != NO_MINIFIED_NAME)
- {
- name = minifiedName;
- }
- }
-
- if (name == null)
- {
- name = super.getName();
- }
- return name;
- }
-
@Override
public ResourceReference.UrlAttributes getUrlAttributes()
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
index 73aee8d..653adb8 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.wicket.request.resource;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+
import org.apache.wicket.Application;
import org.apache.wicket.core.util.resource.locator.ResourceStreamLocator;
import org.apache.wicket.request.resource.IResource.Attributes;
@@ -52,7 +56,7 @@ public class MinifiedAwareResourceReferenceTest extends WicketTestCase
Application.get().getResourceSettings().setUseMinifiedResources(true);
ResourceReference reference = new JavaScriptResourceReference(
MinifiedAwareResourceReferenceTest.class, "b.js");
- assertEquals("b.min.js", reference.getName());
+ assertEquals("b.js", reference.getName());
String fileContent = renderResource(reference);
assertEquals("// b.min.js", fileContent.trim());
}
@@ -74,7 +78,8 @@ public class MinifiedAwareResourceReferenceTest extends WicketTestCase
String fileContent = renderResource(reference);
assertEquals("//a", fileContent);
- assertEquals(1, locator.minLocated);
+ // this will try 3 lookups for minified resources: en_US.min, en.min and .min
+ assertEquals(3, locator.minLocated);
}
private class MinCountingResourceStreamLocator extends ResourceStreamLocator
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
index 81d7cde..df70f16 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
@@ -198,7 +198,7 @@ public class PackageResourceReferenceTest extends WicketTestCase
* see WICKET-5251 : Proper detection of already minified resources
*/
@Test
- public void testMinifiedNameDetectMinInName() throws Exception
+ public void testMinifiedNameDetectMinInName()
{
final PackageResourceReference html5minjs = new PackageResourceReference("html5.min.js");
Assert.assertEquals("html5.min.js", html5minjs.getMinifiedName());
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
index 3be3f60..b2eca5f 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
@@ -27,7 +27,6 @@ import java.util.Locale;
import org.apache.wicket.util.io.Streams;
import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -38,7 +37,6 @@ import org.junit.runners.Parameterized.Parameters;
*/
@SuppressWarnings("javadoc")
@RunWith(Parameterized.class)
-@Ignore("WICKET-5967 - Unable to load i18n minified js")
public class ResourceReferenceLocatingTest extends WicketTestCase
{
/** Loads the test cases from a spread sheet in semi-colon separated format. */
http://git-wip-us.apache.org/repos/asf/wicket/blob/87735317/wicket-util/src/main/java/org/apache/wicket/util/resource/ResourceUtils.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/resource/ResourceUtils.java b/wicket-util/src/main/java/org/apache/wicket/util/resource/ResourceUtils.java
index ac1d025..868b727 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/resource/ResourceUtils.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/resource/ResourceUtils.java
@@ -33,6 +33,8 @@ public class ResourceUtils
{
/** The default postfix for minified names (ex: /css/mystyle.min.css) **/
public static final String MIN_POSTFIX_DEFAULT = "min";
+ /** The default postfix for minified names (ex: /css/mystyle.min.css) **/
+ public static final String MIN_POSTFIX_DEFAULT_AS_EXTENSION = ".min.";
/** Regular expression patter to extract the locale from the filename (ex: de_DE) **/
private static final Pattern LOCALE_MIN_PATTERN = Pattern
.compile("_([a-z]{2})(_([A-Z]{2})(_([^_\\.]+))?)?(\\.min)?$");
[2/3] wicket git commit: WICKET-5967 - Unable to load i18n minified js
Posted by da...@apache.org.
WICKET-5967 - Unable to load i18n minified js
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b87bc975
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b87bc975
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b87bc975
Branch: refs/heads/master
Commit: b87bc97526c2644b2c64637ca6bdb6dbfcd4f29d
Parents: d7762ce
Author: Martijn Dashorst <ma...@gmail.com>
Authored: Mon Aug 10 16:49:14 2015 +0200
Committer: Martijn Dashorst <ma...@gmail.com>
Committed: Mon Aug 10 17:03:35 2015 +0200
----------------------------------------------------------------------
.../MinifiedAwareResourceReferenceTest.java | 2 +-
.../request/resource/ResouceBundleTest.java | 2 +-
.../resource/ResourceReferenceLocatingTest.csv | 1 +
.../resource/ResourceReferenceLocatingTest.java | 255 +++++++++++++++++++
.../org/apache/wicket/request/resource/b.js | 2 +-
.../org/apache/wicket/request/resource/b.min.js | 2 +-
.../org/apache/wicket/request/resource/b_de.js | 1 +
.../org/apache/wicket/request/resource/b_nl.js | 1 +
.../apache/wicket/request/resource/b_nl.min.js | 1 +
.../apache/wicket/request/resource/b_nl_BE.js | 1 +
.../wicket/request/resource/b_nl_BE.min.js | 1 +
.../apache/wicket/request/resource/b_style.js | 1 +
.../wicket/request/resource/b_style.min.js | 1 +
.../wicket/request/resource/b_style_nl.js | 1 +
.../wicket/request/resource/b_style_nl.min.js | 1 +
.../wicket/request/resource/b_style_nl_BE.js | 1 +
.../request/resource/b_style_nl_BE.min.js | 1 +
.../wicket/request/resource/b_var_style.js | 1 +
.../wicket/request/resource/b_var_style.min.js | 1 +
.../wicket/request/resource/b_var_style_nl.js | 1 +
.../request/resource/b_var_style_nl.min.js | 1 +
.../request/resource/b_var_style_nl_BE.js | 1 +
.../request/resource/b_var_style_nl_BE.min.js | 1 +
23 files changed, 277 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
index 498ae24..73aee8d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/MinifiedAwareResourceReferenceTest.java
@@ -54,7 +54,7 @@ public class MinifiedAwareResourceReferenceTest extends WicketTestCase
MinifiedAwareResourceReferenceTest.class, "b.js");
assertEquals("b.min.js", reference.getName());
String fileContent = renderResource(reference);
- assertEquals("//minified-b", fileContent);
+ assertEquals("// b.min.js", fileContent.trim());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/ResouceBundleTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResouceBundleTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResouceBundleTest.java
index 18b016d..d336f83 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResouceBundleTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResouceBundleTest.java
@@ -45,7 +45,7 @@ public class ResouceBundleTest extends WicketTestCase
ResouceBundleTest.class, "b.js"))));
tester.startResource(bundle);
- assertEquals("//a//b", tester.getLastResponseAsString());
+ assertEquals("//a// b.js", tester.getLastResponseAsString().trim());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.csv
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.csv b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.csv
new file mode 100644
index 0000000..fcafadb
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.csv
@@ -0,0 +1 @@
+Locale;Style;Variation;Extension;non-minified;minified;strict-non-min;strict-min
null;null;null;null;b.js;b.min.js;b.js;b.min.js
nl;null;null;null;b_nl.js;b_nl.min.js;b_nl.js;b_nl.min.js
de;null;null;null;b_de.js;b_de.js;b_de.js;b_de.js
nl_BE;null;null;null;b_nl_BE.js;b_nl_BE.min.js;b_nl_BE.js;b_nl_BE.min.js
nl_NL;null;null;null;b_nl.js;b_nl.min.js;null;null
pt_BR;null;null;null;b.js;b.min.js;null;null
null;style;null;null;b_style.js;b_style.min.js;b_style.js;b_style.min.js
nl;style;null;null;b_style_nl.js;b_style_nl.min.js;b_style_nl.js;b_style_nl.min.js
nl_BE;style;null;null;b_style_nl_BE.js;b_style_nl_BE.min.js;b_style_nl_BE.js;b_style_nl_BE.min.js
nl_NL;style;null;null;b_style_nl.js;b_style_nl.min.js;null;null
pt_BR;style;null;null;b_style.js;b_style.min.js;null;null
null;style;var;null;b_var_style.js;b_var_style.min.js;b_var_style.js;b_var_style.min.js
nl;style;var;null;b_var_style_nl.js;b_var_style_nl.min.js;b_var_style_nl.js;b_var_style_nl.min.js
nl_BE;style;var;null;b_var_st
yle_nl_BE.js;b_var_style_nl_BE.min.js;b_var_style_nl_BE.js;b_var_style_nl_BE.min.js
nl_NL;style;var;null;b_var_style_nl.js;b_var_style_nl.min.js;null;null
pt_BR;style;var;null;b_var_style.js;b_var_style.min.js;null;null
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
new file mode 100644
index 0000000..3be3f60
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceLocatingTest.java
@@ -0,0 +1,255 @@
+/*
+ * 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.request.resource;
+
+import static org.hamcrest.CoreMatchers.is;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.wicket.util.io.Streams;
+import org.apache.wicket.util.tester.WicketTestCase;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * Test case for WICKET-5967 - Unable to load i18n minified js.
+ */
+@SuppressWarnings("javadoc")
+@RunWith(Parameterized.class)
+@Ignore("WICKET-5967 - Unable to load i18n minified js")
+public class ResourceReferenceLocatingTest extends WicketTestCase
+{
+ /** Loads the test cases from a spread sheet in semi-colon separated format. */
+ @Parameters(name = "{0}")
+ public static List<Object[]> parameters()
+ {
+ try (InputStream is = ResourceReferenceLocatingTest.class
+ .getResourceAsStream("ResourceReferenceLocatingTest.csv"))
+ {
+ String csv = Streams.readString(is);
+ StringReader sr = new StringReader(csv);
+ BufferedReader br = new BufferedReader(sr);
+ List<Object[]> result = new ArrayList<>();
+
+ String line = br.readLine(); // read header line
+ while ((line = br.readLine()) != null)
+ {
+ if (!line.isEmpty())
+ result.add(new Object[] { TestCase.fromLine(line) });
+ }
+ return result;
+ }
+ catch (Exception e)
+ {
+ throw new AssertionError(e);
+ }
+ }
+
+ public static class TestCase
+ {
+ private Locale locale;
+ private String style;
+ private String variation;
+ private String extension;
+ private String nonMinifiedContents;
+ private String minifiedContents;
+ private String strictNonMinifiedContents;
+ private String strictMinifiedContents;
+
+ private TestCase(Locale locale, String style, String variation, String extension,
+ String nonMinifiedContents, String minifiedContents, String strictNonMinifiedContents,
+ String strictMinifiedContents)
+ {
+ this.locale = locale;
+ this.style = style;
+ this.variation = variation;
+ this.extension = extension;
+ this.nonMinifiedContents = nonMinifiedContents;
+ this.minifiedContents = minifiedContents;
+ this.strictNonMinifiedContents = strictNonMinifiedContents;
+ this.strictMinifiedContents = strictMinifiedContents;
+ }
+
+ private static boolean isNull(String s)
+ {
+ return s == null || s.isEmpty() || s.equals("null");
+ }
+
+ private static String nullOrValue(String s)
+ {
+ return isNull(s) ? null : s;
+ }
+
+ public static TestCase fromLine(String line)
+ {
+ String splitter;
+ if (line.contains("\t"))
+ splitter = "\t";
+ else if (line.contains(";"))
+ splitter = ";";
+ else if (line.contains(","))
+ splitter = ",";
+ else
+ throw new IllegalArgumentException(
+ "Unable to split line with either tab, komma or semicolon");
+
+ String[] pars = line.split(splitter);
+
+ Locale locale = isNull(pars[0]) ? null
+ : Locale.forLanguageTag(pars[0].replace('_', '-'));
+ String style = nullOrValue(pars[1]);
+ String variation = nullOrValue(pars[2]);
+ String extension = nullOrValue(pars[3]);
+ String resultNonMin = nullOrValue(pars[4]);
+ String resultMin = nullOrValue(pars[5]);
+ String resultStrictNonMin = nullOrValue(pars[6]);
+ String resultStrictMin = nullOrValue(pars[7]);
+
+ TestCase test = new TestCase(locale, style, variation, extension, resultNonMin,
+ resultMin, resultStrictNonMin, resultStrictMin);
+ return test;
+ }
+
+ public Locale getLocale()
+ {
+ return locale;
+ }
+
+ public String getStyle()
+ {
+ return style;
+ }
+
+ public String getVariation()
+ {
+ return variation;
+ }
+
+ public String getExtension()
+ {
+ return extension;
+ }
+
+ public String getNonMinifiedContents()
+ {
+ return nonMinifiedContents;
+ }
+
+ public String getMinifiedContents()
+ {
+ return minifiedContents;
+ }
+
+ public String getStrictNonMinifiedContents()
+ {
+ return strictNonMinifiedContents;
+ }
+
+ public String getStrictMinifiedContents()
+ {
+ return strictMinifiedContents;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "TestCase [locale=" + locale + ", style=" + style + ", variation=" + variation +
+ ", extension=" + extension + "]";
+ }
+ }
+
+ private TestCase test;
+
+ public ResourceReferenceLocatingTest(TestCase test)
+ {
+ this.test = test;
+ }
+
+ /**
+ * Locate a resource without a minification requirement.
+ */
+ @Test
+ public void locateNonMinifiedJavaScriptResourceReference()
+ {
+ tester.getApplication().getResourceSettings().setUseMinifiedResources(false);
+
+ checkNonStrictUsingJavaScriptResourceReference(test.getNonMinifiedContents());
+ }
+
+ /** */
+ @Test
+ public void locateNonMinifiedPackageResourceReference()
+ {
+ tester.getApplication().getResourceSettings().setUseMinifiedResources(false);
+
+ checkNonStrictUsingPackageResourceReference(test.getNonMinifiedContents());
+ }
+
+ /** */
+ @Test
+ public void locateMinifiedJavaScriptResourceReference()
+ {
+ tester.getApplication().getResourceSettings().setUseMinifiedResources(true);
+
+ checkNonStrictUsingJavaScriptResourceReference(test.getMinifiedContents());
+ }
+
+ /** */
+ @Test
+ public void locateMinifiedPackageResourceReference()
+ {
+ tester.getApplication().getResourceSettings().setUseMinifiedResources(true);
+
+ checkNonStrictUsingPackageResourceReference(test.getMinifiedContents());
+ }
+
+ private void checkNonStrictUsingJavaScriptResourceReference(String expectedResult)
+ {
+ Locale locale = test.getLocale();
+ String style = test.getStyle();
+ String variation = test.getVariation();
+ String extension = test.getExtension();
+
+ JavaScriptResourceReference reference = new JavaScriptResourceReference(
+ ResourceReferenceLocatingTest.class, "b.js", locale, style, variation);
+ tester.startResourceReference(reference);
+ assertThat(test.toString(), tester.getLastResponseAsString().trim(),
+ is("// " + expectedResult));
+ }
+
+ private void checkNonStrictUsingPackageResourceReference(String expectedResult)
+ {
+ Locale locale = test.getLocale();
+ String style = test.getStyle();
+ String variation = test.getVariation();
+ String extension = test.getExtension();
+
+ PackageResourceReference reference = new PackageResourceReference(
+ ResourceReferenceLocatingTest.class, "b.js", locale, style, variation);
+ tester.startResourceReference(reference);
+ assertThat(test.toString(), tester.getLastResponseAsString().trim(),
+ is("// " + expectedResult));
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b.js
index 8e53d35..f120561 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/b.js
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b.js
@@ -1 +1 @@
-//b
\ No newline at end of file
+// b.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b.min.js
index d97109c..cd0205a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/b.min.js
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b.min.js
@@ -1 +1 @@
-//minified-b
\ No newline at end of file
+// b.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_de.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_de.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_de.js
new file mode 100644
index 0000000..c4fddec
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_de.js
@@ -0,0 +1 @@
+// b_de.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.js
new file mode 100644
index 0000000..6a3da57
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.js
@@ -0,0 +1 @@
+// b_nl.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.min.js
new file mode 100644
index 0000000..8f1a439
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl.min.js
@@ -0,0 +1 @@
+// b_nl.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.js
new file mode 100644
index 0000000..5ded0f5
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.js
@@ -0,0 +1 @@
+// b_nl_BE.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.min.js
new file mode 100644
index 0000000..41263f9
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_nl_BE.min.js
@@ -0,0 +1 @@
+// b_nl_BE.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.js
new file mode 100644
index 0000000..d2e1003
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.js
@@ -0,0 +1 @@
+// b_style.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.min.js
new file mode 100644
index 0000000..f443b86
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style.min.js
@@ -0,0 +1 @@
+// b_style.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.js
new file mode 100644
index 0000000..065a588
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.js
@@ -0,0 +1 @@
+// b_style_nl.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.min.js
new file mode 100644
index 0000000..04b4623
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl.min.js
@@ -0,0 +1 @@
+// b_style_nl.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.js
new file mode 100644
index 0000000..ad6a4ca
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.js
@@ -0,0 +1 @@
+// b_style_nl_BE.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.min.js
new file mode 100644
index 0000000..08b67c0
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_style_nl_BE.min.js
@@ -0,0 +1 @@
+// b_style_nl_BE.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.js
new file mode 100644
index 0000000..5a69bbb
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.js
@@ -0,0 +1 @@
+// b_var_style.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.min.js
new file mode 100644
index 0000000..f99182e
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style.min.js
@@ -0,0 +1 @@
+// b_var_style.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.js
new file mode 100644
index 0000000..caefe88
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.js
@@ -0,0 +1 @@
+// b_var_style_nl.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.min.js
new file mode 100644
index 0000000..b146f7c
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl.min.js
@@ -0,0 +1 @@
+// b_var_style_nl.min.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.js
new file mode 100644
index 0000000..30fd06a
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.js
@@ -0,0 +1 @@
+// b_var_style_nl_BE.js
http://git-wip-us.apache.org/repos/asf/wicket/blob/b87bc975/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.min.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.min.js b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.min.js
new file mode 100644
index 0000000..ca4b0a4
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/b_var_style_nl_BE.min.js
@@ -0,0 +1 @@
+// b_var_style_nl_BE.min.js