Re: wicket:interface, etc. in generated URLs

2007-07-25 Thread Eelco Hillenius

On 7/25/07, Al Maw [EMAIL PROTECTED] wrote:

Hi folks,

Although some people don't really care what their URLs look like, lots
of people do.

If you use UrlCompressingWebCodingStrategy you can get the actual
parameter values for interface/behaviour/etc. URLs looking pretty small
and inoffensive.

But the name is still something large, like wicket:interface. I'm
wondering if for 1.3 we could replace that with just:

wicket:interface-- w:i
wicket:behaviourId  -- w:b
wicket:bookmarkablePage -- w:p
wicket:pageMapName  -- w:m

It'd make the URLs shorter and not really any less comprehensible (this
stuff only really means anything to people who understand the internals
anyway).

It'd make things very marginally quicker (less string matching).

In short, I can't really see any disadvantage to it, other than that it
will break any existing bookmarks to non-mounted pages. I'm pretty sure
that the upgrade from 1.2 to 1.3 breaks these anyway.

It's a trivial fix (just update the constants in
WebRequestCodingStrategy and a bunch of expected unit test results).

What do people think?


+1

Eelco


Re: getWrappedModel and getChainedModel (Component.getInnerMostModel())

2007-07-19 Thread Eelco Hillenius

we also have IChainingModel shouldn't we also test for that?
because çurrently the behavior is that we only test for WramModels to get to
the innermost model
but what is then the big difference with IChainingModel?


Hey, didn't you code that stuff? :)

Eelco


Re: Improve Wicket performance with ETags

2007-07-17 Thread Eelco Hillenius

On 7/17/07, Johan Compagner [EMAIL PROTECTED] wrote:

wicket is a framework for dynamic webpages, so 99% of the time you don't
want to cache
and you want to make sure that the browser does query again for the page.
Also the none bookmarkable pages are like wicket:interface= and that xxx
can be anything
and 2 the same values could point to completely different things over
multiply runs of the browser.

if you want caching you have to do it your self in Page.configureResponse()
or in your Resources.configeResponse()
In both default imp we do already some stuff for example Page is configured
to not cache
and a resource if it is cacheable will send 2 headers. Also we have special
support for the head request: 'If-Modified-Since'


I agree with Johan, though giving it a serious look sometime wouldn't
hurt I guess. I think it wouldn't be very complex to look at. Bruno,
how about you write a little proof-of-concept?

Eelco


Re: Improve Wicket performance with ETags

2007-07-17 Thread Eelco Hillenius

On 7/17/07, Bruno Borges [EMAIL PROTECTED] wrote:

Sure Eelco... :) As soon I get something showable... I'll show you... lol


Cool :)

Eelco


Re: ehcache based MarkupCache

2007-07-15 Thread Eelco Hillenius

On 7/15/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

no big plus, just playing a bit and having the option if some realy
realy needs it.It should not go into the core project for sure. I'm
just looking for the right place to drop it. If extension is not the
right place either, due to the dependency, where should go? If not
useful at all, we don't need to put it anywhere.


If you want to keep it, you should make it a separate project. People
wanted me to create wicket-datetime because it had a dependency on
joda-time, so it makes sense to create a seperate project for this as
well.

Eelco


Re: Escaping quotes in attributes

2007-07-11 Thread Eelco Hillenius

  1. Automatically insert an attribute value that's the same as the name
 (which I think it always should be), for things like disabled.

  2. Prevent people adding null values to the map in the first place. To
 do this, we'd need to wrap the IValueMap in XmlTag with some magic
 on the put method to check for null values. Or we could add a
 boolean flag to IValueMap to say whether it accepts them, or
 similar.

Obviously #1 is nice and simple.

What do people think?


#1 sounds good to me.

Eelco


Re: Clone problem? Difference in behavior between 1.2 and 1.3

2007-07-11 Thread Eelco Hillenius

this is not really solveable by wicket itself.
We don't know where such a reference is comming from, so this should be
documented i guess
that if you use session data from the session object itself. You should
always use an extra
indiretion to get it
new Model()
{
  getObject() {Session.get().getList()}
}


I don't see a generic solution either, but in this case I though you
should use custom serialization of either your custom session or a
model you use for the extra indirection.

Eelco


Re: Thread synchronization problems in FilePageStore

2007-07-11 Thread Eelco Hillenius

I opened an issue here http://issues.apache.org/jira/browse/WICKET-746

Eelco


Remove PageView in ExceptionErrorPage

2007-07-10 Thread Eelco Hillenius

Hi,

Our first part of the ExceptionErrorPage works fine. It's
straightforward and displays useful information.

I'm not happy with the PageView part though. Tbh, I don't think I ever
read anything from tree that helped me. What's worse, the size bit in
the PageView can be a serious hog sometimes. For example, a
problematic page I'm looking at now takes more than 40 seconds to
calculate the sizes of all the individual components, and the
resulting output is 400KB! If I remove PageView from the
ExceptionErrorPage, it displays immediately, and is just 20KB.

I would like to remove PageView from ExceptionErrorPage. I don't think
information such as

#   PathSizeTypeModel Object
1   -header
org.apache.wicket.markup.html.internal.HtmlHeaderContainer
2   -header:_FeedbackPanelnullHeader2
org.apache.wicket.markup.html.HeaderPartContainer
3   -header:_FeedbackPanelnullHeader2:_link_13
org.apache.wicket.markup.html.WebMarkupContainer
4   -header:_FeedbackPanelnullHeader2:_link_13:_autolink_14
org.apache.wicket.markup.html.WebMarkupContainer
5   -header:_FilterableTableViewEmbeddednullHeader2
org.apache.wicket.markup.html.HeaderPartContainer
6   -header:_FilterableTableViewEmbeddednullHeader2:_link_9
org.apache.wicket.markup.html.WebMarkupContainer
7   -header:_FilterableTableViewEmbeddednullHeader2:_link_9:_autolink_10
org.apache.wicket.markup.html.WebMarkupContainer
8   -header:_PagingNavigatornullHeader0
... etc

is useful in that page at all, and having to wait for half a minute
before you see the page is very anoying. We might consider adding e.g.
an Ajax based tree that you can use to navigate the structure, but
otoh, we would only have such a tree in there because it is fancy, not
because it actually helps debugging (for that, just use your IDE).

Objections?

Eelco


Re: Border re-implemented

2007-07-10 Thread Eelco Hillenius

On 7/10/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

Today I've committed the new Border to 1.3 trunk. I would appreciate
if you could do a quick check of your applications using Borders to
make sure everthing is working as expected. Thanks.


Hi Juergen. We are experiencing some problems with it and we're
looking into it right now.

Eelco


Re: FileUploadField closing input streams behind my back

2007-07-07 Thread Eelco Hillenius

Not only should you not need to add a finalizer, but most importantly,
review your codebase and *remove* all finalizers.


It's the only one in there.

Eelco


Re: FileUploadField closing input streams behind my back

2007-07-07 Thread Eelco Hillenius

Good.  Makes the review easier ;-), and you've only the one to remove.


I've opened an issue for it http://issues.apache.org/jira/browse/WICKET-730

Eelco


Re: FileUploadField closing input streams behind my back

2007-07-06 Thread Eelco Hillenius

On 7/6/07, Johan Compagner [EMAIL PROTECTED] wrote:

and if i remember correctly, back then it looked if the FileUpload project
was really in suspend stage.
there wasn't much happening on it, so i am talking abou the time we added it
to the core of wicket


Yeah, that's one of the reasons why we felt we would be able to get
rid of the dependency without troubles.

Anyway, Al, what's your take on this?

Eelco


Re: [VOTE] disable line-precise error reporting by default

2007-07-06 Thread Eelco Hillenius

[ x ] disable this feature by default, put instructions on how to enable it
into component-not-found related exception messages
[ ] leave it enabled by default

I've argued before that if it were up to me, deployment would be our
default. Lost that argument and that is fine, but I feel that debug
options such as there can give people the wrong ideas.

One thing we might consider is to add a third deployment mode -
something like DEBUG - which would include this setting and e.g. the
outputMarkupClass setting[1] (which is a very useful tool that is
turned off by default). And/ or we could consider to have plugable
profiles rather than the two hard-coded ones.

Eelco

[1] 
http://chillenious.wordpress.com/2007/06/20/locate-where-that-wicket-markup-comes-from/


Re: FileUploadField closing input streams behind my back

2007-07-06 Thread Eelco Hillenius

 Anyway, Al, what's your take on this?

Do I have to have one? ;-)

I've fixed the bug I was having, haven't had time to compare the two
divergent branches since, sorry.


I meant Noel's remarks, specifically:

So you do have an old version of the FileCleaner, albeit prior to
enhancements that have been added to the current version in Commons, and you
have added some support for it to
org/apache/wicket/util/upload/DiskFileItem.java, but you also have a bogus
finalizer in DiskFileItem

Eelco


Re: FileUploadField closing input streams behind my back

2007-07-05 Thread Eelco Hillenius

For that matter, why aren't you using Commons?  The very problem (file
uploading) you are dickering with is precisely one that we addressed in
Commons years ago.  The core code is in Commons I/O:

http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/java/org/ap
ache/commons/io/


We have been using commons-io from the start, but the code grew in a
different direction due to various reasons.

Eelco


Re: FileUploadField closing input streams behind my back

2007-07-05 Thread Eelco Hillenius

I understand we just took what little pieces we needed instead of adding a
dependency on the entire thing, but what is meant by the code grew in a
different direction due to various reasons?


We started using commons-io as just a dependency, but after a while we
needed some tweaks to better let it integrate with Wicket (at least
that's what I remember) and later on, when we tried to cut down on
dependencies we went from a 'patched' version to just taking the
classes we needed.

Eelco


Re: Problem with latest changes in FormComponent:validate()

2007-07-04 Thread Eelco Hillenius

Thanks for adding the 'INullAcceptingValidator'. This solves our problem in a
clean way.

Just a small suggestion: I've seen that the CompoundValidator does not
implement this interface. Would it not be correct to assure that the
CompoundValidator is called always, and that the same logic of checking the
implementation of the interface is applied to all the validators in the
chain ?


Sounds reasonable, but I didn't implement it. Matej/ Igor?

Eelco


Re: Is there any document about SecondLevelCacheXXX ?

2007-07-03 Thread Eelco Hillenius

I have found the following classes in Wicket 1.3.0-beta2:
  1) SecondLevelCacheSessionStore
  2) SecondLevelCachePageMap
  3) SecondLevelCachePageVersionManager
  4) FilePageStore


