You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Frank Bille <fr...@apache.org> on 2009/01/18 12:24:37 UTC

[VOTE] Release Apache Wicket 1.4 release candidate 2

Hey all,

I have build the second release candidate of version 1.4 and put it on my
p.a.o account for you to test.

Distribution:
http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/

Maven repo:
http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/m2-repo/

RAT log:
http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/apache-wicket-1.4-rc2.rat.log

The artifacts has been build and signed by me, so use this KEYS file to
verify that they have not been modified along the way:
http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/KEYS


It's the usual procedure: We, as a community (and specially the PMC members)
are to make sure that the release is solid both technically but also
legally. Therefore if you have the time here some examples on what to test
in the release:

- Run "mvn clean install" in the distribution to make sure that it builds,
tests run without failures and installs correctly in you environment.
- Run "mvn jetty:run" in the wicket-examples directory in the distribution
to run a jetty server with the examples. Then point a browser to
http://localhost:8080/wicket-examples and click around. The more
browsers/operating system combinations the better.
- Look through the RAT log to see if there is anything that looks wrong in
terms of which files should have a license header.
- Verify the signatures of the files matches my public key.
- Try out the maven repo with your project to see if it works as expected.
- Look through the distribution in general to see that it looks as expected
and that the files there contain what is expected (this is a bit vague, but
follow your intuition. And YES, this time the javadocs ARE included.. so
please check them as well)


[ ] Yes release Apache Wicket 1.4 RC2
[ ] No, don't release because....


Regards,
Frank

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Igor Vaynberg <ig...@gmail.com>.
On Sun, Jan 18, 2009 at 3:24 AM, Frank Bille <fr...@apache.org> wrote:

[x] Yes release Apache Wicket 1.4 RC2


-igor

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Jan Kriesten <kr...@mail.footprint.de>.
> [X] Yes release Apache Wicket 1.4 RC2
> [ ] No, don't release because....

Regards, --- Jan.

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Juergen Donnerstag <ju...@gmail.com>.
I've reverted the change to servletwebrequest (caching the ajax flag)
but kept the improvements to wickettester to simplify ajax request
creation.

@Timo: could you please test your application to make sure it is a
drop in replacement. Thanks.

Juergen

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
On Mon, 26 Jan 2009, Frank Bille Jensen wrote:
> So trunk is now in a releasable state again? :-)

Exactly!

Best wishes,
Timo

-- 
Timo Rantalaiho           
Reaktor Innovations Oy    <URL: http://www.ri.fi/ >

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Frank Bille Jensen <fr...@apache.org>.
On 25/01/2009, at 23.37, Timo Rantalaiho wrote:

> On Fri, 23 Jan 2009, Juergen Donnerstag wrote:
>> Since the problem was in WicketTester, I wonder whether you (Timo)
>> could quickly apply the patch below. It fixes caching the isajax
>> information which has been the underlying reason for 1910. All tests,
>> including you latest one, are working fine on my computer.
>
> Yep, I shipped it in and managed to test that everything
> works on the couple of projects I've used for testing. The
> problem was clearly just in the WicketTester changes and
> resolved by your earlier commit.


So trunk is now in a releasable state again? :-)

Frank

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
On Fri, 23 Jan 2009, Juergen Donnerstag wrote:
> Since the problem was in WicketTester, I wonder whether you (Timo)
> could quickly apply the patch below. It fixes caching the isajax
> information which has been the underlying reason for 1910. All tests,
> including you latest one, are working fine on my computer.

Yep, I shipped it in and managed to test that everything 
works on the couple of projects I've used for testing. The 
problem was clearly just in the WicketTester changes and 
resolved by your earlier commit.

Great!

Best wishes,
Timo

-- 
Timo Rantalaiho           
Reaktor Innovations Oy    <URL: http://www.ri.fi/ >

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Juergen Donnerstag <ju...@gmail.com>.
Since the problem was in WicketTester, I wonder whether you (Timo)
could quickly apply the patch below. It fixes caching the isajax
information which has been the underlying reason for 1910. All tests,
including you latest one, are working fine on my computer.

Juergen


### Eclipse Workspace Patch 1.0
#P wicket
Index: src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
===================================================================
--- src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java	(revision
736410)
+++ src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java	(working
copy)
@@ -60,6 +60,9 @@

 	private int previousUrlDepth;

