Re: Commons logging is evil

2006-10-25 Thread Al Maw

Eelco Hillenius wrote:


But Al, maybe you want to share what problems this would fix for you?


TBH, I rely on so many other libraries that use commons-logging in most 
of my projects, that this isn't specifically going to fix anything for 
me. However, I've enough hours dealing with nasty commons-logging 
classloader pain to feel that the world would be a better place without 
it, and that we should help to hasten its demise.


Even once you have commons-logging set up properly, with all the JARs in 
the right place, it hangs onto things internally, preventing your 
webapp's classloader from being garbage collected, and leading to your 
container OutOfMemorying when you hot-deploy things. You need to call
Introspector.flushCaches() and all the rest of it in an attempt to fix 
this, and the whole thing just isn't obvious or nice. SLF4J is.


So yeah, I guess this isn't terribly important, but I figure it'd be nice.

Al


Re: Typos in BodyTagAttributeModifier javadoc

2006-11-23 Thread Al Maw

Jean-Baptiste Quenot wrote:

The javadoc is weird because the end tag  is written as a
start tag .  See attached, it's against branch 1.x.


Thanks. Applied on 1.x and 2.x.

Al


FilePageStore getWorkDir() override

2006-12-21 Thread Al Maw

Hi Guys,

I think we should add a method "protected File getWorkDir()" to 
FilePageStore so people can override things in code. Having things 
always go into javax.servlet.context.tempdir isn't convenient for me, 
and ideally I'd configure this stuff from Spring, anyway. ;-)


Sound good?

Al


Re:

2006-12-27 Thread Al Maw

Juergen Donnerstag wrote:

what do you prefer? wicket:div? wicket:span? wicket:tag? anything else?


I dislike both div and span, as this construct is really nothing to do 
with either, and they just make it confusing.


To me, at least,  is meaningless.

I like Johan's  most, as one generally uses a 
WebMarkupContainer for this, so that's most consistent.


Al


Re:

2006-12-27 Thread Al Maw

Martijn Dashorst wrote:

The only problem I have is that it will not work in any browser for
Ajax replacements. I know this is not the targetted usecase, but I
think this will confuse (novice) users.


I think this should be fairly obvious to most people.

In order for AJAX replacement to work, the element needs to have 
setOutputMarkupId(true) anyway. So if a novice understands that, then 
they'll understand why this doesn't work.


If you're worried, write an example for it (that's where 95% of people 
learn things from) and put a big comment in the markup next to it.





bla
foo



Will work in IE afaict, but


But it's not valid XHTML (or even HTML 4), so we really shouldn't 
encourage that. :)


Al


InternalFrame in 2.x

2007-01-18 Thread Al Maw

FYI

wicket.markup.html.link.InternalFrame was empty:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/link/InternalFrame.java?view=log

It's been replaced by InlineFrame, so I've removed it.

Al


Re: VOTE: include WICKET-218 in 1.2.5

2007-01-18 Thread Al Maw

Igor Vaynberg wrote:

include https://issues.apache.org/jira/browse/WICKET-218 in 1.2.5


I've only seen this once before, but why not?
+1


Re: VOTE: remove Page.before/afterCallComponent()

2007-01-25 Thread Al Maw

Frank Bille wrote:

On 1/22/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:


this api is simply too fragile. any custom requesttarget impl has to call
this in order for it to be consistent, and if its not consistent its
useless.



+1 because of fragile api.


+1
This is currently biting me for AJAX stuff.

Al


Re: Packaging our releases

2007-01-25 Thread Al Maw

Martijn Dashorst wrote:

Our current Wicket release distribution consists of several zip files,

[...]

Wheee, this is almost getting religious. :)

Maven 2 users just, errr, use Maven 2. :)

So for the others, I'd have thought it simplest to have a single zip/tgz 
download containing the wicket sub-project JARs plus all their deps. You 
can easily automate this using the mvn assembly plug-in.


Maven 2 will generate a nice dependencies report, which we should 
probably stick up somewhere, so if someone is not using Maven 2 and 
wants the smallest set of dependency libraries, they don't need to go 
hunting around to work out what they need.


-1 on all wicket sub-projects wrapped into single JAR. Spring started 
out this way and has now fragmented into sub-project JARs, and they wish 
they'd done it like that from the start. Most people will only use 
wicket and wicket-extensions.


(I'd also suggest renaming wicket to wicket-core, as it makes it more 
obvious there are other modules available, but whatever.)


Al


Re: Getting rid of filterPath?

2007-01-29 Thread Al Maw

Igor Vaynberg wrote:

On 1/27/07, Jean-Baptiste Quenot <[EMAIL PROTECTED]> wrote:

* you repeat yourself and often forget to keep in sync with filter
  mapping


maybe we should just parse web.xml and rip out the mapping. we already have
an xml parser :P


Yeah, I've just thought about doing that, and it certainly works, 
although it's a bit ugly. However, I've thought a bit harder, and I'm 
not convinced it's actually necessary. I think we can resolve it from 
the inbound request. I'll post more on this later, when I've played with 
it a bit more.


I'll be putting various other fixes in today for all this.

Al


Session.dirty() and Stateless pages

2007-02-02 Thread Al Maw

Hi,

There's code in SecondLevelCacheSessionStore.SecondLevelCachePageMap 
which checks if a page is stateless when it is put() and doesn't bother 
calling dirty() if so.


However, dirty() is always called from various constructors (for example 
the Session constructor calls setLocale() which calls dirty()).


This doesn't seem right.

Should stateless pages never have dirty() sessions?
If that's the case, should we fix these and have a call to 
Session.dirty() trigger a bind()?


I've just fixed Session.bind() so it actually persists the session, 
which it didn't before (this normally doesn't matter, but causes oddness 
if you redirect from a stateless page to a stateful one, expecting 
bind() on the stateless page to propagate the session to the stateful 
redirect page like the javadoc says it will).


Thoughts welcome.

Al



Re: About WicketFilter refactoring

2007-02-03 Thread Al Maw

Igor Vaynberg wrote:

we already have a pull parser in wicket, why arent we using that?


Hmmm. Do we? It seemed like it was written for HTML. The code is 
probably trivial - feel free to improve it, or point me in the right 
direction to.


Al


Re: VOTE: wicket-datetime (was: VOTE: add Joda time as a dependency)

2007-02-03 Thread Al Maw

Eelco Hillenius wrote:

On 2/3/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:

+1

although almaw is working on his datepicker, and the one in 
wicket-stuff is

prob 75% there, so we should have a good replacement rsn :)


That would be cool, and I think a good match for that project as well.
Might be easier to find and stuff.


-0 :-)

Yes, Joda time is nice, but I want the date picker in core or extensions 
where it belongs, not in yet another module, so I'm writing one with no 
Joda-time deps. It's just not necessary IMHO; the date manipulation 
problem isn't a faff, it's writing the Javascript that is.


Al


Re: VOTE: wicket-datetime (was: VOTE: add Joda time as a dependency)

2007-02-03 Thread Al Maw

Eelco Hillenius wrote:
Al, are you seriously working on date picker you want to contribute to 
Wicket?


Yes, but it's really not very far along yet and I don't think we should 
hold up 1.3 for it (certainly not the first beta at least).


It's relatively easy to make a datepicker if you have either mootools or 
prototype available. These clash with each other and are both popular. 
It's a hassle supporting a date picker for each, so the current strategy 
it stripping out the bits of mootools that I actually need, namespacing 
them so they can't interfere with anything else, and the writing 
something from scratch.


I don't trust javascript to get the locale and date formatting right for 
me, so I'm doing that in Java with some 

Re: wicket-1.3

2007-02-03 Thread Al Maw

nilo de roock wrote:

I downloaded wicket-1.x
mvn install does not work ( see below )
Is there something wrong with the pom.xml, perhaps?


Please read and follow the instructions on the wiki, which point you to 
this document:
http://svn.apache.org/repos/asf/incubator/wicket/branches/wicket-1.x/wicket-parent/README.TXT 



Regards,

Al


Wicket Stuff Wiki update + shout out to all you lurking contributors...

2007-02-03 Thread Al Maw

Hi all,

I've given http://wicketstuff.org a bit of love.
Let me know what you think. Better yet, all you wicket stuff 
contributors please contribute to the wiki. :)


When adding a top-level project page, make sure you add an appropriate 
label so it is listed on the root wiki page.


We currently have, "javascript", "java" and "example" categories.

Best regards,

Al


Re: Move parts of documentation from wiki to WICKETxSITE

2007-02-05 Thread Al Maw

Martijn Dashorst wrote:

Why? It is part of our documentation. It is maintained by wicket core
devs. There is no reason for it to be at the general wiki. The purpose
of our core site is to add content to it, not keep it a 2 pager.


Hmmm. I edited this before I was a core developer. If your community can 
help keeping docs up to date, then I suggest letting them. And that is 
best done by keeping things on the wiki.


Unless someone wants to volunteer to be the official documentation 
collator and editor, we're best off letting everyone contribute as they 
see fit, I've have thought. That means leaving as much stuff on the wiki 
as possible.


IMO the only docs that should live on the web site proper are things 
that will either never become out of date or are very important to keep 
up to date and are therefore unlikely to stagnate.


Examples:
 - Official introduction to Wicket.
 - Jumping-off points for other documentation, etc.
 - Where the IRC channel and mailing lists live.
 - Where things are in Subversion.
 - Guide to building the project from source.
 - How to become a committer.

In short, if a document can legitimately be improved by a community 
member, it should live on the wiki. In my eyes, this definitely includes 
migration guides.


Al


Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Hi.

At the moment, you need to run wicket-parent's "mvn install" with a 
profile (-Pjdk1.4) to get it to build things if you have a JDK5 install. 
This isn't terribly obvious, to say the least.


I'd like to propose we move the JDK1.4 modules in that profile out into 
the main build, as we *always* want to build these, regardless of 
whether we're on JDK5 or not. If you're on JDK5 it'll then build the 1.4 
modules and the 1.5 ones, which is definitely the desired behaviour IMHO.


You'll then be able to run Maven 2 from wicket-parent and have it do the 
"right thing" whether you're on JDK 1.4 or JDK 5.


I've fixed the license headers for everything, too, with this you'd be 
able to go like this to have a fully-working set of modules in your 
local repository:


svn co https://svn.sourceforge.net/svnroot/wicket/branches/wicket-1.x/
cd wicket-1.x/wicket-parent
mvn install

...and have it all Just Work(tm), even when you don't have anything in 
an existing repository - it should bootstrap itself properly.


Let me know if there's some reason to object to this, otherwise I'll 
commit it shortly.


Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Martijn Dashorst wrote:

-1

I have set this up so that I can run with jdk 1.4 and build the 1.4
projects *USING* only 1.4, and ONLY the 1.5 projects when I run using
1.5. This is to prevent any 1.5 stuff from entering our project.


