Unit tests, license headers
The unittests discovered that we don't have the correct license header for the newest addition to our core project in wicket-1.x branch: WildcardMatcherHelper.java 2 points: 1. I thought we had our default new file template in place, why doesn't it work? 2. Unit tests are to be run. If a test fails, at least check if it is caused by your change wicket-1.x/wicket/src/main/java/wicket/application/WildcardMatcherHelper.java Martijn -- Vote for Wicket at http://www.thebeststuffintheworld.com/vote_for/wicket Download Wicket 1.2.3 at http://wicketframework.org
Re: License headers v2
that's one of the strangest requirements if you ask me. Why oh why do you want to force that it needs to be a binary inclusion only? Thats very strange for an opensource thing... But rewriting that.. its a file with almost only static finals.. rewriting that means that you pretty much type it over Some files should really not fall under any license but be completely public domain... johan On 11/17/06, Frank Bille [EMAIL PROTECTED] wrote: On 11/17/06, Eelco Hillenius [EMAIL PROTECTED] wrote: ClientProperties is MPL, which should be ok, right? If I understand [1] correctly then no. We must only have binary inclusion. So this actually means that we will have to either use it as a library (include echo as dependency, yeah right), or rewrite it. As far as I have understood. Correct me if I'm wrong. Frank [1]: http://www.apache.org/legal/3party.html
Re: License headers v2
But rewriting that.. its a file with almost only static finals.. rewriting that means that you pretty much type it over What we could do, and what imo would be a bit nicer, is instead of a general bucket of client properties (backed by a map), just implement those properties as actual JavaBean properties. What do you think? Frank, you feel like taking this? Eelco
Re: License headers v2
There is an issue report for it now, so in time if noone has done anything about it I will. But at the moment I'm trying to get this license header fun task done. So anyone please submit patches for WICKET-87 if you feel like it :) Frank On 11/18/06, Eelco Hillenius [EMAIL PROTECTED] wrote: But rewriting that.. its a file with almost only static finals.. rewriting that means that you pretty much type it over What we could do, and what imo would be a bit nicer, is instead of a general bucket of client properties (backed by a map), just implement those properties as actual JavaBean properties. What do you think? Frank, you feel like taking this? Eelco
Re: License headers v2
ClientProperties is MPL, which should be ok, right? Eelco On 11/16/06, Frank Bille [EMAIL PROTECTED] wrote: All, I was a little too quick placing ASL2 headers in all the .java files in 2.0. When looking trough 1.x I found some thirdparty code. I have therefore looked through all java files which doesn't have a ASL2 header but something else and the following came up: src/main/java/wicket/protocol/http/ClientProperties.java (MPL/GPL/LGPL) src/main/java/wicket/util/concurrent/ConcurrentReaderHashMap.java (SUN) src/main/java/wicket/util/concurrent/ConcurrentHashMap.java (SUN) src/main/java/wicket/util/concurrent/CopyOnWriteArrayList.java (SUN) What do we do with these? I'm still not a license expert but the first one sounds dangerous. Upayavira: I have added a notice about some ASL1.1 software in our NOTICE. Does it look ok? http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/NOTICE.txt?revision=475442pathrev=475442 Frank
Re: License headers v2
On 11/17/06, Eelco Hillenius [EMAIL PROTECTED] wrote: ClientProperties is MPL, which should be ok, right? If I understand [1] correctly then no. We must only have binary inclusion. So this actually means that we will have to either use it as a library (include echo as dependency, yeah right), or rewrite it. As far as I have understood. Correct me if I'm wrong. Frank [1]: http://www.apache.org/legal/3party.html
Re: License headers v2
You're right. I was confused with BSD. Damn. Seems like we have to rewrite it then. To the upside, this isn't very difficult. Eelco On 11/17/06, Frank Bille [EMAIL PROTECTED] wrote: On 11/17/06, Eelco Hillenius [EMAIL PROTECTED] wrote: ClientProperties is MPL, which should be ok, right? If I understand [1] correctly then no. We must only have binary inclusion. So this actually means that we will have to either use it as a library (include echo as dependency, yeah right), or rewrite it. As far as I have understood. Correct me if I'm wrong. Frank [1]: http://www.apache.org/legal/3party.html
Re: License headers v2
http://issues.apache.org/jira/browse/WICKET-87 On 11/17/06, Frank Bille [EMAIL PROTECTED] wrote: I'll add an issue and hope someone volunteers :) Frank On 11/17/06, Eelco Hillenius [EMAIL PROTECTED] wrote: You're right. I was confused with BSD. Damn. Seems like we have to rewrite it then. To the upside, this isn't very difficult. Eelco On 11/17/06, Frank Bille [EMAIL PROTECTED] wrote: On 11/17/06, Eelco Hillenius [EMAIL PROTECTED] wrote: ClientProperties is MPL, which should be ok, right? If I understand [1] correctly then no. We must only have binary inclusion. So this actually means that we will have to either use it as a library (include echo as dependency, yeah right), or rewrite it. As far as I have understood. Correct me if I'm wrong. Frank [1]: http://www.apache.org/legal/3party.html
License headers v2
All, I was a little too quick placing ASL2 headers in all the .java files in 2.0. When looking trough 1.x I found some thirdparty code. I have therefore looked through all java files which doesn't have a ASL2 header but something else and the following came up: src/main/java/wicket/protocol/http/ClientProperties.java (MPL/GPL/LGPL) src/main/java/wicket/util/concurrent/ConcurrentReaderHashMap.java (SUN) src/main/java/wicket/util/concurrent/ConcurrentHashMap.java (SUN) src/main/java/wicket/util/concurrent/CopyOnWriteArrayList.java (SUN) What do we do with these? I'm still not a license expert but the first one sounds dangerous. Upayavira: I have added a notice about some ASL1.1 software in our NOTICE. Does it look ok? http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/NOTICE.txt?revision=475442pathrev=475442 Frank
Re: License headers v2
On 11/16/06, Martijn Dashorst [EMAIL PROTECTED] wrote: These are public domain, taken from Doug Lea's concurrent utils. Sun has adopted these for Java 1.5. So for 1.x they need to be there, 2.0 they could be removed in favor of the JDK provided java.util.concurrent collections. I don't know how public domain needs to be treated, i.e. if/when we can put the Apache license header on it or not. Or perhaps just let it stay and but it in NOTICE.
license headers
just noticed the below this is a bad joke right? markup: 1line license: 14 lines are we stripping the license block somewhere? or are we sending it to the client? you include two ajax editable choices and you get two of these headers in the returned markup? -igor Modified: incubator/wicket/trunk/wicket -extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html?view=diffrev=474183r1=474182r2=474183 == --- incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html (original) +++ incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html Mon Nov 13 00:06:17 2006 @@ -1 +1,17 @@ +!-- + 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. +-- wicket:panelspan wicket:id=label[label]/spanselect wicket:id=editor/select/wicket:panel
Re: license headers
Hmm Will you get it returned? It's a panel so it's only the content of it that gets returned, right? Frank On 11/13/06, Igor Vaynberg [EMAIL PROTECTED] wrote: just noticed the below this is a bad joke right? markup: 1line license: 14 lines are we stripping the license block somewhere? or are we sending it to the client? you include two ajax editable choices and you get two of these headers in the returned markup? -igor Modified: incubator/wicket/trunk/wicket -extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html?view=diffrev=474183r1=474182r2=474183 == --- incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html (original) +++ incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html Mon Nov 13 00:06:17 2006 @@ -1 +1,17 @@ +!-- + 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. +-- wicket:panelspan wicket:id=label[label]/spanselect wicket:id=editor/select/wicket:panel
Re: license headers
But you are right though that we still have that issue with were and if we strip headers. All pages .html (not extended), .css and .js files *will* have the license header and until we come to an agreement between us and ASF they stay. And that sucks IMO Frank On 11/13/06, Igor Vaynberg [EMAIL PROTECTED] wrote: duh -igor On 11/13/06, Frank Bille [EMAIL PROTECTED] wrote: Hmm Will you get it returned? It's a panel so it's only the content of it that gets returned, right? Frank On 11/13/06, Igor Vaynberg [EMAIL PROTECTED] wrote: just noticed the below this is a bad joke right? markup: 1line license: 14 lines are we stripping the license block somewhere? or are we sending it to the client? you include two ajax editable choices and you get two of these headers in the returned markup? -igor Modified: incubator/wicket/trunk/wicket -extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html?view=diffrev=474183r1=474182r2=474183 == --- incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html (original) +++ incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html Mon Nov 13 00:06:17 2006 @@ -1 +1,17 @@ +!-- + 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. +-- wicket:panelspan wicket:id=label[label]/spanselect wicket:id=editor/select/wicket:panel
Re: license headers
And it increases memory usage. We might not transfer it to the client but we cache the markup. Juergen On 11/13/06, Frank Bille [EMAIL PROTECTED] wrote: But you are right though that we still have that issue with were and if we strip headers. All pages .html (not extended), .css and .js files *will* have the license header and until we come to an agreement between us and ASF they stay. And that sucks IMO Frank On 11/13/06, Igor Vaynberg [EMAIL PROTECTED] wrote: duh -igor On 11/13/06, Frank Bille [EMAIL PROTECTED] wrote: Hmm Will you get it returned? It's a panel so it's only the content of it that gets returned, right? Frank On 11/13/06, Igor Vaynberg [EMAIL PROTECTED] wrote: just noticed the below this is a bad joke right? markup: 1line license: 14 lines are we stripping the license block somewhere? or are we sending it to the client? you include two ajax editable choices and you get two of these headers in the returned markup? -igor Modified: incubator/wicket/trunk/wicket -extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html?view=diffrev=474183r1=474182r2=474183 == --- incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html (original) +++ incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.html Mon Nov 13 00:06:17 2006 @@ -1 +1,17 @@ +!-- + 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. +-- wicket:panelspan wicket:id=label[label]/spanselect wicket:id=editor/select/wicket:panel
Re: license headers
On 11/13/06, Juergen Donnerstag [EMAIL PROTECTED] wrote: And it increases memory usage. We might not transfer it to the client but we cache the markup. Yes thats right. That sounds like stripping license headers (or replacing with small one-line notices) at build time is the right solution.
Re: license headers
I think that is too cumbersome. I'd prefer a really simple solution. Either a one (1) line license header or nothing at all. Based on what I understood from the mailing discussing there doesn't seem to be a clear understanding within Apache if Wicket markup is required to have the license header or not. IMO the markup doesn't contain any (what was the term they used?) intellectual knowledge which needs to be protected. It is the source code that should be protected. But that of course is only my opinion. Juergen On 11/13/06, Frank Bille [EMAIL PROTECTED] wrote: On 11/13/06, Juergen Donnerstag [EMAIL PROTECTED] wrote: And it increases memory usage. We might not transfer it to the client but we cache the markup. Yes thats right. That sounds like stripping license headers (or replacing with small one-line notices) at build time is the right solution.
Re: License headers
i don't hope that #Id# is mandatory! I hate those things. Because those things mess up merging of branches because they constantly change. It is totally stupid that this is the case. A merge should ignore those completely. johan On 11/6/06, Erik van Oosten [EMAIL PROTECTED] wrote: Hi Martijn, There are checkstyle plugins for Eclipse and for IDEA. Don't know about Netbeans. In addition checkstyle is able to check for a header (even as a RE), or check for the presence/absence of any RE. I used checkstyle frequently to enforce a correct copyright header, the presence of an $Id$ tag, presence of javadoc and a lot of code formatting rules. Regards, Erik. Martijn Dashorst schreef: I was going to propose to use checkstyle instead. Problem with checkstyle is that it is not a unit test and doesn't run inside Eclipse, NetBeans or IDEA :-). -- Erik van Oosten http://www.day-to-day-stuff.blogspot.com/
Re: License headers
My point is that in checkstyle you are free to enforce both the presence _and absence_ of anything that can be expressed as a regular expression. So that includes the $Id$ tag. That I always enforce inclusion of an $Id$ is just an example. In most of my projects I don't have a lot of merging to do. I can imagine that you would enforce exclusion of $Id$ for Wicket. Regards, Erik. Johan Compagner schreef: i don't hope that #Id# is mandatory! I hate those things. Because those things mess up merging of branches because they constantly change. It is totally stupid that this is the case. A merge should ignore those completely. johan -- Erik van Oosten http://www.day-to-day-stuff.blogspot.com/
Re: License headers
I was going to propose to use checkstyle instead. Problem with checkstyle is that it is not a unit test and doesn't run inside Eclipse, NetBeans or IDEA :-). I would also (as a preliminary action) add javascript to the list (.js). We can always remove them, but at the moment, they need to be in there. I don't expect ASF to relax their stance on those files. +1 on removing the svn keywords. Martijn On 11/5/06, Frank Bille [EMAIL PROTECTED] wrote: Last night when I couldn't sleep I got this crazy idea to write a unittest for checking the source files in the project for correct license headers. When I woke up this morning the idea still seemed quite reasonable, so I cleaned it up and have now committed some code for it[1]. So what does this mean? Well to begin with the test checks the following file types: .java, .xml, .html, .properties, .fml, .css and .vm. For .java files it's checking on the new updated Apache2 license header[2], *without* our svn keywords. The developers I have talked to doesn't seem to care about those anyway, but WDYT? The test doesn't fix the headers or add the license. WDYT? Frank [1]: http://svn.apache.org/viewvc?view=revrev=471390 [2]: http://www.apache.org/legal/src-headers.html -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket;Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a
Re: License headers
But yeah I forgot the .js files. I'll add them right away. The bad thing about having it as a unittest is that it has to be copied to every subproject and can't just be run off wicket-parent. What to do with all these license headers when building binaries/sending output to client/etc. is another discussion. :) Frank On 11/5/06, Martijn Dashorst [EMAIL PROTECTED] wrote: I was going to propose to use checkstyle instead. Problem with checkstyle is that it is not a unit test and doesn't run inside Eclipse, NetBeans or IDEA :-). I would also (as a preliminary action) add javascript to the list (.js). We can always remove them, but at the moment, they need to be in there. I don't expect ASF to relax their stance on those files. +1 on removing the svn keywords. Martijn On 11/5/06, Frank Bille [EMAIL PROTECTED] wrote: Last night when I couldn't sleep I got this crazy idea to write a unittest for checking the source files in the project for correct license headers. When I woke up this morning the idea still seemed quite reasonable, so I cleaned it up and have now committed some code for it[1]. So what does this mean? Well to begin with the test checks the following file types: .java, .xml, .html, .properties, .fml, .css and .vm. For .java files it's checking on the new updated Apache2 license header[2], *without* our svn keywords. The developers I have talked to doesn't seem to care about those anyway, but WDYT? The test doesn't fix the headers or add the license. WDYT? Frank [1]: http://svn.apache.org/viewvc?view=revrev=471390 [2]: http://www.apache.org/legal/src-headers.html -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a
Re: Re: License headers
I don't know checkstyle very well, but doesn't it only handle java code? Frank On 11/5/06, Martijn Dashorst [EMAIL PROTECTED] wrote: On 11/5/06, Frank Bille [EMAIL PROTECTED] wrote: The bad thing about having it as a unittest is that it has to be copied to every subproject and can't just be run off wicket-parent. True, that is an argument for using checkstyle. Martijn -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a
Re: Re: Re: License headers
Their site is now out of order, so I couldn't check it. I thought you could supply a file pattern. Anyhow, the check could also be a unit test, and the actual checking/file scanner could be implemented in Wicket core (though it is not a specific framework concern imo). All sub projects could then implement the license check in their own unit tests. Even the base test case could be inside the 'wicket.util.license' package: protected abstract class ApacheLicenseTest extends TestCase { public void testJavaScript() { // do test } public void testCss() { // do test } public void testJava() { // do test } public void testHtml() { // do test } // etc. } Each project then only has to do (will automatically be picked up by the testrunner): public WicketApacheLicenseTest extends ApacheLicenseTest { } public WicketExtensionsApacheLicenseTest extends ApacheLicenseTest { } Martijn On 11/5/06, Frank Bille [EMAIL PROTECTED] wrote: I don't know checkstyle very well, but doesn't it only handle java code? Frank On 11/5/06, Martijn Dashorst [EMAIL PROTECTED] wrote: On 11/5/06, Frank Bille [EMAIL PROTECTED] wrote: The bad thing about having it as a unittest is that it has to be copied to every subproject and can't just be run off wicket-parent. True, that is an argument for using checkstyle. Martijn -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket;Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a
Re: License headers
Hi Martijn, There are checkstyle plugins for Eclipse and for IDEA. Don't know about Netbeans. In addition checkstyle is able to check for a header (even as a RE), or check for the presence/absence of any RE. I used checkstyle frequently to enforce a correct copyright header, the presence of an $Id$ tag, presence of javadoc and a lot of code formatting rules. Regards, Erik. Martijn Dashorst schreef: I was going to propose to use checkstyle instead. Problem with checkstyle is that it is not a unit test and doesn't run inside Eclipse, NetBeans or IDEA :-). -- Erik van Oosten http://www.day-to-day-stuff.blogspot.com/
Re: License headers
go ahead. Is there a tool that can quick fix everything? johan On 10/3/06, Martijn Dashorst [EMAIL PROTECTED] wrote: I ran the RAT tool from Apache on our distribution for 1.2.2, and it came up with the following files that don't have an ASL header. I haven't looked into it closely but I think we should clear these up. These are from the main src directory, I haven't filtered the test directory yet. D ../wicket-1.2.2/src/java/wicket/behavior !? SimpleAttributeModifier.java D ../wicket-1.2.2/src/java/wicket/markup !? IMarkupParserFactory.java !? MarkupParserFactory.java D ../wicket-1.2.2/src/java/wicket/markup/html !? AjaxServerAndClientTimeFilter.java D ../wicket-1.2.2/src/java/wicket/markup/html/panel !? ComponentFeedbackPanel.java D ../wicket-1.2.2/src/java/wicket/protocol/http !? ClientProperties.java D ../wicket-1.2.2/src/java/wicket/request/target/coding !? IndexedParamUrlCodingStrategy.java !? QueryStringUrlCodingStrategy.java D ../wicket-1.2.2/src/java/wicket/settings !? IApplicationSettings.java !? IDebugSettings.java !? IExceptionSettings.java !? IMarkupSettings.java !? IPageSettings.java !? IRequestCycleSettings.java !? IResourceSettings.java !? ISecuritySettings.java !? ISessionSettings.java D ../wicket-1.2.2/src/java/wicket/util/concurrent !? ConcurrentHashMap.java !? ConcurrentReaderHashMap.java D ../wicket-1.2.2/src/java/wicket/util/crypt !? ClassCryptFactory.java !? NoCryptFactory.java D ../wicket-1.2.2/src/java/wicket/util/diff !? AddDelta.java !? ChangeDelta.java !? Chunk.java !? DeleteDelta.java !? Delta.java !? Diff.java !? DiffAlgorithm.java !? DiffException.java ASL DiffUtil.java !? DifferentiationFailedException.java !? PatchFailedException.java !? Revision.java !? RevisionVisitor.java !? ToString.java D ../wicket-1.2.2/src/java/wicket/util/diff/myers !? DiffNode.java !? MyersDiff.java !? PathNode.java !? Snake.java Martijn -- a href=http://www.thebeststuffintheworld.com/vote_for/wicket;Vote/a for a href=http://www.thebeststuffintheworld.com/stuff/wicket Wicket/a at the a href=http://www.thebeststuffintheworld.com/;Best Stuff in the World!/a