On Fri, Feb 21, 2014 at 5:09 AM, Martin Grigorov <[email protected]> wrote:
>
>
> 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.
got lost in merge conflict resolution. fixed.
-igor
>
>>
>> +
>> + 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>");
>>
>>
>