+	/** Marks this request as an ajax request. */
+	private boolean ajax;
+
 	private boolean forceNewVersion = false;

 	/**
@@ -71,6 +74,21 @@
 	public ServletWebRequest(final HttpServletRequest httpServletRequest)
 	{
 		this.httpServletRequest = httpServletRequest;
+
+		ajax = false;
+		String ajaxHeader = httpServletRequest.getHeader("Wicket-Ajax");
+		if (Strings.isEmpty(ajaxHeader) == false)
+		{
+			try
+			{
+				ajax = Strings.isTrue(ajaxHeader);
+			}
+			catch (StringValueConversionException e)
+			{
+				// We are not interested in this exception but we log it anyway
+				log.debug("Couldn't convert the Wicket-Ajax header: " + ajaxHeader);
+			}
+		}
 	}

 	/**
@@ -412,6 +430,28 @@
 	}

 	/**
+	 * This will return true if the header "Wicket-Ajax" is set.
+	 *
+	 * @see org.apache.wicket.protocol.http.WebRequest#isAjax()
+	 */
+	@Override
+	public final boolean isAjax()
+	{
+		return ajax;
+	}
+
+	/**
+	 * THIS IS FOR WICKET INTERNAL USE ONLY. DO NOT USE IT IN YOUR APPLICATION.
+	 *
+	 * @param ajax
+	 *            ajax
+	 */
+	public final void setAjax(boolean ajax)
+	{
+		this.ajax = ajax;
+	}
+
+	/**
 	 * This method by default calls isAjax(), wicket ajax request do
have an header set. And for all
 	 * the ajax request the versioning should be merged with the
previous one. And when it sees that
 	 * the current request is a redirect to page request the version
will also be merged with the
@@ -497,30 +537,6 @@
 	}

 	/**
-	 * @see org.apache.wicket.protocol.http.WebRequest#isAjax()
-	 *
-	 * @FIXME in 1.5 see wicket-1910 and revision 730362
-	 */
-	@Override
-	public boolean isAjax()
-	{
-		String ajaxHeader = httpServletRequest.getHeader("Wicket-Ajax");
-		if (Strings.isEmpty(ajaxHeader) == false)
-		{
-			try
-			{
-				return Strings.isTrue(ajaxHeader);
-			}
-			catch (StringValueConversionException e)
-			{
-				// We are not interested in this exception but we log it anyway
-				log.debug("Couldn't convert the Wicket-Ajax header: " + ajaxHeader);
-			}
-		}
-		return false;
-	}
-
-	/**
 	 * @see java.lang.Object#toString()
 	 */
 	@Override

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
On Thu, 22 Jan 2009, Juergen Donnerstag wrote:
> please have another try. Your test is now working

Yes, and the real projects as well! Great!

>From your commit I can see that it was pretty close already :)

So as far as I can tell, the trunk is in releaseble shape 
again.

Cheers,
Timo

-- 
Timo Rantalaiho           
Reaktor Innovations Oy    <URL: http://www.ri.fi/ >

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Juergen Donnerstag <ju...@gmail.com>.
please have another try. Your test is now working

Juergen

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
Hello Juergen and others,

On Wed, 21 Jan 2009, Juergen Donnerstag wrote:
> It breaks WicketTester but does it break code deployed on a servlet
> container as well? Please have a look at the change to the test cases.
> Doesn't it make ajax tests more simple and straight forward? It avoids
> that we have to code around buggy WicketTester behavior. The question
> of course is, if that is sufficient enough to break the rule.

I think that WICKET-1910 is a good catch and should
definitely be addressed -- but only in Wicket 1.5, if
existing tests cannot be preserved. 

Likewise I'm sure that there are a lot of problems with the
current state of WicketTester, but with current trunk I
cannot make WicketTester work on ajax-submitted forms at all :)

I added a simple test case (disabled in trunk) to
demonstrate the problem

  http://www.papernapkin.org/pastebin/view/4181/

Expected :New name
Actual   :Mock name
	at
	org.apache.wicket.util.tester.WicketTesterTest.testSubmittingFormWithAjaxEventSubmitsFormValues(WicketTesterTest.java:532)

As far as I can tell, the request just gets reinitialised in
executeAjaxEvent, so all values fed in with FormTester get
lost. Rolling back the changes of WICKET-1910 makes the test
pass.