Not really other than the Javadocs. But the short variant:
SecondLevelCacheSessionStore and FilePageStore are the only entities
you have to care about as an end-user, as SecondLevelCachePageMap and
SecondLevelCachePageVersionManager are internal to
SecondLevelCacheSessionStore.

SecondLevelCacheSessionStore is a session store implementation - the
default one for Wicket 1.3 - that keeps the current page (for each
page map you have, mind you) in RAM, and stores older page (versions)
to 'second level cache' for back button support. The default second
level page store, FilePageStore, uses temporary directories
(java.temp.dir) and serialization to store the instances. This gives
users unlimited back button support for the price of temporary disk
space and processor overhead (for serialization).

The other session store shipped with Wicket is HttpSessionStore, that
keeps a limited list of pages stored in the HttpSession object (which
also means it is stored in RAM). This store uses a different version
manager that stores change objects for page version that can be used
to 'roll back' to earlier versions. This looks cheaper on first sight,
but it uses a lot more RAM than the SLCSS and back button support is
limited (and more flaky at times it seems). We have found that SLCSS's
overhead for serializing and storing pages as temp files hardly is
noticable, of course after Johan and later Matej agressively optimized
it. On my note book, which should be *a lot* slower than most of
production servers, it takes less than 2 miliseconds a request.

In the end, the choice is yours. Matej built a SLCSS variant that is
fully clustered. Hopefully we'll be able to contribute some of that
back sometime. Or you can roll your own :)

Eelco


Re: BoxBorderTest_7

2007-07-02 Thread Eelco Hillenius

On 6/30/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

BoxBorderTest_7 currently fails with Bamboo but it is working fine
with me. The Bamboo online information from the test doesn't give me a
hint either. And idea? I guess Bamboo is running on Linux?


Fails on my machine as well. It says the test expects

span
davor middle-1 danach
/span
span
davor middle-2 danach
/span

but gets

spandavor middle-1 danach
/span
spandavor middle-2 danach
/span


Eelco


Re: [vote] rebuild of wicket-1.3.0-beta 2

2007-07-02 Thread Eelco Hillenius

Changing the case of Java files tends to cause pain on Windows systems,
because they're case-insensitive. We're almost guaranteed to have people
with strange ClassNotFoundExceptions if we go and do this.

It's yet another API change just before we release 1.3.0.

If we fix the class names, we should also fix the method names. There's
a lot of inconsistency at the moment, and this would cause an awful lot
of API breakage.

It would make sense to use Javascript everywhere, as JavaScript is
one word, so when you CamelCase it, it should all go lower.

Otherwise, if you have a JavaScriptHandler, is it a ScriptHandler for
Java, or a Handler for JavaScript?

Anyway, there's a bunch of stuff we'd need to fix, including
HeaderContributor.forJavaScript(), etc. etc.

I don't think we want to do that this close to a 1.3 release. I imagine
it'd be a faff for the upcoming Wicket book, too.


I agree. The book isn't much of a problem in this case, but I know
from some previous renames (around 1.1 if I recall correctly) that it
can be a pain especially for Windows users. Annoying as these little
naming inconsistencies can be, I'm not sure if it's is worth the pain.

Eelco


Re: BoxBorderTest_7

2007-07-02 Thread Eelco Hillenius

On 6/30/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

BoxBorderTest_7 currently fails with Bamboo but it is working fine
with me. The Bamboo online information from the test doesn't give me a
hint either. And idea? I guess Bamboo is running on Linux?


I found and fixed an issue in MarkupParser:

if 
(CONDITIONAL_COMMENT.matcher(comment).matches() == false)
{
buf.append(rawMarkup.substring(0, pos1 
- 1));

should be

if 
(CONDITIONAL_COMMENT.matcher(comment).matches() == false)
{
buf.append(rawMarkup.substring(0, 
pos1));

in this particular test, the newline was removed (and windows and
linux/ osx work with different characters).

Eelco


Re: [proposal] restructure projects a bit

2007-06-30 Thread Eelco Hillenius

I'm proposing to move things a bit around.


Sounds good to me, +1

Eelco


Re: [vote] rebuild of wicket-1.3.0-beta 2

2007-06-29 Thread Eelco Hillenius

[ x ] I have checked the distribution and +1 its release
[ ] I haven't checked the distribution and +0 its release
[ ] I have checked the distribution and -1 its release because...


Eelco


Re: [vote] release Apache Wicket 1.3.0-incubating-beta-2

2007-06-26 Thread Eelco Hillenius

[ ] I checked the distribution, and I +1 the release of them
[ x ] I didn't check the distribution, but I want to release them
regardless (+0)
[ ] I don't want to release the distribution, because ...

Eelco


Re: getMarkupId doesn't return the id from the markup

2007-06-25 Thread Eelco Hillenius

Unfortunately, the fix for
http://issues.apache.org/jira/browse/WICKET-694 had some side effects
I didn't come across when testing :(

It's a bloody shame, but it seems that already too much code assumes
it can call getMarkupId where it shouldn't. I'm leaving the bug open,
but at this time I have no idea on how to fix it.

Eelco


On 6/24/07, Eelco Hillenius [EMAIL PROTECTED] wrote:

 I believe the current behavior is intentional. Igor seemed to feel
 quite strongly about not using markup id specified in template. The
 reason is that it's not unique and it behaves wrongly in repeaters or
 when you put the component to page twice.

I remember having this discussion a very long time ago, but I though
we decided that even though there is some danger in it, it is the
responsibility of the user. Which is the right thing imo.

 I'd actually prefer wicket to preserve specified attribute because it
 can be handy in cauple of cases. But that's just my opinion.

The thing is that we call this method getMarkupId, but it only returns
the id you can find in the markup when you *don't* provide one
explicitly (and tell the component to write it's id). Even if you set
setOutputMarkupId(true), Wicket won't override the id in the markup,
which of course has the effect that any Javascript refering to the id
- like the datepicker does - does not work.

So we currently have the situation that if you set the id explictly,
stuff won't work anyway, and we have a method name that doesn't do
what the name hints (for it's current behavior it should be called
something like getGeneratedMarkupId).

Eelco



Re: getMarkupId doesn't return the id from the markup

2007-06-25 Thread Eelco Hillenius

On 6/25/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

What are the side effects?


Jonathan had problems:
http://www.nabble.com/Unable-to-find-the-markup-for-the-component-tf3976741.html
and
the project I'm working on got some exceptions from the test site this
morning as well. For instance:

org.apache.wicket.WicketRuntimeException: Unable to find the markup
for the component. That may be due to transparent containers or
components implementing IComponentResolver: [MarkupContainer
[Component id = text, page =
ts4.web.wicket.page.workspace.ComponentPage, path =
1:content:reply-form:form:text.KeepAliveTextArea, isVisible = true,
isVersioned = false]]
  at
org.apache.wicket.MarkupFragmentFinder.find(MarkupFragmentFinder.java:111)
  at
org.apache.wicket.Component.getMarkupAttributes(Component.java:1176)
  at org.apache.wicket.Component.getMarkupId(Component.java:1211)
  at
org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getPreconditionScript(AbstractAjaxTimerBehavior.java:96)
  at
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.generateCallbackScript(AbstractDefaultAjaxBehavior.java:161)
  at
org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getCallbackScript(AbstractAjaxTimerBehavior.java:84)
  at
org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getJsTimeoutCall(AbstractAjaxTimerBehavior.java:78)
  at
org.apache.wicket.ajax.AbstractAjaxTimerBehavior.renderHead(AbstractAjaxTimerBehavior.java:66)
  at org.apache.wicket.Component.renderHead(Component.java:2182)
  at
org.apache.wicket.markup.html.internal.HtmlHeaderContainer$1.component(HtmlHeaderContainer.java:209)
  at
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:820)
  at
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:835)
  at
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:835)
  at
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:835)
  at
org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860)
  at
org.apache.wicket.markup.html.internal.HtmlHeaderContainer.renderHeaderSections(HtmlHeaderContainer.java:200)
  at
org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:134)
  at
org.apache.wicket.Component.renderComponent(Component.java:2104)
  at
org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1294)
  at org.apache.wicket.Component.render(Component.java:1931)
  at org.apache.wicket.Component.render(Component.java:1894)
  at
org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:223)
  at
org.apache.wicket.markup.resolver.HtmlHeaderResolver.resolve(HtmlHeaderResolver.java:81)
  at
org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1206)

Unfortunately, I'm a bit too busy at this time to figure out what
exactly the problem is, but I left the issue open. It seems hard to
fix without having a construct like our 2.0 adventure had.