But I don't think it does that exactly - let me explain...

This is the current situation:

Running a 1.4 JDK (java -version says 1.4, JAVA_HOME >> a 1.4 JDK)
=
- mvn install builds the 1.4 modules.
- You can't build the JDK 5 modules.

Running a 1.5 JDK (java -version says 1.5, JAVA_HOME >> a 1.5 JDK)
=
- mvn install builds the 1.5 projects _only_. If you don't already
  have the 1.4 modules mvn installed, it all falls over.
- To build the 1.4 modules, you need to issue a -Pjdk1.4, which
  causes the base 1.4 projects to built ***but using your 1.5 JDK***.
  If you have any 1.5 JRE library dependent code in there, it'll
  build regardless and the build will succeed when it probably
  shouldn't.

Therefore to guarantee that you're not introducing 1.4 code, you need to 
compile the base modules using a 1.4 JDK, ***regardless of how this is 
set up***.


We are already making sure no JDK5 code creeps into the 1.4 modules by 
building them on wicketstuff.org/bamboo using a 1.4 JDK.


The only thing we'd affect if we changed things as I detailed, is that 
if you're running a 1.5 JDK it'll all build nicely in a single step 
without any magic Maven profile switches, which would be much more 
convenient for everybody.


IMHO, asking people to install two different JDK versions just so they 
can build the code is ridiculous - people won't do it and will just use 
-Pjdk1.4, because why shouldn't you?


People who care (core developers) should probably have both JDK versions 
set up in their IDE with each project on the appropriate version anyway, 
so the code should not be broken. If it is, our continuous integration 
server will provide sufficient safeguard against people accidentally 
checking in code that breaks things that this just isn't an issue.


Regards,

Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Frank Bille wrote:

Yes I agree with Martijn. We really want to catch if any 1.5 stuff is
in 1.4projects. But Al, if you can get maven to do that (forcing
1.4 in 1.4 projects) it would be nice. I don't know if maven can do that,
though.


See my other reply. The thing that matters is what your JAVA_HOME 
environment is set to. If you're running Maven using a JDK5 on the 
command line, it doesn't matter what you do - it won't magically pick 
this up. Which is why we have continuous integration, where we actually 
run Maven with different JDKs depending on the project.


So I'd strongly like you to look at this and understand what I'm saying 
and reconsider, as I think it'd be a big improvement, with absolutely no 
difference in picking up backwards-compatibility issues.


Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Alastair Maw wrote:

Frank Bille wrote:
javac -source -target ?? I'm almost sure this work, but I don't know 
if you

can tell maven to use those (it worked with ant AFAIK)


Yes, we already do this, obviously. :-)


Only now I look, actually, we don't. :-)

We certainly should do, but that's only half the story, as I've explained.

Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Alastair Maw wrote:

Frank Bille wrote:

javac -source -target ?? I'm almost sure this work, but I don't
know if you can tell maven to use those (it worked with ant AFAIK)


Yes, we already do this, obviously. :-)


Only now I look, actually, we don't. :-)

We certainly should do, but that's only half the story, as I've explained.

Al




Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Al Maw wrote:

javac -source -target ?? I'm almost sure this work, but I don't
know if you can tell maven to use those (it worked with ant AFAIK)


Yes, we already do this, obviously. :-)


Only now I look, actually, we don't. :-)


To clarify: We do for wicket, but not for wicket-extensions and some 
others, which we should.


Sorry to all for the amount of spaminess on this thread.

Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Johan Compagner wrote:

first of all will javac -source 1.4 -target 1.4 always do the right thing?


It does for us, at least.


And then i thing about the changes in StringBuilder/StringBuffer
I guess StringBuilder will not be used but StringBuffer will


Sun deliberately design it so that you can compile code on newer JDKs to 
run on older ones. The optimiser has specific version-dependent 
knowledge about things like that.



Are we really using a different jvm now on our Bamboo server? Last time i
checked it always did that with java 5


Yes, we are. This is a significant advantage of Bamboo over Continuum 
(the other being the absence of so many bugs). ;-)


Look at (for example):
http://wicketstuff.org/bamboo/build/admin/buildConfiguration!default.action?buildKey=WICKET1X-WICKET
Which has the build JDK to use.

I'm only trying to simplify and automate things. :)
Wouldn't it be nice to go mvn release:prepare ... mvn release:perform 
and have it build all the 1.4 and 1.5 modules, tag them in SVN, release 
them to the repo, etc?


Regards,

Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Igor Vaynberg wrote:

i guess almaw played around with it w/out telling us :)


We have some projects that are, err, "significantly" more complex than 
Wicket in terms of Maven 2 builds, class version compatibility (which 
gets interesting when you bring RMI classloaders into account) and stuff.


javac even goes so far as to make sure it mimics the previous behaviour 
of the evaluation of a class literal causing the class to be initialised 
(which it doesn't do in Java 5, but does if you do a -target 1.4 using 
the 1.5 javac).


Al


Re: Maven 2 project structure with wicket-parent

2007-02-05 Thread Al Maw

Martijn Dashorst wrote:

I have been thinking about forcing the JVM in the plugin section of
the 1.4 projects. This is possible, but it is highly installation
dependent, and therefore not implemented (yet). I was hoping for a
1.4 section in the pom, which would then load the
corresponding platform or machine dependend settings from either the
settings.xml (local configuration) or the defaults from some obscure
maven config file.