For the moment I didn't even find a workaround, and even if
it would be simple, it might not be so simple to apply it in
all the necessary places in all affected projects. Just in
the projects that I know first hand, there are hundreds of
tests failing because of this. And if there's anyone else
testing ajax forms with WicketTester, they're bound to have
more. 

In a couple of projects, I confirmed that fully rolling
WICKET-1910 back fixes the problem.

That's why I think that the WicketTester changes should be
postponed to 1.5 as well.

Best wishes,
Timo

-- 
Timo Rantalaiho           
Reaktor Innovations Oy    <URL: http://www.ri.fi/ >

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Juergen Donnerstag <ju...@gmail.com>.
I know we agreed that wicket-1.4 should be a drop-in replacement for
1.3 not requiring any changes to the user code (servlet or
wickettester) to work with 1.4, e.g. no changes (except additions) to
existing public APIs. But let me quickly explain my thoughts.

It breaks WicketTester but does it break code deployed on a servlet
container as well? Please have a look at the change to the test cases.
Doesn't it make ajax tests more simple and straight forward? It avoids
that we have to code around buggy WicketTester behavior. The question
of course is, if that is sufficient enough to break the rule.

Any change except javadoc changes change the behavior in one way or
another. Hence bug fixes change the behavior as well. Though it is a
drop in replacement, the users code might still not work anymore. The
only way to make sure that the lastest 1.3 and 1.4 releases are drop
in replacements is by applying the change to 1.3 as well. Is that an
option? Actually all bugs fixed to 1.4 must than be applied to 1.3 as
well. Or do we agree that we are equally strict to 1.3 and really
don't want any change that requires any change to any (servlet or
wickettester) user code except where it is a severe bug. If that is
true than of course it has to be moved to 1.5

The patch consists of two parts. a) Caching if servletwebrequest is an
ajax request. b) fix wickettester bug to properly handle ajax requests
(discovered by introducing the ajax flag). Obviously we can not have
only one. They both only go together.

Since subclassing servletwebrequest is an easy thing to do for anybody
facing that problem, rolling it back shouldn't be a problem for
anybody. But the question to me is: are we strict on not introducing
bug fixes which break existing WicketTester based test code (but will
work in on servlet containers) and hence do require changes when
moving from 1.3 to 1.4. Don't you agree that when moving from 1.3 to
1.4 and extensive review and test of the users code is required
anyway? But where do we draw the line. May be it is better to move it
to 1.5. I don't mind. I'll revert the change.

Juergen

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Frank Bille <fr...@gmail.com>.
I will cancel this vote based on what Timo has found. Please let me know,
when it has been fixed, so I can build again.

Would it be possible (if you have time) to create a unit test to catch this?
There weren't any broken tests when I build it.

Frank

On Wed, Jan 21, 2009 at 08:25, Igor Vaynberg <ig...@gmail.com>wrote:

> 1910 was already scheduled for 1.5 with the explanation here:
>
>
> https://issues.apache.org/jira/browse/WICKET-1910?focusedCommentId=12645542#action_12645542
>
> so i am +1 for rolling it back.
>
> i think we should keep 2006 and make appropriate adjustments to wicket
> tester.
>
> -igor
>
>
> On Tue, Jan 20, 2009 at 11:20 PM, Timo Rantalaiho <Ti...@ri.fi>
> wrote:
> > Hello again,
> >
> > At least one project gets working after rolling back just
> > the WICKET-1910 changes:
> >
> > $ svn diff -r 730362:730361 > remove-WICKET-1910.patch
> > $ patch -p0 < remove-WICKET-1910.patch
> >
> > and then there is a smaller issue that for some reason some
> > tests (including WicketTesterTest.testExecuteAjaxEvent in
> > Wicket core) fail to locate some components on the test page
> > because of WICKET-2006
> >
> >  http://issues.apache.org/jira/browse/WICKET-2006
> >
> >  http://fisheye6.atlassian.com/changelog/wicket/trunk?cs=731961
> >
> > but for that, there is an easy enough workaround of doing
> > getSessionSettings().setPageIdUniquePerSession(false); in
> > the test Application.
> >
> > I'll try to make more tests still.
> >
> > But what do you think, could we roll back WICKET-1910
> >
> >  https://issues.apache.org/jira/browse/WICKET-1910
> >
> > and postpone it to 1.5?
> >
> > Best wishes,
> > Timo
> >
> >
>

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Igor Vaynberg <ig...@gmail.com>.
1910 was already scheduled for 1.5 with the explanation here:

https://issues.apache.org/jira/browse/WICKET-1910?focusedCommentId=12645542#action_12645542

so i am +1 for rolling it back.

i think we should keep 2006 and make appropriate adjustments to wicket tester.

-igor


On Tue, Jan 20, 2009 at 11:20 PM, Timo Rantalaiho <Ti...@ri.fi> wrote:
> Hello again,
>
> At least one project gets working after rolling back just
> the WICKET-1910 changes:
>
> $ svn diff -r 730362:730361 > remove-WICKET-1910.patch
> $ patch -p0 < remove-WICKET-1910.patch
>
> and then there is a smaller issue that for some reason some
> tests (including WicketTesterTest.testExecuteAjaxEvent in
> Wicket core) fail to locate some components on the test page
> because of WICKET-2006
>
>  http://issues.apache.org/jira/browse/WICKET-2006
>
>  http://fisheye6.atlassian.com/changelog/wicket/trunk?cs=731961
>
> but for that, there is an easy enough workaround of doing
> getSessionSettings().setPageIdUniquePerSession(false); in
> the test Application.
>
> I'll try to make more tests still.
>
> But what do you think, could we roll back WICKET-1910
>
>  https://issues.apache.org/jira/browse/WICKET-1910
>
> and postpone it to 1.5?
>
> Best wishes,
> Timo
>
>

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
Hello again,

At least one project gets working after rolling back just
the WICKET-1910 changes:

$ svn diff -r 730362:730361 > remove-WICKET-1910.patch
$ patch -p0 < remove-WICKET-1910.patch 

and then there is a smaller issue that for some reason some
tests (including WicketTesterTest.testExecuteAjaxEvent in
Wicket core) fail to locate some components on the test page
because of WICKET-2006

  http://issues.apache.org/jira/browse/WICKET-2006
  
  http://fisheye6.atlassian.com/changelog/wicket/trunk?cs=731961

but for that, there is an easy enough workaround of doing
getSessionSettings().setPageIdUniquePerSession(false); in
the test Application.

I'll try to make more tests still.

But what do you think, could we roll back WICKET-1910 

  https://issues.apache.org/jira/browse/WICKET-1910

and postpone it to 1.5?

Best wishes,
Timo


Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Timo Rantalaiho <Ti...@ri.fi>.
On Sun, 18 Jan 2009, Frank Bille wrote:
> [X] No, don't release because....

Unfortunately there is something that utterly breaks a huge 
amount of WicketTester tests of ajax-submitted forms :/

I think that it's at least partly caused by this

    http://fisheye6.atlassian.com/browse/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?r1=722097&r2=730362

    http://issues.apache.org/jira/browse/WICKET-1910

and that Igor hit the nail on its head with his comment
"this is purely a problem with wickettester being the way
that it is but we cannot change that functionality because
it will break any existing ajax tests." :)

What seems to happen is that in a typical ajaxified form
test you enter the input with FormTester, which stores the
data in the current request, and then submit the form with 
BaseWicketTester.executeAjaxEvent(), which assumes that the
input is in the same request. E.g. like this

    FormTester form = wicket.newFormTester("panel:tagEditorForm");
    form.setValue("artistContainer:artist", "Hurjat hipit");
    form.setValue("artistContainer:artistCheck", "true");
    submit();  // this calls executeAjaxEvent

    http://www.laughingpanda.org/fisheye/browse/djuizzboxx/trunk/jukebox/src/test/java/org/laughingpanda/djuizzboxx/ui/tageditor/TagEditorPanelSpec.java?r=85#l162

But with the change introduced in WICKET-1910, the request
is created again in executeAjaxEvent, so the input fed with
FormTester cannot be found, and tests fail

  http://www.laughingpanda.org/hudson/job/Djuizzboxx/252/console

I'll try to investigate further -- meanwhile, all ideas are 
welcome! 


I'm sorry for reporting so late -- it's mainly because I'm
still catching up after a month of holidays. Normally I
would have noticed the WicketTester changes earlier, and
should have tested with a snapshot before Frank went through
the work of preparing the release.