We have been down this road too many times and we keep forgetting them
(or ignoring until we can't bare them)  I'd hate to not fix this one
once and for all.


Me too. Maybe Juergen/ someone else has a good idea?

Eelco


Re: getMarkupId doesn't return the id from the markup

2007-06-25 Thread Eelco Hillenius

i can think of one, getMarkupId() can't really be called in the constructor
phase (as we could do in 2.0)
(it now can but then you really have to make sure how you construct your
objects you have to setup the hierachy up until the page as soon as
possible)


Yeah, even now the component has to be able reach the page it is
attached to to work. I thought/ hoped that being attached to the page
would be good enough for the markup loading as well.

Eelco


Re: commit rights on wicket-stuff

2007-06-25 Thread Eelco Hillenius

may I ask for commit rights for sourceforgeuser svenmeier on wicket-stuff?

He is massive help on gmap2, commit rights for him would help its
develoment a lot.


Done. Thanks for helping out!

Eelco


Re: getMarkupId doesn't return the id from the markup

2007-06-25 Thread Eelco Hillenius

On 6/25/07, Matej Knopp [EMAIL PROTECTED] wrote:

I think reasonable behavior would be to generate markup id when
invoked from constructor (instead of failing getting one from markup).
However, I'm affraid the complications you have are caused by the fact
the the component hasn't been rendered already, so it doesn't know
it's markup position. At least we had similiar problems with 1.2,
iirc.


Yeah, I'm afraid of that too. And I understand that for some
components the markup position can only be known at runtime, right? Is
there any way anyone can think of how we could bind in an efficient
way before rendering?

Eelco


should we get rid of IRequestCycleFactory and ISessionFactory?

2007-06-24 Thread Eelco Hillenius

IRequestCycleFactory and ISessionFactory annoy the hell out of me. We
simplified how they are used a bit in 1.3, but imho, I think we should
just ditch them all together in favor of simply two factory methods in
application. Factory method newSession already exists in
WebApplication (as that class implements ISessionFactory), but to
create a new request cycle you still have to override
getRequestCycleFactory().

Objections anyone?

Eelco


Re: should we get rid of IRequestCycleFactory and ISessionFactory?

2007-06-24 Thread Eelco Hillenius

https://issues.apache.org/jira/browse/WICKET-689 is very related to this.


Yep, that and working on Wicket In Action, triggered sending this email.


I can't see if there will be any unwanted consequences by doing this


Don't think so. If people for whatever reason want more indirection
they can build that in the factory methods.

Eelco


getMarkupId doesn't return the id from the markup

2007-06-24 Thread Eelco Hillenius

Yep, you read that right. I just found out that if you explicitly
define an id attribute on your component, getMarkupId still just
returns a generated one. This suprises me; I'm pretty sure we always
agreed that if an explicit id is provided in the markup, that should
be used. See the date picker in wicket-examples/forminput for example:
it doesn't work now because the id is set to dateProperty but
getMarkupId, which is used by the date picker, returns
dateProperty1.

The fix is easy[1], but results in a failing unit test. Imho, that
unit test is just too fragile, and I'm thinking about implementing a
quick fix for it and submit this change. But I wanted to check here
first in case I'm overlooking something.

Eelco

[1]
Index: 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
===
--- 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
(revision
550266)
+++ 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
(working
copy)
@@ -1181,10 +1181,13 @@

/**
 * Retrieves id by which this component is represented within the 
markup.
+* This is either the id attribute if it is set explicitly in the 
markup, or
+* a generated id.
 * p
 * The point of this function is to generate a unique id to make it 
easy to
 * locate this component in the generated markup for post-wicket 
processing
-* such as javascript or an xslt transform.
+* such as javascript or an xslt transform in case no explicit id was 
set
+* yet.
 * p
 * Note: This method should only be called after the component or its 
parent
 * have been added to the page.
@@ -1204,7 +1207,13 @@
+ to find the page 
it is supposed to operate in before you can call 
+ this method 
(Component#getMarkupId));
}
-   markupId = getId() + page.getAutoIndex();
+   // try to read from markup
+   markupId = getMarkupAttributes().getString(id);
+   if (markupId == null)
+   {
+   // if not in the markup, generate one
+   markupId = getId() + page.getAutoIndex();
+   }
setMetaData(MARKUP_ID_KEY, markupId);
}
return markupId;


Re: getMarkupId doesn't return the id from the markup

2007-06-24 Thread Eelco Hillenius

On 6/24/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

I think everyone ran into it at one time... I know I did. Last time I
think Igor threw some issues with repeaters into the mix, and then the
discussion went dead.


For all I know, it worked in 2.0. I remember testing it specifically.
I'm just surprised it doesn't work the same in 1.3. Did we forget to
backport it maybe? The name of the method is a pretty clear indication
what we had in mind with it, right?

FYI, I tested all of the examples of wicket-examples, including the
ajax and repeater tests, and they worked fine. The unit test that
fails is RadioGroupTest#testFormProcessing but that is because the
page tested isn't backed up by the proper markup (it uses
org.apache.wicket.protocol.http.MockPage which doesn't have any of the
components that are added in that test). So the test is faulty here.

Eelco


Re: getMarkupId doesn't return the id from the markup

2007-06-24 Thread Eelco Hillenius

I believe the current behavior is intentional. Igor seemed to feel
quite strongly about not using markup id specified in template. The
reason is that it's not unique and it behaves wrongly in repeaters or
when you put the component to page twice.


I remember having this discussion a very long time ago, but I though
we decided that even though there is some danger in it, it is the
responsibility of the user. Which is the right thing imo.


I'd actually prefer wicket to preserve specified attribute because it
can be handy in cauple of cases. But that's just my opinion.


The thing is that we call this method getMarkupId, but it only returns
the id you can find in the markup when you *don't* provide one
explicitly (and tell the component to write it's id). Even if you set
setOutputMarkupId(true), Wicket won't override the id in the markup,
which of course has the effect that any Javascript refering to the id
- like the datepicker does - does not work.

So we currently have the situation that if you set the id explictly,
stuff won't work anyway, and we have a method name that doesn't do
what the name hints (for it's current behavior it should be called
something like getGeneratedMarkupId).

Eelco


Re: Drag and drop

2007-06-22 Thread Eelco Hillenius

And the best thing about these unix commands is that they are so obvious :)

Eelco


On 6/21/07, Martin Funk [EMAIL PROTECTED] wrote:

Martijn Dashorst schrieb:
 The benefits of unix:

 find jdk-1.4/wicket -name *.js | xargs grep -E rag|rop

 delivers
 jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js


Martijn please don't hit me for this, or as a former college of mine
always says: grep is one of the most underestimated unix commands

grep -r --include='*.js' -E 'rag|rop' jdk-1.4/wicket

mf



Re: Drag and drop

2007-06-22 Thread Eelco Hillenius

On 6/22/07, Martin Funk [EMAIL PROTECTED] wrote:

That's were 'ctrl' + 'r' comes into play.

Figure it out once and your history never forgets:-)
And if it does beefing up 'export HISTSIZE=5000' might help.


Indeed :) I also keep a document around with my favorite tricks.
Though I'll never be unix wiz I'm afraid.

Eelco


Re: VOTE: Rename AjaxSubmitButton to AjaxButton

2007-06-21 Thread Eelco Hillenius

See how confused we are? :)

Seriously, if we can't agree on it, we should just pick the shortest names ;)

Eelco

On 6/21/07, Johan Compagner [EMAIL PROTECTED] wrote:

AjaxSubmitButton is a right name because its only purpose is that it
submits  a form right?
But i don't mind that it is renamed

but Button is not only a SubmitButton. We could make a subclass that really
makes a input type=submit?
(or test fors it)

Because i use buttons on many places to replace links (but the look and feel
of a button)
so for me its not what they do, its how the look.

So now AjaxButton always submits and Button can submit but also used as a
link click..
So maybe a bit better thing would be to hava a AjaxSubmitButton and a
SubmitButton (extends Button)
and let button be used also for the other types or maybe introduce
LinkButton?

johan

On 6/21/07, Jean-Baptiste Quenot [EMAIL PROTECTED] wrote:

 +0

 The Javadoc says: A button that  submits the form via ajax.  And
 the callback method is called onSubmit().

 So even if you rename the  class (which is a very costly operation
 in  a framework),  it won't  be sufficient  to eradicate  the term
 submit.

 I understand that you want to streamline the name with Button, but
 actually I  would vote  to rename Button  to SubmitButton.   I was
 recently  doing pair  programming with  a colleague,  and we  were
 stupidly looking  for SubmitButton and  wondered why it  was not
 showing up.  It was the obvious class name we thought...
 --
  Jean-Baptiste Quenot
 aka  John Banana   Qwerty
 http://caraldi.com/jbq/




Re: Drag and drop

2007-06-21 Thread Eelco Hillenius

How does an application developer use Wicket.Drag?Will there be a
DraggableBehavior (IBehavior) object?


It is used for the Ajax debug panel. Not sure if Wicket.Drag is used
for anything besides that. But there are multiple Wicket-stuff
projects that have support for drag and drop. See
http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki (I think Dojo
integration has it and
http://wicketstuff.org/confluence/display/STUFFWIKI/Script.aculo.us+Draggables
looks like it).

Eelco


Re: Application#destroy()

2007-06-20 Thread Eelco Hillenius

On 6/20/07, Maurice Marrink [EMAIL PROTECTED] wrote:

Whatever makes you happy :)
I see Johan as has already made the change of putting callDestroyers
in internalDestroy.
However if you are going to rename that method (not sure if Martijn is
going to like that this late in the game). Please let us know since
those projects still on jdk 1.4 don't warn about missing override
methods.


That's why we should leave the method in there as final and a TODO:
remove after compat release.

Eelco


Re: Application#destroy()

2007-06-20 Thread Eelco Hillenius

bah, i'd rather have the rename. I have absolutly no problem with a
rename as long as it is announced on the mailing list.


That's fine. But I have :). And I have been bitten by it enough to
know that without such a deprecation realease, people *will* forget/
not notice.

Eelco


Re: VOTE: Rename AjaxSubmitButton to AjaxButton

2007-06-20 Thread Eelco Hillenius

[ x ] Yes, rename AjaxSubmitButton to AjaxButton, leaving behind a
 @deprecated subclass for backwards-compatibility.

[ ] No, that's a crazy idea. We're frozen for 1.3.0 and this sort of
 stuff shouldn't change this late in the day.

Eelco


Re: Fix inconsistent naming for submit components

2007-06-20 Thread Eelco Hillenius

I've given this thread a little bit thought, and besides the
objections Martijn and me have regarding the book, I don't think I
like SubmitButton better than Button. To me, a Button is more generic
and SubmitButton makes me think about 'just' the input type=submit
tag while it can be used for more than that (which is something I
always liked). Just a personal preference, sure, but also an
indication to me that we might like SubmitButton today, Button
tomorrow, and they day after (maybe with other people in the team)
SubmitButton again. At some point we'll just have to say, this is ok,
even if not everyone completely agrees at any given time. Naming is
important, but so is stability.

My 2c,

Eelco


Re: abbreviated stack traces

2007-06-20 Thread Eelco Hillenius

maybe the exception display page should just hide all the extra details
using a javascript
triggered fold-out instead of trying to programmatically remove it?


That would be nice.

Eelco


Wicket + GWT

2007-06-20 Thread Eelco Hillenius

Hi,

I just came across this:
http://cwiki.apache.org/WICKET/using-gwt-widgets-as-wicket-components-tutorial.html

Did someone ever did that? Is it a good idea to have such integration
rather than just running GWT as an applet? And if this is a good idea,
how about putting this in a Wicket-stuff project?

Cheers,

Eelco


Re: Move wicket.injection and wicket.proxy packages to wicket core? Or create wicket-ioc?

2007-06-19 Thread Eelco Hillenius

Hi folks,

The wicket-spring project currently has some generic injection and proxy
classes with no Spring dependencies.

If we want to provide support for Guice, these should go and live
somewhere else, otherwise wicket-guice will need to depend on
wicket-spring, which seems silly. ;-)

There are three options I can think of:

1. Make people who want to do Guice injection depend on wicket-spring.

2. Create a wicket-ioc project, put these common components in there.
Make wicket-spring (and eventually wicket-guice) depend on that.

3. Move the components into the core wicket project. This would entail
adding the cglib-no-dep and asm dependencies to the core project,
which isn't ideal.

Which would people prefer? I'm thinking #2 might be best.


+1, #2 is best. Is anyone working on Guice integration yet? Looks like
it should be fairly simple to achieve.

Eelco


Re: Problem with latest changes in FormComponent:validate()

2007-06-19 Thread Eelco Hillenius

Maybe a bit OT, but how exactly do you implement this Jan?

The project I'm working on has:

public final class ValidationListener implements
IComponentOnBeforeRenderListener {

 public void onBeforeRender(Component component) {
   if (component instanceof FormComponent  !component.hasBeenRendered()) {
 processComponent((FormComponent) component);
   }
 }
...

and then somewhere in processComponent:

  ...
 Column column = field.getAnnotation(Column.class);
 Class? type = field.getType();
 ..
 if (column.nullable() == false  type != Boolean.class  type !=
Boolean.TYPE) {
   component.setRequired(true);
 }

Do you something similar, or do you follow an intirely different
aproach (probably, coming from 1.2)?

Eelco


On 6/19/07, Jan Vermeulen [EMAIL PROTECTED] wrote:


Problem with all these solutions, is that we have to differentiate between
'RequiredValidators' and other validators, which means somehow we have to
know which ones to call when. Because now, there is just a list of
validators, added to the component, and they get called by Wicket. What I'm
trying to say is that checking if a field is empty or not can be just a
validator task. Now, we can no longer simply plug that in as just another
validator.

I understand that it is handy not to have to check if a value is null, but
we're paying a price for this that might be higher than the gain ?

Jan.


igor.vaynberg wrote:

 or instead,

 maybe make that hibernatevalidator also be a behavior, and simply toggle
 component's setrequired in onattach

 -igor


 On 6/19/07, Igor Vaynberg [EMAIL PROTECTED] wrote:

 i dont know about that. isvalid's contract is that it only returns false
 if there are error messages reported against the component.

 i think this would be simple enough

 class hibernatetextfield extends textfield {
   valid() {
 if (hibernaterequired()) {
if (Strings.isEmpty(getInput()[0])) {
error(new ValidationError().addMessageKey(Required));
return;
}
  }
  super.validate();
   }

 -igor


--
View this message in context: 
http://www.nabble.com/Problem-with-latest-changes-in-FormComponent%3Avalidate%28%29-tf3945885.html#a11200959
Sent from the Wicket - Dev mailing list archive at Nabble.com.




Re: Problem with latest changes in FormComponent:validate()

2007-06-19 Thread Eelco Hillenius

On 6/19/07, Eelco Hillenius [EMAIL PROTECTED] wrote:

Maybe a bit OT, but how exactly do you implement this Jan?

The project I'm working on has:

public final class ValidationListener implements
IComponentOnBeforeRenderListener {

  public void onBeforeRender(Component component) {
if (component instanceof FormComponent  !component.hasBeenRendered()) {
  processComponent((FormComponent) component);
}
  }
...

and then somewhere in processComponent:

   ...
  Column column = field.getAnnotation(Column.class);
  Class? type = field.getType();
  ..
  if (column.nullable() == false  type != Boolean.class  type !=
Boolean.TYPE) {
component.setRequired(true);
  }


processComponent starts like this:

public static void processComponent(FormComponent component) {
IModel model = component.getModel();
if (model instanceof IPropertyReflectionAwareModel) {
Field field = ((IPropertyReflectionAwareModel) 
model).getPropertyField();
if (field != null) {
processComponentField(field, (FormComponent) 
component);

Eelco


Re: RequestCycle, max steps

2007-06-19 Thread Eelco Hillenius

Ok. I set it to 100. Is that reasonable?

Eelco

On 6/19/07, Sean Sullivan [EMAIL PROTECTED] wrote:

Short.MAX_VALUE is definitely too high.

I'd love to see a lower value.

Sean

On 6/18/07, Eelco Hillenius [EMAIL PROTECTED] wrote:

 max int is actually a pretty rediculous default in itself. How about
 setting it to 1,000 or even 100 or such?

 Eelco

 On 6/18/07, Eelco Hillenius [EMAIL PROTECTED] wrote:
  Why would you want to do that? Sure, we can put a setter in there, but
  it is really only meant to detect cycles.
 
  Eelco
 
 
  On 6/18/07, Sean Sullivan [EMAIL PROTECTED] wrote:
   In RequestCycle.java, the steps() method has this code:
  
   *  final* *int* maxSteps = Short.MAX_VALUE;
  
   Is there any way for me to override the maxSteps value?
  
   Would it be reasonable to have getter/setter methods?
  
 protected void setMaxSteps(int value)
  
 protected int getMaxSteps()
  
  
   Cheers,
  
   Sean
  
 




AbstractBehavior#isEnabled(Component component)

2007-06-19 Thread Eelco Hillenius

AbstractBehavior#isEnabled(Component component) currently returns true
by default. Wouldn't it be better if it was implemented like this?

public boolean isEnabled(Component component)
{
return component.isEnabled();
}

Behaviors should be ignored when a component is not visible, but some
components like TextFields for instance, can be disabled but still
visible. A concrete case I have here is a disabled textfield with a
datapicker attached, and the datepicker is still visible and worse,
when you use it, you can change the value in the textfield.

Any objections for this change?

Eelco


Re: AbstractBehavior#isEnabled(Component component)

2007-06-19 Thread Eelco Hillenius

Done.

Eelco

On 6/19/07, Igor Vaynberg [EMAIL PROTECTED] wrote:

go for it

-igor


On 6/19/07, Eelco Hillenius [EMAIL PROTECTED] wrote:

 AbstractBehavior#isEnabled(Component component) currently returns true
 by default. Wouldn't it be better if it was implemented like this?

 public boolean isEnabled(Component component)
 {
 return component.isEnabled();
 }

 Behaviors should be ignored when a component is not visible, but some
 components like TextFields for instance, can be disabled but still
 visible. A concrete case I have here is a disabled textfield with a
 datapicker attached, and the datepicker is still visible and worse,
 when you use it, you can change the value in the textfield.

 Any objections for this change?

 Eelco




Re: Fix inconsistent naming for submit components

2007-06-18 Thread Eelco Hillenius

-1 on the streamline. I'm not going to go through and rewrite my
chapters of the book yet *again*.

Can we just agree to keep the API stable?


Yeah, +1 on that. You guys scare the hell out of me if I have to think
about how long *any* book will be valueable on any version :-) It's
time to settle down on our core components/ concepts for a while. It
will never be perfect/ to everyone's taste, and there's enough other
things that imho would have more priority.

Eelco


Re: RequestCycle, max steps

2007-06-18 Thread Eelco Hillenius

Why would you want to do that? Sure, we can put a setter in there, but
it is really only meant to detect cycles.

Eelco


On 6/18/07, Sean Sullivan [EMAIL PROTECTED] wrote:

In RequestCycle.java, the steps() method has this code:

*  final* *int* maxSteps = Short.MAX_VALUE;

Is there any way for me to override the maxSteps value?

Would it be reasonable to have getter/setter methods?

  protected void setMaxSteps(int value)

  protected int getMaxSteps()


Cheers,

Sean



Re: A new proposal for Wicket Portlet support

2007-06-17 Thread Eelco Hillenius

Great news Ate!

It would be interesting to read the experiences of those who have been
playing with it in this thread. Is anyone considering using this for
their projects yet?

Cheers,

Eelco


On 6/14/07, Ate Douma [EMAIL PROTECTED] wrote:

As promised a few weeks ago, I've created a separate branch, 
wicket-1.3-portlet-support, and checked in a first initial version of the new 
portlet support.
I also created a bunch of JIRA issues as subtasks under one main 
portlet-support issue: https://issues.apache.org/jira/browse/WICKET-647.

To showcase what the portlet support is capable of (and not), I also created a 
Jetspeed-2.1.1-beta1 based demo portal installer which can be downloaded from
my apache home. See: https://issues.apache.org/jira/browse/WICKET-658

I'd like to invite all developers and users interested to review this intial 
version and the changes on Wicket core required for it.
Note: I've tried to isolate the changes in small commits and recorded them to 
specific JIRA issues for easier reviewing.

I'm looking forward to feedback and will start discussing possible further 
changes, enhancements and fixes soon on this dev list.
I *do* need your input for that as going anything further than this requires 
more expertise than I currently have :)

Regards,

Ate


Ate Douma wrote:
 As already mentioned by Eelco a few days ago, I'd like to propose a new
 plan for Wicket Portlet support.

 Preliminary warning: this mail ended up to be quite long :)

 For those of you familiar with the Portlet API some of the following is
 probably a bit verbose, but please bear with me.
 Good portlet support for Wicket isn't going to be easy and will need
 quite a few changes/enhancements to the core of the framework and I
 think it is utmost important that everyone involved is aware of the
 reasons behind them to be able to properly evaluate the choices available.

 I also want to make clear that I don't consider this proposal to be
 final, complete or 100% perfect. It will need further refinement and
 probably major changes  further down the road. Although I have already
 started with implementing part of this proposal, it is certainly not
 finished yet and I expect to hit a few technical road blocks as well.
 Any critics, good or bad, I'd very much appreciate and I will try to
 respond to them as good as I can.
 Note though I'm *not* a hard-core Wicket expert yet so I'll be
 especially depending on the review and evaluation from those who are :)
 I definitely will welcome simpler/easier/better solutions and I'll be
 happy to incorporate them!

 One more remark upfront: as the current trunk is now in API freeze mode
 for the 1.3 release, none of the following will be applied to the
 current trunk.
 Although I am working against the current trunk momentarily, as soon as
 I get a minimum working version ready I'll create a separate branch off
 the trunk to commit my changes. And only after a reasonable working
 version is established there and is reviewed positively, that branch
 might be merged back into a future trunk ( 1.3) for bringing portlet
 support back into the Wicket core.


 Now let me start out by describing the features I personally need for
 using Wicket in a portlet environment.

 I want to be able to run a Wicket application both as plain web
 application and as a portlet at the same time (needing only one WAR file).
 This means a solution which doesn't require using a portlet specific api
 but one transparent and independent of the runtime context.
 Furthermore, I want to be able to use as much as possible of all the
 Wicket features for Ajax, header contributions and (optionally,
 possibly) cookies.
 But especially those features are going to be difficult to support in a
 portal independent way as the current Portlet API 1.0 doesn't support
 any of those, actually doesn't even allow using them...
 The next Portlet Specification 2.0 (JSR-286) will provide much better
 support for these, but as it isn't available yet we'll be required to
 use some hacks and/or portal specific extensions to be able to implement
 and use them *now*.
 Finally, I need to be able to run multiple Wicket portlets on one (web)
 page, meaning properly isolating their execution/session environments
 and things like unique markup id generation/usage across Wicket
 applications.

 Besides these functional requirements, I think we should anticipate as
 much as possible on JSR-286 portlet API 2.0.
 I'm one of the Expert Group members for JSR-286 and we've doing our best
 to make life much easier for web framework developers. And while there
 still will be limitations difficult to overcome, many of the issues I'll
 address further down will be solved natively by JSR-286.
 We currently expect to complete the Portlet Specification 2.0 near the
 end of this summer, but after that it will still take (quite) some time
 before most/all portals will be able to fully support it.
 But as I don't want to wait until then I've tried to come 

Re: private inner class of compoundpropertymodel

2007-06-17 Thread Eelco Hillenius

Can't you just create your own version of
AttachedCompoundPropertyModel (you are after all thinking about
extending it, and there isn't so much going on in that class) and
overriding wrapOnInheritance and return an instance of your class?

Eelco


On 6/17/07, Maurice Marrink [EMAIL PROTECTED] wrote:

Hi, I am in the process of extending CompoundPropertyModel and its
inner class AttachedCompoundPropertyModel. However since the last is a
private inner class i am forced to copy the class definition in to my
own creating some code duplication. In order to prevent this
duplication it would be helpful if this inner class was made protected
instead of private and provided a method to access the owning
component. These proposed changes are already applied to the attached
patch. So if everybody agrees the change can be made very quickly.

Index: .
===
--- .   (revision 548032)
+++ .   (working copy)
@@ -149,7 +149,7 @@
 *
 * @author ivaynberg
 */
-   private class AttachedCompoundPropertyModel extends 
AbstractPropertyModel
+   protected class AttachedCompoundPropertyModel extends 
AbstractPropertyModel
implements  IWrapModel
{
private static final long serialVersionUID = 1L;
@@ -167,7 +167,14 @@
super(CompoundPropertyModel.this);
this.owner = owner;
}
-
+   /**
+* The owning component of this model.
+* @return the component owning this model.
+*/
+   protected final Component getOwner()
+   {
+   return owner;
+   }
/**
 * @see 
org.apache.wicket.model.AbstractPropertyModel#propertyExpression()
 */


What do you think?

Maurice



Re: please help with finding and fixing stale documentation

2007-06-17 Thread Eelco Hillenius

Thanks,

Eelco

On 6/11/07, Remco Bos [EMAIL PROTECTED] wrote:


Things like this?

In Component.java, under Hierarchy:

The [EMAIL PROTECTED] Component#isAncestorOf(Component)} method returns true 
if this
Component is an ancestor of the given Component.

isAncestorOf is deprecated now

(oh no, my chance to patch THE Component) ;)