Hmmm. I could be wrong (there's a lot to know about Maven 2), but I 
don't think this is yet possible. I'm pretty sure Maven compiles against 
the rt.jar that's beneath your the directory specified by your JAVA_HOME 
environment variable, and there's no way to override that.


I guess we could fork an Ant task that required -Djava.home.14 and 
-Djava.home.15 properties, then forked two different Maven 2 builds, but 
that all seems deeply ugly and inelegant.


Note that provided your dependencies don't use JDK5 classes, javac 
-target 1.4 won't somehow statically link against JDK5 code. It's the 
nature of Java that all the linking is done at runtime. Provided all 
your code compiles using -target 1.4 and you didn't use the 1.5 rt.jar 
it'll all be fine. (Obviously you can check the rt.jar issue when you do 
a release by compiling/testing the tagged version against a 1.4 JDK, if 
that's the way you want to do it. I'd hope Eclipse and/or Bamboo would 
tell you this much sooner provided you'd set them up properly.)


So a full release complete with JDK1.4 compatibility check would be 
something like:


Quick check in bamboo/eclipse to make sure it all compiles against 
rt.jar from 1.4.


mvn release:prepare

svn checkout http://.../tags/foo foo
cd foo/wicket-parent
mvn test
cd ../..
rm -rf foo
mvn release:perform

Sorted.

If mvn test goes wrong, delete the tag, fix, and start again.

It's up to you at the end of the day, though, I guess. :)

Al


Re: [Wicket-dev] 2GB sources?

2007-02-05 Thread Al Maw

nilo de roock wrote:

The following snippet is part of ./wicket-parent/pom.xml
  
false
src/main/java

**


**/*.java



false
src/main/resources

**


**/*.java



This seems to be the rootcause because after removing this the problem no
longer occurs.
I would like to ask one of the maven specialists to have a look at this.
When this issue is solved I will commit the other changes I have made to the
pom.



Aaah. Can you try replacing the ** with 
**/* and tell me if that fixes it?


Al


Re: Single-page applications: bad idea in Wicket ?

2007-02-07 Thread Al Maw

Matej Knopp wrote:
First of all, the hybrid urls would fix the refresh problem, but 
definitely won't fix ajax back button.


I don't see much we can do about supporting back button with ajax. That 
can be possible with full blown ajax framework (like backbase), but 
wicket was never meant to be it.


I see multiple problems:
1 - the urls of page links have to be changed. Fixing href of anchors 
could be possible (although a big ugly hack if you ask me), but we have 
lot of url in generated javascript. I don't see easy and reliable way to 
fix it.


I need to look into this in more detail, but do we generate URLs in 
JavaScript that matter when things change? If so, we surely already need 
to be reloading that JavaScript file? So it won't work in an AJAX world 
anyway, if you see what I mean. If the URL is generated within the AJAX 
requestcycle, then it should be fine - we can append the # reference there.


Another problem is the page url. It would reflect old version and there 
is nothing we can do about it.


So if we supported ajax versioning, imagine this situation. User comes 
to a page, interact with it and creates 20 new versions. Then he for 
some reason refreshes the page and gets those 20 versions reverted. This 
is IMHO _much_ worse than not versioning at all.


Yeah, you need to update the URL and add a #versionNumber anchor to it, 
so this doesn't happen. IIRC, Safari has issues with this - it doesn't 
update the history properly so this approach doesn't work well with that 
browser.


Only way we can alter url in javascript is to change the hash (part of 
url after #). Unfortunately, the hash doesn't get submitted to the 
server, so on next request the server can not find out what the hash was.


This is the approach Google use no some of their apps to fix the 
back-button issue - you keep a version number after the hash. You can 
obviously push this over in your AJAX requests, but you need it to work 
for non-AJAX stuff too, as you say. The things you need to fix are 
pretty much anything with a URL in, right? So we could just walk the DOM 
on each AJAX round-trip and add/change any src/link/href/whatever to 
have a version number in it as a parameter? I don't think that's that 
much of a hack, fwiw. See above for Javascript thoughts, although more 
investigation required on that (I don't know if you might have a 
component that is generated in page version 3 need to maintain a URL to 
a component generated in page version 2 - I don't think this makes 
sense, in which case this is all probably pretty straightforward).


I'm not sure how all this interacts if you genuinely want to link to a 
page using an anchor. :)


http://www.contentwithstyle.co.uk/Articles/38/ is definitely worth a read.


Al


Re: shutting down wicket-stuff lists?

2007-02-07 Thread Al Maw

Eelco Hillenius wrote:

How do you feel about shutting down the wicket-stuff lists
(wicket-stuff-develop@lists.sourceforge.net,
[EMAIL PROTECTED])? I think traffic is
too low to really justify having separate lists, and traffic likely
will be of interest to subscribers of the core lists as well. If we
just shut them down, it'll be less confusing to people.


I'm +1 on this. Slightly embarrassingly, I didn't even know they 
existed. :-)


Al


Vote to remove final on Component#getEscapeModelStrings()

2007-02-07 Thread Al Maw

Hi,

Why is getEscapeModelStrings() in Component final? It would be nice to 
be able to override this, for situations such as highlighting labels 
with null model objects or similar. Sure, I can do the escaping myself, 
but it seems tedious.


So, vote to make it non-final.
+1 :)

Also, shouldn't it be called isEscapeModelStrings() in common with other 
boolean-style getters. I shouldn't imagine many people call this outside 
the framework. Rename in 1.3/2.0 and note in the changelog?

+1 :)

Regards,

Al


Re: shutting down wicket-stuff lists?

2007-02-07 Thread Al Maw

James McLaughlin wrote:
> It might be worthwhile to keep wicket-stuff-develop so that when it
> comes time to coordinate a release or encourage
> wicket-stuff-developers to make some changes (like mavenizing their
> projects) we won't pollute wicket-user. But for this to work, we would
> need to make sure all the project maintainers are subscribed to it.
> I'm ashamed to say, i don't think that I am.

I think we should use the news section of our shiny new confluence and 
encourage people to subscribe to the RSS feed instead, but that's just me.


Al


Re: Vote to remove final on Component#getEscapeModelStrings()

2007-02-07 Thread Al Maw

Jonathan Locke wrote:


+1

however, should not be renamed.  it is in the javabeans spec to use 
"is" and "get" interchangeably for booleans as it makes sense case-
by-case.  since "isEscapeModelStrings" doesn't make any sense in 
english, the "get" form (which makes some sense) is preferred IMO.


Fair enough. Everything else in there starts with "is" for booleans. I 
think it's just that I find getEscapeModelStrings somewhat ugly and it's 
not very discoverable given most of the other "display options" start 
with "is".


We could deprecate it and make it isHtmlEscaped() instead? Or is that 
too web-specific and therefore in violation of things? I'd point out 
that currently it's a final method in Component in the 
getModelObjectAsString() that does the work, doing HTML-specific markup.


I'd imagine if you want to write a set of components to render WML or 
something that you'd want a different escape mechanism in there? 
Besides, you might want to override this and use Spring's HTML escaping, 
as it's much better than ours.


I'm now thinking maybe we should have an IStringEscaper which you can 
provide in IMarkupSettings. :-)


Any thoughts on making this nicer and less in violation of our current 
base components/web components split?


Al


Re: VOTE: add Jean-Baptiste Quenot as a comitter to Wicket

2007-02-08 Thread Al Maw

Martijn Dashorst wrote:

On 2/8/07, Frank Bille <[EMAIL PROTECTED]> wrote:

Finally.. I'm tired of all his patches :)


meritocracy according to Wicket: when we get tired of your patches
we'll add you to the team :)


Worked for me. :)

+1 (binding) (Provided he learns how to run unit tests before he commits 
stuff.) :)


Al


Re: Vote: add jhighlight dependency to wicket examples for 1.x and 2.x

2007-02-11 Thread Al Maw

Eelco Hillenius wrote:

I'm fine with adding anything for examples if it is covered by the
proper license. So, that's a +1.


Same.

I'm using com.uwyn.jhighlight on our internal pastebin, and find it much 
better than the one on papernapkin.org. IMHO, highlighting should be 
done server-side, not in JS. It's a nice lib, just works.


+1

Al


Re: some more urls things..

2007-02-11 Thread Al Maw

Johan Compagner wrote:

i was running the threadtest App1Test1 which does this

   "/app1?wicket:bookmarkablePage=one:
wicket.threadtest.apps.app1.Home",
   "/app1?wicket:bookmarkablePage=two:
wicket.threadtest.apps.app1.Home",

"/app1?wicket:interface=two:${iteration}:link::ILinkListener",

"/app1?wicket:interface=one:${iteration}:link::ILinkListener",

"/app1?wicket:interface=two:${iteration}:link::ILinkListener"


i altered some behaviour in the link.onclick. But then i noticed that the
last 3 calls where never called!

it is this code first thing in WicketFilter.doGet(_

   String relativePath = getRelativePath(servletRequest);
   // Special-case for home page - we redirect to add a trailing slash.
   if (relativePath.length() == 0 && !Strings.stripJSessionId(
servletRequest.getRequestURI()).endsWith("/"))
   {
   String foo = servletRequest.getRequestURI() + "/";
   servletResponse.sendRedirect(foo);
   return;
   }


so when the url doesn't end with / then we send a response to xxx/
What about the params!


On a production site, this will never happen - once you are into the 
system all the URLs like that are generated with trailing slashes.



Shouldn't the test be there if there are request params then it is not a
request to home??


We should probably rewrite this so that it redirects including the 
params. I'll go fix that now. It's important that we have a trailing 
slash for reasons that are complex - if you don't have a filter path it 
all goes wrong otherwise.


Note that Wicket won't generate URLs like this without a / on the end of 
them, so this is really only a problem with unit tests that fake all 
this stuff in (or possibly if people have bookmarks with params in their 
browser that they expect to work when upgrading from 1.2.x to 1.3, which 
probably won't work anyway for other reasons).


Al


Re: Migration guide and datepicker

2007-02-11 Thread Al Maw

Eelco Hillenius wrote:

Btw, a link to the wicket-datetime project would be good there as
well. [...]


See the 1.3 migration page, now all fixed.

Al


Re: svn commit: r505710 - in /incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket: behavior/HeaderContributor.java markup/html/IHeaderResponse.java markup/html/internal/HeaderResponse.

2007-02-12 Thread Al Maw

[EMAIL PROTECTED] wrote:

Author: knopp
Date: Sat Feb 10 08:02:31 2007
New Revision: 505710

URL: http://svn.apache.org/viewvc?view=rev&rev=505710
Log:
HeaderContrbutor cleanup backport

Modified:

incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/behavior/HeaderContributor.java

incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/IHeaderResponse.java

incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/internal/HeaderResponse.java


This doesn't work in the world of relative URLs. I'm going to 
forward-port the changes to 2.0 later this week and I'll clean this all 
up when I do that.


We really need some unit tests for this. :-/

Al


Re: [WICKET-63 Create wicket-parent build for wicket 2.0] solved?

2007-02-13 Thread Al Maw

Martijn Dashorst wrote:

Can this one be closed?

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

I thought Al was working on this?


Eelco did this, I've only updated it to make it a proper multi-module build.

I expect the Wicket 1.3 build will be in a state of flux while we learn 
how we should best configure that during the initial 1.3 release cycles. 
We should learn from that and apply it to 2.0 later. It seems to work 
find for now, so I'm closing that one.


Al


Re: VOTE: turn custom serialization on by default

2007-02-20 Thread Al Maw

Eelco Hillenius wrote:

We're having a bit of an issue where Johan is developing custom
serialization for Wicket to make it faster and smaller (same thing
really).


+1 to turn it on ASAP for the betas. We really can't have the 1.3 
release go out without this being solid, especially if we're going to 
try to bandy performance figures about (people will test with the 
default set-up, and that had better work).


Al


Re: Summer of Code '07

2007-02-20 Thread Al Maw

Martijn Dashorst wrote:

Can we define some assignments for the Summer of Code? Would be nice
to have one or two students work on for example WML, XUL or any other
part that we feel to be in for some work?


Summer of Code is great if we can find something nice to do, but I'm not 
sure WML or XUL are it, to be honest.


Although it's a nice idea to have something well defined to work on like 
this, do we really need either WML/XUL in Wicket? The existing portlet 
support doesn't seem to be well used, and provide maintenance headaches, 
even though it's actually quite close to the standard Web* stuff we have.


WML is pretty much dead for anything other than small sites that sell 
mobile content or provide simple info. Barely anyone is building complex 
sites in it - everyone just uses XHTML with appropriate mobile stylesheets.


Let's not try to shoehorn Wicket into WML development when there's not 
really any demand for it. It will make life harder for no good reason. I 
suspect the same is true (possibly more so) of XUL.


Please remember that just because you can add features, doesn't mean you 
should. Look at Netscape in its open source heyday - they started adding 
every last little feature anyone had a patch for, without stopping to 
consider if it was actually useful. It's as much about what to leave out 
as it is what to include. And I think we should leave WML and XUL out.


Alastair




Re: i think i have asked/proposed this before: IBehavior.isEnabled();

2007-02-22 Thread Al Maw

Johan Compagner wrote:

Any objections now? (for 1.3 and 2.0)

Because you can't remove a behavior from a component and now you
also can't dynamically disabled one either. So thats a bit annoying.


Yeah, defn. would be useful. +1

Al


Re: strange code in WicketFilter

2007-02-27 Thread Al Maw

Xavier Hanin wrote:

Whlie browsing the wicket1.x code, I've stumble upon a piece of code which
seems strange in the WicketFilter class:
   public void setServletMode(boolean servletCompatibilityMode)
   {
   this.servletMode = true;
   }

Shouldn't the servletMode be assigned to servletCompatibilityMode?


Yeah, that is a bit odd. It's a hangover from developing something else. 
The entire method is no longer used - I've removed it. Thanks.


Al


Re: [VOTE] All examples in one project, Java 5 required

2007-02-28 Thread Al Maw

Martijn Dashorst wrote:

[ ] No, I object! Java 1.4 examples are the thing I live and die for
[X] Yes, make one examples project to rule them all, and by all means,
make it Java 1.5 dependent


Al


Re: multi-file upload component

2007-03-01 Thread Al Maw

Igor Vaynberg wrote:
a few people were talking about the need to have a component that can 
upload multiple files as opposed to creating a bunch of fileuploadfields.

[...]

[...] looking forward to feedback.


Feedback from me is:

Oooh, shiny. :-)

Al


AjaxSubmitButton in Panel inside ModalWindow in a Form

2007-03-06 Thread Al Maw
AjaxSubmitButton in a ModalWindow using a Panel as content doesn't work 
if the ModalWindow component is itself embedded in a Form.


The issue is that ModalWindow tacks its content on as a  on the 
 element, which places it outside the original  element.


If we fix ModalWindow to inject its Panel content into the middle of the 
page where the component actually lies, then all the CSS is messed up - 
it uses position: absolute, which will work fine until you put the 
ModalWindow component inside something that is position: relative;


If you add a  to the ModalWindow's Panel, then the nested Form 
resolution stuff removes the  element because it thinks it has a 
parent , even though when it's rendered it's actually outside it.


I'm not sure how to fix this, or even if it's possible to.
Maybe we can make the nested form hierarchy check stop traversing its 
parents at ModalWindow boundaries, and require than things inside a 
ModalWindow have their own Form?


Al


Re: VOTE release 1.3beta

2007-03-07 Thread Al Maw

Igor Vaynberg wrote:

this vote is to release 1.3beta


+1, but only after I've made the Maven 2 stuff nicer, so we can make 
this repeatable (WICKET-228).


Al


Re: [VOTE] All examples in one project, Java 5 required

2007-03-07 Thread Al Maw

Martijn Dashorst wrote:

I propose to make the examples projects Java 1.5 dependent.


Everyone said yes, so I assume this is going ahead. Has there been any 
progress on this? I'm wanting to fiddle with Maven 2 build procedures 
and things prior to getting the 1.3 beta out, and if you have tons of 
outstanding commits with this, it may be tricky. :-)


Al


Re: roadmap

2007-03-08 Thread Al Maw

Johan Compagner wrote:

i really hate that roadmap, really i do.

[...]


So you really want quickly 1.4 after 1.3 and i guess 1.3 is completely in
maintenance mode pretty much directly
because if we start working on 1.5 you really don't want 1.3 anymore


Absolutely. As soon as we've pushed 1.4 out, full steam ahead on 1.5, 
with 1.3 very much in bug-fix-only and encouraging people to switch to 
1.4 ASAP.



That means that people that all do 1.3 stuff now are going to 1.4 anyway
(especially because it is also not java5 yet again)


Yes. But they get to do a really complicated Model refactor over the 
course of a few weeks, rather than Right This Second. If we have an 
agreed roadmap, then the users will even see this coming and be able to 
make their own mind up as to whether they want to split their upgrade 
effort into two chunks, or just wait a little longer 'til 1.4 comes out.



Releasing so quickly is in my eyes a bad thing. And i really don't want to
release as much under the incubating flag
(i sort of already don't want to do that for 1.3!! but i can live with that
if we really really have to)


Another fly in the ointment is that we will need to move to the 
org.apache.wicket namespace at some point. If we have both JDK 1.4 and 
JDK 1.5 branches that we're trying to keep in sync, merging will be 
slightly more annoying due to the import mismatch, although I guess 
that's fairly minor.


The main point here is that we probably won't graduate from incubation 
until we switch to this namespace. Would people be happy to do this for 
1.3? It's a pretty trivial update for people - just global search and 
replace on "import wicket." to "import org.apache.wicket." (with the 
exception of things in wicket-stuff like the datepicker). We should 
maybe start a vote on this. We will certainly have to do it in 1.4, no 
matter what that looks like.



so i am -1 on this release cycle.
what you call 1.3 and 1.4 should be in my eyes 1.3 and why you call 1.5 is
in my eyes 1.4.


Yes, that's right. I'm just splitting 1.3 up into two smaller chunks in 
an attempt to make things happen sooner and be more manageable. If we 
put the model refactor into 1.3 then I reckon it will be ready for 
release around about the same time that 1.4 would otherwise be, or 
possibly even later.


You see, this split would allow us to parallelise the two things that I 
can see taking a while; getting an Apache-grade release out, and having 
users migrate to the new Model code.


If we don't parallelise it, I think we'll end up doing things in a more 
sequential fashion and the whole process will take longer. Once we have 
a good solid release process, rolling out a 1.4 will be negligible 
effort. It therefore wouldn't surprise me if it took longer to do a 1.3 
with the model change in it than to get to a 1.4 under this proposal.


Of course, if you're happy to delay rolling out a 1.3 beta for yet 
another month, then that's fine. I can tell you that I'll be busy 
porting my models for a week or so and not testing things/writing build 
code if we push the refactor in right now. :(



Give people a big chunk and let that sink in for quite a while. Dont go
releasing like a mad man.


I'm not convinced. Release early, release often.

BTW, I'm on holiday the week from 19th -> 26th, so won't be around to 
help with releases and things during that time.


Al


Re: almaw's new build-test branch

2007-03-08 Thread Al Maw

Martijn Dashorst wrote:

How does the nested projects work with Eclipse? afaiu eclipse's
workspace needs to be a flat structure...


You just run mvn eclipse:eclipse at the top level and import only the 
bottom-level projects (use File | Import and uncheck three boxes, I 
guess). This isn't a big deal.


You don't need to have the pom projects imported 
into Eclipse as Maven 2 builds. If you want the top-level project in 
there for convenience of editing the site stuff, add the src folder from 
it instead of the root.


afair the release plugin tags/branches each project separately. This 
is not good imo. We don't release each project separate, but the

whole branch in one go. I've used the release plugin in the maven 1
days and it was nothing but a big pain in the rectum.


So, I've just tried to fake out a release in this branch. If it weren't 
for the failing unit tests I'd have some tags to show you, but the long 
and the short of it is that we will end up with two tags - one for the 
JDK 1.4 directory and one for the JDK 1.5 directory.


This is the result of having to run two releases because you want to use 
two different JDKs, and there's not much we can do about it.


The alternative is to write a little script which goes and updates 
 elements in the POMs, tags everything in SVN, then does a 
fresh checkout and then a "mvn -DperformRelease=true deploy" in each of 
the jdk-1.* directories. This would actually be pretty simple. If it's 
the preferred approach, I'll have a go at that. It'd be nice to be able 
to do it with just Maven, though.



I've used the release plugin in the maven 1 days and it was nothing
but a big pain in the rectum.


The Maven 2 version is a ground-up rewrite, so I don't think that's 
relevant.


Last thing for the moment: inherit the top parent from 
org.apache/apache/4.0, this way you get the organization and some 
other things for free.


Last time I tried this it bought almost nothing because the various 
plug-ins it pulled in were alpha versions that didn't even work. :)

But yes, we should probably do that.

Why is the root pom version 1-SNAPSHOT and the jdk* poms 
1-3-incubating-SNAPSHOT? Can't we just put the version in the root

pom and be done with that?


Depends. If we need to use two different JDKs, we need to release the 
jdk-1.4 and jdk-1.5 trees separately. At this point, you'll need to have 
released the parent already. The thinking was that this is easily done 
by just having a static version number, so effectively you can release 
the parent independent of the rest of it. It's not going to change much, 
after all (especially if we remove the contributor list).


Another thing I want to remove from the pom's are the contributor, 
developer list. These are rather dynamic and don't add much. The poms

don't need to change and be released when these things are modified.


Fine. This is in the root pom only in the new branch, so would be an 
easy fix. I thought we originally put stuff in there to keep the Apache 
folk happy. If not, let's ditch it. It gets out of sync and bloats 
things annoyingly. You can probably auto-generate something similar from 
JIRA, anyway.


Al


Re: almaw's new build-test branch

2007-03-08 Thread Al Maw

Martijn Dashorst wrote:

On 3/8/07, Frank Bille <[EMAIL PROTECTED]> wrote:

Ok, so
http://www.nabble.com/Maven-2-project-structure-with-wicket-parent-tf3175043.html#a8812638is 


still a problem?


Yep still a problem. But the biggest problem with getting all stuff
built in one go (*not* the release, but locally) could be resolved by
adding an 'all' profile that lists all modules. If you don't mind
building against 1.5, then that would solve the 90% usecase.


The new structure no longer requires profiles:
To just build JDK 1.4 stuff, execute mvn in the jdk-1.4 folder.
To just build JDK 1.5 stuff, execute mvn in the jdk-1.5 folder.
To build both, execute mvn in the root folder.

Getting it all into Eclipse:
mvn eclipse:eclipse in the root.
File | Import > Choose the root folder.
Check the ones you want and click OK.


The release build, and our bamboo should always explicitly use JDK 1.4
for wicket, extensions datetime and spring. The eclipse project
settings should also explicitly set a 1.4 profile to remove the
possibility to use 1.5 stuff.


Yeah. See previous threads on how mvn eclipse:eclipse will set you up 
for 1.4 compliant code (no generics, etc.) but still use the default 
(probably JDK 5) JRE libraries to build against. Hence the utility of 
bamboo.


Al


Re: almaw's new build-test branch

2007-03-08 Thread Al Maw

Martijn Dashorst wrote:

On 3/8/07, Al Maw <[EMAIL PROTECTED]> wrote:

Martijn Dashorst wrote:
The alternative is to write a little script which goes and updates
 elements in the POMs, tags everything in SVN, then does a
fresh checkout and then a "mvn -DperformRelease=true deploy" in each of
the jdk-1.* directories. This would actually be pretty simple. If it's
the preferred approach, I'll have a go at that. It'd be nice to be able
to do it with just Maven, though.


I think just doing a

svn cp branches/wicket-1.x tags/wicket-1.3.0
svn cp tags/wicket-1.x releases/wicket-1.3.0
svn switch releases/wicket-1.3.0

find . -name "pom.xml" | xargs sed -e
"s/version>1.x-incubating-SNAPSHOT/version>1.3.0-incubating-beta1/g"

mvn4 -DperformRelease=true install site assembly:assembly
mvn -DperformRelease=true install site assembly:assembly

svn commit -m "Release 1.3"

scp `find . -name "*.zip"`
people.apache.org:~/public_html/release-1.3-incubating-beta1
scp `find . -name "*.gz"`
people.apache.org:~/public_html/release-1.3-incubating-beta1
scp `find . -name "*.md5"`
people.apache.org:~/public_html/release-1.3-incubating-beta1
scp `find . -name "*.sig"`
people.apache.org:~/public_html/release-1.3-incubating-beta1


We can automate the scp stuff as part of the -DperformRelease=true.

We should surely also be copying doing a proper deploy, not an install, 
so that we copy the JARs for the projects to apache's Maven repo, so 
they can be synced up with repo1.maven.org?


I'm still in favour of using the release plug-in if we can, as it scps 
the site to the right place, doesn't let you tag if there are test 
failures, and all the rest of it.



We also need to sign the release using gpg, as I understand there is a
maven plugin for that as well.


OK, I'll see if I can look into this at some point.

Al


Re: mvn eclipse:eclipse

2007-03-09 Thread Al Maw

Johan Compagner wrote:

that does something more.

Please make a doc in every wicket project pointing this build process out!


:-)

If we move to my proposed direcotry structure we don't need this any more.

Time to start a vote, methinks. :-)

Al


VOTE: Move modules around to make releasing easier in 1.x branch (and rename branch).

2007-03-09 Thread Al Maw
As detailed in the thread "almaw's new build-test branch" I've been 
thinking about how to make the release process work more smoothly.


I've restructured how 1.3 is parented, etc. in the branch 
"al-test-wicket-1.3.x". You can see how it looks here:

http://svn.apache.org/viewvc/incubator/wicket/branches/al-test-wicket-1.3.x/

Advantages:
 - It massively simplifies the pom.xml files and reduces redundancy and
   duplication, and removes the potential for the configuration of the
   various modules getting out of sync.

 - It's really obvious which projects need JDK 5 and which don't.

 - We will hopefully be able to use the Maven 2 release plug-in for
   the jdk-1.4 and jdk-1.5 bits and make everything more automated.

 - We don't need -P profile switches to build things any more.

 - Getting the whole shooting match into Eclipse is now:
- One command to check it out.
- One command to build the Eclipse .project, etc. files.
- Three clicks in Eclipse to import all the projects, which will
  then all depend on each other correctly.

 - Removes the wicket-parent project, which is a bit mystical and lots
   of people don't discover by themselves.


Disadvantages:
 - Everyone will need to update their workspaces.


So, please vote:


   [ ] Yes, change the 1.x branch so it looks like that.

   [ ] No, don't restructure it! That's a rubbish idea!


We could also take this opportunity to rename the 1.x branch to 1.3.x.

If you voted yes above, please also vote:
=

   [ ] Yes, rename the branch to "wicket-1.3.x" at the same time so I
   only need to set my IDE workspace up again once.

   [ ] No, don't rename the branch, we'll postpone that until we
   release a beta, or a 1.3.0 final, or something.

Given it's a bit of a faff for everyone, if this does go ahead I will 
post a time when I will move stuff at least a couple of days in advance 
so people can get their outstanding commits in, which should make it 
easy for everyone.


If you were to have outstanding commits when things are moved, svn will 
keep the changes in orphaned files so you can move them across manually 
to the new layout. It's just a little less convenient.


Al


Re: VOTE remove sandbox from branches/trunk in favor of top level directory

2007-03-12 Thread Al Maw

[x] yes remove branches/*/sandbox


Al


wicket-threadtest has moved

2007-03-12 Thread Al Maw

Martijn has recently moved things around in the 1.x branch.

We didn't think wicket-threadtest should be a released artefact, so it's 
now living in wicket-1.x/testing/wicket-threadtest.


Al


Re: [Vote] Al's repository restructure

2007-03-13 Thread Al Maw

Jonathan Locke wrote:

this is SO much better.  thanks almaw!


Thank Martijn, who actually put in the elbow grease to make it all work 
(site templates, etc.). I just faffed with some pom files. Anyway, glad 
you like it. :-)


