Updated Branches:
  refs/heads/master 70d5addea -> 62a6f97ca

WICKET-4829 ComponentResolvers created in app init ignore markup's namespace


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/62a6f97c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/62a6f97c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/62a6f97c

Branch: refs/heads/master
Commit: 62a6f97ca913853194c535444b31e9a69a88e9d2
Parents: 41e4037
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Fri Nov 2 18:55:48 2012 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Fri Nov 2 18:55:48 2012 +0200

----------------------------------------------------------------------
 .../wicket/markup/html/form/AutoLabelResolver.java |   11 +++-
 .../markup/html/form/AutoLabelTagHandler.java      |    1 +
 .../markup/html/form/AutoLabelTextResolver.java    |    2 +-
 .../wicket/markup/parser/AbstractMarkupFilter.java |   42 +++++++++++++--
 .../parser/filter/InlineEnclosureHandler.java      |    2 +-
 .../parser/filter/RelativePathPrefixHandler.java   |    8 ++--
 .../parser/filter/WicketMessageTagHandler.java     |   10 ++--
 7 files changed, 57 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
index b41554b..562e6ed 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
@@ -60,9 +60,9 @@ public class AutoLabelResolver implements IComponentResolver
 {
        private static final long serialVersionUID = 1L;
 
-       private static Logger logger = 
LoggerFactory.getLogger(AutoLabelResolver.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(AutoLabelResolver.class);
 
-       static final String WICKET_FOR = "wicket:for";
+       static final String WICKET_FOR = ":for";
 
        @Override
        public Component resolve(final MarkupContainer container, final 
MarkupStream markupStream,
@@ -73,7 +73,7 @@ public class AutoLabelResolver implements IComponentResolver
                        return null;
                }
 
-               final String id = tag.getAttribute(WICKET_FOR).trim();
+               final String id = 
tag.getAttribute(getWicketNamespace(markupStream) + WICKET_FOR).trim();
 
                Component component = findRelatedComponent(container, id);
                if (component == null)
@@ -102,6 +102,11 @@ public class AutoLabelResolver implements 
IComponentResolver
                return new AutoLabel("label" + 
container.getPage().getAutoIndex(), component);
        }
 
+       private String getWicketNamespace(MarkupStream markupStream)
+       {
+               return markupStream.getWicketNamespace();
+       }
+
        /**
         * 
         * @param container

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
index bf00b4f..17bdd82 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTagHandler.java
@@ -20,6 +20,7 @@ import java.text.ParseException;
 
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.MarkupResourceStream;
 import org.apache.wicket.markup.WicketTag;
 import org.apache.wicket.markup.parser.AbstractMarkupFilter;
 import org.apache.wicket.util.string.Strings;

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
index c49c7a0..0fe4ee9 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
@@ -228,7 +228,7 @@ public class AutoLabelTextResolver implements 
IComponentResolver
        @Override
        public Component resolve(MarkupContainer container, MarkupStream 
markupStream, ComponentTag tag)
        {
-               if (tag instanceof WicketTag && 
"label".equals(((WicketTag)tag).getName()))
+               if (tag instanceof WicketTag && "label".equals(tag.getName()))
                {
                        // We need to find a FormComponent...
                        Component related = null;

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
index 111684b..2ce2fab 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
@@ -24,6 +24,7 @@ import org.apache.wicket.markup.Markup;
 import org.apache.wicket.markup.MarkupElement;
 import org.apache.wicket.markup.MarkupParser;
 import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.MarkupStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -144,17 +145,48 @@ public abstract class AbstractMarkupFilter implements 
IMarkupFilter
        }
 
        /**
+        * Extracts the markup namespace from the MarkupResourceStream
+        * passed at creation time.
+        *
+        * <p>
+        *     There are two versions of this method because most 
IMarkupFilter's
+        *     have dual personality - {@link IMarkupFilter} (one instance per 
MarkupParser)
+        *     and {@link org.apache.wicket.markup.resolver.IComponentResolver} 
(one
+        *     instance per application).
+        * </p>
+        *
         * @return the namespace of the loaded markup
         */
        protected String getWicketNamespace()
        {
-               String wicketNamespace;
-               if (markupResourceStream != null)
+               return getWicketNamespace(null);
+       }
+
+       /**
+        * Extracts the markup namespace from the passed MarkupStream if 
available,
+        * or from the MarkupResourceStream passed at creation time.
+        *
+        * <p>
+        *     There are two versions of this method because most 
IMarkupFilter's
+        *     have dual personality - {@link IMarkupFilter} (one instance per 
MarkupParser)
+        *     and {@link org.apache.wicket.markup.resolver.IComponentResolver} 
(one
+        *     instance per application).
+        * </p>
+        *
+        * @param markupStream
+        *      the markup stream
+        * @return namespace extracted from the markup
+        */
+       protected String getWicketNamespace(final MarkupStream markupStream)
+       {
+               String wicketNamespace = MarkupParser.WICKET;
+               if (markupStream != null)
                {
-                       wicketNamespace = 
markupResourceStream.getWicketNamespace();
+                       wicketNamespace = markupStream.getWicketNamespace();
                }
-               else {
-                       wicketNamespace = MarkupParser.WICKET;
+               else if (markupResourceStream != null)
+               {
+                       wicketNamespace = 
markupResourceStream.getWicketNamespace();
                }
                return wicketNamespace;
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
index 3ff7d96..76767b8 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
@@ -185,7 +185,7 @@ public final class InlineEnclosureHandler extends 
AbstractMarkupFilter
                if (Strings.isEmpty(inlineEnclosureChildId) == false)
                {
                        String id = tag.getId();
-                       if (id.startsWith(getWicketNamespace()))
+                       if (id.startsWith(getWicketNamespace(markupStream)))
                        {
                                id = id + container.getPage().getAutoIndex();
                        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
index 0359200..0ae97ee 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
@@ -141,7 +141,7 @@ public final class RelativePathPrefixHandler extends 
AbstractMarkupFilter
                        {
                                if (tag.getId() == null)
                                {
-                                       
tag.setId(getWicketRelativePathPrefix());
+                                       
tag.setId(getWicketRelativePathPrefix(null));
                                        tag.setAutoComponentTag(true);
                                }
                                tag.addBehavior(RELATIVE_PATH_BEHAVIOR);
@@ -157,7 +157,7 @@ public final class RelativePathPrefixHandler extends 
AbstractMarkupFilter
        public Component resolve(final MarkupContainer container, final 
MarkupStream markupStream,
                final ComponentTag tag)
        {
-               if ((tag != null) && 
(tag.getId().equals(getWicketRelativePathPrefix())))
+               if ((tag != null) && 
(tag.getId().equals(getWicketRelativePathPrefix(markupStream))))
                {
                        String id = tag.getId() + 
container.getPage().getAutoIndex();
 
@@ -169,8 +169,8 @@ public final class RelativePathPrefixHandler extends 
AbstractMarkupFilter
                return null;
        }
 
-       private String getWicketRelativePathPrefix()
+       private String getWicketRelativePathPrefix(final MarkupStream 
markupStream)
        {
-               return getWicketNamespace() + 
WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID;
+               return getWicketNamespace(markupStream) + 
WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID;
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/62a6f97c/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
index 65aa1d1..85db394 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
@@ -91,7 +91,7 @@ public final class WicketMessageTagHandler extends 
AbstractMarkupFilter
                                // if this is a raw tag we need to set the id 
to something so
                                // that wicket will not merge this as raw 
markup and instead
                                // pass it on to a resolver
-                               tag.setId(getWicketMessageIdPrefix());
+                               tag.setId(getWicketMessageIdPrefix(null));
                                tag.setAutoComponentTag(true);
                                tag.setModified(true);
                        }
@@ -163,11 +163,11 @@ public final class WicketMessageTagHandler extends 
AbstractMarkupFilter
        public Component resolve(MarkupContainer container, MarkupStream 
markupStream, ComponentTag tag)
        {
                // localize any raw markup that has wicket:message attrs
-               if ((tag != null) && 
(tag.getId().startsWith(getWicketMessageIdPrefix())))
+               if ((tag != null) && 
(tag.getId().startsWith(getWicketMessageIdPrefix(markupStream))))
                {
                        Component wc;
                        int autoIndex = container.getPage().getAutoIndex();
-                       String id = getWicketMessageIdPrefix() + autoIndex;
+                       String id = getWicketMessageIdPrefix(markupStream) + 
autoIndex;
 
                        if (tag.isOpenClose())
                        {
@@ -189,8 +189,8 @@ public final class WicketMessageTagHandler extends 
AbstractMarkupFilter
                return wicketNamespace + ':' + "message";
        }
 
-       private String getWicketMessageIdPrefix()
+       private String getWicketMessageIdPrefix(final MarkupStream markupStream)
        {
-               return getWicketNamespace() + WICKET_MESSAGE_CONTAINER_ID;
+               return getWicketNamespace(markupStream) + 
WICKET_MESSAGE_CONTAINER_ID;
        }
 }

Reply via email to