Eelco Hillenius wrote:

 People,

 We could use everyone's help. I just came across some stale
 documentation, particularly RequestCycle, which stated in large
 caption that it is not meant for being subclassed (which is nonsense
 of course). I'm a bit afraid that the API docs may be stale in more
 places.

 If you (including users) have some spare time at hands, checking a
 couple of your favorite classes for stale API docs, and delivering a
 good patch[1] when you find (big) improvements would be much
 appriciated!

 Thanks,

 Eelco

 [1] http://issues.apache.org/jira/browse/WICKET



--
View this message in context: 
http://www.nabble.com/please-help-with-finding-and-fixing-stale-documentation-tf3899742.html#a11056297
Sent from the Wicket - Dev mailing list archive at Nabble.com.




Re: private inner class of compoundpropertymodel

2007-06-17 Thread Eelco Hillenius

That is exactly what i am doing right now. And i have no problem if it
has to stay that way. However I thought i might be helpful for
everyone extending CompoundPropertyModel, and given the fact that none
of the methods in AttachedCompoundPropertyModel are final or otherwise
protected against overriding i though it was an oversight. And like
you said there is not much going on in that class so why not make it
extendable.


Well, exactly because there isn't much going on in that class: why
make expose it? It will only increase the API surface and limits our
future options for refactoring the things internally.