Al


Re: 1.x test errors?

2007-03-13 Thread Al Maw

Gwyn Evans wrote:

Ignoring the Velocity warnings (anyone else get them?), I get 5 test
errors - See attatched.


Yeah, I also get these. Guess we ought to look into why they're there. 
The stuff is defined in the parent pom, so I'm wondering if it doesn't 
propagate down to the children. Perhaps if we put in a  
element and redeclared them it'd work? I'll look into this at some point.


Al


Re: Release 1.3 - status

2007-03-13 Thread Al Maw

Martijn Dashorst wrote:

I've been working on the release and have come to a last point: how to
package stuff.

The default src assembly is IMO moot: it packages each project without
context. It seems to me that a zip containing the sources for all
projects is better, as it makes it one package as a whole

The default bin assembly doesn't include jar dependencies so our users
have to download all the dependencies themselves.


You can do this with the  stuff in the assembly 
descriptor though.


  

  /lib
  false

  

I don't know how this should behave, to be honest. Most libraries 
package their dependencies if the licensing allows that. Wicket doesn't 
have that many dependencies, so I don't see that this is a bad option.


The only issue with that is that if we provide a single TGZ for the 
whole release then it's not obvious which dependencies belong to which 
project. The examples project, in particular, has a bunch of extra 
dependencies. I guess we can document this somewhere, suggest people use 
Maven, or come up with some way to package things as lib/wicket/, 
lib/wicket-extensions/, etc.



