On Fri, Feb 21, 2014 at 9:18 AM, <[email protected]> wrote:
> Repository: wicket
> Updated Branches:
> refs/heads/sandbox/component-queueing-2 63d15c5c3 -> 1fd9d57c0
>
>
> WICKET-3335 test fixes
>
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1fd9d57c
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1fd9d57c
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1fd9d57c
>
> Branch: refs/heads/sandbox/component-queueing-2
> Commit: 1fd9d57c0954f393e7cf6b6391d2f69c2815674d
> Parents: 63d15c5
> Author: Igor Vaynberg <[email protected]>
> Authored: Thu Feb 20 23:09:43 2014 -0800
> Committer: Igor Vaynberg <[email protected]>
> Committed: Thu Feb 20 23:18:25 2014 -0800
>
> ----------------------------------------------------------------------
> .../java/org/apache/wicket/DequeueContext.java | 44 +++++++++++++-----
> .../java/org/apache/wicket/MarkupContainer.java | 48 ++++++++++++++++----
> .../wicket/markup/html/border/Border.java | 12 +++--
> .../markup/repeater/AbstractRepeater.java | 4 +-
> .../markupFragments/MarkupFragmentTest.java | 2 +
> 5 files changed, 85 insertions(+), 25 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1fd9d57c/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
> b/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
> index 99c102d..a5bb925 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
> @@ -1,9 +1,26 @@
> +/*
> + * 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;
>
> import org.apache.wicket.markup.ComponentTag;
> import org.apache.wicket.markup.IMarkupFragment;
> import org.apache.wicket.markup.MarkupElement;
> import org.apache.wicket.util.collections.ArrayListStack;
> +import org.apache.wicket.util.lang.Args;
>
> /**
> * Context for component dequeueing. Keeps track of markup position and
> container stack.
> @@ -71,7 +88,7 @@ public final class DequeueContext
> }
>
> /**
> - * Peeks markup tag that would be retrieved by call to {@link
> #popTag()}
> + * Peeks markup tag that would be retrieved by call to {@link
> #takeTag()}
> *
> * @return
> */
> @@ -85,27 +102,30 @@ public final class DequeueContext
> *
> * @return
> */
> - public ComponentTag popTag()
> + public ComponentTag takeTag()
> {
> - ComponentTag taken = next;
> - tags.push(taken);
> - next = nextTag();
> + ComponentTag taken=next;
> + if (taken.isOpen() && !taken.hasNoCloseTag())
> + {
> + tags.push(taken);
> + }
> + else if (tags.size() > 0 && taken.closes(tags.peek()))
> + {
> + tags.pop();
> + }
> + next=nextTag();
> return taken;
> }
>
> /**
> - * Skips to the closing tag of the tag retrieved from last call to
> {@link #popTag()}
> + * Skips to the closing tag of the tag retrieved from last call to
> {@link #takeTag()}
> */
> public void skipToCloseTag()
> {
> - if (tags.peek().isOpen())
> - {
> while (!next.closes(tags.peek()))
> {
> next = nextTag();
> }
> - tags.pop();
> - }
> }
>
> private ComponentTag nextTag()
> @@ -117,7 +137,7 @@ public final class DequeueContext
> {
> ComponentTag tag = (ComponentTag)element;
> ComponentTag open = tag.isClose() ?
> tag.getOpenTag() : tag;
> - if (canDequeueTag(open))
> + if (open != null && canDequeueTag(open))
> {
> index++;
> return tag;
> @@ -129,6 +149,8 @@ public final class DequeueContext
>
> private boolean canDequeueTag(ComponentTag open)
> {
> + Args.notNull(open, "open");
> +
> if (containers.size() < 1)
> {
> // TODO queueing message: called too early
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1fd9d57c/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> index f6f0255..3cc5fcc 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> @@ -1715,6 +1715,17 @@ public abstract class MarkupContainer extends
> Component implements Iterable<Comp
> return result;
> }
>
> + @Override
> + protected void onBeforeRender()
> + {
> + super.onBeforeRender();
> + // if (this instanceof IQueueRegion)
> + // {
> + // dequeue();
> + // }
> + }
> +
> +
> /**
> *
> * @see org.apache.wicket.Component#onBeforeRenderChildren()
> @@ -2079,9 +2090,10 @@ public abstract class MarkupContainer extends
> Component implements Iterable<Comp
> {
> while (dequeue.isAtOpenOrOpenCloseTag())
> {
> - ComponentTag tag = dequeue.popTag();
> -
> + ComponentTag tag = dequeue.takeTag();
> +
> // see if child is already added to parent
> +
> Component child = get(tag.getId()); // TODO
> queueing add this into findInQueue and
>
> // rename it to dequeue
>
> @@ -2101,24 +2113,40 @@ public abstract class MarkupContainer extends
> Component implements Iterable<Comp
> }
> }
> }
> -
> - if (child == null || tag.isOpenClose() || !(child
> instanceof MarkupContainer))
> + if (child == null || !(child instanceof
> MarkupContainer))
> {
> // could not dequeue, or does not contain
> children
> - dequeue.skipToCloseTag();
> +
> + if (tag.isOpen())
> + {
> + dequeue.skipToCloseTag();
> + }
> }
> else
> {
> MarkupContainer container =
> (MarkupContainer)child;
> - dequeue.pushContainer(container);
> - container.dequeue(dequeue);
> - dequeue.popContainer();
> + if (container instanceof IQueueRegion)
> + {
> + // if this is a dequeue container
> we do not process its markup, it will do so
> + // itself when it is dequeued for
> the first time
> + if (tag.isOpen())
> + {
> + dequeue.skipToCloseTag();
> + }
> + }
> + else if (tag.isOpen())
> + {
> + // this component has more markup
> and possibly more children to dequeue
> + dequeue.pushContainer(container);
> + container.dequeue(dequeue);
> + dequeue.popContainer();
> + }
> }
>
> - if (tag.isOpen() && tag.hasNoCloseTag() == false)
> + if (tag.isOpen() && !tag.hasNoCloseTag())
> {
> // pull the close tag off
> - ComponentTag close = dequeue.popTag();
> + ComponentTag close = dequeue.takeTag();
> if (!close.closes(tag))
> {
> // sanity check
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1fd9d57c/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
> index 057553c..c44d60b 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
> @@ -163,7 +163,7 @@ public abstract class Border extends
> WebMarkupContainer implements IComponentRes
> super(id, model);
>
> body = new BorderBodyContainer(id + "_" + BODY);
> - queueToBorder(body);
> + addToBorder(body);
> }
>
> /**
> @@ -540,8 +540,14 @@ public abstract class Border extends
> WebMarkupContainer implements IComponentRes
> @Override
> public IMarkupFragment getDequeueMarkup()
> {
> - Border border = findParent(Border.class);
> - IMarkupFragment fragment = border.getMarkup();
> + Border border=findParent(Border.class);
> + IMarkupFragment
> fragment=findParent(Border.class).getMarkup();
>
Why is it necessary to call "findParent(Border.class)" twice here ?
You did it this way the first time then I optimized it to use the 'border'
variable to get the markup, and now I see you reverted it back.
> +
> + if (fragment == null)
> + {
> + return null;
> + }
> +
> /*
> * we want to get the contents of the border here
> (the markup that
> * is represented by the body tag) to do this we
> need to strip the
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1fd9d57c/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
> b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
> index 7b7bb4e..c71ef08 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
> @@ -177,6 +177,8 @@ public abstract class AbstractRepeater extends
> WebMarkupContainer
> }
> }
> }
> - dequeue.skipToCloseTag();
> +
> + dequeue.skipToCloseTag();
> +
> }
> }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1fd9d57c/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
> b/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
> index 83b518f..fa91473 100644
> ---
> a/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
> +++
> b/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
> @@ -178,6 +178,7 @@ public class MarkupFragmentTest extends WicketTestCase
>
>
> assertNull(border.getBodyContainer().getAssociatedMarkup());
>
> + border.dequeue();
> markup = border.getBodyContainer().getMarkup();
> compareMarkupWithString(markup, "<wicket:body/>");
>
> @@ -218,6 +219,7 @@ public class MarkupFragmentTest extends WicketTestCase
>
> assertNull(border.getBodyContainer().getAssociatedMarkup());
>
> // See explanation in
> BaseBorder.BorderBodyContainer.getMarkup()
> + border.dequeue();
> markup =
> border.getBodyContainer().getParent().getMarkup(border.getBodyContainer());
> compareMarkupWithString(markup,
> "<wicket:body>333</wicket:body>");
>
>
>