Eelco


Re: Example for Border use wrong in wiki...

2007-06-17 Thread Eelco Hillenius

On 6/8/07, Mark Derricutt [EMAIL PROTECTED] wrote:

Hey all,


Hey Mark,


Just catching up on my wicket-foo and noticed that the wiki page on using
borders is invalid for 1.3 as the  add/removeAll/replace/autoAdd methods are
all final.

http://cwiki.apache.org/WICKET/consistent-page-layout-using-borders.html


Not so sure what to do with this. I think we should regard such use of
borders as outdated, and that for such templating markup inheritance
should be used.

I updated the 'org.apache.wicket.examples.template' example in Wicket
examples to show how you can achieve roughly the same things using
markup inheritance and borders. However, having a base page with a
border like the example states doesn't strike me as a good way to do
things. I know we've been promoting that in the past, but ever since
we had markup inheritence, we've been saying that that is a better
technique to use.

My 2c. I would appreciate it if someone else could update the WIKI,
maybe taking a look at the templates example.

Cheers,

Eelco


Re: Example for Border use wrong in wiki...

2007-06-17 Thread Eelco Hillenius

In the case I was wanting to work with markup inheritance didn't really work
right as I wanted to change the used border on the fly, in the end I just
used object inheritance having the subclassed pages to call border.add()
rather than add() directory (with the border defined/added by the base class
as required).

It works, and its good that its explicit that you're adding objects into the
border, but it would also be nice to override add() and disallow the
subclasses from adding to the page itself.


Tbh, I haven't followed the border changes much. Maybe Juergen or
someone else can comment on this? Is such use still possible?

Eelco


Re: IMarkupLoader backport

2007-06-16 Thread Eelco Hillenius

Hi Juergen,

The changes sound good to me. As it's mostly internal, I'd be +1 for
you committing them.

The threadtest project is made to facilitate tests like this.

Cheers!

Eelco


On 6/16/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

I've backported the IMarkupLoader change which removes business
logic e.g. merging markup for inheritance out of MarkupCache into
markup loaders. The interface is designed in a way that markup loaders
can be chained, the most simple one just using MarkupParser. Another
one merging the markup in case of inheritance.

In addition I moved getMarkupCache from Application to IMarkupSettings
but kept the method (it now delegates) in Application and deprecated
it.

Beside some increased flexibility in MarkupCache (see jira) I removed
the sync lock which protected the hash map from parallel access. Since
we are using ConcurrentHashMap for some time already, it should no
longer be a reason for the sync block. Removing the sync may improve
performance in situations where many markup files must be loaded (not
just taken from the cache) (how much is that an issue in real life
situations) but it also means that the very same markup might be
loaded twice if while the first version is loaded (but not yet in the
cache) a 2nd request will load the very same markup again. The code
(on my laptop) will throw the 2nd version away and always use the
first one.

In my opinon that is acceptable, but I didn't want to commit it before
I've discussed it.

What would be the best test method (e.g. threadtest? a ready made web
application and hhtpunit is most likely not the most suitable
approach) to stress test these scenarios to make sure that we don't
run into any race conditions. I guess this is especially usefull if we
agree on putting it into 1.3.

Juergen



Re: Releasing wicket-contrib-gmap v 1 for wicket 1.2.6

2007-06-15 Thread Eelco Hillenius

I've updated confluencene:
http://wicketstuff.org/confluence/display/STUFFWIKI/wicket-contrib-gmap

So what more should I do to make the world know that we have a stable
build of the wicket-contrib-gmap?

Should I write to the user list and should anything else be done ?


Cool Nino. Thanks. I think it's a good idea to write to the user list
that you have a new release.

Typically, you should make a file release, so that people can download
it at http://sourceforge.net/project/showfiles.php?group_id=134391.

Also, you should pin the pom.xml to a version, and see if you can do
the same thing that the dojo and scriptaculous wicket-stuff projects
did so that you'll be running on bamboo and have deployments on our
wicket-stuff server:
http://wicketstuff.org/maven/repository/wicket-stuff/.

Cheers,

Eelco


Re: automatically marking pages as stateless: is this really a good idea?

2007-06-14 Thread Eelco Hillenius

On 6/14/07, Johan Compagner [EMAIL PROTECTED] wrote:

he just has to call dirty() when he alters a session and wants to store it


That currently (in 1.3) doesn't trigger binding.

Eelco


Re: automatically marking pages as stateless: is this really a good idea?

2007-06-14 Thread Eelco Hillenius

On 6/14/07, Maurice Marrink [EMAIL PROTECTED] wrote:

Then i must be missing something here :s. The api doc clearly states:


Yeah, you're talking about bind(), I'm talking about dirty() :)

Eelco


Re: [vote] Release Apache Wicket 1.3.0-incubating-beta-2

2007-06-14 Thread Eelco Hillenius

Nope. We found some licensing issues and will soon propose a new release.