The sites generate for the most part in the jdk-1.4 section. They
still require a site.xml (and I included for most a index.apt which
has an incubation disclaimer). The site.xml is needed otherwise the
maven site plugin doesn't use our skin.


Yeah. Are the site.xml files the same for every project? If so, we might 
be able to set it up to use the same one for all the projects, using 
something like ${user.dir}/src/site.xml
(where user.dir is the system property for the current working 
directory). This would break running the site plug-in from the 
subdirectories, but people won't be doing that, will they?



I've reinstated the profiles, but with a twist: now if someone runs
maven using a JDK-1.4 it will only build the JDK-1.4 modules.
Otherwise all projects are built (including the JDK-1.4). You'd get
errors if you try to build the JDK-1.5 modules using a 1.4 java
version, but I'd rather avoid those as well.


Makes sense.


In the root pom we need to define where the snapshots and distribution
repository live. I set them to my p.a.o. (people.apache.org) account,
but I don't think that the root pom should have that information. I'd
rather have the directory/deployment url be in my local settings.xml
file. Then everyone can be the release manager.


Yeah, we should use properties for these, I guess. Unless actually 
having these hardcoded will be useful, as you'll be able to tell where a 
particular release was deployed to in a way you wouldn't with random 
properties.



TODO:
- decide the final assembly formats


Presumably both zip and tgz. I wonder if we should split it into two 
assemblies - one for JDK 1.4 and one for JDK 1.5? I think I vote for 
some kind of grouping rather than providing 10 zips to download.



- fix jdk-1.5 sites, and the multi-module site build (links between
projects don't work)


Hmmm. You should be able to link to things in the site.xml using:
  
And:
  
Doesn't this work?


- see if maven release plugin is a good fit (doubt that)


Yeah, me too. We want to tag both jdk-1.4 and jdk-1.5 at the same time, 
under a single tag. This doesn't fit with the mvn4, mvn5 build process.


Al


Re: Adding a PageNotFoundPage?

2007-03-14 Thread Al Maw

Jean-Baptiste Quenot wrote:

* Johan Compagner:


What do  we now when  a bookmarkable page  is asked for  but not
found? just the 404? with nothing else?


Currently we  log an error and  return the error page  with status
code 500, that's BAD!


Err, if you use a filter then you fall through and do whatever the 
container does. Please don't break it for the filter case.


Al


Re: Adding a PageNotFoundPage?

2007-03-14 Thread Al Maw

Igor Vaynberg wrote:

erm no

the important thing is that what we do is set the 404 header

that way the filter chain knows its a 404 and can handle it properly

as opposed to us happily streaming our own error page with a 200


Errr, no. :-) We don't want to stream anything at all in the filter 
chain case.


Currently WicketFilter looks to see if things match a Wicket 
page/request with isWicketRequest() (line 118 on WicketFilter) and 
leaves it the hell alone if it doesn't. Don't you go changing that to 
serve a 404 instead, or everyone's other servlet mappings and static 
resources and things will break.


You can modify doGet() to serve a 404, that's fine. By that point, the 
filter thinks it's a Wicket request, so you probably should.


In the filter case, one can achieve all this by mounting a 404 page, and 
using  to point to it. It certainly seems to cover all my 
use cases, and that way you can serve the same 404 page for non-Wicket 
URLs. I don't think you ever get 404 pages if something has passed the 
isWicketRequest() check.


Al


Re: Adding a PageNotFoundPage?

2007-03-14 Thread Al Maw

Igor Vaynberg wrote:

errr, no!

what if iswicketurl does return true? maybe you do ?bookmarkablePage=
some.FooBarPage

and FooBarPage does not exist. what to do then? we should just set the
header to 404 and let the chain continue


Hmmm. Shouldn't we leave it all alone and just let the request fall 
through to lower in the chain? I'm pretty sure that's what we should do. 
The default servlet will then look for a resource called 
?bookmarkablePage=some.FooBarPage on the filesystem under the context 
root, fail to find it, and 404 that.


You'll need an  set up in the filter case either way, I'd 
have thought.


Al


Re: Adding a PageNotFoundPage?

2007-03-14 Thread Al Maw

Igor Vaynberg wrote:

well yes, but jbq was saying we should create a special page for when this
happens. and i disagreed. and then you disagreed with me, so are you
agreeing with jbq?


I'm agreeing with you. 
This stuff is so much easier to do on IRC / IRL. :)

 Well, it should probably be like this:
 If you're using WicketServlet, serve a 404.
 If you're using WicketFilter, let it fall through and
let the container deal with it.
 agreed
 As the container will do it for you.
 In a way it won't for the servlet, obviously.
 If you're using WicketFilter then you need an 
mapping in your web.xml
 Unless you're happy with the default container 404 page.
 In which case, fine.
 I think I confused filter and servlet
 darn

So, erm, yeah. :-)

I'm not against a PageNotFound page for the WicketServlet. I think the 
user should provide one for the filter case if they're not happy with 
the default container one. I guess we need a setting for a servlet-based 
one so the user can customise it.


Al


VOTE: New roadmap and desicion on the future of Wicket 2.0 branch

2007-03-14 Thread Al Maw
There's been a lot of comment and discussion lately about the future 
direction of Wicket, and the trunk/2.0 branch in particular.


We've done some hard thinking and we now have a roadmap for the future.

When  What
  
Now   Backport the Model refactor and other remaining non-JDK-5
  features from 2.0 to the 1.3.x branch.
Soon  Release a 1.3.0-beta to the community.
Soon  Release a 1.3.0-rc1. [2, 3, etc. if required]

A bit later   Release a 1.3.0 final.
  Fork a 1.4.x branch from the 1.3.0 release.
  Apply generics and other JDK-5 features to 1.4.x branch.
  This will make 1.4.x look just like 2.0, but with the same
  constructor/add logic as 1.2.x/1.3.x currently have.

"now" ~= right now.
"soon" ~= within a couple of weeks.
"A bit later" ~= within a month or so.

We will discontinue support for 2.0 once we have branched 1.4.x and 
added generics support into it, at which point the 2.0 branch will be 
renamed in subversion and left to stagnate.


As already thrashed out in various discussions, this will achieve the 
following:


 - Provide a migration path for 2.0 users within a month or so, so they
   are not left high and dry. 1.4.x will be basically the same as 2.0
   currently is, only with the constructor change backed out.

 - Give us two branches that will be very similar apart from JDK 5
   features, and thus make it easy to back-port fixes/features from
   the 1.4 branch to the 1.3 branch.

 - Give us a 1.3.0 beta that is feature-complete, and thus make
   upgrading from beta >> RC >> final releases trivial.

Best regards,

Al


Re: VOTE: New roadmap and decision on the future of Wicket 2.0 branch

2007-03-14 Thread Al Maw

We've done some hard thinking and we now have a roadmap for the future.


+1

Al


Package rename heads-up for wicket-1.x branch

2007-03-14 Thread Al Maw

Hi folks,

As part of our ongoing incubation process at Apache, we're going to be 
renaming the core wicket package from "wicket" to "org.apache.wicket" 
shortly (not quite sure when yet, but soon).


If you're developing against the subversion wicket-1.x branch, you'll 
need to change your imports accordingly.


If you're on a box with find and sed (i.e. Linux, MacOSX, BSD, etc.) 
then you should be able to execute this in your project's directory:


find . -name "*.java" -exec \
sed -i -e 's/import wicket\./import org.apache.wicket./' {} \;

If you use Eclipse you can do something like this(*):

 - Make sure your project is backed up, etc.
 - Select the project you wish to update in the navigator.
 - Go to the "Search" menu and click "File".
 - Type "import wicket." (without the quotes) into the
   "Containing text:" field.
 - Click "Replace..."
 - Set the "With:" field to "import org.apache.wicket."
 - Click "Replace All".

