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 2012/02/09 14:01:24 UTC
[4/4] git commit: WICKET-4390 MarkupParser#add(IMarkupFilter filter,
Class beforeFilter) doesn't add the filter into the correct place.
WICKET-4390 MarkupParser#add(IMarkupFilter filter,Class beforeFilter) doesn't add the filter into the correct place.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6a497104
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6a497104
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6a497104
Branch: refs/heads/master
Commit: 6a4971045bedb024bcb010eb439c3840f3cfb7aa
Parents: 9a203eb
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Feb 9 14:59:15 2012 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Feb 9 15:01:05 2012 +0200
----------------------------------------------------------------------
.../org/apache/wicket/markup/MarkupParser.java | 33 ++++++++++++++-
1 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/6a497104/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
index 904426d..7308313 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
@@ -36,6 +36,7 @@ import org.apache.wicket.markup.parser.filter.WicketMessageTagHandler;
import org.apache.wicket.markup.parser.filter.WicketNamespaceHandler;
import org.apache.wicket.markup.parser.filter.WicketRemoveTagHandler;
import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
+import org.apache.wicket.util.lang.Objects;
/**
* This is Wicket's default markup parser. It gets pre-configured with Wicket's default wicket
@@ -172,7 +173,9 @@ public class MarkupParser extends AbstractMarkupParser
filters.add(new RelativePathPrefixHandler(markupResourceStream));
filters.add(new EnclosureHandler());
filters.add(new InlineEnclosureHandler());
- filters.add(new StyleAndScriptIdentifier(markup));
+
+ // Append it. See WICKET-4390
+ filters.add(new StyleAndScriptIdentifier(markup), StyleAndScriptIdentifier.class);
filters.add(new ConditionalCommentFilter());
return filters;
@@ -206,7 +209,7 @@ public class MarkupParser extends AbstractMarkupParser
return false;
}
- int index = indexOf(beforeFilter);
+ int index = firstIndexOfClass(beforeFilter);
if (index < 0)
{
return super.add(filter);
@@ -217,6 +220,32 @@ public class MarkupParser extends AbstractMarkupParser
}
/**
+ * Finds the index of the first entry which is from the same type as the passed
+ * {@literal filterClass} argument.
+ *
+ * @param filterClass
+ * the class to search for
+ * @return the index of the first match or -1 otherwise
+ */
+ private int firstIndexOfClass(final Class<? extends IMarkupFilter> filterClass)
+ {
+ int result = -1;
+ if (filterClass != null)
+ {
+ final int size = size();
+ for (int index = 0; index < size; index++) {
+ Class<? extends IMarkupFilter> currentFilterClass = get(index).getClass();
+ if (Objects.equal(filterClass, currentFilterClass))
+ {
+ result = index;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
* a) Allow subclasses to configure individual Wicket filters which otherwise can not be
* accessed.
* <p>