Eelco

On 6/14/07, Sean Sullivan [EMAIL PROTECTED] wrote:

Did the vote pass?

On 6/12/07, Sean Sullivan [EMAIL PROTECTED] wrote:


 Have the votes been counted?  Is beta2 coming soon?






Re: [vote] Release Apache Wicket 1.3.0-incubating-beta-2

2007-06-14 Thread Eelco Hillenius

On 6/14/07, Francisco Diaz Trepat - gmail
[EMAIL PROTECTED] wrote:

Come on guys


We're working, we're working.


God I can't wait to get my hands on the new generics for wicket.


And I can't wait to ship Wicket In Action ;)

Eelco


Re: automatically marking pages as stateless: is this really a good idea?

2007-06-14 Thread Eelco Hillenius

But maybe we should remove the This method should not typically be
called by clients line from bind() javadoc then?


Yeah. Just did.

Eelco


Re: [vote] Release Apache Wicket 1.3.0-incubating-beta-2

2007-06-14 Thread Eelco Hillenius

On 6/14/07, Francisco Diaz Trepat - gmail
[EMAIL PROTECTED] wrote:

Man, you know I'm gona preach it. So bring it. And I'll deliver the
message...


That's good to hear. We're gonna need all the publicity we can get
when we start MEAP[1] in a few weeks. :)

Eelco

[1] http://www.manning.com/about/meap.html


Re: automatically marking pages as stateless: is this really a good idea?

2007-06-14 Thread Eelco Hillenius

On 6/14/07, Johan Compagner [EMAIL PROTECTED] wrote:

ahh i see, shouldn't bind() call just dirty() then?


Currently dirty doesn't result in bind being called. If we would fix
(?) it so that it does, dirty would work fine, tough it would be done
at the end of the request rather than immediately (don't know whether
that is an issue).


instead of already storing itself and all the temp objects in the session
(are all those detached?)


Maybe that works. We'd have to test it extremely well though.


and if we want to say to the developers call bind() yourself instead of
dirty()
then bind should be callable twice and not:


Yeah. That warning can go I guess.

Eelco


automatically marking pages as stateless: is this really a good idea?

2007-06-13 Thread Eelco Hillenius

I'm wondering whether it still is a good idea to automatically mark
pages as stateless if there are no 'statefull' components/ callbacks
on it. It's not so much a problem that the page isn't stored - it
isn't as there aren't any non-bookmarkable callbacks to it - but it
can be a problem that a session isn't automatically created. See for
example http://www.nabble.com/Re%3A-noob-question-about-wicket-p3903.html

I'm not sure... on the one hand I like it that Wicket tries to be as
efficient as it can be with storing stuff and creating sessions. On
the other hand, like the referenced thread shows (if I'm right there),
it can lead to situations people don't immediately understand. I'm
leaning towards prefering the current situation, but I thought this
would be a good time to get your opinions on this.

Cheers,

Eelco


Re: New WicketStuff developer: Grégory Maes

2007-06-11 Thread Eelco Hillenius

Cheers Grégory :)

Eelco

On 6/11/07, Jean-Baptiste Quenot [EMAIL PROTECTED] wrote:

Dear developers,

Please  welcome Grégory  Maes  among  the WicketStuff  developers.
Grégory has filed [1]several patches  on WicketStuff Dojo, and has
shown a  long-term interest in  this project.  He now  deserves to
apply the changes himself.

Welcome Grégory!
--
 Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

[1] 
http://wicketstuff.org/jira/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?pid=1reporterSelect=specificuserreporter=gregory4662sorter/field=prioritysorter/order=DESC



Re: Wicket Trees Situation

2007-06-10 Thread Eelco Hillenius

   a) remove the old (kinda unsupported) tree from extensions (is
anyone even use it?)


+1


   b) move the current Tree and TreeTable* from core to extensions
(sight, i know we moved it into core just recently)


Don't know yet.


   c) move the new Tree into core.


So the 'new new' tree is incompatible with the 'new' tree? Why can't
you just give them different names and let them live together in a
package? One of the anoying things currently is that you have to ask
people whether they are working with the core or extensions tree; I
bet that's as confusing for users as it is for us. Imho, it would be
better to just delete the old one and keep all the trees we're gonna
support in core projects together in one package so that users can
find them more easily and compare their features.


* I don't think it's a good idea to have a TreeTable in core anyway.
We don't have DataTable in core and I'm pretty sure much more people
are using DataTable then TreeTable.


If I remember correctly I argued for moving everything related to
repeaters to core a while ago. The initial idea was always that
extensions was either for components that you rarely use in a project,
or for components that need to 'mature' a bit. I don't think the
latter is a very good idea anymore (we could have wicket-stuff
projects instead) and imho, any component that you'd almost always use
in any project could go to the core project. Datatables definitively
fall into that category. And trees... well it is still my opinion that
they have a place in lots of projects. Core is fine with me.

Eelco


please help with finding and fixing stale documentation

2007-06-10 Thread Eelco Hillenius

People,

We could use everyone's help. I just came across some stale
documentation, particularly RequestCycle, which stated in large
caption that it is not meant for being subclassed (which is nonsense
of course). I'm a bit afraid that the API docs may be stale in more
places.

If you (including users) have some spare time at hands, checking a
couple of your favorite classes for stale API docs, and delivering a
good patch[1] when you find (big) improvements would be much
appriciated!

Thanks,

Eelco

[1] http://issues.apache.org/jira/browse/WICKET


Re: line precise error reporting: should this be on by default?

2007-06-08 Thread Eelco Hillenius

besides the fix you've implemented by clearing this metadata
as soon as you can, you could also make the inspector temporarily
null it out while it computes the size of things.  then the inspector
would give you results more in line with production sizes.


The results should be good now for everything but the inspector page
(which is still rendering, but the others are done).

Eelco


Re: [proposal] 1.3.0 end game

2007-06-07 Thread Eelco Hillenius

On 6/7/07, Johan Compagner [EMAIL PROTECTED] wrote:

can't we do an RC at the moment we graduate? (a bit more fuss then?)

Also we can try to have only 1 or 2 release candidates so that the release
is a bit earlier..


I think we need as many release candidates as it takes to get it free
of (serious) bugs we know of.

Martijn, your schedule looks fine, but I don't agree with 'give up'
obviously :). A JIRA search on fix version = 1.3.x or no version gives
78 issues for Wicket core alone, and we should at least have taken a
look at all of them.

Eelco


line precise error reporting: should this be on by default?

2007-06-07 Thread Eelco Hillenius

Hi,

I'd like to discuss the recent introduced functionality of line
precise error reporting - this time specifically in it's own thread.

It is a new facility that records the stack trace when a component is
created and when it is added to a container. A relevant representation
of the stack trace (a couple of lines) is saved as meta data on the
component.

It is used when you created and added a component, but fail to
reference it in the right place in your markup. For example, if I
remove the reference in HelloWorld.html from wicket-examples, I get an
exception like:

WicketMessage: The component(s) below failed to render. A common
problem is that you have added a component in code but forgot to
reference it in the markup (thus the component will never be
rendered).

1. [Component id = message, page =
org.apache.wicket.examples.helloworld.HelloWorld, path =
0:message.Label, isVisible = true, isVersioned = false]
The label with id 'message' that failed to render was constructed
at org.apache.wicket.examples.helloworld.HelloWorld.init(HelloWorld.java:35)

The label with id 'message' that failed to render was added
at org.apache.wicket.examples.helloworld.HelloWorld.init(HelloWorld.java:35)

This is all nice, but comes at a price: slower execution and more
memory consumption. If this was just a little bit, I wouldn't be too
worried. However, in the project I'm working on, the slowdown is
definitively noticable, and the memory consumption is too. For
example, some of our heavier pages:

deployment - development
25.1K- 680.1K
82.7K- 1.7M
47.3K- 814.6K
37.2K- 644.8K