If someone feels like telling IDEA/NetBeans/ other IDE users how best to 
accomplish this, by all means tell us. :-)


You may need to fix some imports back if you use contrib modules from 
wicket-stuff or elsewhere.


Best regards,

Alastair

(*) I tried to cook up a refactoring script for this, but it seems 
that's not really supported in a project-independent way for package 
renames, which is a pity.


Re: Retry: [VOTE] Release wicket-1.3.0-incubating-alpha

2007-03-27 Thread Al Maw

Frank Bille wrote:

Ok +1 on releasing to IPMC.

I don't expect them to just eat it without comments. I guess the biggest
point will be the license header aspect. I would therefor appreciate if we
could agree on what I have wrote in the wiki[1] or else reach consensus on
what our opinion is on this.

Frank

[1]:
http://cwiki.apache.org/confluence/display/WICKET/Wicket+1.3.0+incubating+alpha+1 


Agreed. I think "But we have also decided..." on the wiki is a bit, err, 
strong. It makes us look like we're ignoring the ASF's rules when we're 
actually trying to keep everyone happy.


Thoughts:
 - It can probably be argued that properties files don't have any degree
   of creativity in them.
 - I don't really see why we don't put a license header in the
   examples/test HTML files. It wouldn't kill us. You could argue that
   the test HTML files are nearly all auto-generated, but given we do
   the autogeneration, it would be pretty easy to add in.

Good work, Martijn - it's much appreciated.

Al


Re: [VOTE] release wicket-1.3.0-incubating-alpha (new version)

2007-03-28 Thread Al Maw

Martijn Dashorst wrote:

I've tried to remove some issues from our previous round. The less
issues to cope with, the better.
- just one target directory still eludes me, the rest have been eliminated
- jetty jars are now provided, and not put in the examples war
- build artifacts now go into target/dist and target/m2-repo (making
the build process self contained and more platform independent)

So another round, another vote.

[ ] Yes release the damned thing already
[ ] Yes, this is the last time I vote on this... My + and 1 keys show
signs of wear
[ ] No, I found this issue and you'd better fix it, or ...


Yeah, +1 to release it to the incubator folk.

I can't verify the ASC sigs, 'cos I don't have your public PGP key.

Other than that, things I've checked are:
 - Tests all pass.
 - mvn install works with nothing in local repo already.
 - SHA1 and MD5 sums are OK.
 - Tarball and ZIP have exactly the same contents.
 - The links in the README, etc. text files work/exist.

I might write a script to automate as much of the above as possible.

Things I haven't checked:
 - That the JAR files in /lib all work.
 - That the wicket-examples WAR works.

Obvious those are quite important. :-)
If someone else can verify those, then I'm +1 on the rest of it.


Some minor quibbles, none of which stand in the way:

 - There's a src/dist folder that's empty.

 - I'm not sure we need the release.sh script in the actual zip/tgz.

 - It'd be nice to make the eclipse.sh script executable (for the
   tar.gz, at least). You can do that with a 0755
   element in a  element in the assembly descriptor, but it's
   hardly a big deal.

 - I think we should move the EclipseCodeFormat.xml from wicket to
   the top-level parent folder.

 - While checking all this, I noticed that the JIRA link on
   http://incubator.apache.org/projects/wicket.html doesn't work (it
   needs an http:// on the front).


Thanks Martijn!

Al


Re: svn commit: r528350 - in /incubator/wicket/branches/wicket-1.x: jdk-1.4/wicket/src/main/java/org/apache/wicket/ jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/ jdk-1.4/wicket/src/

2007-04-12 Thread Al Maw

Jon,

This appears to have broken the world. Please can you at least do a 
basic test against wicket-examples when you make changes like this?


The unit tests for wicket-examples are currently failing with 50x 
errors, I presume due to this.


Issue is related to session creation. I'm using a stateless log-in page 
if that makes any difference.


Al


[EMAIL PROTECTED] wrote:

Author: jonl
Date: Thu Apr 12 21:27:24 2007
New Revision: 528350

URL: http://svn.apache.org/viewvc?view=rev&rev=528350
Log:
Moved call to session factory to Session.get(), removed session setting on PageMaps, moved session factory to Application and removed getDefaultSessionFactory. 


Modified:

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IPageMap.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/IRequestCycleFactory.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/PageMap.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebSession.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/session/ISessionStore.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java

incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java

incubator/wicket/branches/wicket-1.x/jdk-1.5/wicket-examples/src/test/java/org/apache/wicket/examples/panels/signin/CookieTest.java

Modified: 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java?view=diff&rev=528350&r1=528349&r2=528350
==
--- 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/AccessStackPageMap.java
 Thu Apr 12 21:27:24 2007
@@ -124,12 +124,10 @@
 	 * 
 	 * @param name

 *The name of this page map
-* @param session
-*The session holding this page map
 */
