That's a scarry difference. We should take a good look at that and see
what causes it. Personally, I wouldn't expect our 'statefullness' to be
the real problem here; as 'heavy' as it sounds to create new objects,
this is something Java should be very good at. We should use a profiler
to find
It would be against the usual Wicket scoping though. It's easy to -
without a Panel - expand the body of a tag (see AbstractChoice for an
example), and it fits the idea of a component being attached to a tag.
However, what you want is to let the component operate outside it's tag
scope.
I
When it would be in CVS, we can have more people work on it and we can
maybe expand it to include other frameworks (JSF?) in the future.
Eelco
Eelco Hillenius wrote:
Could you share the code in CVS? E.g. put it in a wicket-stuff project?
Eelco
Phil Kulak wrote:
Okay, I just realized that
yes, the use case would be interesting and why the 2nd tag can not be
a Wicket tag which is made visible or not (setVisible(true/false))
based on some business logic.
Juergen
On 7/11/05, Eelco Hillenius [EMAIL PROTECTED] wrote:
It would be against the usual Wicket scoping though. It's easy to -
It doesn't have to be a full fledged project. If you include the
dependencies and just check your project files in, that's fine too.
Eelco
Phil Kulak wrote:
I was afraid you would ask me to do that. :) Let me figure out all
this Maven stuff you guys use, and then I'll add a
will profile it also this week
Phil Kulak wrote:
I just did some quick testing using the two wars. I did 100 page loads
with a brand new session on each load and Tapestry was about twice as
fast for the list view page and the much smaller edit page. I wonder
what would happen if I made
Well, I've done a simple profiling usin JProfiler beta. Beware I've
never done any java profiling before. From what I've seen it really
doesn't seem that managin state is a big overhead. It seems that the
markup rendering is the bottleneck.
http://knopp.sk/calltrees.zip
Here are the
I have just run the two examples through a profiler (YourKit Java
Profiler) and I can confirm that the Tapestry example is just over twice
as fast as the Wicket one. The amount of difference is variable, with
the biggest difference being for the page that renders the list view.
Taking a quick
One word:*** LOGGING ***
Looking through the profile in detail it appears that the benchmark
application has no logging configured so by default logging is ON. Many
of the preformance bottlenecks seem to be in building the strings for
logging. I'm going to figure out how to turn off
if that really is the case then we should turn logging default off??
and supply a right properties file?
johan
Chris Turner wrote:
One word:*** LOGGING ***
Looking through the profile in detail it appears that the benchmark
application has no logging configured so by default logging
Confirmed. Turn off the logging (initialise log4j and set level for
wicket to INFO or greater) and Wicket is only about 4% slower than the
Tapestry application. I suspect with a little effort we could soon tune
out this small amount :)Probably best to wait until the 1.1 code
base is
And of course each log.debug statement should be preceded by:
if(log.isDebugEnabled())
Martijn
Chris Turner wrote:
Confirmed. Turn off the logging (initialise log4j and set level for
wicket to INFO or greater) and Wicket is only about 4% slower than
the Tapestry application. I suspect
what kind of exception?
Johannes Fahrenkrug wrote:
Hi,
I'm new to Wicket and I have a question. I need to generate and display
a List of DropDownChoices. This is the scenario:
I have different room types and for every room type I have certain
vacancies. So I need to have something like this:
Could you please post somewhere the war file with logging disabled?
I tried adding log4j.properties with the following content
log4j.threshold=info
log4j.debug=false
into the wicket-benchmark class path but it helped only a little.
It seems that I'm doing something wrong.
Thank you.
Chris
I attached the exception and this is the code I use to build the list:
add (zimmerartenList = new ListView (zimmerartenList,
termin.getTerminDetails()) {
private static final long serialVersionUID =
2623213955857979457L;
@Override
protected void
Johannes,
You haven't attached a model to the dropdown choice. The constructor you
are using implies having a CompoundPropertyModel as ListItem.model. You
don't have this, so you need to use another constructor:
item.add(new DropDownChoice (paxProZimmerart, new
PropertyModel(terminDetail,
I actually didn't really polish my setup. I just grabbed some stuff I
did on a previous project which made use of the Spring Framework support
for log4j configuration. Basically:
1) Copy spring framework jar to your webapp WEB-INF/lib directory
2) Add the following to your web.xml:
Thank you.
The results I get are mixed. When editing acustomer entry and saving it,
the performance is comparable.
But deleting the customer, wicket is still almost twice as slow than
tapestry.
Have you tried to do nothing but deleting like 10 customers? I'm under
an impression that rendering
Hmm.. Using YourKit Java Profiler, wicket really is only marginaly
slower. I wonder why JProfiler makes such a difference (on the highest
accurate settings).
Matej Knopp wrote:
Thank you.
The results I get are mixed. When editing acustomer entry and saving it,
the performance is comparable.
Martijn,
thank you so much for your help.
Now it works perfectly. I added the field paxProAnreise to the
TerminDetail class, added getters and setters and changed the
PropertyModel accordingly. Now my code looks like this:
protected void populateItem(ListItem item) {
final
One possible way would be to have a parent page class that would hold it, and
customize your page factory to set it in all created pages. It's pretty easy.
Let me know if you can't picture it and I'll try to write a sample code.
I use dependency injection in most of my pages and
Nick,
please have a look at the two approaches implemented in the examples
of the wicket-stuff project. We do not have a preferred way of
integrating, as it depends on your requirements.
Juergen
On 7/11/05, Nick Heudecker [EMAIL PROTECTED] wrote:
Hi,
I'm looking into Wicket and would like
I saw that, but didn't see a link to download the code.
On 7/11/05, Juergen Donnerstag [EMAIL PROTECTED] wrote:
Nick,
please have a look at the two approaches implemented in the examples
of the wicket-stuff project. We do not have a preferred way of
integrating, as it depends on your
What would you need to make it pretty? If you have concrete idea's on
how we can improve Wicket for this, please share them.
Eelco
Gustavo Hexsel wrote:
One possible way would be to have a parent page class that would hold it, and
customize your page factory to set it in all created pages.
I'm new to wicket and I am also interested into spring integration.
Could the servlet use spring to locate the application class and have the
web page class be also spring beans that could get referenced into the app
class or simply looked up in the bean factory based on their type
Hi all,
Scenario 1:
I have TWO POJO's(models) from backend(Hibernate). I need to display both on
ONE form on a page. But i can only give ONE model in constructor to the
form ?
Does this mean i have to make a new model, which inlcudes both POJO's ?
or have one of the POJO's in constructor and
You could just throw them in a map.
-Phil
On 7/11/05, frank bengtsson [EMAIL PROTECTED] wrote:
Hi all,
Scenario 1:
I have TWO POJO's(models) from backend(Hibernate). I need to display both on
ONE form on a page. But i can only give ONE model in constructor to the
form ?
Does this
Holding the beans in the pages is not a good idea. I did this for a
bit, but the pages are serialized and your app-context beans aren't.
So then you have to make your app-context beans serializable, which
defeats the point of having an app context.
-Phil
On 7/11/05, Eelco Hillenius [EMAIL
There's now a new project wicket-contrib-benchmark. I'll probably
add a JSF implementation at some point.
-Phil
On 7/11/05, Matej Knopp [EMAIL PROTECTED] wrote:
Thank you for the advice. I've not much experience profiling with java,
I didn't know that the time invoking counting is counted in
my first day with wicket so please explain it in a bit more detailed way...
Page:
add(new DetailForm(detailForm, model, feedback));
where du you want to put the map ?
/Frank B.
On Monday 11 July 2005 19:31, Phil Kulak wrote:
You could just throw them in a map.
-Phil
On 7/11/05, frank
Here's how I'm approaching it now:
public class MyApplication extends WebApplication {
private XmlBeanFactory beans;
public MyApplication() {
ClassPathResource res = new ClassPathResource(applicationContext.xml);
beans = new XmlBeanFactory(res);
}
public Object
you could use a List and then take one object from index 0 or a map and
then take it from an name 'object1
you need to look how the ognl _expression_ should be.
Als you can hold those 2 objects in one object:
ObjectWrapper
{
object1
object2
}
and then put that wrapper object as youre
Oh sure, not a problem.
Say you have two models that you want one form to manipulate. You
could have them both as one model like so:
Customer customer = ...
Producet product = ..
Map modelMap = new TreeMap(2);
modelMap.put(customer, customer);
modelMap.put(product, product);
IModel model = new
Woa, Nick, not a good option. Creating an XmlBeanFactory is very
expensive, something you want to do on application startup only, not
every page creation.
-Phil
On 7/11/05, Nick Heudecker [EMAIL PROTECTED] wrote:
Here's how I'm approaching it now:
public class MyApplication extends
The BeanFactory is created only on application startup. It's put in the
application constructor. Or am I missing something?
Actually, i'm using the spring ContextLoaderListener and then find the
ApplicationContext in the ServletContext.
I have this line in my Application.init () function
Then I'm confused. First day with Wicket and all...
Isn't the Application object only created once?
On 7/11/05, Phil Kulak [EMAIL PROTECTED] wrote:
Woa, Nick, not a good option. Creating an XmlBeanFactory is very
expensive, something you want to do on application startup only, not
every page
This is nice, does this means that both models are automatically updated ?
So onsubmit all i have do is something like this ?
customerDAO.saveOrUpdate(((Map) getModelObject()).get(customer));
Thanx in advance !
/Frank
On Monday 11 July 2005 19:54, Phil Kulak wrote:
Oh sure, not a problem.
Nick Heudecker wrote:
Then I'm confused. First day with Wicket and all...
Isn't the Application object only created once?
Yes, it is.
On 7/11/05, Phil Kulak [EMAIL PROTECTED] wrote:
Woa, Nick, not a good option. Creating an XmlBeanFactory is very
expensive, something you want to do on
Normally, but you are creating a new one (independent of the one that
Spring creates on application startup) on every page load.
-Phil
On 7/11/05, Nick Heudecker [EMAIL PROTECTED] wrote:
Then I'm confused. First day with Wicket and all...
Isn't the Application object only created once?
Oh, well, if you're just storing the app context in the page, that's
probably fine. Just not the individual beans. But, I wouldn't even
store that. It's not an expensive lookup (no thread-bound stuff if
you're looking from the application or a component) and then you don't
have to worry about it
Yup, that should do it. Maps make great beans when you're too lazy to
actually write a new bean. :) Especially Wicket's ValueMap.
On 7/11/05, frank bengtsson [EMAIL PROTECTED] wrote:
This is nice, does this means that both models are automatically updated ?
So onsubmit all i have do is
Thanks. That'll also work for me.
On 7/11/05, Matej Knopp [EMAIL PROTECTED] wrote:
The BeanFactory is created only on application startup. It's put in the
application constructor. Or am I missing something?
Actually, i'm using the spring ContextLoaderListener and then find the
Thank you there Phil !
You just made Wicket pass through my framework filter in my mind :)
You just made my day..thx
/Frank
Kastell
On Monday 11 July 2005 20:24, Phil Kulak wrote:
Yup, that should do it. Maps make great beans when you're too lazy to
actually write a new bean. :)
No problem, You've just overlooked it. To me, such things happen all the
time :)
Phil Kulak wrote:
I'm sorry, Marej and Nick. I totally missed that Nick was creating the
BeanFactory in the application. Disregard my posts in this topic.
On 7/11/05, Matej Knopp [EMAIL PROTECTED] wrote:
How do
Yep. I'd like to stress though, that you can also work with more than
one model in a form. You can set a model on a form (e.g. by passing it
to super) for convenience. That way, constructs like:
add(new Label(myField))
will automatically look up 'myField' in the model that was set on the
But if you have models as instance variables you have to take care of
adding Changes yourself if you want back button support, right?
On 7/11/05, Eelco Hillenius [EMAIL PROTECTED] wrote:
Yep. I'd like to stress though, that you can also work with more than
one model in a form. You can set a
You're right. Another disadvantage I didn't think about is that
detachable models won't be attached.
Eelco
Phil Kulak wrote:
But if you have models as instance variables you have to take care of
adding Changes yourself if you want back button support, right?
On 7/11/05, Eelco Hillenius
Thx Eelco for pointing that out, that is even more explicit, that was exactly
what i was looking for !
You guys rock..
Now i will be moving on to try my own implementation of you're Tree component.
Since i need a selection tree with checkboxes. I saw the nested example and
that looks like
OK, but both situations are not an issue for me in this case, since this is
pretty much a one pager and i don't live in a clustered environment :)
/Frank B.
On Monday 11 July 2005 22:07, Eelco Hillenius wrote:
You're right. Another disadvantage I didn't think about is that
detachable models
For the model change recording (which btw only happens when you replace
a model) and detachable behaviour support, you could also wrap your
models in another model, that dispatches the recording and detaching.
But... if the models are not detachable and you don't replace your
models, you'll be
Can someone explain what's going on in EditBook#link(String, Long):
public static PageLink link(final String name, final long id)
{
return new PageLink(name, new IPageLink()
{
public Page getPage()
{
The link method returns an instance of PageLink. I'm not sure if you're
aquinted to anonymous classes, but:
return new PageLink(name, new IPageLink()
{
public Page getPage()
{
return new EditBook(Book.get(id));
}
public Class getPageIdentity()
{
return EditBook.class;
}
});
That's not exactly dependency injection. Ideally, Spring should be the
page factory, so it creates the pages and sets the dependencies for you. I'm
sorry Phil, I know this is not perfect from the serialization point of view,
but the pages are the controllers for this app, they need to know
Actually, I've been hoping all the time that more people would show up
to use the tree to get clear what the usuages would be. One thing that I
did anticipate though, is that the node definitions would have to be
flexible. For this I introduced method 'newNodePanel', which you can
override
The Wicket press machine is still working... Here's a new editorial I
just found:
http://www.networkworld.com/newsletters/web/2005/0704web1.html
Martijn
---
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
I've been toying with these problems for a while, and others have
before me. The ideal solution IS to have pages constructed and
injected, and that can be done, actually. The problem is that you
loose the ability to have many different constructors and you can't do
anything in a constructor
I think we need more sticky wicket references. Actually, in the last
month I've been using that term very often. Well, considering that I
pretty much never used it before.
On 7/11/05, Martijn Dashorst [EMAIL PROTECTED] wrote:
The Wicket press machine is still working... Here's a new editorial I
Hi,
I rewrote the Choice implementation (All the variations of the select tag)
We had a IChoiceList and a default implementation where you had to
create IChoice wrappers around youre objects.
These 2 interfaces and default implementations are all gone now.
So this is a pretty big api change
I've been thinking a bit more about the bean panel, and I'm kind of
stuck. That is, there's too many possibilities!
A simple bean is no problem. I have code in CVS for that now and it
works (with a special case, FieldPanel, which lets you select a subset
of the properties of the bean). The
Yep, but... this class is used for links that link to pages that are not
bookmarkable pages. In other words, the pages that you don't want to
make available without a session, and that can't simply be constructed
with (or without) a couple of plain parameters.
What you are looking for are
I don't want to open a big discussion on service locator vs dependency
injection. I know you guys are trying to accomodate as many points of view as
possible. I'll check if I can find something to help. The point was that
there are situations when dependency injection prevents problems
Sometimes when I make a change to a Java or HTML template, I get a
blank page displayed in my browser window. Nothing is sent to the log
file, STDOUT or STDERR. I'm sure the error is on my end but there's
absolutely no way to figure out what the problem is. Is there some
setting I need to
All,
I'd like to know whether anybody is using Wicket professionally (if you
can't make that public, just email me personally, I won't disclose it).
If you are not using Wicket professionally, what do you miss in order to
do so?
Are you planning to use Wicket in the (near) future?
Let us
yes this can happen if the markup can't be parsed and the old one is
removed (i believe)
we should check this out.
Please look when it is exactly happening..
johan
Nick Heudecker wrote:
Sometimes when I make a change to a Java or HTML template, I get a
blank page displayed in my browser
I'm using Wicket professionally. I just started a new project with it,
and I've been using it to add functionality to my old Spring MVC
project. You'd be amazed at how easilly I was able to integrate Wicket
right in with Spring MVC and ACEGI.
Every once in a while theres something in Wicket that
Cool,
Can you elaborate more on the project?
As far as the documentation is concerned, I would like it when you put
it up on the wiki. This way we can integrate (with your permission of
course) it into the manual. There is no use in doing stuff twice ;-) I
also like the fact that your
All,
I am using it professionally to develop a set of medical applications known
as the Medigy Platform. We are a startup and our website at
http://www.medigy.com describes our business. If you go to
http://demo.medigy.com our rough prototypes are up and running (though not
much is working just
Very nice indeed!
I checked the URL's and it is definetely Wicket under the belt. Without
a backend database the applicaties feels quite fast, and for your
information, it renders good under Safari (Mac OSX).
I will check your site out in more detail tomorrow (my eyes are running
into tears
Yea, sure. I work for a health care company with about 30,000 members.
We're currently branching off another company, Apropo Benefits (.com),
that will manage durable medical equipment. My current project is the
website for that company. It will involve allowing providers, members,
and agents the
And, of course, feel free to link to mine as well: :-)
http://recipe.homeip.net/
Also, I put a simple Wicket tutorial on JRoller earlier today:
http://www.jroller.com/page/jsight/
--
Jess
On 7/11/05, Gili [EMAIL PROTECTED] wrote:
Food for thought: add a who is running Wicket? section to
70 matches
Mail list logo