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 2015/02/12 22:07:03 UTC
[05/18] wicket git commit: Several fixes
Several fixes
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2ac0c640
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2ac0c640
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2ac0c640
Branch: refs/heads/master
Commit: 2ac0c6401a0e9abd9232342e790d15aac8091501
Parents: deeb453
Author: klopfdreh <kl...@tobiass-mbp>
Authored: Wed Feb 4 17:34:03 2015 +0100
Committer: klopfdreh <kl...@tobiass-mbp>
Committed: Wed Feb 4 17:34:03 2015 +0100
----------------------------------------------------------------------
...rg.eclipse.wst.common.project.facet.core.xml | 2 +-
.../wicket/resource/CompositeCssCompressor.java | 11 +-
.../resource/CompositeJavaScriptCompressor.java | 11 +-
.../resource/CssUrlReplacementCompressor.java | 144 -------------------
.../apache/wicket/resource/CssUrlReplacer.java | 127 ++++++++++++++++
5 files changed, 132 insertions(+), 163 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac0c640/wicket-core/.settings/org.eclipse.wst.common.project.facet.core.xml
----------------------------------------------------------------------
diff --git a/wicket-core/.settings/org.eclipse.wst.common.project.facet.core.xml b/wicket-core/.settings/org.eclipse.wst.common.project.facet.core.xml
index c78d932..4f92af5 100644
--- a/wicket-core/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/wicket-core/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
- <installed facet="java" version="1.6"/>
<installed facet="jst.utility" version="1.0"/>
+ <installed facet="java" version="1.7"/>
</faceted-project>
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac0c640/wicket-core/src/main/java/org/apache/wicket/resource/CompositeCssCompressor.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CompositeCssCompressor.java b/wicket-core/src/main/java/org/apache/wicket/resource/CompositeCssCompressor.java
index bb61687..a288596 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/CompositeCssCompressor.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/CompositeCssCompressor.java
@@ -45,14 +45,7 @@ public class CompositeCssCompressor implements ICssCompressor
{
/* Compressors to compress the CSS content */
- private List<ICssCompressor> compressors = new ArrayList<>();
-
- /**
- * Initializes an empty composite CSS compressor
- */
- public CompositeCssCompressor()
- {
- }
+ private final List<ICssCompressor> compressors = new ArrayList<>();
/**
* Initializes the composite CSS compressor with the given {@link ICssCompressor}
@@ -62,7 +55,7 @@ public class CompositeCssCompressor implements ICssCompressor
*/
public CompositeCssCompressor(ICssCompressor... compressors)
{
- this.compressors = Arrays.asList(compressors);
+ this.compressors.addAll(Arrays.asList(compressors));
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac0c640/wicket-core/src/main/java/org/apache/wicket/resource/CompositeJavaScriptCompressor.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CompositeJavaScriptCompressor.java b/wicket-core/src/main/java/org/apache/wicket/resource/CompositeJavaScriptCompressor.java
index cb1d101..c1888e2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/CompositeJavaScriptCompressor.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/CompositeJavaScriptCompressor.java
@@ -45,14 +45,7 @@ public class CompositeJavaScriptCompressor implements IJavaScriptCompressor
{
/* Compressors to compress javascript content */
- private List<IJavaScriptCompressor> compressors = new ArrayList<>();
-
- /**
- * Initializes an empty composite javascript compressor
- */
- public CompositeJavaScriptCompressor()
- {
- }
+ private final List<IJavaScriptCompressor> compressors = new ArrayList<>();
/**
* Initializes the composite javascript compressor with the given {@link IJavaScriptCompressor}
@@ -63,7 +56,7 @@ public class CompositeJavaScriptCompressor implements IJavaScriptCompressor
*/
public CompositeJavaScriptCompressor(IJavaScriptCompressor... compressors)
{
- this.compressors = Arrays.asList(compressors);
+ this.compressors.addAll(Arrays.asList(compressors));
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac0c640/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacementCompressor.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacementCompressor.java b/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacementCompressor.java
deleted file mode 100644
index ce89f53..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacementCompressor.java
+++ /dev/null
@@ -1,144 +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.resource;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.Component;
-import org.apache.wicket.Page;
-import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.application.IComponentInitializationListener;
-import org.apache.wicket.css.ICssCompressor;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.resource.PackageResourceReference;
-
-/**
- * This compressor is used to replace url within css files with resources that belongs to their
- * corresponding page classes. The compress method is not compressing any content, but replacing the
- * URLs with Wicket representatives.<br>
- * <br>
- * Usage:
- *
- * <pre>
- * this.getResourceSettings().setCssCompressor(new CssUrlReplacementCompressor(this));
- * </pre>
- *
- * @since 6.20.0
- * @author Tobias Soloschenko
- *
- */
-public class CssUrlReplacementCompressor implements ICssCompressor
-{
-
- // Holds the names of pages
- private Map<String, String> pageNames = Collections.synchronizedMap(new LinkedHashMap<String, String>());
-
- // The pattern to find URLs in CSS resources
- private Pattern urlPattern = Pattern.compile("url\\(['|\"](.*)['|\"]\\)");
-
- public CssUrlReplacementCompressor(Application application)
- {
-
- // Create an instantiation listener which filters only pages.
- application.getComponentInitializationListeners().add(
- new IComponentInitializationListener()
- {
-
- @Override
- public void onInitialize(Component component)
- {
- if (Page.class.isAssignableFrom(component.getClass()))
- {
- CssUrlReplacementCompressor.this.pageNames.put(component.getClass()
- .getName(), component.getClass().getSimpleName());
- }
- }
- });
- }
-
- /**
- * Replaces the URLs of CSS resources with Wicket representatives.
- */
- @SuppressWarnings("unchecked")
- @Override
- public String compress(String original)
- {
- Matcher matcher = this.urlPattern.matcher(original);
- // Search for urls
- while (matcher.find())
- {
- Collection<String> pageNames = this.pageNames.keySet();
- for (String pageName : pageNames)
- {
- try
- {
- Class<Page> pageClass = (Class<Page>)Class.forName(pageName);
- String url = matcher.group(1);
- if (!url.contains("/"))
- {
- URL urlResource = pageClass.getResource(url);
- // If the resource is not found for a page skip it
- if (urlResource != null)
- {
- PackageResourceReference packageResourceReference = new PackageResourceReference(
- pageClass, url);
- String replacedUrl = RequestCycle.get()
- .urlFor(packageResourceReference, null)
- .toString();
- StringBuilder urlBuilder = new StringBuilder();
- urlBuilder.append("url('");
- urlBuilder.append(replacedUrl);
- urlBuilder.append("')");
- original = matcher.replaceFirst(urlBuilder.toString());
- }
- }
- }
- catch (Exception e)
- {
- StringWriter stringWriter = this.printStack(e);
- throw new WicketRuntimeException(stringWriter.toString());
- }
- }
-
- }
- return original;
- }
-
- /**
- * Prints the stack trace to a print writer
- *
- * @param exception
- * the exception
- * @return the string writer containing the stack trace
- */
- private StringWriter printStack(Exception exception)
- {
- StringWriter stringWriter = new StringWriter();
- PrintWriter printWriter = new PrintWriter(stringWriter);
- exception.printStackTrace(printWriter);
- return stringWriter;
- }
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac0c640/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacer.java b/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacer.java
new file mode 100644
index 0000000..c39dcea
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/CssUrlReplacer.java
@@ -0,0 +1,127 @@
+/*
+ * 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.resource;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.Page;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.application.IComponentInitializationListener;
+import org.apache.wicket.css.ICssCompressor;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.resource.PackageResourceReference;
+
+/**
+ * This compressor is used to replace url within css files with resources that belongs to their
+ * corresponding page classes. The compress method is not compressing any content, but replacing the
+ * URLs with Wicket representatives.<br>
+ * <br>
+ * Usage:
+ *
+ * <pre>
+ * this.getResourceSettings().setCssCompressor(new CssUrlReplacementCompressor(this));
+ * </pre>
+ *
+ * @since 6.20.0
+ * @author Tobias Soloschenko
+ *
+ */
+public class CssUrlReplacer implements ICssCompressor
+{
+
+ // Holds the names of pages
+ private Map<String, String> pageNames = Collections.synchronizedMap(new LinkedHashMap<String, String>());
+
+ // The pattern to find URLs in CSS resources
+ private Pattern urlPattern = Pattern.compile("url\\(['|\"](.*)['|\"]\\)");
+
+ public CssUrlReplacer(Application application)
+ {
+
+ // Create an instantiation listener which filters only pages.
+ application.getComponentInitializationListeners().add(
+ new IComponentInitializationListener()
+ {
+
+ @Override
+ public void onInitialize(Component component)
+ {
+ if (Page.class.isAssignableFrom(component.getClass()))
+ {
+ CssUrlReplacer.this.pageNames.put(component.getClass().getName(),
+ component.getClass().getSimpleName());
+ }
+ }
+ });
+ }
+
+ /**
+ * Replaces the URLs of CSS resources with Wicket representatives.
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public String compress(String original)
+ {
+ Matcher matcher = this.urlPattern.matcher(original);
+ // Search for urls
+ while (matcher.find())
+ {
+ Collection<String> pageNames = this.pageNames.keySet();
+ for (String pageName : pageNames)
+ {
+ try
+ {
+ Class<Page> pageClass = (Class<Page>)Class.forName(pageName);
+ String url = matcher.group(1);
+ if (!url.contains("/"))
+ {
+ URL urlResource = pageClass.getResource(url);
+ // If the resource is not found for a page skip it
+ if (urlResource != null)
+ {
+ PackageResourceReference packageResourceReference = new PackageResourceReference(
+ pageClass, url);
+ String replacedUrl = RequestCycle.get()
+ .urlFor(packageResourceReference, null)
+ .toString();
+ StringBuilder urlBuilder = new StringBuilder();
+ urlBuilder.append("url('");
+ urlBuilder.append(replacedUrl);
+ urlBuilder.append("')");
+ original = matcher.replaceFirst(urlBuilder.toString());
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ throw new WicketRuntimeException(
+ "A problem occurred during CSS url replacement.", e);
+ }
+ }
+
+ }
+ return original;
+ }
+}