-   public AccessStackPageMap(final String name, final Session session)
+   public AccessStackPageMap(final String name)
{
-   super(name, session);
+   super(name);
}
 
 	/**


Modified: 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java?view=diff&rev=528350&r1=528349&r2=528350
==
--- 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/Application.java
 Thu Apr 12 21:27:24 2007
@@ -536,6 +536,11 @@
}
 
 	/**

+* @return Request cycle factory for this kind of session.
+*/
+   protected abstract IRequestCycleFactory getRequestCycleFactory();
+
+   /**
 * Gets the [EMAIL PROTECTED] RequestLogger}.
 	 * 
 	 * @return The RequestLogger


Modified: 
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/a

Re: svn commit: r528350 - in /incubator/wicket/branches/wicket-1.x: jdk-1.4/wicket/src/main/java/org/apache/wicket/ jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/ jdk-1.4/wicket/src/mai

2007-04-13 Thread Al Maw

Eelco Hillenius wrote:

On 4/12/07, Al Maw <[EMAIL PROTECTED]> wrote:

This appears to have broken the world. Please can you at least do a
basic test against wicket-examples when you make changes like this?


Should be fixed now.


Great, thanks Eelco.

Al


Re: [proposal] adopt animate.js into wicket-extensions as our core effects library

2007-04-13 Thread Al Maw

Martijn Dashorst wrote:

On 4/13/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:

I'm mainly thinking nice but do you have any concrete plans
(components, behavior) for it?


I think just a behavior (or class) with some examples. The philosophy
of the library is to not create 200 classes for every effect known to
man, which is what moo, rico, dojo and scriptaculous do. This library
is an enabling library for effects.


We could use it to provide an AccordionPanel without constraining you to 
prototype or moo or whatever.


We could easily provide framework support for fade-from-yellow 
highlights (the standard draw-attention-to-updated-items AJAX idiom).


A simple Java API to invoke transitions with AjaxRequestTarget would be 
 really cool (we could provide some predefined ones, I guess).


target.appendAnimation(component, new Highlight());

target.appendAnimation(component, new Highlight().setColour("#ff"));

target.appendAnimation(component, new FromClass("yellow"));

target.prependAnimation(component,
new Animation[] {
new ToClass("wider"), new ToClass("taller")
}
);

That sort of thing. :-)

Al


Re: WebClientInfo throws exception when User-Agent is not set, but should it?

2007-04-13 Thread Al Maw

Martijn Dashorst wrote:

The following code is in WebClientInfo's constructor:

public WebClientInfo(WebRequestCycle requestCycle)
{
super();
HttpServletRequest httpServletRequest = 
requestCycle.getWebRequest()

.getHttpServletRequest();
userAgent = httpServletRequest.getHeader("User-Agent");
if (userAgent == null)
{
throw new WicketRuntimeException("unable to read header 
'User-Agent'");

}

properties.setProperty(ClientProperties.REMOTE_ADDRESS,httpServletRequest.getRemoteAddr()); 


init();
}

If I'm not mistaken, browsers can suppress headers, amongst which the
User-Agent. Shouldn't the WebClientInfo support this?


It's rare, but sometimes you get real requests that don't have this 
header. I could have sworn I opened a bug for this a while back.


Yes, IMHO this is broken - it causes failures for a small minority case 
that's really not obvious. At the very least, the WebClientInfo 
constructor should throw a checked ClientInfoNotAvailableException or 
similar.


Al


Re: [vote] Move trunk to branches, promote wicket-1.x to trunk

2007-04-18 Thread Al Maw

Martijn Dashorst wrote:

This is a vote to promote 1.x to trunk and demote trunk to branches
with an appropiate label, and do it soon (as in now)

[x] yes, switch them
[ ] no, don't switch them


And yes, make sure the branch name for 2.0 has "discontinued" in it.

Al


Re: [vote] Name the release after 1.3

2007-04-19 Thread Al Maw

Charlie Dobbie wrote:

[x] Apache Wicket 1.4  (Non-binding vote)

Having declared 2.0 a dead-end, you shouldn't release anything with
the same version number within six months at least - there's too much
potential for confusion IMHO.  Not to mention tutorials and code
snippets that are floating around labelled "for Wicket 2.0".  Yikes.


I have to agree with this, much as it may be a pain for the book. :-/

I'm inclined to adopt the full-on Apache versioning scheme, which means:

 - Non-backwards compatible updates are x.0.0
 - Backwards compatible updates are x.y.0
 - Forwards/backwards interchangable patch versions are x.y.z

What about 3.0.0 with a move to this versioning scheme thereafter?

Regards,

Al


Re: WICKET-40 Parameters of nice URL's pages with 'sensitive' characters

2007-04-27 Thread Al Maw

Jean-Baptiste Quenot wrote:

Take it as my  favourite one to be fixed then,  and don't mind the
serious tone, I'm always serious ;-)


Yes, needs fixing. Am looking into this right now.


However,  we  agreed not  to  release  beta before  all  important
refactorings are  merged, but on  the other  hand we should  go on
because we'll always find some more refactoring to do ;-)


This isn't a refactor. It's a bug fix. No code will need to change, 
unless you're triple-escaping things. If you are doing that, you know 
this bug exists, hopefully.


Al


Re: Line precise error messages while constructing component tree

2007-05-01 Thread Al Maw

Martijn Dashorst wrote:

I just had a small idea, to regain the line precise error message when
we construct the component tree we lost in the constructor change
removal.

Why don't we record the stack trace in Component#Component() if we are
in development mode, and put it in the meta data or in a temporary
store in the request cycle?

This way if something goes wrong during construction, we can display
the component that is in violation and show the exact line number
where the component is constructed.

Something similar can be done with the 'add' method.


Yes! That sounds like an excellent idea. :-)
+1

Alastair


Re: [VOTE] Propose Wicket for Graduation

2007-05-08 Thread Al Maw

[x] Yes, propose Wicket for Graduation
[ ] No, Wicket is not ready to graduate

Al (sorry, been away for a couple of days).


Re: Hibernate Validator integration?

2007-05-10 Thread Al Maw

Ryan Sonnek wrote:
I'd appreciate anyone interested to take a look and let me know what 
they think.


You currently setRequired(true) on a NotEmpty, which isn't what that 
intends at all.


It's purpose is to make sure a String is length > 0, or a collection has 
more than zero elements.


Similarly, the Length element can and probably should be using a 
StringValidator for a TextField and not setting maxlength. Maybe it 
should do both. ;-)


It strikes me we probably need a:

Hibernate Validator Attribute + Component type -> Validator mapping

...because what sort of validator you want to use will be dependent on 
the component type.


Al


Re: poll: validators and behaviors combined... contribute or IS-A?

2007-05-11 Thread Al Maw

Eelco Hillenius wrote:

I guess my point is made. I'll back off for a bit and see what other
people have to say about this. Anyone's opinions are welcome, and core
developers, please contribute so that we can make this decision in
consensus.


I wouldn't call it IBehaviorProvider if it's tied into validators. ;-)

Perhaps call it IBehaviorProvidingValidator and make it extend 
IValidator, so it's more obvious what's going on and what the interface 
is for.


That said, I think I prefer this approach to IComponentFacet for the 
following reasons:


 - When a user goes CTRL+SPACE in Eclipse on their component, having an
   add(IComponentFacet) method will be much more confusing and less
   discoverable than add(IBehavior) and add(IValidator) methods.

   As a newbie I'd be thinking, "what the hell is a facet?" whereas at
   least "validator" is pretty self-explanatory.

 - Conceptually, users are adding a validator. The fact that it adds a
   behavior to help prevent invalid input or add feedback or whatever is
   secondary to its main purpose, which is validation. It therefore
   makes more sense to me that it's an IValidator first and foremost.
   Putting IBehavior on a level footing with that doesn't make much
   sense to me if I'm wearing my user hat.

 - It's nice and simple - I don't have to think hard about whether it
   might suck or not. ;-)

Regards,

Al


Re: Hibernate Validator integration?

2007-05-11 Thread Al Maw

Bruno Borges wrote:

What if we want to have in one IValidator, more than one IBehavior? just
wondering... :)

This could be important and usefull, if in one Validator two _very simple_
behaviors are needed, and they need to be keep separated with each other.

[]'s


We could have a method that adds behaviours, rather than provides them.

Instead of:
public IBehavior newValidationBehavior(Component component)

Have:
public void addBehavior(Component component)


At that point, I'm wondering if there's any point calling it 
addBehavior() - surely we should just have a much more generic hook 
instead, where you can add IBehaviors, or do anything else you want?


Something like:
public void onAdd(Component component)

So Component#add(IValidator validator) calls validator.onAdd(this);

What do you think?

Al




Re: relative URL refactor (maybe?) and request target regressions

2007-05-13 Thread Al Maw
Jonathan Locke wrote:
> i'm getting this exact problem too.  is there a JIRA issue for this yet?

Sorry. I'm fixing this right now. ;-)

Al


Re: relative URL refactor (maybe?) and request target regressions

2007-05-13 Thread Al Maw
Hi folks,

Can you do a SVN up on trunk and see if this is now fixed for you?

Al

Jonathan Locke wrote:
> 
> i'm getting this exact problem too.  is there a JIRA issue for this yet?
> 
> 
> n8han wrote:
>> Previously I was able to mount bookmarkable paths including a slash in
>> 1.3.0 snapshot, but now ajax request targets on those pages are failing.
>> There is no exception logged; the browser redirects to
>> resources/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js.
>>
>> A separate problem is that request targets (ajax and regular) are no
>> longer being processed under mounted bookmarkable URLs as they were up
>> until now on 1.3.0. A mount like /code have targets like /code?wicket:...
>> , but not they are /?wicket: as in Wicket 1.2. Is this intentional?
>>
>> Nathan
>>
> 



Re: relative URL refactor (maybe?) and request target regressions

2007-05-13 Thread Al Maw
n8han wrote:
> Previously I was able to mount bookmarkable paths including a slash in 1.3.0
> snapshot, but now ajax request targets on those pages are failing. There is
> no exception logged; the browser redirects to
> resources/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js.

As mentioned in the other e-mail, this should be fixed now. It was
caused by a small oversight in some refactoring, for which I apologise.

> A separate problem is that request targets (ajax and regular) are no longer
> being processed under mounted bookmarkable URLs as they were up until now on
> 1.3.0. A mount like /code have targets like /code?wicket:... , but not they
> are /?wicket: as in Wicket 1.2. Is this intentional?

Yes, this is intentional, and it shouldn't be causing any problems
(although it may get in the way of hybrid URLs, but we can fix that
post-1.3).

The reason for this is primarily due to how AJAX HeaderContributions
work. CSS/JS/whatever needs to be relative to the URL for the page that
is being viewed. When an AJAX request comes in, if the URL for the AJAX
request at the same "../ depth" as the page view itself, then we just
construct resource links relative to that, and it all works. Otherwise,
we need to maintain state for the depth of the original page render.
This is possible, but less easy, and I don't want to mess with this
prior to the 1.3 release.

Al


Re: relative URL refactor (maybe?) and request target regressions

2007-05-13 Thread Al Maw
Al Maw wrote:
> n8han wrote:
>> Previously I was able to mount bookmarkable paths including a slash in 1.3.0
>> snapshot, but now ajax request targets on those pages are failing. There is
>> no exception logged; the browser redirects to
>> resources/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js.
> 
> As mentioned in the other e-mail, this should be fixed now. It was
> caused by a small oversight in some refactoring, for which I apologise.
> 
>> A separate problem is that request targets (ajax and regular) are no longer
>> being processed under mounted bookmarkable URLs as they were up until now on
>> 1.3.0. A mount like /code have targets like /code?wicket:... , but not they
>> are /?wicket: as in Wicket 1.2. Is this intentional?
> 
> Yes, this is intentional, and it shouldn't be causing any problems
> (although it may get in the way of hybrid URLs, but we can fix that
> post-1.3).
> 
> The reason for this is primarily due to how AJAX HeaderContributions
> work. CSS/JS/whatever needs to be relative to the URL for the page that
> is being viewed. When an AJAX request comes in, if the URL for the AJAX
> request at the same "../ depth" as the page view itself, then we just
> construct resource links relative to that, and it all works. Otherwise,
> we need to maintain state for the depth of the original page render.
> This is possible, but less easy, and I don't want to mess with this
> prior to the 1.3 release.

Turns out this is actually required. I've patched in an extra param in
RequestParameters for the URL depth of the original page, and updated
the interface listener request encoding stuff to cope. Hopefully we
should now be able to trivially support hybrid URLs in future and
everything should now work as intended. ;-)

Let me know if you see any oddness.

Al


Re: relative URL refactor (maybe?) and request target regressions

2007-05-13 Thread Al Maw
n8han wrote:
> 
> Al Maw wrote:
>> Turns out this is actually required. I've patched in an extra param in
>> RequestParameters for the URL depth of the original page, and updated
>> the interface listener request encoding stuff to cope. Hopefully we
>> should now be able to trivially support hybrid URLs in future and
>> everything should now work as intended. ;-)
>>
> 
> I'm not sure if we're talking about exactly the same thing there; I'm still
> getting ajax requests to /?wicket... from a mounted page, with the current
> trunk. But I found some Apache proxy magic to make that ok with my setup:
> 
> RewriteCond %{QUERY_STRING} ^wicket
> RewriteRule ^/$ http://localhost:8280/ [P]
> 
> (I have an application that thinks it has a root context, but I only proxy
> requests to it from certain paths.)
> 
> So that's fine, but modal window is not happy on those sub-pages. It opens
> correctly now, but buttons and links off of it fail with a redirect to a
> blank page as was happening before with ajax links from the page itself.

I've quite probably just fixed that, literally as you posted. Update and
try it now.

Apologies for the slight URL instabilities over this weekend. I've been
trying to get our URL handling in shape for the forthcoming 1.3 release,
and just after beta1 and over a weekend seemed to be a good time to do
that. Hopefully everything is now in good shape.

Regards,

Al


Re: [VOTE] Code Freeze for RC

2007-05-13 Thread Al Maw
Jonathan Locke wrote:
> I'd like to propose that we freeze the codebase now so we can work on
> bugs over the next few weeks for a Release Candidate.  This is quite
> critical timing NOW for people who have been promised that a mid-June 
> or early July launch of a commercial product on Wicket would be workable.  
> I know I am one such person, but I can also point to other such promises 
> made by the dev team (myself, eelco, others) on this mailing list.
> 
> This said, I'm not so hell-bent on shipping that I'd argue for a freeze 
> before fixing something that's truly important.  But we do really need to 
> wrap this up as soon as humanly possible so we can ship a FINAL product
> in just a few very short weeks.  So, here's the vote:
> 
> [ ] I'm ready to freeze the codebase for RC bug fixing.
> 
> [ ] Hold your horses, we REALLY MUST (fill in the blank) __ first.
> 
> NOTE: If someone comes up with a good reason not to freeze, we can 
> revote with that on the ballot.

[x] I'm ready to freeze the codebase for RC bug fixing.

Caveat: I'll try to get WICKET-6 done tomorrow, but it doesn't really
matter that much. ;-)

Regards,

Al


Re: Bug in AbstractAjaxDefaultBehavior causes AjaxSubmitLink to hang

2007-05-14 Thread Al Maw
Bart Molenkamp wrote:
> Hi,
> 
> I believe that there is an endless loop in AbstractAjaxDefaultBehavior.
> On line 247, the statement:
> 
> parent = getComponent().getParent();
> 
> should be changed to:
> 
> parent = parent.getParent();
> 
> It was introduced in revision 537689 to fix WICKET-472.
> 
> 
> Can someone fix this oneliner, or should I create a new issue for it??

Yes, my fault. Been staring at screens too long over the weekend. Sorry.
Sorted.

Alastair



JIRA versions

2007-05-14 Thread Al Maw

Hi folks,

In an effort to better track our bugs, I've created some new project 
versions in JIRA.


Renamed:
  1.3 -> 1.3.0

Added:
  1.3.0-beta1
  1.3.0-rc1
  1.3.1

Core devs:
==
Please can you push bugs that are currently marked for 1.3.0 and that 
you don't intend to fix imminently to either 1.3.1 or mark the fix 
version as unassigned?


IMHO, we need to work out what needs doing for rc-1 and get it all into 
JIRA so it's all visible, and we can get it all sorted ASAP.


Best regards,

Al


Re: svn commit: r537771 - in /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http: WebRequestCycle.java servlet/ServletWebRequest.java

2007-05-15 Thread Al Maw

Jean-Baptiste Quenot wrote:

That's sounds very hacky to me:

redirectUrl.replaceAll("../", "")

Can you describe the problem so that we try to provide a better
fix (and hopefully AlMaw is listening to us ;-))


Yeah, I think it's hacky too, especially given the rest of this is now 
fairly sane. Rest assured I'm looking into it.


Al


Chaining IComponentResolvers

2007-05-23 Thread Al Maw

Hi folks,

We have a bit of an issue with IMarkupFilter implementations, in that 
you can't currently layer two different IComponentResolvers if they both 
want to alter the same thing.


This is currently an issue for SimplePageTest for testRenderHomePage_7, 
which is why that's failing.


Specifically, it goes:
test 2

Correct behaviour here is:
 - Prepend the src attribute with "../" links to make it
   context-relative.
 - Add an attribute "attr-name" with the appropriate i18n message.

MarkupParser adds WicketMessageTagHandler is before the 
RelativePathPrefixHandler, so currently that "wins" and resolves the 
component first. It doesn't get added as a RelativePathPrefixHandler 
auto-add component, so the behaviour to prefix URLs isn't added, so the 
src attribute remains "test.gif", not "../test.gif" and the test fails.


We need to somehow support chaining these things together, but I'm not 
sure how - it's really not obvious.


I wondered if anyone out there might have any bright ideas how best to 
fix this.


Al


Re: Any documentation on how the wicketstuff.org server is set up?

2007-05-23 Thread Al Maw

Martijn Dashorst wrote:

Basically I just read a message that the maven repo for our snapshots
at wicketstuff.org could be cleaned (to avoid problems with too many
versions lying around).

Can/should we rm -rf the whole repository prior to a wicket build?


Nope, bad plan:

 - We build different versions, so we'd need to vape 1.2.x and 1.3.x
   separately, rather than the whole thing, even if this was a good
   idea, which it isn't.

 - You don't want to vape things prior to a build, as if someone comes
   along while you're building they won't be able to download. Bad.

 - We already have the flag set on Maven to build a single SNAPSHOT
   rather than dated versions, so we're not wasting any space with this.

IMHO, we should:

 - Not serve up all the dependencies - we should just have
   org/apache/wicket/ and wicket/ in there.

 - Remove the 1.3-SNAPSHOT stuff (1.3.0-incubating-SNAPSHOT is current).
   No one should be using 1.3-SNAPSHOT; we should actively break this.

 - Remove the 2.0-SNAPSHOT stuff (this one's open to debate).

Al


Re: Any documentation on how the wicketstuff.org server is set up?

2007-05-23 Thread Al Maw

Johan Compagner wrote:



  - Not serve up all the dependencies - we should just have
org/apache/wicket/ and wicket/ in there.



hmm don't know how to do that directly
because we just share the local repository of maven
and bambo builds from that and deploys to it.
So i guess we need to somehow have 2? one that has all and one that has 
only wicket?


Hmmm. We probably need to have a  for bamboo, which has a 
 section that points to a local directory, which 
we serve as the maven repo, and then change the Bamboo builds to do a 
mvn deploy, not a mvn install.



Or somewhat more simply, we could just create a parallel directory 
structure and symlink stuff:


htdocs/
htdocs/wicket -> /home/foo/.m2/repository/wicket
htdocs/org/
htdocs/org/apache/
htdocs/org/apache/wicket -> /home/foo/.m2/repository/org/apache/wicket

(And make sure the Apache follow symlinks config directive is set.)

Al


Re: [jira] Updated: (WICKET-271) investigate Ajax back button support

2007-05-24 Thread Al Maw

Johan Compagner wrote:

this wont be fixed for 1.3 at least i dont think so, we have support
for it on the serverside but no support on the client side yet


Yep, that's why I removed 1.3.0 from the fix versions. ;-)

Al


Re: Chaining IComponentResolvers

2007-05-24 Thread Al Maw

Hi,

I've created a bug for this.
https://issues.apache.org/jira/browse/WICKET-590

It's currently causing the build to fail - we really should fix this one 
way or another.


Al


Al Maw wrote:

Hi folks,

We have a bit of an issue with IMarkupFilter implementations, in that 
you can't currently layer two different IComponentResolvers if they both 
want to alter the same thing.


This is currently an issue for SimplePageTest for testRenderHomePage_7, 
which is why that's failing.


Specifically, it goes:
test 2

Correct behaviour here is:
 - Prepend the src attribute with "../" links to make it
   context-relative.
 - Add an attribute "attr-name" with the appropriate i18n message.

MarkupParser adds WicketMessageTagHandler is before the 
RelativePathPrefixHandler, so currently that "wins" and resolves the 
component first. It doesn't get added as a RelativePathPrefixHandler 
auto-add component, so the behaviour to prefix URLs isn't added, so the 
src attribute remains "test.gif", not "../test.gif" and the test fails.


We need to somehow support chaining these things together, but I'm not 
sure how - it's really not obvious.


I wondered if anyone out there might have any bright ideas how best to 
fix this.


Al

!DSPAM:465435e2192032419821387!





Re: [vote] Accept wicket-contrib-velocity sub project

2007-05-25 Thread Al Maw

Martijn Dashorst wrote:

In the licensing mumbo jumbo, graduation proceedings and fixing bugs
for 1.3.0 we forgot to officially vote wicket-contrib-velocity in. So
with further ado:

[ ] yes accept wicket-contrib-velocity
[ ] no, let's not accept wicket-contrib-velocity, because...


+1 (binding)

Al


Re: Build Failed

2007-05-25 Thread Al Maw

Martijn Dashorst wrote:

You don't do anything wrong.

In Wicket development (on the core project), the unit tests sometimes
just don't run for a couple of days because they are used as a method
of communication: someone knows how to reproduce a bug but doesn't
know how to fix it. The unit test exposing the bug is then committed,
so that someone else can look at it in due time.


FWIW, this is http://issues.apache.org/jira/browse/WICKET-590

Al


Re: case insensitive check for attributes?

2007-05-30 Thread Al Maw

Johan Compagner wrote:
should we try to match case insenstive? Not it is just a ValueMap of 
attributes so the problem is that we then have to lowercase all the

attributes keys


H. XHTML says all the attributes should be lowercased, so I see no 
particular problem with lowercasing everything in the markup loader, 
aside from the extra overhead. Someone will doubtless complain, though.


Regards,

Al

--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com


Re: Build Failed

2007-05-30 Thread Al Maw

Jean-Baptiste Quenot wrote:

Mmm actually  I don't really  agree, making the build  fail should
not  be  intentional.  We  could  have  some convention  like  for
example naming  the failing  unit test methods  after bugTestXXX()
instead of testXXX() to make it obvious that the test does not run
and that there is a bug.


Sorry for this, this is probably my fault. ;-)

Having failing unit tests for days on end is definitely bad - it 
massively reduces the utility of your continuous integration server.


I originally intended this to be fixed pretty rapidly, hence the 
immediate tender for ideas on how to fix it on IRC and the dev mailing 
list. Once it wasn't, I should have commented the test out and made 
appropriate notes on the JIRA issue.


We have a bug tracker to work out what bugs need fixing before we do a 
release, so commenting things doesn't shove them into "a big black hole 
where no one is looking at it". It's a bug we currently have scheduled 
for fixing before we push 1.3.0-rc1 out. That most definitely makes it 
on the immediate radar.


Regards,

Al
--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com


Re: case insensitive check for attributes?

2007-05-31 Thread Al Maw
As far as I can see, the only reasons not to lower-case stuff 
automatically are that it's too magic and/or too expensive to check all 
the attribute modifiers.


I can also foresee someone wanting to use upper-case and then running an 
XSLT transform over it or something, and complaining that we've broken 
their use-case.


I'd be in favour of a runtime check in both DEVELOPMENT and DEPLOYMENT 
that AttributeModifiers are lowercase, perhaps with a 
setAllowUppercase(true) to cover the uncommon case if anyone needs it?


You can go if (foo.toLowerCase() == foo) which is reasonably cheap (most 
attributes are less than ~10 chars, so it's just 10 or so comparison 
operations, no new String will be made if it's already correct.


As a slight aside, but related to the magic, I've long been confused by 
AttributeModifier silently throwing things away if you omit the boolean 
constructor param. It seems to confuse fresh Wicket developers. Does 
anyone have a use-case for this? Why is it like that?


Al

--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com


VOTE: Configuring DEPLOYMENT/DEVELOPMENT mode.

2007-05-31 Thread Al Maw

Hi folks,

I've been thinking a lot about this lately.

Current issues:
===
 - We default to DEVELOPMENT and we should make it more obvious that you
   should set DEPLOYMENT for production servers.

 - We currently provide the following methods to configure which mode
   you run in:
 - Set a System property.
 - Set a servlet context param.
 - Set a filter param.

   If you don't fit into any of those, it makes life difficult - you
   don't want to just call configure(DEPLOYMENT) in your init() method,
   because then configure() is called twice - once by Wicket internally,
   probably in default DEVELOPMENT mode, and once by you manually. This
   results in a bunch of DEVELOPMENT mode stuff running on your live
   environment, and it's not that obvious that this is what's going on.
   (See WICKET-6, where even JBQ doesn't seem to entirely get this.)
   To avoid this, you need to override internalInit(), which is a right
   pain, as although the one in WebApplication doesn't do much, the one
   in Application does (adds all the component resolvers, etc.) and
   you'd need to keep things in sync. Ugh. All the configure() methods
   are final, too, so it's not an option to munge the value and then
   call super() with it, either.


Proposal:
=
I think we should have a pull model for this. In other words, we should 
make Application#getConfigurationType() abstract and call that to get 
the type. We then let people handle this however they want.


Advantages:
 - More discoverable as it's an abstract method, like getHomePage().
 - Much more flexible for configuration.
 - More "Wicket-like".
 - Less code for us to maintain.

Disadvantages:
 - The 1.3 migration guide gets a little larger. ;-)

Err, can I call a vote on this please?
 [ ] Yes, great idea, let's get it into 1.3.0-beta2
 [ ] No, that's rubbish, because...



Regards,

Al

--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com


Re: VOTE: Configuring DEPLOYMENT/DEVELOPMENT mode.

2007-05-31 Thread Al Maw

Johan Compagner wrote:

is fine by me as long as the current stuff keeps working
like the system property which i use all the time
because i always set it directly in deployment but in my launch configs i
set it back with a system property


I guess we could implement a getDefaultConfigurationType() function 
which you could delegate to, which would maintain the current 
functionality as-is.


So "upgrading"/migrating would be as simple as:

public String getConfigurationType()
{
return getDefaultConfigurationType();
}

But at least it makes it obvious what's going on, and you can ctrl+click 
through to the method to see what happens by default. This would be in 
the javadoc, obviously.


Regards,

Al

--
Alastair Maw
Wicket-biased blog at http://herebebeasties.com


  1   2   >