This is not a small difference, and I'm really wondering whether it is
a good idea to do this by default. I find it personally anoying that
the inspector pages (which I use regularly) don't give me the right
information anymore. And for Wicket in general, I fear that people
won't be aware of this difference (no matter how loud we shout out,
most people will just miss this unless they experience a problem) and
think Wicket is slow and consumes a lot of memory. I would prefer to
keep this alive as a separate setting (note that it is now folded in
with the IDebugSettings#componentUseCheck setting) and not have it on
by default.

WDYT?

Eelco


Re: line precise error reporting: should this be on by default?

2007-06-07 Thread Eelco Hillenius

The memory footprint is bothering me way more than the performance hit
is tbh. I would be ok with keeping this if we clear it after
rendering.

Eelco


On 6/7/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

Actually, the metadata could be removed at the end of the request, or
as part of the render check (at a cost of processing time), so the
memory footprint would not be noticable after the first render. The
effect on the performance is not mitigated with that.

The metadata currently is not cleared, so that it could be used in
other exceptions as well, but that is not implemented.

Possibly we could also profile the construction of the stack elements,
to see how it can be improved. Currently I create stacks for both the
construction *and* the addition to the component hierarchy. Maybe that
is overkill?

Martijn

On 6/7/07, Eelco Hillenius [EMAIL PROTECTED] wrote:
 Hi,

 I'd like to discuss the recent introduced functionality of line
 precise error reporting - this time specifically in it's own thread.

 It is a new facility that records the stack trace when a component is
 created and when it is added to a container. A relevant representation
 of the stack trace (a couple of lines) is saved as meta data on the
 component.

 It is used when you created and added a component, but fail to
 reference it in the right place in your markup. For example, if I
 remove the reference in HelloWorld.html from wicket-examples, I get an
 exception like:

 WicketMessage: The component(s) below failed to render. A common
 problem is that you have added a component in code but forgot to
 reference it in the markup (thus the component will never be
 rendered).

 1. [Component id = message, page =
 org.apache.wicket.examples.helloworld.HelloWorld, path =
 0:message.Label, isVisible = true, isVersioned = false]
 The label with id 'message' that failed to render was constructed
 at org.apache.wicket.examples.helloworld.HelloWorld.init(HelloWorld.java:35)

 The label with id 'message' that failed to render was added
 at org.apache.wicket.examples.helloworld.HelloWorld.init(HelloWorld.java:35)

 This is all nice, but comes at a price: slower execution and more
 memory consumption. If this was just a little bit, I wouldn't be too
 worried. However, in the project I'm working on, the slowdown is
 definitively noticable, and the memory consumption is too. For
 example, some of our heavier pages:

 deployment - development
 25.1K- 680.1K
 82.7K- 1.7M
 47.3K- 814.6K
 37.2K- 644.8K

 This is not a small difference, and I'm really wondering whether it is
 a good idea to do this by default. I find it personally anoying that
 the inspector pages (which I use regularly) don't give me the right
 information anymore. And for Wicket in general, I fear that people
 won't be aware of this difference (no matter how loud we shout out,
 most people will just miss this unless they experience a problem) and
 think Wicket is slow and consumes a lot of memory. I would prefer to
 keep this alive as a separate setting (note that it is now folded in
 with the IDebugSettings#componentUseCheck setting) and not have it on
 by default.

 WDYT?

 Eelco



--
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org



Re: CompoundPropertyModel#detach should check for IDetachable instead of IModel

2007-06-06 Thread Eelco Hillenius

On 6/6/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

All,

I'm not sure the usecase is general, but in our application we have a
couple of classes that implement IDetachable, but not IModel, and
these are put into a CompoundPropertyModel

The thing is that the CompoundPropertyModel does an instanceof check
for IModel instead of the slightly more general IDetachable.

Are there any objections to changing that check to IDetachable instead
of IModel?


Not from me.

Eelco


wicketstuff server down often?

2007-06-05 Thread Eelco Hillenius

Hi,

Some people were complaining that the wicketstuff.org server was down
quite a bit. Anyone (Johan, Jan) has an idea why? Could it be bamboo?
Or do we do hot deploys of the examples project everytime it is
rebuild?

Eelco


Re: [jira] Commented: (WICKET-605) Stataless form skips page parameters

2007-06-05 Thread Eelco Hillenius

Ok, let's go for it then. Who's taking it up?

Eelco

On 6/5/07, Matej Knopp [EMAIL PROTECTED] wrote:

I'm definitely +1 for metadata. The thread locals are clumsy and
extremely dangerous.

-Matej

On 6/5/07, Johan Compagner [EMAIL PROTECTED] wrote:
 
   But i also need it for other stuff that are specific to specific
   implementations of certain things
   for example the AccessStackStore doesn't need such a thread locale but
  SLC
   does..
 
  Fair enough. So you would use such a 'bag' in request cycle to store
  stuff like dirtyObjects (session)? Aren't you afraid this will open up
  a new can of worms (users misusing this facility rather then providing
  their own request cycle implementation for instance)?



 Isn't that the problem we also should then have on Session or Component?
 And i don't see it miss used a lot (at least all the examples i get from
 people here on the lists/web)
 also don't think that will happen a lot because most people (you and me
 included!) like
 to have a simple get/setter. But the problem is that we as the framework
 just can't do that
 for specific/default implementations of stuff. Then Requestcycle would
 become polluted.

 The nice thing about metadata is (compare to a pure put/get like hashmap)
 then they can be generified
 so with java5 you don't have to cast




Re: slf4j-api dep

2007-06-05 Thread Eelco Hillenius

Yeah, that sounds right.

Eelco

On 6/5/07, Al Maw [EMAIL PROTECTED] wrote:

Hi folks,

I'm pretty sure our slf4j dependencies are very wrong.

I see the root pom.xml in trunk has a dependencies section that doesn't
actually include slf4j-api (it's only in the dependenciesManagement).

Instead, it includes slf4j-log4j12 and log4j, which surely isn't right?
Isn't the whole point of using slf4j so that we don't mandate a logging
framework choice? If we're going to force log4j bindings we may as well
use log4j everywhere.

I think we should be depending on sfl4j-api for the core projects and
that's it. The examples project or test scopes may well want bindings
for log4j.


Regards,

Al

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



Re: svn commit: r544015 - in /incubator/wicket/trunk: jdk-1.4/wicket/src/main/java/org/apache/wicket/ jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/resolver/ jdk-1.4/wicket/src/main/java/org/a

2007-06-04 Thread Eelco Hillenius

On 6/4/07, Jean-Baptiste Quenot [EMAIL PROTECTED] wrote:

* [EMAIL PROTECTED]:
 Author: ehillenius
 Date: Sun Jun  3 17:13:59 2007
 New Revision: 544015

 URL: http://svn.apache.org/viewvc?view=revrev=544015
 Log:
 simplified converterlocators by removing 
IConverterLocatorFactoryLocatorFactoryFactory.
   
^

Indeed, that seems to be a very complex interface, looking at its
name!!!  ;-) ;-)


Glad you got my joke :)

Eelco


Re: svn commit: r544015 - in /incubator/wicket/trunk: jdk-1.4/wicket/src/main/java/org/apache/wicket/ jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/resolver/ jdk-1.4/wicket/src/main/java/org/a

2007-06-04 Thread Eelco Hillenius

On 6/4/07, Johan Compagner [EMAIL PROTECTED] wrote:

it is harder now to specify converters on the session. (which we always had
as far as i remember)
because now you by pass that.


Well, it's one of these things that probably started with a good idea
at some point in the past, but after a few refactorings was lost
again. The only thing that was really session dependent was the
instance of the locator, but it was actually created by the locator
factory from the application settings. Furthermore, the relevant
getConverter method in Session was final anyway, so it didn't do
anything in terms of flexibility for people. And I'm glad it was
final, otherwise the break would have been more nasty and I probably
wouldn't have done this refactor.

However, I was writing about custom converters for Wicket In Action
this weekend, and I just couldn't live with the complexity of this
feature. I think it is enough to have one level of indirection (the
locator) and a factory for the locator doesn't do anything other than
increase complexity. Now, with the changes, it is very simple to
customize converters (override newConverterLocator in application) and
the locator pattern is flexible for any use case you might think of,
including session dependent ones of you would need that (though I'm
pretty sure you don't).

Eelco


Re: [jira] Commented: (WICKET-605) Stataless form skips page parameters

2007-06-04 Thread Eelco Hillenius

i am getting a bit tired of all those threadlocals that have to be
cleaned... I already discussed this with matej and i thing we should
give the RequestCycle metadata... then we can store any thing we want
and it is auto cleanup


Agreed. RequestCycle currently doesn't have metadata though. What's
the advantage of using meta data there instead of a normal property? I
think none...

Eelco


Re: [jira] Commented: (WICKET-605) Stataless form skips page parameters

2007-06-04 Thread Eelco Hillenius

Sorry, but I don't agree. I think it's YAGNI. Metadata is a bit uglier
to read (at least the code to access it), it's harder to trace in the
debugger and just less obvious. I actually don't think it would be
that out of place to put the (immutable instance of) request
parameters as parsed in the first step of request cycle processing in
the request.

Eelco

On 6/4/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

On 6/4/07, Eelco Hillenius [EMAIL PROTECTED] wrote:
  i am getting a bit tired of all those threadlocals that have to be
  cleaned... I already discussed this with matej and i thing we should
  give the RequestCycle metadata... then we can store any thing we want
  and it is auto cleanup

 Agreed. RequestCycle currently doesn't have metadata though. What's
 the advantage of using meta data there instead of a normal property? I
 think none...

I think the advantage of metadata is to have less tight coupling of
other parts to the request cycle. We are going to use the request
cycle as a Bag of stuff, which is needed during RC processing, but
don't have a direct relationship to the RC, other than that it is part
of the RC.

Having a metadata facility in the RC will facilitate this, and not
make the RC 'bloated'.

Just thinking out loud.

Martijn

--
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org



Re: [jira] Commented: (WICKET-605) Stataless form skips page parameters

2007-06-04 Thread Eelco Hillenius

But i also need it for other stuff that are specific to specific
implementations of certain things
for example the AccessStackStore doesn't need such a thread locale but SLC
does..


Fair enough. So you would use such a 'bag' in request cycle to store
stuff like dirtyObjects (session)? Aren't you afraid this will open up
a new can of worms (users misusing this facility rather then providing
their own request cycle implementation for instance)?

Eelco


Re: Please grant me some Confluence karma

2007-06-02 Thread Eelco Hillenius

Who are the admins currently?

Eelco

On 6/2/07, Jean-Baptiste Quenot [EMAIL PROTECTED] wrote:

I'd like to edit this page:

http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki

This is restricted to group wicket-stuff-admin and I am in
confluence-users only.

Thanks,
--
 Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/



Re: Chaining IComponentResolvers

2007-06-02 Thread Eelco Hillenius

But the component resolver is too eager. Look at the failing unit test
for an example.

Eelco

On 6/2/07, Juergen Donnerstag [EMAIL PROTECTED] wrote:

You can: MarkupParser.appendMarkupFilter(final IMarkupFilter filter,
final Class beforeFilter)

Juergen


On 5/24/07, Al Maw [EMAIL PROTECTED] wrote:
 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:
  input type=image
 src=test.gif
 wicket:message=attr-name:i18n-keytest 2/input
 
  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: Documenting Validator Resource Keys

2007-05-31 Thread Eelco Hillenius

private static final String RESOURCE_KEY = EmailAddressValidator;

but AlMaw also mentioned using Classes.simpleName(...).


That sounds like a better idea to me.

Eelco


Re: Line precise error messages while constructing component tree

2007-05-31 Thread Eelco Hillenius

Where is it used and what does it look like Martijn? Also, could you
open and resolve a JIRA issue for this so that it is part of the
change log?

Cheers,

Eelco


On 5/9/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

OK, I am now committing this feature. It is in!

Martijn

On 5/1/07, Al Maw [EMAIL PROTECTED] wrote:
 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



--
Learn Wicket at ApacheCon Europe: http://apachecon.com
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org



Re: VOTE: Configuring DEPLOYMENT/DEVELOPMENT mode.

2007-05-31 Thread Eelco Hillenius

+1... But just to make sure: is the DEPLOYMENT configuration going to be
default?


Nope, DEVELOPMENT is the default (see one of the other threads this week).

Eelco


Re: VOTE: Configuring DEPLOYMENT/DEVELOPMENT mode.

2007-05-31 Thread Eelco Hillenius

Yeah, good idea. Too bad we can't use blink ;)

Eelco


On 5/31/07, Al Maw [EMAIL PROTECTED] wrote:

Eelco Hillenius wrote:
 +1... But just to make sure: is the DEPLOYMENT configuration going to be
 default?

 Nope, DEVELOPMENT is the default (see one of the other threads this week).

But I'll make the log warning larger while I'm there.

Something like this should do the trick:


*** WARNING: Wicket is running in DEVELOPMENT mode.  ***
***   ^^^***
*** Do NOT deploy to your live server(s) without changing this.  ***
*** See Application#getConfigurationType() for more information. ***


We could even log it to System.err, so Eclipse makes it red. I can't see
any objection to System.err logging in dev mode. If someone deploys in
production their app server admin might even come and clobber them with
a big stick. ;-)

