Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/captcha/CaptchaImageResource.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/captcha/CaptchaImageResource.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/captcha/CaptchaImageResource.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/captcha/CaptchaImageResource.java
 Sat Jan 17 10:27:57 2009
@@ -34,6 +34,8 @@
 
 import org.apache.wicket.IClusterable;
 import org.apache.wicket.markup.html.image.resource.DynamicImageResource;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
 import org.apache.wicket.util.time.Time;
 
 
@@ -118,10 +120,11 @@
                return new String(b);
        }
 
-       private final String challengeId;
-       private final List<CharAttributes> charAttsList;
+       private final IModel<String> challengeId;
+       private Integer challengeIdhashCode;
+       private List<CharAttributes> charAttsList;
 
-       private final List<String> fontNames = Arrays.asList(new String[] { 
"Helventica", "Arial",
+       private final List<String> fontNames = Arrays.asList(new String[] { 
"Helvetica", "Arial",
                        "Courier" });
        private final int fontSize;
        private final int fontStyle;
@@ -135,6 +138,7 @@
 
        private int width = 0;
 
+
        /**
         * Construct.
         */
@@ -147,10 +151,22 @@
         * Construct.
         * 
         * @param challengeId
-        *              The id of the challenge
+        *            The id of the challenge
         */
        public CaptchaImageResource(String challengeId)
        {
+               this(new Model<String>(challengeId));
+       }
+
+       /**
+        * 
+        * Construct.
+        * 
+        * @param challengeId
+        *            The id of the challenge
+        */
+       public CaptchaImageResource(IModel<String> challengeId)
+       {
                this(challengeId, 48, 30);
        }
 
@@ -158,57 +174,53 @@
         * Construct.
         * 
         * @param challengeId
-        *              The id of the challenge
+        *            The id of the challenge
         * @param fontSize
-        *              The font size
+        *            The font size
         * @param margin
-        *              The image's margin
+        *            The image's margin
         */
-       public CaptchaImageResource(String challengeId, int fontSize, int 
margin)
+       public CaptchaImageResource(IModel<String> challengeId, int fontSize, 
int margin)
        {
                this.challengeId = challengeId;
                fontStyle = 1;
                this.fontSize = fontSize;
                this.margin = margin;
-               width = this.margin * 2;
-               height = this.margin * 2;
-               char[] chars = challengeId.toCharArray();
-               charAttsList = new ArrayList<CharAttributes>();
-               TextLayout text;
-               AffineTransform textAt;
-               Shape shape;
-               for (int i = 0; i < chars.length; i++)
-               {
-                       String fontName = fontNames.get(randomInt(0, 
fontNames.size()));
-                       double rotation = Math.toRadians(randomInt(-35, 35));
-                       int rise = randomInt(margin / 2, margin);
-                       Random ran = new Random();
-                       double shearX = ran.nextDouble() * 0.2;
-                       double shearY = ran.nextDouble() * 0.2;
-                       CharAttributes cf = new CharAttributes(chars[i], 
fontName, rotation, rise, shearX,
-                               shearY);
-                       charAttsList.add(cf);
-                       text = new TextLayout(chars[i] + "", getFont(fontName), 
new FontRenderContext(null,
-                               false, false));
-                       textAt = new AffineTransform();
-                       textAt.rotate(rotation);
-                       textAt.shear(shearX, shearY);
-                       shape = text.getOutline(textAt);
-                       width += (int)shape.getBounds2D().getWidth();
-                       if (height < (int)shape.getBounds2D().getHeight() + 
rise)
-                       {
-                               height = (int)shape.getBounds2D().getHeight() + 
rise;
-                       }
-               }
+       }
+
+       /**
+        * 
+        * Construct.
+        * 
+        * @param challengeId
+        *            The id of the challenge
+        * @param fontSize
+        *            The font size
+        * @param margin
+        *            The image's margin
+        */
+       public CaptchaImageResource(String challengeId, int fontSize, int 
margin)
+       {
+               this(new Model<String>(challengeId), fontSize, margin);
        }
 
        /**
         * Gets the id for the challenge.
         * 
-        * @return The the id for the challenge
+        * @return The id for the challenge
         */
        public final String getChallengeId()
        {
+               return challengeId.getObject();
+       }
+
+       /**
+        * Gets the id for the challenge
+        * 
+        * @return The id for the challenge
+        */
+       public final IModel<String> getChallengeIdModel()
+       {
                return challengeId;
        }
 
@@ -220,6 +232,7 @@
        @Override
        public final void invalidate()
        {
+               challengeIdhashCode = null;
                imageData = null;
        }
 
@@ -231,7 +244,8 @@
        {
                // get image data is always called in sync block
                byte[] data = null;
-               if (imageData != null)
+               if (imageData != null && challengeIdhashCode != null &&
+                       
challengeIdhashCode.equals(challengeId.getObject().hashCode()))
                {
                        data = imageData.get();
                }
@@ -256,6 +270,36 @@
         */
        private final byte[] render()
        {
+               width = margin * 2;
+               height = margin * 2;
+               char[] chars = challengeId.getObject().toCharArray();
+               charAttsList = new ArrayList<CharAttributes>();
+               TextLayout text;
+               AffineTransform textAt;
+               Shape shape;
+               for (int i = 0; i < chars.length; i++)
+               {
+                       String fontName = fontNames.get(randomInt(0, 
fontNames.size()));
+                       double rotation = Math.toRadians(randomInt(-35, 35));
+                       int rise = randomInt(margin / 2, margin);
+                       Random ran = new Random();
+                       double shearX = ran.nextDouble() * 0.2;
+                       double shearY = ran.nextDouble() * 0.2;
+                       CharAttributes cf = new CharAttributes(chars[i], 
fontName, rotation, rise, shearX,
+                               shearY);
+                       charAttsList.add(cf);
+                       text = new TextLayout(chars[i] + "", getFont(fontName), 
new FontRenderContext(null,
+                               false, false));
+                       textAt = new AffineTransform();
+                       textAt.rotate(rotation);
+                       textAt.shear(shearX, shearY);
+                       shape = text.getOutline(textAt);
+                       width += (int)shape.getBounds2D().getWidth();
+                       if (height < (int)shape.getBounds2D().getHeight() + 
rise)
+                       {
+                               height = (int)shape.getBounds2D().getHeight() + 
rise;
+                       }
+               }
                while (true)
                {
                        final BufferedImage image = new BufferedImage(width, 
height, BufferedImage.TYPE_INT_RGB);
@@ -265,13 +309,13 @@
                        for (int i = 0; i < charAttsList.size(); i++)
                        {
                                CharAttributes cf = charAttsList.get(i);
-                               TextLayout text = new TextLayout(cf.getChar() + 
"", getFont(cf.getName()),
+                               text = new TextLayout(cf.getChar() + "", 
getFont(cf.getName()),
                                        gfx.getFontRenderContext());
-                               AffineTransform textAt = new AffineTransform();
+                               textAt = new AffineTransform();
                                textAt.translate(curWidth, height - 
cf.getRise());
                                textAt.rotate(cf.getRotation());
                                textAt.shear(cf.getShearX(), cf.getShearY());
-                               Shape shape = text.getOutline(textAt);
+                               shape = text.getOutline(textAt);
                                curWidth += shape.getBounds().getWidth();
                                gfx.setXORMode(Color.BLACK);
                                gfx.fill(shape);

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
 Sat Jan 17 10:27:57 2009
@@ -50,8 +50,8 @@
  * <p>
  * <strong>Ajaxifying the palette</strong>: The palette itself cannot be 
ajaxified because it is a
  * panel and therefore does not receive any javascript events. Instead ajax 
behaviors can be
- * attached to the recorder component which supports the javascript 
<code>onchange</code> event.
- * The behavior should be attached by overriding {...@link 
#newRecorderComponent()}
+ * attached to the recorder component which supports the javascript 
<code>onchange</code> event. The
+ * behavior should be attached by overriding {...@link #newRecorderComponent()}
  * 
  * Example:
  * 
@@ -183,7 +183,7 @@
        @Override
        protected void onBeforeRender()
        {
-               if (!hasBeenRendered())
+               if (get("recorder") == null)
                {
                        initFactories();
                }
@@ -244,7 +244,7 @@
         */
        public final boolean isPaletteEnabled()
        {
-               return isEnabled() && isEnableAllowed();
+               return isEnabledInHierarchy();
        }
 
 
@@ -405,7 +405,7 @@
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected Map<String,String> 
getAdditionalAttributes(Object choice)
+                       protected Map<String, String> 
getAdditionalAttributes(Object choice)
                        {
                                return 
Palette.this.getAdditionalAttributesForSelection(choice);
                        }
@@ -415,7 +415,7 @@
        /**
         * @see 
org.apache.wicket.extensions.markup.html.form.palette.component.Selection#getAdditionalAttributes(Object)
         */
-       protected Map<String,String> getAdditionalAttributesForSelection(Object 
choice)
+       protected Map<String, String> 
getAdditionalAttributesForSelection(Object choice)
        {
                return null;
        }
@@ -432,7 +432,7 @@
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       protected Map<String,String> 
getAdditionalAttributes(Object choice)
+                       protected Map<String, String> 
getAdditionalAttributes(Object choice)
                        {
                                return 
Palette.this.getAdditionalAttributesForChoices(choice);
                        }
@@ -442,7 +442,7 @@
        /**
         * @see 
org.apache.wicket.extensions.markup.html.form.palette.component.Selection#getAdditionalAttributes(Object)
         */
-       protected Map<String,String> getAdditionalAttributesForChoices(Object 
choice)
+       protected Map<String, String> getAdditionalAttributesForChoices(Object 
choice)
        {
                return null;
        }

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
 Sat Jan 17 10:27:57 2009
@@ -16,8 +16,6 @@
  */
 package org.apache.wicket.extensions.markup.html.form.select;
 
-import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 
@@ -27,7 +25,7 @@
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.WildcardCollectionModel;
 
 
 /**
@@ -72,11 +70,9 @@
         * @param elements
         * @param renderer
         */
-       @SuppressWarnings("unchecked")
        public SelectOptions(String id, Collection<? extends T> elements, 
IOptionRenderer<T> renderer)
        {
-               this(id, new Model((elements instanceof Serializable) ? 
(Serializable)elements
-                       : new ArrayList<T>(elements)), renderer);
+               this(id, new WildcardCollectionModel<T>(elements), renderer);
        }
 
        /**

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html
 Sat Jan 17 10:27:57 2009
@@ -15,16 +15,20 @@
    limitations under the License.
 -->
 <wicket:panel>
+<wicket:enclosure child="topToolbars">
 <thead>
        <span wicket:id="topToolbars">
                <span wicket:id="toolbar"></span>
        </span>
 </thead>
+</wicket:enclosure>
+<wicket:enclosure child="bottomToolbars">
 <tfoot>
        <span wicket:id="bottomToolbars">
                <span wicket:id="toolbar"></span>
        </span>
 </tfoot>
+</wicket:enclosure>
 <tbody>
        <tr wicket:id="rows">
                <td wicket:id="cells">

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
 Sat Jan 17 10:27:57 2009
@@ -53,8 +53,8 @@
  * 
  * IColumn[] columns = new IColumn[2];
  * 
- * columns[0] = new PropertyColumn(new Model(&quot;First Name&quot;), 
&quot;name.first&quot;, &quot;name.first&quot;);
- * columns[1] = new PropertyColumn(new Model(&quot;Last Name&quot;), 
&quot;name.last&quot;);
+ * columns[0] = new PropertyColumn(new Model&lt;String&gt;(&quot;First 
Name&quot;), &quot;name.first&quot;, &quot;name.first&quot;);
+ * columns[1] = new PropertyColumn(new Model&lt;String&gt;(&quot;Last 
Name&quot;), &quot;name.last&quot;);
  * 
  * DataTable table = new DataTable(&quot;datatable&quot;, columns, new 
UserProvider(), 10);
  * table.add(new NavigationToolbar(table));
@@ -175,30 +175,8 @@
                datagrid.setRowsPerPage(rowsPerPage);
                add(datagrid);
 
-               topToolbars = new RepeatingView("topToolbars")
-               {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public boolean isVisible()
-                       {
-                               return size() > 0;
-                       }
-
-               };
-
-               bottomToolbars = new RepeatingView("bottomToolbars")
-               {
-
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public boolean isVisible()
-                       {
-                               return size() > 0;
-                       }
-               };
-
+               topToolbars = new ToolbarsContainer("topToolbars");
+               bottomToolbars = new ToolbarsContainer("bottomToolbars");
                add(topToolbars);
                add(bottomToolbars);
        }
@@ -323,7 +301,7 @@
                toolbar.setRenderBodyOnly(true);
 
                // create a container item for the toolbar (required by 
repeating view)
-               WebMarkupContainer item = new 
WebMarkupContainer(container.newChildId());
+               WebMarkupContainer item = new 
ToolbarContainer(container.newChildId());
                item.setRenderBodyOnly(true);
                item.add(toolbar);
 
@@ -392,4 +370,85 @@
                // noop
        }
 
+       /**
+        * Acts as a container item for a single toolbar. The main feature it 
implements is the
+        * visibility check, this item is visible only if the toolbar placed 
into it is visible.
+        * 
+        * TODO 1.5 optimization: this can probably be removed and items can be 
added directly to the
+        * toolbarcontainer
+        * 
+        * @author igor.vaynberg
+        */
+       private final class ToolbarContainer extends WebMarkupContainer
+       {
+               private static final long serialVersionUID = 1L;
+
+               /**
+                * 
+                * Construct.
+                * 
+                * @param id
+                */
+               private ToolbarContainer(String id)
+               {
+                       super(id);
+               }
+
+               /** {...@inheritdoc} */
+               @Override
+               public boolean isVisible()
+               {
+                       return ((Component)iterator().next()).isVisible();
+               }
+       }
+
+       /**
+        * This class acts as a repeater that will contain the toolbar. The key 
feature it implements is
+        * the visibility check, this container is only visible if at least one 
child is visible. This
+        * helps to properly hide <code>thead/tfoot</code> sections if no 
toolbars will be visible
+        * because those sections cannot be empty according to html spec.
+        * 
+        * @author igor.vaynberg
+        */
+       private class ToolbarsContainer extends RepeatingView
+       {
+               private static final long serialVersionUID = 1L;
+
+               /**
+                * Constructor
+                * 
+                * @param id
+                */
+               private ToolbarsContainer(String id)
+               {
+                       super(id);
+               }
+
+               /** {...@inheritdoc} */
+               @Override
+               public boolean isVisible()
+               {
+                       // only visible if at least one child is visible
+                       final boolean[] visible = new boolean[] { false };
+                       visitChildren(new IVisitor()
+                       {
+
+                               public Object component(Component component)
+                               {
+                                       if (component.isVisible())
+                                       {
+                                               visible[0] = true;
+                                               return STOP_TRAVERSAL;
+                                       }
+                                       else
+                                       {
+                                               return 
CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
+                                       }
+                               }
+
+                       });
+                       return visible[0];
+               }
+       }
+
 }

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/PropertyColumn.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/PropertyColumn.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/PropertyColumn.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/PropertyColumn.java
 Sat Jan 17 10:27:57 2009
@@ -31,7 +31,7 @@
  * Example
  * 
  * <pre>
- * columns[0] = new PropertyColumn(new Model(&quot;First Name&quot;), 
&quot;name.first&quot;);
+ * columns[0] = new PropertyColumn(new Model&lt;String&gt;(&quot;First 
Name&quot;), &quot;name.first&quot;);
  * </pre>
  * 
  * The above will attach a label to the cell with a property model for the 
expression

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
 Sat Jan 17 10:27:57 2009
@@ -54,7 +54,7 @@
                this.locator = locator;
 
                // add hidden field used for managing current focus
-               hidden = new HiddenField("focus-tracker", new Model());
+               hidden = new HiddenField<String>("focus-tracker", new 
Model<String>());
 
                hidden.add(new AbstractBehavior()
                {
@@ -109,7 +109,7 @@
         * @param fc
         *            form component
         */
-       public final void enableFocusTracking(FormComponent fc)
+       public final void enableFocusTracking(FormComponent<?> fc)
        {
                fc.add(new AbstractBehavior()
                {

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
 Sat Jan 17 10:27:57 2009
@@ -47,7 +47,7 @@
  * 
  * List tabs=new ArrayList();
  * 
- * tabs.add(new AbstractTab(new Model(&quot;first tab&quot;)) {
+ * tabs.add(new AbstractTab(new Model&lt;String&gt;(&quot;first tab&quot;)) {
  * 
  *   public Panel getPanel(String panelId)
  *   {
@@ -56,7 +56,7 @@
  * 
  * });
  * 
- * tabs.add(new AbstractTab(new Model(&quot;second tab&quot;)) {
+ * tabs.add(new AbstractTab(new Model&lt;String&gt;(&quot;second tab&quot;)) {
  * 
  *   public Panel getPanel(String panelId)
  *   {

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java
 Sat Jan 17 10:27:57 2009
@@ -16,17 +16,10 @@
  */
 package org.apache.wicket.extensions.markup.html.tree;
 
-import java.io.Serializable;
-
 import javax.swing.tree.TreeModel;
 import javax.swing.tree.TreeNode;
 
-import org.apache.wicket.Component;
-import org.apache.wicket.IClusterable;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.RequestCycle;
-import org.apache.wicket.ResourceReference;
-import org.apache.wicket.Response;
+import org.apache.wicket.*;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -36,8 +29,8 @@
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.tree.AbstractTree;
+import org.apache.wicket.markup.html.tree.WicketTreeModel;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
 import org.apache.wicket.util.lang.EnumeratedType;
 
 /**
@@ -50,9 +43,8 @@
  * use {...@link Tree}
  * <p>
  * This class allows you to choose between 3 types of links. {...@link
- * DefaultAbstractTree#setLinkType(org
- * .apache.wicket.extensions.markup.html.tree.DefaultAbstractTree.LinkType)}
- * 
+ * 
DefaultAbstractTree#setLinkType(org.apache.wicket.extensions.markup.html.tree.DefaultAbstractTree.LinkType)}
+ *
  * @author Matej Knopp
  */
 public abstract class DefaultAbstractTree extends AbstractTree
@@ -92,7 +84,7 @@
 
                /**
                 * Construct.
-                * 
+                *
                 * @param name
                 */
                public LinkType(String name)
@@ -103,14 +95,14 @@
 
        /**
         * Helper class for calling an action from a link.
-        * 
+        *
         * @author Matej Knopp
         */
        protected interface ILinkCallback extends IClusterable
        {
                /**
                 * Called when the click is executed.
-                * 
+                *
                 * @param target
                 *            The ajax request target
                 */
@@ -140,7 +132,7 @@
 
        /**
         * Tree constructor.
-        * 
+        *
         * @param id
         *            The component id
         */
@@ -152,35 +144,37 @@
 
        /**
         * Tree constructor.
-        * 
+        *
         * @param id
         *            The component id
         * @param model
         *            The tree model
         */
-       public DefaultAbstractTree(String id, IModel<?> model)
+       public DefaultAbstractTree(String id, IModel<TreeModel> model)
        {
                super(id, model);
                init();
-       };
+       }
 
        /**
         * Tree constructor.
-        * 
+        *
         * @param id
         *            The component id
         * @param model
         *            The tree model
         */
+       @SuppressWarnings("unchecked")
        public DefaultAbstractTree(String id, TreeModel model)
        {
-               super(id, new Model<Serializable>((Serializable)model));
+               super(id, new WicketTreeModel());
+               setModelObject(model);
                init();
        }
 
        /**
         * Returns the current type of links on tree items.
-        * 
+        *
         * @return The link type
         */
        public LinkType getLinkType()
@@ -191,7 +185,7 @@
        /**
         * Sets the type of links on tree items. After the link type is 
changed, the whole tree is
         * rebuild and re-rendered.
-        * 
+        *
         * @param linkType
         *            type of links
         */
@@ -206,7 +200,7 @@
 
        /**
         * Returns the resource reference of default stylesheet.
-        * 
+        *
         * @return The package resource reference
         */
        protected ResourceReference getCSS()
@@ -216,7 +210,7 @@
 
        /**
         * Returns the resource reference of default closed tree folder.
-        * 
+        *
         * @return The package resource reference
         */
        protected ResourceReference getFolderClosed()
@@ -226,17 +220,17 @@
 
        /**
         * Returns the resource reference of default open tree folder.
-        * 
+        *
         * @return The package resource reference
         */
        protected ResourceReference getFolderOpen()
        {
                return FOLDER_OPEN;
-       };
+       }
 
        /**
         * Returns the resource reference of default tree item (not folder).
-        * 
+        *
         * @return The package resource reference
         */
        protected ResourceReference getItem()
@@ -246,7 +240,7 @@
 
        /**
         * Returns the resource reference for icon of specified tree node.
-        * 
+        *
         * @param node
         *            The node
         * @return The package resource reference
@@ -274,7 +268,7 @@
         * Creates the indentation element. This element should be placed as 
first element in the tree
         * item markup to ensure proper indentation of the tree item. This 
implementation also takes
         * care of lines that connect nodes.
-        * 
+        *
         * @param parent
         *            The component parent
         * @param id
@@ -293,8 +287,7 @@
                        private static final long serialVersionUID = 1L;
 
                        /**
-                        * @see 
org.apache.wicket.MarkupContainer#onComponentTagBody(org.apache.wicket.markup.
-                        *      MarkupStream, 
org.apache.wicket.markup.ComponentTag)
+                        * @see 
org.apache.wicket.MarkupContainer#onComponentTagBody(org.apache.wicket.markup.MarkupStream,
 org.apache.wicket.markup.ComponentTag)
                         */
                        @Override
                        protected void onComponentTagBody(MarkupStream 
markupStream, ComponentTag openTag)
@@ -331,7 +324,7 @@
         * Creates an image placed on junction link. This image actually 
consists of two spans with
         * different css classes. These classes are specified according to the 
stylesheet to make the
         * junction image look well together with lines connecting nodes.
-        * 
+        *
         * @param parent
         *            The component parent
         * @param id
@@ -377,17 +370,17 @@
        /**
         * Creates the junction link for given node. Also (optionally) creates 
the junction image. If
         * the node is a leaf (it has no children), the created junction link 
is non-functional.
-        * 
+        *
         * @param parent
         *            parent component of the link
-        * 
+        *
         * @param id
         *            wicket:id of the component
-        * 
+        *
         * @param imageId
         *            wicket:id of the image. this can be null, in that case 
image is not created. image
         *            is supposed to be placed on the link (link is parent of 
image)
-        * 
+        *
         * @param node
         *            tree node for which the link should be created.
         * @return The link component
@@ -448,7 +441,7 @@
        /**
         * Creates a link of type specified by current linkType. When the links 
is clicked it calls the
         * specified callback.
-        * 
+        *
         * @param parent
         *            The parent component
         * @param id
@@ -462,7 +455,7 @@
        {
                if (getLinkType() == LinkType.REGULAR)
                {
-                       return new Link(id)
+                       return new Link<Void>(id)
                        {
                                private static final long serialVersionUID = 1L;
 
@@ -478,13 +471,12 @@
                }
                else if (getLinkType() == LinkType.AJAX)
                {
-                       return new AjaxLink(id)
+                       return new AjaxLink<Void>(id)
                        {
                                private static final long serialVersionUID = 1L;
 
                                /**
-                                * @see 
org.apache.wicket.ajax.markup.html.AjaxLink#onClick(org.apache.wicket.ajax.
-                                *      AjaxRequestTarget)
+                                * @see 
org.apache.wicket.ajax.markup.html.AjaxLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget)
                                 */
                                @Override
                                public void onClick(AjaxRequestTarget target)
@@ -495,13 +487,12 @@
                }
                else
                {
-                       return new AjaxFallbackLink(id)
+                       return new AjaxFallbackLink<Void>(id)
                        {
                                private static final long serialVersionUID = 1L;
 
                                /**
-                                * @see 
org.apache.wicket.ajax.markup.html.AjaxFallbackLink#onClick(org.apache.wicket
-                                *      .ajax.AjaxRequestTarget)
+                                * @see 
org.apache.wicket.ajax.markup.html.AjaxFallbackLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget)
                                 */
                                @Override
                                public void onClick(AjaxRequestTarget target)
@@ -515,7 +506,7 @@
        /**
         * Creates the icon for current node. By default uses image reference 
specified by
         * {...@link DefaultAbstractTree#getNodeIcon(TreeNode)}.
-        * 
+        *
         * @param parent
         *            The parent component
         * @param id
@@ -543,7 +534,7 @@
 
        /**
         * Creates a link that can be used to select / deselect the specified 
node.
-        * 
+        *
         * @param parent
         *            The parent component
         * @param id
@@ -570,10 +561,10 @@
        /**
         * Callback function called after user clicked on an junction link. The 
node has already been
         * expanded/collapsed (depending on previous status).
-        * 
+        *
         * @param target
         *            Request target - may be null on non-ajax call
-        * 
+        *
         * @param node
         *            Node for which this callback is relevant
         */
@@ -583,10 +574,10 @@
 
        /**
         * This callback method is called after user has selected / deselected 
the given node.
-        * 
+        *
         * @param target
         *            Request target - may be null on non-ajax call
-        * 
+        *
         * @param node
         *            Node for which this this callback is fired.
         */
@@ -608,7 +599,7 @@
 
        /**
         * Returns whether the provided node is last child of it's parent.
-        * 
+        *
         * @param node
         *            The node
         * @return whether the provided node is the last child

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/Tree.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/Tree.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/Tree.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/Tree.java
 Sat Jan 17 10:27:57 2009
@@ -57,7 +57,7 @@
         * @param model
         *            The tree model
         */
-       public Tree(String id, IModel<?> model)
+       public Tree(String id, IModel<TreeModel> model)
        {
                super(id, model);
        }

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/PropertyRenderableColumn.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/PropertyRenderableColumn.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/PropertyRenderableColumn.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/PropertyRenderableColumn.java
 Sat Jan 17 10:27:57 2009
@@ -65,7 +65,7 @@
         * 
         * @return The converter or null
         */
-       public IConverter<?> getConverter()
+       public IConverter getConverter()
        {
                return converter;
        }

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java
 Sat Jan 17 10:27:57 2009
@@ -98,19 +98,21 @@
                /** For serialization. */
                private static final long serialVersionUID = 1L;
 
-               private RatingStarBar(String id, IModel model)
+               private RatingStarBar(String id, IModel<Integer> model)
                {
                        super(id, model);
                }
 
+               @Override
                protected void populateItem(LoopItem item)
                {
                        // Use an AjaxFallbackLink for rating to make voting 
work even
                        // without Ajax.
-                       AjaxFallbackLink link = new AjaxFallbackLink("link")
+                       AjaxFallbackLink<Void> link = new 
AjaxFallbackLink<Void>("link")
                        {
                                private static final long serialVersionUID = 1L;
 
+                               @Override
                                public void onClick(AjaxRequestTarget target)
                                {
                                        LoopItem item = (LoopItem)getParent();
@@ -128,9 +130,10 @@
                                        }
                                }
 
+                               @Override
                                public boolean isEnabled()
                                {
-                                       return 
!((Boolean)hasVoted.getObject()).booleanValue();
+                                       return !hasVoted.getObject();
                                }
                        };
 
@@ -164,17 +167,17 @@
        /**
         * The number of stars that need to be shown, should result in an 
Integer object.
         */
-       private IModel nrOfStars = new Model(new Integer(5));
+       private IModel<Integer> nrOfStars = new Model<Integer>(5);
 
        /**
         * The number of votes that have been cast, should result in an Integer 
object.
         */
-       private IModel nrOfVotes;
+       private IModel<Integer> nrOfVotes;
 
        /**
         * The flag on whether the current user has voted already.
         */
-       private IModel hasVoted;
+       private IModel<Boolean> hasVoted;
 
        /**
         * Handle to the rating label to set the visibility.
@@ -201,9 +204,9 @@
         * @param rating
         *            the model to get the rating
         */
-       public RatingPanel(String id, IModel rating)
+       public RatingPanel(String id, IModel<Integer> rating)
        {
-               this(id, rating, new Model(new Integer(5)), null, new 
Model(Boolean.FALSE), true);
+               this(id, rating, new Model<Integer>(5), null, new 
Model<Boolean>(Boolean.FALSE), true);
        }
 
        /**
@@ -233,9 +236,9 @@
         * @param addDefaultCssStyle
         *            should this component render its own default CSS style?
         */
-       public RatingPanel(String id, IModel rating, int nrOfStars, boolean 
addDefaultCssStyle)
+       public RatingPanel(String id, IModel<Integer> rating, int nrOfStars, 
boolean addDefaultCssStyle)
        {
-               this(id, rating, new Model(new Integer(nrOfStars)), null, new 
Model(Boolean.FALSE),
+               this(id, rating, new Model<Integer>(nrOfStars), null, new 
Model<Boolean>(Boolean.FALSE),
                                addDefaultCssStyle);
        }
 
@@ -255,10 +258,10 @@
         * @param addDefaultCssStyle
         *            should this component render its own default CSS style?
         */
-       public RatingPanel(String id, IModel rating, int nrOfStars, IModel 
nrOfVotes,
+       public RatingPanel(String id, IModel<Integer> rating, int nrOfStars, 
IModel<Integer> nrOfVotes,
                        boolean addDefaultCssStyle)
        {
-               this(id, rating, new Model(new Integer(nrOfStars)), nrOfVotes, 
new Model(Boolean.FALSE),
+               this(id, rating, new Model<Integer>(nrOfStars), nrOfVotes, new 
Model<Boolean>(Boolean.FALSE),
                                addDefaultCssStyle);
        }
 
@@ -280,8 +283,8 @@
         * @param addDefaultCssStyle
         *            should this component render its own default CSS style?
         */
-       public RatingPanel(String id, IModel rating, IModel nrOfStars, IModel 
nrOfVotes,
-                       IModel hasVoted, boolean addDefaultCssStyle)
+       public RatingPanel(String id, IModel<Integer> rating, IModel<Integer> 
nrOfStars, IModel<Integer> nrOfVotes,
+                       IModel<Boolean> hasVoted, boolean addDefaultCssStyle)
        {
                super(id, rating);
 
@@ -328,7 +331,7 @@
         *            the number of stars to generate
         * @return the bar with rating stars
         */
-       protected Component newRatingStarBar(String id, IModel nrOfStars)
+       protected Component newRatingStarBar(String id, IModel<Integer> 
nrOfStars)
        {
                return new RatingStarBar(id, nrOfStars);
        }
@@ -344,9 +347,9 @@
         *            the model containing the number of votes (may be null)
         * @return the label component showing the message.
         */
-       protected Component newRatingLabel(String id, IModel rating, IModel 
nrOfVotes)
+       protected Component newRatingLabel(String id, IModel<Integer> rating, 
IModel<Integer> nrOfVotes)
        {
-               IModel model = null;
+               IModel<String> model;
                if (nrOfVotes == null)
                {
                        Object[] parameters = new Object[] { rating };

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
 Sat Jan 17 10:27:57 2009
@@ -22,7 +22,7 @@
  * 
  * @author Eelco Hillenius
  */
-public final class CancelButton extends WizardButton
+public class CancelButton extends WizardButton
 {
        private static final long serialVersionUID = 1L;
 
@@ -43,6 +43,7 @@
        /**
         * @see org.apache.wicket.Component#isEnabled()
         */
+       @Override
        public final boolean isEnabled()
        {
                return true;
@@ -51,6 +52,7 @@
        /**
         * @see org.apache.wicket.Component#isVisible()
         */
+       @Override
        public final boolean isVisible()
        {
                return getWizardModel().isCancelVisible();
@@ -59,6 +61,7 @@
        /**
         * @see org.apache.wicket.extensions.wizard.WizardButton#onClick()
         */
+       @Override
        public final void onClick()
        {
                getWizardModel().cancel();

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
 Sat Jan 17 10:27:57 2009
@@ -22,7 +22,7 @@
  * 
  * @author Eelco Hillenius
  */
-public final class FinishButton extends WizardButton
+public class FinishButton extends WizardButton
 {
        private static final long serialVersionUID = 1L;
 
@@ -42,6 +42,7 @@
        /**
         * @see org.apache.wicket.Component#isEnabled()
         */
+       @Override
        public final boolean isEnabled()
        {
                IWizardStep activeStep = getWizardModel().getActiveStep();
@@ -51,6 +52,7 @@
        /**
         * @see org.apache.wicket.extensions.wizard.WizardButton#onClick()
         */
+       @Override
        public final void onClick()
        {
                IWizardModel wizardModel = getWizardModel();
@@ -67,7 +69,7 @@
                else
                {
                        error(getLocalizer().getString(
-                                       
"org.apache.wicket.extensions.wizard.FinishButton.step.did.not.complete", 
this));
+                               
"org.apache.wicket.extensions.wizard.FinishButton.step.did.not.complete", 
this));
                }
        }
 }

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
 Sat Jan 17 10:27:57 2009
@@ -23,7 +23,7 @@
  * 
  * @author Eelco Hillenius
  */
-public final class LastButton extends WizardButton
+public class LastButton extends WizardButton
 {
        private static final long serialVersionUID = 1L;
 
@@ -43,6 +43,7 @@
        /**
         * @see org.apache.wicket.Component#isEnabled()
         */
+       @Override
        public final boolean isEnabled()
        {
                return getWizardModel().isLastAvailable();
@@ -51,6 +52,7 @@
        /**
         * @see org.apache.wicket.Component#isVisible()
         */
+       @Override
        public final boolean isVisible()
        {
                return getWizardModel().isLastVisible();
@@ -59,6 +61,7 @@
        /**
         * @see org.apache.wicket.extensions.wizard.WizardButton#onClick()
         */
+       @Override
        public final void onClick()
        {
                IWizardModel wizardModel = getWizardModel();

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
 Sat Jan 17 10:27:57 2009
@@ -24,7 +24,7 @@
  * 
  * @author Eelco Hillenius
  */
-public final class NextButton extends WizardButton
+public class NextButton extends WizardButton
 {
        private static final long serialVersionUID = 1L;
 
@@ -42,6 +42,7 @@
        /**
         * @see org.apache.wicket.Component#isEnabled()
         */
+       @Override
        public final boolean isEnabled()
        {
                return getWizardModel().isNextAvailable();
@@ -50,6 +51,7 @@
        /**
         * @see org.apache.wicket.extensions.wizard.WizardButton#onClick()
         */
+       @Override
        public final void onClick()
        {
                IWizardModel wizardModel = getWizardModel();
@@ -67,13 +69,14 @@
                else
                {
                        error(getLocalizer().getString(
-                                       
"org.apache.wicket.extensions.wizard.NextButton.step.did.not.complete", this));
+                               
"org.apache.wicket.extensions.wizard.NextButton.step.did.not.complete", this));
                }
        }
 
        /**
         * @see org.apache.wicket.Component#onBeforeRender()
         */
+       @Override
        protected final void onBeforeRender()
        {
                getForm().setDefaultButton(this);

Modified: 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
 Sat Jan 17 10:27:57 2009
@@ -22,7 +22,7 @@
  * 
  * @author Eelco Hillenius
  */
-public final class PreviousButton extends WizardButton
+public class PreviousButton extends WizardButton
 {
        private static final long serialVersionUID = 1L;
 
@@ -43,6 +43,7 @@
        /**
         * @see org.apache.wicket.Component#isEnabled()
         */
+       @Override
        public final boolean isEnabled()
        {
                return getWizardModel().isPreviousAvailable();
@@ -51,6 +52,7 @@
        /**
         * @see org.apache.wicket.extensions.wizard.WizardButton#onClick()
         */
+       @Override
        public final void onClick()
        {
                getWizardModel().previous();

Modified: 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/Application.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/Application.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/Application.java
 Sat Jan 17 10:27:57 2009
@@ -48,11 +48,11 @@
                // do this so that we don't have to cast all the time
                if (application instanceof WebApplication)
                {
-                       this.webApplication = (WebApplication)application;
+                       webApplication = (WebApplication)application;
                }
                else
                {
-                       this.webApplication = null;
+                       webApplication = null;
                }
        }
 
@@ -138,4 +138,12 @@
        {
                return application.getFrameworkSettings().getVersion();
        }
+
+       /**
+        * @see org.apache.wicket.jmx.ApplicationMBean#clearLocalizerCache()
+        */
+       public void clearLocalizerCache() throws IOException
+       {
+               application.getResourceSettings().getLocalizer().clearCache();
+       }
 }

Modified: 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationMBean.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationMBean.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationMBean.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-jmx/src/main/java/org/apache/wicket/jmx/ApplicationMBean.java
 Sat Jan 17 10:27:57 2009
@@ -91,4 +91,11 @@
         * @throws IOException
         */
        String getWicketVersion() throws IOException;
+
+       /**
+        * Clears the localizer cache.
+        * 
+        * @throws IOException
+        */
+       void clearLocalizerCache() throws IOException;
 }

Modified: wicket/sandbox/knopp/experimental/wicket-spring/pom.xml
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-spring/pom.xml?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-spring/pom.xml (original)
+++ wicket/sandbox/knopp/experimental/wicket-spring/pom.xml Sat Jan 17 10:27:57 
2009
@@ -45,6 +45,7 @@
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
+                       <scope>provided</scope>
                </dependency>
                <dependency>
                        <groupId>easymock</groupId>

Modified: 
wicket/sandbox/knopp/experimental/wicket-spring/src/main/java/org/apache/wicket/spring/test/ApplicationContextMock.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-spring/src/main/java/org/apache/wicket/spring/test/ApplicationContextMock.java?rev=735320&r1=735319&r2=735320&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-spring/src/main/java/org/apache/wicket/spring/test/ApplicationContextMock.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-spring/src/main/java/org/apache/wicket/spring/test/ApplicationContextMock.java
 Sat Jan 17 10:27:57 2009
@@ -40,8 +40,10 @@
  * Mock application context object. This mock context allows easy creation of 
unit tests by allowing
  * the user to put bean instances into the context.
  * 
- * Only {...@link #getBean(String)}, {...@link #getBean(String, Class)}, and 
{...@link #getBeansOfType(Class)
- * } are implemented so far. Any other method throws {...@link 
UnsupportedOperationException}.
+ * Only {...@link #getBean(String)}, {...@link #getBean(String, Class)}, and
+ * {...@link #getBeansOfType(Class)
+ * } are implemented so far. Any other method throws
+ * {...@link UnsupportedOperationException}.
  * 
  * @author Igor Vaynberg (ivaynberg)
  * 
@@ -106,7 +108,7 @@
        }
 
        /**
-        * @see 
org.springframework.beans.factory.ListableBeanFactory#getBeansOfType( 
java.lang.Class)
+        * @see 
org.springframework.beans.factory.ListableBeanFactory#getBeansOfType(java.lang.Class)
         */
        public Map getBeansOfType(Class type) throws BeansException
        {
@@ -151,7 +153,7 @@
 
        /**
         * @see org.springframework.context.ApplicationContext#publishEvent(org.
-        *      springframework.context.ApplicationEvent)
+        *      springframework.context.ApplicationEvent)
         */
        public void publishEvent(ApplicationEvent event)
        {
@@ -160,7 +162,7 @@
 
        /**
         * @see org.springframework.beans.factory.ListableBeanFactory#
-        *      containsBeanDefinition(java.lang.String)
+        *      containsBeanDefinition(java.lang.String)
         */
        public boolean containsBeanDefinition(String beanName)
        {
@@ -185,7 +187,7 @@
 
        /**
         * @see org.springframework.beans.factory.ListableBeanFactory#
-        *      getBeanNamesForType(java.lang.Class)
+        *      getBeanNamesForType(java.lang.Class)
         */
        public String[] getBeanNamesForType(Class type)
        {
@@ -207,7 +209,7 @@
 
        /**
         * @see org.springframework.beans.factory.ListableBeanFactory#
-        *      getBeanNamesForType(java.lang.Class, boolean, boolean)
+        *      getBeanNamesForType(java.lang.Class, boolean, boolean)
         */
        public String[] getBeanNamesForType(Class type, boolean 
includePrototypes,
                        boolean includeFactoryBeans)
@@ -216,8 +218,8 @@
        }
 
        /**
-        * @see 
org.springframework.beans.factory.ListableBeanFactory#getBeansOfType( 
java.lang.Class,
-        *      boolean, boolean)
+        * @see 
org.springframework.beans.factory.ListableBeanFactory#getBeansOfType(java.lang.Class,
+        *      boolean, boolean)
         */
        public Map getBeansOfType(Class type, boolean includePrototypes, 
boolean includeFactoryBeans)
                        throws BeansException
@@ -267,7 +269,7 @@
 
        /**
         * @see 
org.springframework.context.MessageSource#getMessage(java.lang.String,
-        *      java.lang.Object[], java.lang.String, java.util.Locale)
+        *      java.lang.Object[], java.lang.String, java.util.Locale)
         */
        public String getMessage(String code, Object[] args, String 
defaultMessage, Locale locale)
        {
@@ -276,7 +278,7 @@
 
        /**
         * @see 
org.springframework.context.MessageSource#getMessage(java.lang.String,
-        *      java.lang.Object[], java.util.Locale)
+        *      java.lang.Object[], java.util.Locale)
         */
        public String getMessage(String code, Object[] args, Locale locale)
                        throws NoSuchMessageException
@@ -286,7 +288,7 @@
 
        /**
         * @see 
org.springframework.context.MessageSource#getMessage(org.springframework
-        *      .context.MessageSourceResolvable, java.util.Locale)
+        *      .context.MessageSourceResolvable, java.util.Locale)
         */
        public String getMessage(MessageSourceResolvable resolvable, Locale 
locale)
                        throws NoSuchMessageException
@@ -296,7 +298,7 @@
 
        /**
         * @see 
org.springframework.core.io.support.ResourcePatternResolver#getResources
-        *      (java.lang.String)
+        *      (java.lang.String)
         */
        public Resource[] getResources(String locationPattern) throws 
IOException
        {
@@ -321,7 +323,7 @@
 
        /**
         * @see org.springframework.beans.factory.HierarchicalBeanFactory#
-        *      containsLocalBean(java.lang.String)
+        *      containsLocalBean(java.lang.String)
         */
        public boolean containsLocalBean(String arg0)
        {
@@ -336,4 +338,40 @@
                throw new UnsupportedOperationException();
        }
 
+       /**
+        * @see org.springframework.context.ApplicationContext#getId()
+        */
+       public String getId()
+       {
+               throw new UnsupportedOperationException();
+
+       }
+
+       /**
+        * @see 
org.springframework.beans.factory.BeanFactory#getBean(java.lang.String,
+        *      java.lang.Object[])
+        */
+       public Object getBean(String name, Object[] args) throws BeansException
+       {
+               throw new UnsupportedOperationException();
+
+       }
+
+       /**
+        * @see 
org.springframework.beans.factory.BeanFactory#isPrototype(java.lang.String)
+        */
+       public boolean isPrototype(String name) throws 
NoSuchBeanDefinitionException
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       /**
+        * @see 
org.springframework.beans.factory.BeanFactory#isTypeMatch(java.lang.String,
+        *      java.lang.Class)
+        */
+       public boolean isTypeMatch(String name, Class targetType) throws 
NoSuchBeanDefinitionException
+       {
+               throw new UnsupportedOperationException();
+       }
+
 }


Reply via email to