[jira] Commented: (WICKET-2618) Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count
[ https://issues.apache.org/jira/browse/WICKET-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12793969#action_12793969 ] Juergen Donnerstag commented on WICKET-2618: Since 1.4.x releases must remain backwards compatible, no changes to the API are permitted. It'll be considered for 1.5 than. Question on your application: I assume you are not using something like first prev 1 2 3 4 5 ... 10 next last in your app, since for that to work you'll obviously need the size. Please consider that with your changes since the implementation has to work many use cases. Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count Key: WICKET-2618 URL: https://issues.apache.org/jira/browse/WICKET-2618 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.4 Reporter: Michael Mikhulya IDataProvider has two mehtods: Iterator? extends T iterator(int first, int count); int size() which in many implementations do access to database. Normally iterator do SQL query with LIMIT and OFFSET, and size do SQL COUNT query. SQL COUNT is O(N) for most transactional databases (e.g. for postgresql) and so it is rather heavy. In some cases it is possible to avoid call to IDataProvider.size method. For example when iterator returned the number of elements less than acquired count. This case appears in 90% in my application (whenever search is used normally number of found elements is less than number of elements on page). Also pgFouine shows me these queries as the most slow one. So I suggest to implement this optimization. First I though that appropriate place to implement it is AbstractPageableView class, but unfortunatelly not all IPageable classes extends this abstract class (for example DataTable doesn't do so). So I suggest to implement Decorator of IDataProvider and reuse it in DataViewBase, DataTable, ... If nobody see any problems with this suggestion I would like to implement it on my own. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2618) Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count
[ https://issues.apache.org/jira/browse/WICKET-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12793972#action_12793972 ] Michael Mikhulya commented on WICKET-2618: -- no changes in API required Size will be calculated precisely from result of iterator when it is possible. In case when it is not possible then decorator will forward to size() of delegate object. I believe changes shouldn't be complex, will check it on monday. Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count Key: WICKET-2618 URL: https://issues.apache.org/jira/browse/WICKET-2618 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.4 Reporter: Michael Mikhulya IDataProvider has two mehtods: Iterator? extends T iterator(int first, int count); int size() which in many implementations do access to database. Normally iterator do SQL query with LIMIT and OFFSET, and size do SQL COUNT query. SQL COUNT is O(N) for most transactional databases (e.g. for postgresql) and so it is rather heavy. In some cases it is possible to avoid call to IDataProvider.size method. For example when iterator returned the number of elements less than acquired count. This case appears in 90% in my application (whenever search is used normally number of found elements is less than number of elements on page). Also pgFouine shows me these queries as the most slow one. So I suggest to implement this optimization. First I though that appropriate place to implement it is AbstractPageableView class, but unfortunatelly not all IPageable classes extends this abstract class (for example DataTable doesn't do so). So I suggest to implement Decorator of IDataProvider and reuse it in DataViewBase, DataTable, ... If nobody see any problems with this suggestion I would like to implement it on my own. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893435 - /wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java
Author: jdonnerstag Date: Wed Dec 23 09:05:23 2009 New Revision: 893435 URL: http://svn.apache.org/viewvc?rev=893435view=rev Log: WICKET-2591 Allow subclasses of AuthenticatedWebSession to set signedIn field Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java?rev=893435r1=893434r2=893435view=diff == --- wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java (original) +++ wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java Wed Dec 23 09:05:23 2009 @@ -30,9 +30,6 @@ */ public abstract class AuthenticatedWebSession extends WebSession { - /** -* -*/ private static final long serialVersionUID = 1L; /** @@ -117,4 +114,18 @@ { signedIn = false; } + + /** +* Cookie based logins (remember me) may not rely on putting username and password into the +* cookie but something else that safely identifies the user. This method is meant to support +* these use cases. +* +* @see #authenticate(String, String) +* +* @param value +*/ + public final void signIn(boolean value) + { + signedIn = value; + } }
svn commit: r893439 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
Author: jdonnerstag Date: Wed Dec 23 09:09:46 2009 New Revision: 893439 URL: http://svn.apache.org/viewvc?rev=893439view=rev Log: Allow subclasses of AuthenticatedWebSession to set signedIn field Issue: WICKET-2591 Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java?rev=893439r1=893438r2=893439view=diff == --- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java Wed Dec 23 09:09:46 2009 @@ -231,6 +231,20 @@ } /** +* Cookie based logins (remember me) may not rely on putting username and password into the +* cookie but something else that safely identifies the user. This method is meant to support +* these use cases. +* +* @see #authenticate(String, String) +* +* @param value +*/ + public final void signIn(boolean value) + { + signedIn = value; + } + + /** * Note: You must subclass WebSession and implement your own. We didn't want to make it abstract * to force every application to implement it. Instead we throw an exception. *
[jira] Resolved: (WICKET-2591) Allow subclasses of AuthenticatedWebSession to set signedIn field
[ https://issues.apache.org/jira/browse/WICKET-2591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Juergen Donnerstag resolved WICKET-2591. Resolution: Fixed Fix Version/s: 1.5-M1 1.4.6 Assignee: Juergen Donnerstag Allow subclasses of AuthenticatedWebSession to set signedIn field --- Key: WICKET-2591 URL: https://issues.apache.org/jira/browse/WICKET-2591 Project: Wicket Issue Type: Improvement Components: wicket-auth-roles Affects Versions: 1.4.3 Reporter: Marat Radchenko Assignee: Juergen Donnerstag Fix For: 1.4.6, 1.5-M1 My app implements remember me service by setting cookie in authenticate method of custom session that subclasses AuthenticatedWebSession. In order to automatically login user if cookie present, i need to set signedIn field to true when session is created, however it isn't possible since signedIn is private and no way to set it is available. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (WICKET-2633) AjaxEditableLabel fails to focus editor upon validation errors
AjaxEditableLabel fails to focus editor upon validation errors -- Key: WICKET-2633 URL: https://issues.apache.org/jira/browse/WICKET-2633 Project: Wicket Issue Type: Bug Components: wicket-extensions Affects Versions: 1.4.5 Reporter: Petr Novotník hi all, the AjaxEditableLabel's #onError implementation fails to properly focus the editor. The problem is the javascript appended to the ajax request target; replacing the lines 460 - 462 in AjaxEditableLabel with the the below code fixes the problem. {code} target.appendJavascript({var el=wicketGet(' + editor.getMarkupId() + '); el.select(); el.focus();}); {code} many thanks in advance, pete. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2618) Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count
[ https://issues.apache.org/jira/browse/WICKET-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12793977#action_12793977 ] Johan Compagner commented on WICKET-2618: - i think there will be a small problem with this and we discussed this loads of times already... the 2 methods we have: Iterator? extends T iterator(int first, int count); int size() are called in this order if i am not mistaken: int size() Iterator? extends T iterator(int first, int count); because the result of size() is used as for the parameter count... But if you are able to extract it just from the list. Then size should just call your list and return that size and that list is then used fo give the iterator back in the iterator call. Don't call IDataProvider.size method when IDataProvider.iterator(first, count) returned the number of elements less than count Key: WICKET-2618 URL: https://issues.apache.org/jira/browse/WICKET-2618 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.4 Reporter: Michael Mikhulya IDataProvider has two mehtods: Iterator? extends T iterator(int first, int count); int size() which in many implementations do access to database. Normally iterator do SQL query with LIMIT and OFFSET, and size do SQL COUNT query. SQL COUNT is O(N) for most transactional databases (e.g. for postgresql) and so it is rather heavy. In some cases it is possible to avoid call to IDataProvider.size method. For example when iterator returned the number of elements less than acquired count. This case appears in 90% in my application (whenever search is used normally number of found elements is less than number of elements on page). Also pgFouine shows me these queries as the most slow one. So I suggest to implement this optimization. First I though that appropriate place to implement it is AbstractPageableView class, but unfortunatelly not all IPageable classes extends this abstract class (for example DataTable doesn't do so). So I suggest to implement Decorator of IDataProvider and reuse it in DataViewBase, DataTable, ... If nobody see any problems with this suggestion I would like to implement it on my own. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (WICKET-2633) AjaxEditableLabel fails to focus editor upon validation errors
[ https://issues.apache.org/jira/browse/WICKET-2633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Petr Novotník updated WICKET-2633: -- Description: hi all, the AjaxEditableLabel's #onError implementation fails to properly focus the editor. The problem is the javascript appended to the ajax request target; replacing the lines 460 - 462 in AjaxEditableLabel with the the below code fixes the problem. {code} target.appendJavascript({var el=wicketGet(' + editor.getMarkupId() + '); el.select(); el.focus();}); {code} a workaround is to subclass AjaxEditableLabel and overide the #onError method. many thanks in advance, pete. was: hi all, the AjaxEditableLabel's #onError implementation fails to properly focus the editor. The problem is the javascript appended to the ajax request target; replacing the lines 460 - 462 in AjaxEditableLabel with the the below code fixes the problem. {code} target.appendJavascript({var el=wicketGet(' + editor.getMarkupId() + '); el.select(); el.focus();}); {code} many thanks in advance, pete. AjaxEditableLabel fails to focus editor upon validation errors -- Key: WICKET-2633 URL: https://issues.apache.org/jira/browse/WICKET-2633 Project: Wicket Issue Type: Bug Components: wicket-extensions Affects Versions: 1.4.5 Reporter: Petr Novotník hi all, the AjaxEditableLabel's #onError implementation fails to properly focus the editor. The problem is the javascript appended to the ajax request target; replacing the lines 460 - 462 in AjaxEditableLabel with the the below code fixes the problem. {code} target.appendJavascript({var el=wicketGet(' + editor.getMarkupId() + '); el.select(); el.focus();}); {code} a workaround is to subclass AjaxEditableLabel and overide the #onError method. many thanks in advance, pete. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2625) WICKET-2478 correction are break
[ https://issues.apache.org/jira/browse/WICKET-2625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12793979#action_12793979 ] Juergen Donnerstag commented on WICKET-2625: Why does it make sense to cache it anyway? Shouldn't the visibility be much rather a function of the MarkupContainer that implements the tab? WICKET-2478 correction are break Key: WICKET-2625 URL: https://issues.apache.org/jira/browse/WICKET-2625 Project: Wicket Issue Type: Sub-task Components: wicket-extensions Affects Versions: 1.4.4 Reporter: Pedro Santos By increasing the array before checking with 1 the code will work when user add only one tab to component... The applied solution break the correction made for the issue WICKET-2478 I propose: ++if (tabsVisibilityCache == null || tabsVisibilityCache.length != tabs.size()) { tabsVisibilityCache = new Boolean[tabs.size()]; } --if (tabsVisibilityCache.length tabIndex + 1) --{ --Boolean[] resized = new Boolean[tabIndex + 1]; --System.arraycopy(tabsVisibilityCache, 0, resized, 0, tabsVisibilityCache.length); --tabsVisibilityCache = resized; --} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (WICKET-2607) Required fields remain required when enclsoure containing field is hidden
[ https://issues.apache.org/jira/browse/WICKET-2607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Juergen Donnerstag resolved WICKET-2607. Resolution: Duplicate It doesn't work for the same reason as in WICKET-2541. Please your the solution described there. Required fields remain required when enclsoure containing field is hidden - Key: WICKET-2607 URL: https://issues.apache.org/jira/browse/WICKET-2607 Project: Wicket Issue Type: Bug Components: wicket Affects Versions: 1.4.4 Reporter: Douglas Ferguson Attachments: testHidden.zip -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2591) Allow subclasses of AuthenticatedWebSession to set signedIn field
[ https://issues.apache.org/jira/browse/WICKET-2591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12793982#action_12793982 ] Marat Radchenko commented on WICKET-2591: - Err... public?! I thought protected access would be enough (and if it isn't for someone, he can always add public method to his WebSession and call signIn from it). Allow subclasses of AuthenticatedWebSession to set signedIn field --- Key: WICKET-2591 URL: https://issues.apache.org/jira/browse/WICKET-2591 Project: Wicket Issue Type: Improvement Components: wicket-auth-roles Affects Versions: 1.4.3 Reporter: Marat Radchenko Assignee: Juergen Donnerstag Fix For: 1.4.6, 1.5-M1 My app implements remember me service by setting cookie in authenticate method of custom session that subclasses AuthenticatedWebSession. In order to automatically login user if cookie present, i need to set signedIn field to true when session is created, however it isn't possible since signedIn is private and no way to set it is available. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893450 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java
Author: jdonnerstag Date: Wed Dec 23 09:43:40 2009 New Revision: 893450 URL: http://svn.apache.org/viewvc?rev=893450view=rev Log: (empty) Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java?rev=893450r1=893449r2=893450view=diff == --- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java Wed Dec 23 09:43:40 2009 @@ -235,11 +235,14 @@ * cookie but something else that safely identifies the user. This method is meant to support * these use cases. * +* It is protected (and not public) to enforce that cookie based authentication gets implemented +* in a subclass (like you need to subclass authenticate() for 'normal' authentication). +* * @see #authenticate(String, String) * * @param value */ - public final void signIn(boolean value) + protected final void signIn(boolean value) { signedIn = value; }
svn commit: r893451 - /wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java
Author: jdonnerstag Date: Wed Dec 23 09:44:56 2009 New Revision: 893451 URL: http://svn.apache.org/viewvc?rev=893451view=rev Log: (empty) Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java?rev=893451r1=893450r2=893451view=diff == --- wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java (original) +++ wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/AuthenticatedWebSession.java Wed Dec 23 09:44:56 2009 @@ -120,11 +120,14 @@ * cookie but something else that safely identifies the user. This method is meant to support * these use cases. * +* It is protected (and not public) to enforce that cookie based authentication gets implemented +* in a subclass (like you need to subclass authenticate() for 'normal' authentication). +* * @see #authenticate(String, String) * * @param value */ - public final void signIn(boolean value) + protected final void signIn(boolean value) { signedIn = value; }
[jira] Updated: (WICKET-2634) WicketTester doesn't handle multiple RestartResponseExceptions.
[ https://issues.apache.org/jira/browse/WICKET-2634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marat Radchenko updated WICKET-2634: Attachment: RestartResponseTest.java WicketTester doesn't handle multiple RestartResponseExceptions. --- Key: WICKET-2634 URL: https://issues.apache.org/jira/browse/WICKET-2634 Project: Wicket Issue Type: Bug Components: wicket Affects Versions: 1.4.5 Reporter: Marat Radchenko Priority: Minor Attachments: RestartResponseTest.java WicketTester doesn't handle multiple RestartResponseExceptions because it doesn't use the same loop pattern as RequestCycle.steps(). Testcase attached. Low priority, i workarounded it in my app. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (WICKET-2635) Sucessfull login on SignInPanel causes HomePage to become stateful
Sucessfull login on SignInPanel causes HomePage to become stateful -- Key: WICKET-2635 URL: https://issues.apache.org/jira/browse/WICKET-2635 Project: Wicket Issue Type: Bug Components: wicket-auth-roles Affects Versions: 1.4.5 Reporter: Marat Radchenko Attachments: 2635.tar.gz Quickstart attached. Steps to reproduce 1. Unpack attached quickstart 2. mvn jetty:run 3. Open http://localhost:8080/login 4. Enter any credentials Expected: StatelessHomePage opens Actual: exception happends, StatelessHomePage isn't stateless Problem analysis: 1. SignInForm manually creates page. 2. AbstractListenerInterfaceRequestTarget.onProcessEvents calls requestCycle.setRedirect(true) 3. RequestCycle.urlFor(final Component component, final RequestListenerInterface listener, ValueMap params) calls page.setPageStateless(Boolean.FALSE) 4. StatelessChecker isn't happy. Fix is simple - SignInForm.onSignInSucceeded should be: if (!continueToOriginalDestination()) { setResponsePage(getApplication().getHomePage()); } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (WICKET-2635) Sucessfull login on SignInPanel causes HomePage to become stateful
[ https://issues.apache.org/jira/browse/WICKET-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marat Radchenko updated WICKET-2635: Attachment: 2635.tar.gz Sucessfull login on SignInPanel causes HomePage to become stateful -- Key: WICKET-2635 URL: https://issues.apache.org/jira/browse/WICKET-2635 Project: Wicket Issue Type: Bug Components: wicket-auth-roles Affects Versions: 1.4.5 Reporter: Marat Radchenko Attachments: 2635.tar.gz Quickstart attached. Steps to reproduce 1. Unpack attached quickstart 2. mvn jetty:run 3. Open http://localhost:8080/login 4. Enter any credentials Expected: StatelessHomePage opens Actual: exception happends, StatelessHomePage isn't stateless Problem analysis: 1. SignInForm manually creates page. 2. AbstractListenerInterfaceRequestTarget.onProcessEvents calls requestCycle.setRedirect(true) 3. RequestCycle.urlFor(final Component component, final RequestListenerInterface listener, ValueMap params) calls page.setPageStateless(Boolean.FALSE) 4. StatelessChecker isn't happy. Fix is simple - SignInForm.onSignInSucceeded should be: if (!continueToOriginalDestination()) { setResponsePage(getApplication().getHomePage()); } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (WICKET-1469) New Wicket tag 'wicket:for'
[ https://issues.apache.org/jira/browse/WICKET-1469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Erik van Oosten updated WICKET-1469: Attachment: WICKET-1469-for-wicket-1.4.x.patch Attachment WICKET-1469-for-wicket-1.4.x.patch can be applied to branch 1.4.x. Supported: - wicket:for attribute, value refers to any component - during rendering the for attribute is generated with as value the referred component's markup id - referred component's will automatically render its markup id when it is located /after/ the wicket:for attribute in the markup stream Not supported: - referred component will /not/ automatically render its markup id when it is located before the wicket:for attribute in the markup stream Any clues on how to support the latter are much appreciated. The alternative is to remove auto rendering of markup ids completely. New Wicket tag 'wicket:for' --- Key: WICKET-1469 URL: https://issues.apache.org/jira/browse/WICKET-1469 Project: Wicket Issue Type: New Feature Components: wicket Affects Versions: 1.3.2 Reporter: Jan Kriesten Priority: Minor Fix For: 1.5-M1 Attachments: WICKET-1469-for-wicket-1.4.x.patch This often happens during my daily work: You create a form with labels and corresponding input fields. As it is now, you have to bind all those Labels and FormComponents together with some boilerplate code within Java. I'd like to suggest the following enhancement Wicket tag: label wicket:for=username wicket:messge=keydefault message/label where wicket:for contains the referenced wicket:id -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.5, 1.4.4, 1.4.3, 1.4.2 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
[ https://issues.apache.org/jira/browse/WICKET-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Richard Wilkinson updated WICKET-2636: -- Attachment: enclosure-component.zip Quickstart attached which shows the bug Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.2, 1.4.3, 1.4.4, 1.4.5 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson Attachments: enclosure-component.zip When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
[ https://issues.apache.org/jira/browse/WICKET-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12794117#action_12794117 ] Juergen Donnerstag commented on WICKET-2636: As side note: copied from http://cwiki.apache.org/WICKET/wickets-xhtml-tags.html wicket:component - Creates a Wicket component on the fly. Needs a class attribute. Though this has been in wicket for a long time, it is still kind of an unsupported feature, as most of the core developers believe that this may lead to misuse of the framework. Before heavily relying on this feature, you might want to contact the user list to discuss alternative strategies. (THIS TAG IS NOT SUPPORTED BY THE CORE TEAM) See WICKET-2541 for a similar problem. Since the solution is so simple, we'll rather strive for a small and easy to maintain Enclosure implementation, than adding lots of (complicated) magic for it to work in every circumstance. But of course is just my opinion Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.2, 1.4.3, 1.4.4, 1.4.5 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson Attachments: enclosure-component.zip When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893581 - /wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
Author: jdonnerstag Date: Wed Dec 23 17:32:10 2009 New Revision: 893581 URL: http://svn.apache.org/viewvc?rev=893581view=rev Log: WICKET-2635 fixed Sucessfull login on SignInPanel causes HomePage to become stateful Modified: wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java Modified: wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java?rev=893581r1=893580r2=893581view=diff == --- wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java (original) +++ wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java Wed Dec 23 17:32:10 2009 @@ -234,8 +234,7 @@ // original destination, otherwise to the Home page if (!continueToOriginalDestination()) { - setResponsePage(getApplication().getSessionSettings().getPageFactory().newPage( - getApplication().getHomePage())); + setResponsePage(getApplication().getHomePage()); } }
svn commit: r893585 - /wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java
Author: jdonnerstag Date: Wed Dec 23 17:48:06 2009 New Revision: 893585 URL: http://svn.apache.org/viewvc?rev=893585view=rev Log: WICKET-2635 fixed Sucessfull login on SignInPanel causes HomePage to become stateful Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java Modified: wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java?rev=893585r1=893584r2=893585view=diff == --- wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java (original) +++ wicket/branches/wicket-1.4.x/wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/SignInPanel.java Wed Dec 23 17:48:06 2009 @@ -236,8 +236,7 @@ // otherwise to the Home page if (!continueToOriginalDestination()) { - setResponsePage(getApplication().getSessionSettings().getPageFactory().newPage( - getApplication().getHomePage())); + setResponsePage(getApplication().getHomePage()); } } }
[jira] Created: (WICKET-2637) Lithuanian translation for the Application.properties
Lithuanian translation for the Application.properties - Key: WICKET-2637 URL: https://issues.apache.org/jira/browse/WICKET-2637 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.5 Reporter: Girts Ziemelis Attachments: Application_lt.properties Attachet is Application_lt.properties file for Lithuanian translation -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (WICKET-2637) Lithuanian translation for the Application.properties
[ https://issues.apache.org/jira/browse/WICKET-2637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Girts Ziemelis updated WICKET-2637: --- Attachment: Application_lt.properties Lithuanian translation for the Application.properties - Key: WICKET-2637 URL: https://issues.apache.org/jira/browse/WICKET-2637 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.5 Reporter: Girts Ziemelis Attachments: Application_lt.properties Attachet is Application_lt.properties file for Lithuanian translation -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
[ https://issues.apache.org/jira/browse/WICKET-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Vaynberg resolved WICKET-2636. --- Resolution: Fixed Fix Version/s: 1.5-M1 Assignee: Igor Vaynberg we keep auto components around after render in 1.5.x so this works there. for now you have to use something other then wicket:container inside the enclosure Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.2, 1.4.3, 1.4.4, 1.4.5 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson Assignee: Igor Vaynberg Fix For: 1.5-M1 Attachments: enclosure-component.zip When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (WICKET-2637) Lithuanian translation for the Application.properties
[ https://issues.apache.org/jira/browse/WICKET-2637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Vaynberg reassigned WICKET-2637: - Assignee: Igor Vaynberg Lithuanian translation for the Application.properties - Key: WICKET-2637 URL: https://issues.apache.org/jira/browse/WICKET-2637 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.5 Reporter: Girts Ziemelis Assignee: Igor Vaynberg Fix For: 1.4.6, 1.5-M1 Attachments: Application_lt.properties Attachet is Application_lt.properties file for Lithuanian translation -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893588 - /wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties
Author: ivaynberg Date: Wed Dec 23 18:06:26 2009 New Revision: 893588 URL: http://svn.apache.org/viewvc?rev=893588view=rev Log: WICKET-2637 Lithuanian translation for the Application.properties Issue: WICKET-2637 Added: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties (with props) Added: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties?rev=893588view=auto == --- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties (added) +++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties Wed Dec 23 18:06:26 2009 @@ -0,0 +1,48 @@ +# 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. +Required=punktas '${label}' yra privalomas +IConverter='${input}' netinkamas ${type}. + +RangeValidator=${input} tai nepatenka \u012F interval\u0105 ${minimum} iki ${maximum}. +MinimumValidator='${input}' ma\u017Eiau u\u017E minimal\u0173 ${minimum}. +MaximumValidator='${input}' daugiau u\u017E maksimal\u0173 ${maximum}. +NumberValidator.positive='${input}' turi b\u016Bti teigiamas. +NumberValidator.negative='${input}' turi b\u016Bti neigiamas. + +StringValidator.range='${input}' n\u0117ra tarp ${minimum} ir ${maximum} reik\u0161mi\u0173 ilgio +StringValidator.minimum='${input}' trumpesnis u\u017E minimali\u0105 ${minimum} reik\u0161m\u0119. +StringValidator.maximum='${input}' ilgesnis u\u017E maksimali\u0105 ${maximum} reik\u0161m\u0119. +StringValidator.exact='${input}' neatitinka tikslaus ${exact} reik\u0161m\u0117s ilgio + +DateValidator.range='${input}' n\u0117ra tarp ${minimum} ir ${maximum}. +DateValidator.minimum='${input}' ma\u017Eiau u\u017E minimum\u0105 ${minimum}. +DateValidator.maximum='${input}' daugiau u\u017E maksimum\u0105 ${maximum}. + +PatternValidator='${input}' neatitinka '${pattern}'. +EmailAddressValidator='${input}' netinkamas el. Pa\u0161to adresas +CreditCardValidator=negaliojantis kreditin\u0117s kortel\u0117s numeris +UrlValidator='${input}' netinkamas URL. + +EqualInputValidator='${input0}' nuo ${label0} ir '${input1}' nuo ${label1} turi b\u016Bti vienodi. +EqualPasswordInputValidator=${label0} ir ${label1} turi b\u016Bti vienodi. + +null=Pasirinkite +nullValid= + +PagingNavigator.first=\u012E pirm\u0105 puslap\u012F +PagingNavigator.previous=\u012F prie\u0161tai buvus\u012F puslap\u012F +PagingNavigator.next=\u012F sekant\u012F puslap\u012F +PagingNavigator.last=\u012F paskutin\u012F puslap\u012F +PagingNavigation.page=\u012F puslap\u012F ${page} Propchange: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/Application_lt.properties -- svn:mime-type = text/plain
[jira] Resolved: (WICKET-2637) Lithuanian translation for the Application.properties
[ https://issues.apache.org/jira/browse/WICKET-2637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor Vaynberg resolved WICKET-2637. --- Resolution: Fixed Fix Version/s: 1.5-M1 1.4.6 Lithuanian translation for the Application.properties - Key: WICKET-2637 URL: https://issues.apache.org/jira/browse/WICKET-2637 Project: Wicket Issue Type: Improvement Components: wicket Affects Versions: 1.4.5 Reporter: Girts Ziemelis Assignee: Igor Vaynberg Fix For: 1.4.6, 1.5-M1 Attachments: Application_lt.properties Attachet is Application_lt.properties file for Lithuanian translation -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893589 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties
Author: ivaynberg Date: Wed Dec 23 18:06:47 2009 New Revision: 893589 URL: http://svn.apache.org/viewvc?rev=893589view=rev Log: WICKET-2637 Lithuanian translation for the Application.properties Issue: WICKET-2637 Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties (with props) Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties?rev=893589view=auto == --- wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties (added) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties Wed Dec 23 18:06:47 2009 @@ -0,0 +1,48 @@ +# 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. +Required=punktas '${label}' yra privalomas +IConverter='${input}' netinkamas ${type}. + +RangeValidator=${input} tai nepatenka \u012F interval\u0105 ${minimum} iki ${maximum}. +MinimumValidator='${input}' ma\u017Eiau u\u017E minimal\u0173 ${minimum}. +MaximumValidator='${input}' daugiau u\u017E maksimal\u0173 ${maximum}. +NumberValidator.positive='${input}' turi b\u016Bti teigiamas. +NumberValidator.negative='${input}' turi b\u016Bti neigiamas. + +StringValidator.range='${input}' n\u0117ra tarp ${minimum} ir ${maximum} reik\u0161mi\u0173 ilgio +StringValidator.minimum='${input}' trumpesnis u\u017E minimali\u0105 ${minimum} reik\u0161m\u0119. +StringValidator.maximum='${input}' ilgesnis u\u017E maksimali\u0105 ${maximum} reik\u0161m\u0119. +StringValidator.exact='${input}' neatitinka tikslaus ${exact} reik\u0161m\u0117s ilgio + +DateValidator.range='${input}' n\u0117ra tarp ${minimum} ir ${maximum}. +DateValidator.minimum='${input}' ma\u017Eiau u\u017E minimum\u0105 ${minimum}. +DateValidator.maximum='${input}' daugiau u\u017E maksimum\u0105 ${maximum}. + +PatternValidator='${input}' neatitinka '${pattern}'. +EmailAddressValidator='${input}' netinkamas el. Pa\u0161to adresas +CreditCardValidator=negaliojantis kreditin\u0117s kortel\u0117s numeris +UrlValidator='${input}' netinkamas URL. + +EqualInputValidator='${input0}' nuo ${label0} ir '${input1}' nuo ${label1} turi b\u016Bti vienodi. +EqualPasswordInputValidator=${label0} ir ${label1} turi b\u016Bti vienodi. + +null=Pasirinkite +nullValid= + +PagingNavigator.first=\u012E pirm\u0105 puslap\u012F +PagingNavigator.previous=\u012F prie\u0161tai buvus\u012F puslap\u012F +PagingNavigator.next=\u012F sekant\u012F puslap\u012F +PagingNavigator.last=\u012F paskutin\u012F puslap\u012F +PagingNavigation.page=\u012F puslap\u012F ${page} Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application_lt.properties -- svn:mime-type = text/plain
[jira] Commented: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
[ https://issues.apache.org/jira/browse/WICKET-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12794135#action_12794135 ] Juergen Donnerstag commented on WICKET-2636: Do we? For now the markup is available early but we don't yet add the auto components early and thus still remove them. Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.2, 1.4.3, 1.4.4, 1.4.5 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson Assignee: Igor Vaynberg Fix For: 1.5-M1 Attachments: enclosure-component.zip When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (WICKET-2636) Wicket enclosure cannot find wicket container children when hidden and in an extended page
[ https://issues.apache.org/jira/browse/WICKET-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12794142#action_12794142 ] Igor Vaynberg commented on WICKET-2636: --- oh, i thought you already made the change that autos are not removed. i tested the quickstart on trunk and it worked... Wicket enclosure cannot find wicket container children when hidden and in an extended page -- Key: WICKET-2636 URL: https://issues.apache.org/jira/browse/WICKET-2636 Project: Wicket Issue Type: Bug Affects Versions: 1.4.2, 1.4.3, 1.4.4, 1.4.5 Environment: Java 6, Linux 64bit Reporter: Richard Wilkinson Assignee: Igor Vaynberg Fix For: 1.5-M1 Attachments: enclosure-component.zip When you have a wicket:enclosure, which is in a page which extends markup of another page, then it cannot find wicket:container components which are inside it, when it is hidden. wicket:extend wicket:enclosure child=child div wicket:id=div/div wicket:container wicket:id=container/wicket:container div wicket:id=child/div /wicket:enclosure /wicket:extend It gives the normal wicket component not found exception, that you get when you don't reference the wicket:id in markup. Change the wicket:container to a div (or other html element) and it works correctly. Works on 1.4.1, 1.4.2 gives a different error, 1.4.3-1.4.5 give the error described here. It only seems to happen if the page extends markup, if you place it into a page which does not extend markup it works. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r893608 [2/2] - in /wicket/trunk/wicket/src/main/java/org/apache/wicket/ng: request/ request/component/ request/cycle/ request/handler/ request/handler/impl/ request/handler/impl/render/ r
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ThreadsafeCompoundRequestMapper.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ThreadsafeCompoundRequestMapper.java?rev=893608r1=893607r2=893608view=diff == --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ThreadsafeCompoundRequestMapper.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ThreadsafeCompoundRequestMapper.java Wed Dec 23 19:24:13 2009 @@ -37,28 +37,9 @@ */ public class ThreadsafeCompoundRequestMapper implements ICompoundRequestMapper { - /* -* (non-Javadoc) -* -* @seeorg.apache.wicket.request.ICompoundRequestMapper#register(org.apache.wicket.request. -* IRequestMapper) -*/ - public void register(IRequestMapper encoder) - { - mappers.add(0, encoder); - } - - /* -* (non-Javadoc) + /** * -* @seeorg.apache.wicket.request.ICompoundRequestMapper#unregister(org.apache.wicket.request. -* IRequestMapper) */ - public void unregister(IRequestMapper encoder) - { - mappers.remove(encoder); - } - private static class EncoderWithSegmentsCount implements ComparableEncoderWithSegmentsCount { private final IRequestMapper mapper; @@ -79,7 +60,32 @@ { return mapper; } - }; + } + + private final ListIRequestMapper mappers = new CopyOnWriteArrayListIRequestMapper(); + + /** +* Construct. +*/ + public ThreadsafeCompoundRequestMapper() + { + } + + /** +* @see org.apache.wicket.ng.request.ICompoundRequestMapper#register(org.apache.wicket.ng.request.IRequestMapper) +*/ + public void register(IRequestMapper encoder) + { + mappers.add(0, encoder); + } + + /** +* @see org.apache.wicket.ng.request.ICompoundRequestMapper#unregister(org.apache.wicket.ng.request.IRequestMapper) +*/ + public void unregister(IRequestMapper encoder) + { + mappers.remove(encoder); + } /** * Searches the registered {...@link IRequestMapper}s to find one that can decode the @@ -142,8 +148,6 @@ return null; } - private final ListIRequestMapper mappers = new CopyOnWriteArrayListIRequestMapper(); - /** * The scope of the compound mapper is the highest score of the registered mappers. * @@ -158,5 +162,4 @@ } return score; } - } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/info/ComponentInfo.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/info/ComponentInfo.java?rev=893608r1=893607r2=893608view=diff == --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/info/ComponentInfo.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/info/ComponentInfo.java Wed Dec 23 19:24:13 2009 @@ -31,14 +31,57 @@ */ public class ComponentInfo { + private static final char BEHAVIOR_INDEX_SEPARATOR = '.'; + private static final char SEPARATOR = '-'; + + private static final String TMP_PLACEHOLDER = [[[WICKET[[TMP]]DASH]] + Math.random() + + ; + + /** +* +* @param path +* @return +*/ + private static String encodeComponentPath(String path) + { + if (path != null) + { + path = path.replace( + SEPARATOR, TMP_PLACEHOLDER); + path = path.replace(':', SEPARATOR); + path = path.replace(TMP_PLACEHOLDER, + SEPARATOR + SEPARATOR); + return path; + } + else + { + return null; + } + } + + /** +* +* @param path +* @return +*/ + private static String decodeComponentPath(String path) + { + if (path != null) + { + path = path.replace( + SEPARATOR + SEPARATOR, TMP_PLACEHOLDER); + path = path.replace(SEPARATOR, ':'); + path = path.replace(TMP_PLACEHOLDER, + SEPARATOR); + return path; + } + else + { + return null; + } + } + private final String listenerInterface; private final