What do you think?

Al



development mode being the default

2007-05-29 Thread Eelco Hillenius

List,

I'm still worried about the fact that development mode is our default
setting. Imho, this is a mistake as the development setting is a
dangerous setting for production systems: it uses more memory (for
precise line reporting), is less efficient (render check) and can
potentially bring down a server (when it runs out of file descriptors
due to resource polling). I'd much rather have a safe default than a
convenient default.

Anyway, we've had endless discussions about this, and unfortunately I
seem to be alone having this opinion. I'd still like to do something
extra though, and Martijn mentioned a good idea, which is to have
something similar to the debug link we have for Ajax when in
development mode. If we would implement this idea, we could e.g. place
an icon that represents this (maybe combine with the Wicket logo,
wouldn't that be nice?) in the lower right corner of the browser, much
like the ajax debug link is placed right now.

WDYT?

Eelco


Re: development mode being the default

2007-05-29 Thread Eelco Hillenius

my 2 cent would be to force the setting to be present, else the startup
would fail - so the developer *has* to set it manually in any way

but your and Martijn's idea sounds very nice to me. An idea would to extend
the logo/ link and bring up a console where the current page is displayed
together with the whole component tree, all used models and memory consumed
by each of them... that would IMHO speed up developement as you see
bottlenecks or wrongly implemented models very early!


That could be cool yes. It would be like a development dashboard or
something. Maybe we could have one clickable icon that opens this up
and through it you can do things like look at the ajax logs, component
sizes etc. Though the component sizes wouldn't be accurate because of
the fact that you are running in development mode... :)

Eelco


Re: development mode being the default

2007-05-29 Thread Eelco Hillenius

And we have that component: the inspector bug... We moved it to
wicket-examples because it was a security risk.


Sure. But if it would be part of the 'development dashboard' it
wouldn't be a security risk as we don't want people to run in
develpment mode in the first place, right?

Eelco


Re: A new proposal for Wicket Portlet support

2007-05-29 Thread Eelco Hillenius

Wow, that was a long mail. It's a bit unfortunate that many of the
abstractions in Wicket actually came from the idea of separating the
servlet and portlet environments, and that we won't need those now,
but I guess that's the way it goes. Most of those abstractions proved
to be useful anyway.

I think I agree with the proposal for the large part. For the details,
I think it is better to discuss actual code. The goal you are setting
seems to be high, but if you can pull it off, it sounds excellent!

One thing about the implementation you're working on. Do you think you
can provide a test project with a configured portlet environment (e.g.
based on JetSpeed) so that it is real easy for people (including the
other team members of Wicket) to check it out and let our debuggers
loose on it? For me, and at least a couple of others, the fact that it
is quite some work to set a portlet server up, configure it to run a
(Wicket) application etc has been the greatest stumbling block in
trying to help out and review. If you can provide an environment that
is really easy to set up, I bet there will be quite a bit of interest
and it would increase the changes of succes this time considerably.

Cheers,

Eelco


Re: multiple IComponentResolvers

2007-05-28 Thread Eelco Hillenius

Ah, yes. I missed that one. Just came back from a vacation :)

Eelco

On 5/28/07, Johan Compagner [EMAIL PROTECTED] wrote:

AlMaw also already looked at it:
http://www.nabble.com/Chaining-IComponentResolvers-tf3803758.html#a10763056

is juergen around?

johan


On 5/28/07, Eelco Hillenius [EMAIL PROTECTED] wrote:

 Not sure whether someone was already looking at this, but currently
 org.apache.wicket.markup.html.basic.SimplePageTest#testRenderHomePage_7
 is failing. The problem is that

 input type=image src=test.gif
 wicket:message=attr-name:i18n-keytest 2/input

 is resolved by WicketMessageTagHandler and thus not by
 RelativePathPrefixHandler.

 I'm not sure what the best solution is to this, but my first question
 is whether it is really a good idea to create auto components for all
 the tags we find that need to have the relative path fix in the first
 place.  I understand we need to do this dynamically because of URL
 mounting and stuff, but can't we use for instance IResponseFilters for
 this problem instead?

 If I didn't overlook something, and the above thought is correct, the
 same goes for wicket:message tags. Do they really need to be resolved
 to components? I'm afraid those auto components can add up quite a bit
 when it comes to memory usage.

 WDYT?

 Eelco




Re: Wicket portlets (current status)?

2007-05-28 Thread Eelco Hillenius

This is soon to be picked up by Ate and possibly some others. He plans
on submitting a proposal on this list early this week.

Do you plan to work with this Michal? Or have you already been working
on it? We definitively need a couple of people testing and
contributing this time; it'll be the third try for portlet support.

Eelco


On 5/28/07, Michal Palička [EMAIL PROTECTED] wrote:

Hello,

what is the current status of the Wicket's portlet support?

There used to be the wicket-portlet-examples module in the WICKET-2.0 branch.
The branch has been discontinued.

It seems that there is no portlet support in the current trunk.

What are the plans regarding the portlet support in Wicket?

Thank you in advance

mp.



Re: Wicket portlets (current status)?

2007-05-28 Thread Eelco Hillenius

two or three weeks a go I had a look on the current source for the
portlet integration. They are currently stored at the wicket stuff
project. This source do not compile with the wicket 1.3 release (this
was two or three week ago). I play around with the source and get some
examples of the normal examples work in the liferay portal. I stop
working, because I had difficults to show images in the portlet. I had a
look at the sources to understand what the problem is. During looking at
the source I see some tricky (tricky from the viewing point of a portlet
container -- correctly from the point of a servlet container) points in
the wicket 1.3 sources. This points must be solved to get wicket running
in a portlet container (e.g. a portlet container has no HttpRequest, a
portlet container has no path and so on, typecast from WebRequest to
HttpWebRequest or getting the path of the application, which is not
available in a portlet container). Up to now I had now time to write
down the points which will be difficult to solve and currently the
source of 1.3 will be code freezed so this stuff could only be solved in
future releases.

The architecture of wicket looks like that the protocol over which
wicket will be use should be plugable. Is this right?


It should be yeah. Around Wicket 1.0 we introduced a couple of extra
abstractions to facilite portlets. I'm pretty sure we've had basic
portlet support up for some time, so it should be possible to fold
this in for 1.3 again. The main issue now is that we need enough
people with enough energy to work on it and this time finish the job.

Eelco


Re: Build Failed

2007-05-28 Thread Eelco Hillenius

Look, having a failing unit test only works when it is indeed fixed
ASAP. This is a known issue for a least a few days now, and there
isn't even any serious discussion on how this might be fixed, so atm a
quick fix seems unlikely. Also, though the problem can be anoying,
it's not a show stopper in my book. The issue[1] was filed as minor,
though I just bumped it up to major as it is a structural (low level)
framework bug which imo are more serious bugs in specific components.

I'm commenting the failing unit test now, so that it doesn't block the
rest of our development. I don't disagree with committing a failing
unit test every now and then to get some attention, but an issue
related to that either should be fixed within one or two days, or the
test should be commented and the issue marked as a known one, possibly
bumbing up the priority to make sure no-one forgets it.

Eelco

[1] https://issues.apache.org/jira/browse/WICKET-590



On 5/28/07, Martijn Dashorst [EMAIL PROTECTED] wrote:

On 5/28/07, Jean-Baptiste Quenot [EMAIL PROTECTED] 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.

I really disagree with this: it is already hard to make a bug
reproducable. Often the person reproducing the bug does not know how
to solve it. The person having *time* to solve it, usually doesn't
have time to build a test case for it.

Having failing test cases on trunk is obviously not good, but it is
better than not having testcases, or testcases that don't get run
(which is what you are proposing).

If you commit a failing testcase, it is necessary to make sure dev@ is
notified, so people know it is not their fault and that it is
intentional/necessary.

It is also necessary to fix the thing pronto, but if it were that
easy, the fix would've been committed together with the test case,
wouldn't it?

Trunk is for development: at any given time the test can fail. They
just need to get fixed quickly. Note that this is not an excuse for
not running and fixing the unit tests before a commit.

Martijn

--
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org



Re: Build Failed

2007-05-28 Thread Eelco Hillenius

When you comment such a failing test, then at the very least add the
class and method to the issue. Otherwise it will be HELL to find the
test again. Also, ensure that the method is commented with the JIRA
issue number.


The test was already mentioned in the JIRA issue and of course I added
a TODO with a reference to the JIRA issue in the test.


I agree that having dirty laundry for weeks gives a very bad smell,
but that doesn't mean the laundry should be thrown away or completely
hidden from sight.


Sure. But it isn't as there is a JIRA issue for it.


Submitting a failing unit test is not only a way to get attention: I
can invest time to create unit tests that fail, but I can't always
solve the problem or have the time to solve it (creating a unit test
that fails for a particular bug is *HARD* and time consuming). So I
see it also as a way to contribute.


Sure, but still unless they are intended to be fixed within one or two
days, they should not block further builds unless the issue is really,
really grave (in which case they should be marked blockers and in
which case I would be fine with keeping the tests active).


Also, please note that when we move to JDK 1.5, we can put this
discussion to rest, as we can annotate our tests to not run (JUnit
4.x). They will then be reported as skipped tests and not end up in
oblivion. TestNG is also a possibility, but I overheard that the maven
surefire plugin is not up to par.


That's perfect news. Exactly what we need in such cases.

Eelco


  1   2   3   4   5   6   7   >