Best wishes,
Timo

-- 
Timo Rantalaiho           
Reaktor Innovations Oy    <URL: http://www.ri.fi/ >

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Martijn Dashorst <ma...@gmail.com>.
+1

Martijn

On Sun, Jan 18, 2009 at 12:24 PM, Frank Bille <fr...@apache.org> wrote:
> Hey all,
>
> I have build the second release candidate of version 1.4 and put it on my
> p.a.o account for you to test.
>
> Distribution:
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/
>
> Maven repo:
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/m2-repo/
>
> RAT log:
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/apache-wicket-1.4-rc2.rat.log
>
> The artifacts has been build and signed by me, so use this KEYS file to
> verify that they have not been modified along the way:
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/KEYS
>
>
> It's the usual procedure: We, as a community (and specially the PMC members)
> are to make sure that the release is solid both technically but also
> legally. Therefore if you have the time here some examples on what to test
> in the release:
>
> - Run "mvn clean install" in the distribution to make sure that it builds,
> tests run without failures and installs correctly in you environment.
> - Run "mvn jetty:run" in the wicket-examples directory in the distribution
> to run a jetty server with the examples. Then point a browser to
> http://localhost:8080/wicket-examples and click around. The more
> browsers/operating system combinations the better.
> - Look through the RAT log to see if there is anything that looks wrong in
> terms of which files should have a license header.
> - Verify the signatures of the files matches my public key.
> - Try out the maven repo with your project to see if it works as expected.
> - Look through the distribution in general to see that it looks as expected
> and that the files there contain what is expected (this is a bit vague, but
> follow your intuition. And YES, this time the javadocs ARE included.. so
> please check them as well)
>
>
> [ ] Yes release Apache Wicket 1.4 RC2
> [ ] No, don't release because....
>
>
> Regards,
> Frank
>



-- 
Become a Wicket expert, learn from the best: http://wicketinaction.com
Apache Wicket 1.3.5 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Juergen Donnerstag <ju...@gmail.com>.
+1

Juergen

Re: [VOTE] Release Apache Wicket 1.4 release candidate 2

Posted by Johan Compagner <jc...@gmail.com>.
+1

On Sun, Jan 18, 2009 at 12:24, Frank Bille <fr...@apache.org> wrote:

> Hey all,
>
> I have build the second release candidate of version 1.4 and put it on my
> p.a.o account for you to test.
>
> Distribution:
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/<http://people.apache.org/%7Efrankbille/releases/apache-wicket-1.4-rc2/dist/>
>
> Maven repo:
>
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/m2-repo/<http://people.apache.org/%7Efrankbille/releases/apache-wicket-1.4-rc2/m2-repo/>
>
> RAT log:
>
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/apache-wicket-1.4-rc2.rat.log<http://people.apache.org/%7Efrankbille/releases/apache-wicket-1.4-rc2/apache-wicket-1.4-rc2.rat.log>
>
> The artifacts has been build and signed by me, so use this KEYS file to
> verify that they have not been modified along the way:
>
> http://people.apache.org/~frankbille/releases/apache-wicket-1.4-rc2/dist/KEYS<http://people.apache.org/%7Efrankbille/releases/apache-wicket-1.4-rc2/dist/KEYS>
>
>
> It's the usual procedure: We, as a community (and specially the PMC
> members)
> are to make sure that the release is solid both technically but also
> legally. Therefore if you have the time here some examples on what to test
> in the release:
>
> - Run "mvn clean install" in the distribution to make sure that it builds,
> tests run without failures and installs correctly in you environment.
> - Run "mvn jetty:run" in the wicket-examples directory in the distribution
> to run a jetty server with the examples. Then point a browser to
> http://localhost:8080/wicket-examples and click around. The more
> browsers/operating system combinations the better.
> - Look through the RAT log to see if there is anything that looks wrong in
> terms of which files should have a license header.
> - Verify the signatures of the files matches my public key.
> - Try out the maven repo with your project to see if it works as expected.
> - Look through the distribution in general to see that it looks as expected
> and that the files there contain what is expected (this is a bit vague, but
> follow your intuition. And YES, this time the javadocs ARE included.. so
> please check them as well)
>
>
> [ ] Yes release Apache Wicket 1.4 RC2
> [ ] No, don't release because....
>
>
> Regards,
> Frank
>