Re: [Wicket-user] Unexpected behaviour when using AjaxHandler's getBodyOnloadContribution()
That would, ofcourse, be the perfect solution. Do I have to report a bug for this? I guess it would make sense to provide just a single implementation to be used by both components, avoiding problems while trying to keep them in sync. Juergen On 11/7/05, Ruud Booltink [EMAIL PROTECTED] wrote: I think adding this code to WebComponent's renderHead() would solve this problem. String stmt = ((IBodyOnloadContributor)handlers[i]).getBodyOnload(); if (stmt != null) { ((WebPage)getPage()).appendToBodyOnLoad(stmt); } Maby one of the core developers could look at this Ruud Marco van de Haar wrote: I dived into the wicket core code and I ended up in WebComponent.renderHead(). Since I noticed that getBodyOnLoad() was only called for FormComponents and WebMarkupContainers I expected a difference in renderHead() for WebComponent and WebMarkupContainer... and I found it. Webcomponent.renderHead() /** * THIS IS NOT PART OF WICKETS PUBLIC API. DO NOT CALL IT YOURSELF * Print to the web response what ever the component wants * to contribute to the head section. Does nothing by default. * * @param container The HtmlHeaderContainer * @see wicket.markup.html.IHeaderContributor#renderHead(wicket.markup.html.HtmlHeaderContainer) */ public void renderHead(final HtmlHeaderContainer container) { AjaxHandler[] handlers = getAjaxHandlers(); if (handlers != null) { for (int i = 0; i handlers.length; i++) { handlers[i].renderHead(container); } } } and WebMarkupContainer.renderHead(): public void renderHead(final HtmlHeaderContainer container) { . // get head and body contributions in one loop AjaxHandler[] handlers = getAjaxHandlers(); if (handlers != null) { for (int i = 0; i handlers.length; i++) { ((IHeaderContributor)handlers[i]).renderHead(container); String stmt = ((IBodyOnloadContributor)handlers[i]).getBodyOnload(); if (stmt != null) { ((WebPage)getPage()).appendToBodyOnLoad(stmt); } } } } I believe that getBodyOnload() is not called in WebComponent. And thus any bodyonload contributions made in AjaxHandlers bound to WebComponents are ignored. Is this a bug? If so, it must be easy to fix. Marco That should work. Might be a bug. Could you pls try to step into it? Eelco On 11/4/05, Marco van de Haar [EMAIL PROTECTED] wrote: I encountered somewhat unexpected behavior when I tried using getBodyOnloadContribution(). When adding custom Ajaxhandlers to components I noticed that the getBodyOnloadContribution() is not called when I added the handler to an Image or a Label. It was however called upon loading the page when I added my handler to a WebMarkupContainer. Is this method meant to hehave this way? If so, I did not find it in the documentation. I think it is logical that the method is also called for Components like Label and Image. I am not really familliar with AjaxHandler's internal code however. Marco --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
Re: [Wicket-user] My take on Spring integration
Somewhere in this thread I think I have identified a suggestion that looked very much in the direction I would like to see it going. Unfortunately, right now I will need to pass through the thread again and identify it. Probably the way I would go would be to define an annotation @SpringBean(lazy=true|false) that would be type level. Than I would use a simple aspect that: 1/ in case of a @SpringBean(lazy=false) would work upon the constructor and inject everything required by the page/component (also using the field/setter level annotation) 2/ in case of a @SpringBean(lazy=true) would work on the getters to inject the dependency lazy. The aspect would look quite simple as there is no complex thing to be done. I think that as Igor is suggesting some proxy solution may work too. However I am not quite sure how the part of creating proxies would work as you don't really have an interface defined only for the SpringAware setters. ./alex -- .w( the_mindstorm )p. #: Igor Vaynberg changed the world a bit at a time by saying on 11/8/2005 10:07 AM :# heh why do i only get to work on this stuff when i can barely keep my eyes open? works great when i use a dynamic proxy - ie the dependency is an interface. there is some class cast exception with cglib when the dependency is a concrete class, maybe someone can take a look. basically what this is does is this: traverses the class hierarchy and looks for any fields that are annotated with a SpringBean annotation, for any field it creates a proxy that will load the dependency on first method invocation and sets the proxy as the field value. the proxy does not replace the field value with the dependency when its loaded, but instead forwards the invocations itself. this allows the proxy to remain as the field value and be serialized and deserialized instead of the dependency and thus solves the deserialization problem because the proxy keeps enough information to be able to lookup the dependency on its own. this approach allows pages or components to carry spring references and there is very low overhead because everything is lazy, and the hierarchy is only traversed once. right now the impl is jdk5 because that's the easiest, but this will work just fine with jdk4, just need a way to store the metadata elsewhere - like wicket metadata store in 1.2. it can also be easily extended to pull out dependencies from places other then spring - the principle is the same. the code (which needs to be refactored a lot) is in wicket-contrib-spring project in wicket-stuff. see the wicket.contrib.spring.injection for code and tests (examples :) ) this can work automatically for pages, just create a constructor like this: SpringEnabledPage extends WebPage { public SpringEnabledPage() { super(); SpringInitailizer.initialize(this, getSpringContextLocator()); } } and then any page that extends the current page gets the proxies created automatically does this sound good to people and will any one actually use it? or is this not ioc enough and i am just wasting my time? Good night, -Igor On 11/7/05, Igor Vaynberg [EMAIL PROTECTED] wrote: or a JNDIAnnotation, anything is possible with this approach. Let me try and get some of it going tonight and we can move from there. -Igor On 11/7/05, Christian Essl [EMAIL PROTECTED] wrote: I think there should be both of your implementations. IMO the constructor based impl should have the protected doInject method, because to me it seems to be the easiest way to inject manually services in the constructor without the need to manually proxy them. Yes with cglib we'll hit the final problem. I think - don't know - we'll need also a default constructor. Anyway spring runs into the same problem if it uses ie transaction proxies because spring does also use cglib for non interface based AOP. Maybe use spring AOP directly, which is well tested and performend. To me it would be fine to only use interfaces, because in the end those things are services I want to replace for mocking, remoting or whatsoever. So interfaces are a good (recomended) practice. By the way we could also create an EJBInjection annotation. Christian On Mon, 7 Nov 2005 16:22:02 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: but using that same idea, there is nothing stopping you from creating a subclass that calls the decorating factory from the constructor. So some of these init proxies are going to have to be cglib proxies? We can check if the field's type is an interface, and if so we can create a regular proxy, but if its not we try to create a cglib proxy? Do we hit the same final method drawbacks? -Igor On 11/7/05, Christian Essl [EMAIL PROTECTED] wrote: That's right. That's propably the cleanest way and you can use it on each component. The problem why I came up with the constructor aproach initially was that generally all the subcomponents are created and setup in the
Re: [Wicket-user] Unexpected behaviour when using AjaxHandler's getBodyOnloadContribution()
I think Eelco fixed it already in HEAD Juergen On 11/8/05, Marco van de Haar [EMAIL PROTECTED] wrote: That would, ofcourse, be the perfect solution. Do I have to report a bug for this? I guess it would make sense to provide just a single implementation to be used by both components, avoiding problems while trying to keep them in sync. Juergen On 11/7/05, Ruud Booltink [EMAIL PROTECTED] wrote: I think adding this code to WebComponent's renderHead() would solve this problem. String stmt = ((IBodyOnloadContributor)handlers[i]).getBodyOnload(); if (stmt != null) { ((WebPage)getPage()).appendToBodyOnLoad(stmt); } Maby one of the core developers could look at this Ruud Marco van de Haar wrote: I dived into the wicket core code and I ended up in WebComponent.renderHead(). Since I noticed that getBodyOnLoad() was only called for FormComponents and WebMarkupContainers I expected a difference in renderHead() for WebComponent and WebMarkupContainer... and I found it. Webcomponent.renderHead() /** * THIS IS NOT PART OF WICKETS PUBLIC API. DO NOT CALL IT YOURSELF * Print to the web response what ever the component wants * to contribute to the head section. Does nothing by default. * * @param container The HtmlHeaderContainer * @see wicket.markup.html.IHeaderContributor#renderHead(wicket.markup.html.HtmlHeaderContainer) */ public void renderHead(final HtmlHeaderContainer container) { AjaxHandler[] handlers = getAjaxHandlers(); if (handlers != null) { for (int i = 0; i handlers.length; i++) { handlers[i].renderHead(container); } } } and WebMarkupContainer.renderHead(): public void renderHead(final HtmlHeaderContainer container) { . // get head and body contributions in one loop AjaxHandler[] handlers = getAjaxHandlers(); if (handlers != null) { for (int i = 0; i handlers.length; i++) { ((IHeaderContributor)handlers[i]).renderHead(container); String stmt = ((IBodyOnloadContributor)handlers[i]).getBodyOnload(); if (stmt != null) { ((WebPage)getPage()).appendToBodyOnLoad(stmt); } } } } I believe that getBodyOnload() is not called in WebComponent. And thus any bodyonload contributions made in AjaxHandlers bound to WebComponents are ignored. Is this a bug? If so, it must be easy to fix. Marco That should work. Might be a bug. Could you pls try to step into it? Eelco On 11/4/05, Marco van de Haar [EMAIL PROTECTED] wrote: I encountered somewhat unexpected behavior when I tried using getBodyOnloadContribution(). When adding custom Ajaxhandlers to components I noticed that the getBodyOnloadContribution() is not called when I added the handler to an Image or a Label. It was however called upon loading the page when I added my handler to a WebMarkupContainer. Is this method meant to hehave this way? If so, I did not find it in the documentation. I think it is logical that the method is also called for Components like Label and Image. I am not really familliar with AjaxHandler's internal code however. Marco --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email
Re: [Wicket-user] Strange wicket.markup.MarkupException: Tag expected exception
Hi, Which version of Wicket are you using? Lastest HEAD? You're not using the component re-render feature, do you? no, Wicket 1.1. It is a redirect you do and the response gets rendered. Based on the stack trace something is wrong in one of the headers. Within Well, I rechecked all the header contributing components and couldn't find anything... The strange thing is, that the exception is not about the markup of the rendered page but about that of the page I come from. I have DocumentPage and PositionPage and go from PositionPage - DocumentPage. I get: Unexpected runtime exception [page = [Page class = DocumentPage, id = 3]] wicket.markup.MarkupException: Tag expected [markup = file:PositionPage.html, index = 120, current = [Raw markup]] Unfortunately I don't have Tomcat debugging set up at the moment but I will see if I can debug it as suggested. Regards, Ralf --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Strange wicket.markup.MarkupException: Tag expected exception
Try using jetty and the jetty-launcher plugin for eclipse. That is realy easy. Juergen On 11/8/05, Ralf Ebert [EMAIL PROTECTED] wrote: Hi, Which version of Wicket are you using? Lastest HEAD? You're not using the component re-render feature, do you? no, Wicket 1.1. It is a redirect you do and the response gets rendered. Based on the stack trace something is wrong in one of the headers. Within Well, I rechecked all the header contributing components and couldn't find anything... The strange thing is, that the exception is not about the markup of the rendered page but about that of the page I come from. I have DocumentPage and PositionPage and go from PositionPage - DocumentPage. I get: Unexpected runtime exception [page = [Page class = DocumentPage, id = 3]] wicket.markup.MarkupException: Tag expected [markup = file:PositionPage.html, index = 120, current = [Raw markup]] Unfortunately I don't have Tomcat debugging set up at the moment but I will see if I can debug it as suggested. Regards, Ralf --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Strange wicket.markup.MarkupException: Tag expected exception
You may not even need Jetty or Tomcat. Take a look at the unit tests which make use of WicketTester. It provides all the mock objects and wireing required. Juergen On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Try using jetty and the jetty-launcher plugin for eclipse. That is realy easy. Juergen On 11/8/05, Ralf Ebert [EMAIL PROTECTED] wrote: Hi, Which version of Wicket are you using? Lastest HEAD? You're not using the component re-render feature, do you? no, Wicket 1.1. It is a redirect you do and the response gets rendered. Based on the stack trace something is wrong in one of the headers. Within Well, I rechecked all the header contributing components and couldn't find anything... The strange thing is, that the exception is not about the markup of the rendered page but about that of the page I come from. I have DocumentPage and PositionPage and go from PositionPage - DocumentPage. I get: Unexpected runtime exception [page = [Page class = DocumentPage, id = 3]] wicket.markup.MarkupException: Tag expected [markup = file:PositionPage.html, index = 120, current = [Raw markup]] Unfortunately I don't have Tomcat debugging set up at the moment but I will see if I can debug it as suggested. Regards, Ralf --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Strange wicket.markup.MarkupException: Tag expected exception
yet another way would be to enable debug logs on wicket.Component=DEBUG. You should see messages like Begin render ... and End render The last Begin render .. should be of interest. Juergen On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: You may not even need Jetty or Tomcat. Take a look at the unit tests which make use of WicketTester. It provides all the mock objects and wireing required. Juergen On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Try using jetty and the jetty-launcher plugin for eclipse. That is realy easy. Juergen On 11/8/05, Ralf Ebert [EMAIL PROTECTED] wrote: Hi, Which version of Wicket are you using? Lastest HEAD? You're not using the component re-render feature, do you? no, Wicket 1.1. It is a redirect you do and the response gets rendered. Based on the stack trace something is wrong in one of the headers. Within Well, I rechecked all the header contributing components and couldn't find anything... The strange thing is, that the exception is not about the markup of the rendered page but about that of the page I come from. I have DocumentPage and PositionPage and go from PositionPage - DocumentPage. I get: Unexpected runtime exception [page = [Page class = DocumentPage, id = 3]] wicket.markup.MarkupException: Tag expected [markup = file:PositionPage.html, index = 120, current = [Raw markup]] Unfortunately I don't have Tomcat debugging set up at the moment but I will see if I can debug it as suggested. Regards, Ralf --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Strange wicket.markup.MarkupException: Tag expected exception
Hi, yet another way would be to enable debug logs on wicket.Component=DEBUG. You should see messages like Begin render ... and End render The last Begin render .. should be of interest. thanks for your help, that helped me fix it. I saved a StyleSheetReference static in my base page. Maybe Wicket should allow this or throw an exception? (because the error didn't help me finding the problem and I fear I'm not the only one getting the idea that a thing like a css reference could be stored static in a base page) Regards, Ralf --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] redirect to previous url
I take a look at WebRequestCrawlerSaver and this can be what i loking for what is the way to plug this in a wicket application thanks in advantage On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: If you are sure that you are realy not interested in path=xxx, may be it worth if you create your own WebRequest/WebResponse (see WebRequestCrawlerSaver for an example what can be done) Juergen On 11/8/05, pepone pepone [EMAIL PROTECTED] wrote: In my current aplication all links are bookmarkables or redirects to a bookmarkable pagte and i only want this for the SingInForm user that are not signedin can only access tow forms RegisterForm and SignIn form the register form redirect allways to a page that show the result of regitration or error in registration if any path=x is clean but if a user is read and article in this page with a bookmarkable url sigin for be able tos post a coment then it is in a url that it can bookmarkat and this can be confused for user. for example you are reading and article at http://domain.com/app?bookmarakblePage=ArticleViewnodePath=/wicket/intro you sing in to post a coment and your url is now http://domain.com/app?path=x the user make a bookmark to remenber this article later ops this bookmark is broken how can i prevent user for not make bookmarks when a url is no bookmarkable i think that i can´t this is the problem that i see for the rest path=x is clean for me On 11/7/05, Johan Compagner [EMAIL PROTECTED] wrote: then you have to make sure that you always redirect to a bookmarkable url at all places! (form submits, link clicks) A form submit will always be a path=x thing So if that form submit is the page before youre redirectToIntercept (so a user submits a form but should login first) Then it will be hard to know the bookmarkable url because there is none a form always submits to path=x Personally i find the path=x very very clean. I would use bookmarkable urls only for outside entry points inside my application. johan On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: What i trying to do is maintain the clean url that i have before form submit i don´t want that my app has not bookmarkable urls wiht path o version in it On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: what i don´t understand is when i must call redirectToInterceptPage beacause my sigin panel is allways in the border and documentation says that continueToOriginal only works with a previous call to redirectToInterceptPage On 11/7/05, Johan Compagner [EMAIL PROTECTED] wrote: We are redirecting to the real url: final void redirectToInterceptPage(final Page page) { interceptContinuationURL = page.getResponse().encodeURL(page.getRequest().getURL()); But i think this url is already changed because of a client side redirect. (changed to: path=0 or something like that) But that shouldn't matter because it will redirect to the same instance as it was on is that not the case or not the desired behaviour? johan On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: I read singin2 to example but i think that this don´t solve the problem that i expresed Sigin2 use redirectToInterceptPage(SingIn2.class); and later calls getPage().continueToOriginal(); but in my case i haven´t a separte page for sigin my sigin panel is allways present in the border if a user is at this url http://domain.com/app?bookmarkablePage=FileViewnodePath=/test-001.html when i submit form continue in same page but url is not bookmarkable what i want is keep the previous bookmarkable Url continueToOriginal not make sense here because i haven´t a separted singin page that i redirect to using void redirectToInterceptPage(Page page) On 11/7/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Please see the signin2 example. Juergen On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: Hello i have a form in my border to do login/logout I wan to redirect user to same url before login the url that i use are allways bookmarkable and i wan to mantain the url whith the same parameters i thinking in same thing like void onSubmit() { //Form logic goes here //before is procesed redirect user to the previous url setResponsePage(getPage().class,getPreviousRequest().getParams()); } any ideas?
Re: Re: [Wicket-user] My take on Spring integration
Wow great job Igor. Thanks for doing it. I think that's the proper way to go. Regarding cglib I think you should use spring AOP (it is already a dependency and generalization can wait a bit). Spring AOP handles all that and a bit more and is easy to use. Ie for cglib like in the current implementation you would also have to do something for serializing the proxy (http://cglib.sourceforge.net/howto.html) and maybe there are other things. With spring AOP: final Class proxyClass = //class/interface needed to inject ProxyFactory fact = new ProxyFactory(); fact.setTargetSource(new TargetSource(){ private transient _target; public Class getTargetClass(){return proxyClass;} public boolean isStatic(){return false;} public Object getTarget() throws Exception { if(_target == null) _target = loadTheTarget(); return _target; } public void releaseTarget(Object arg0) throws Exception{} }); if(!proxyClass.isInterface()) fact.setProxyTargetClass(true); //will use cglib Object proxy = fact.getProxy(); //inject the proxy (done) Just of my head two further suggestions: 1.) If a field is not null than do not inject anything. This way custom injections could be done 2.) If a Compnoent implements Initializable than call init(). So setter injection can be done and the componetn can do its full setup in the init method - basically like in the constructor. What I'm working on now is an ApplicationContext which wrapps the 'real' ApplicationContext and does create for getBean() etc automatically the proxies. I think this way I'll never have to worry about the serialization problem for such beans. Christian On Tue, 8 Nov 2005 00:07:30 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: heh why do i only get to work on this stuff when i can barely keep my eyes open? works great when i use a dynamic proxy - ie the dependency is an interface. there is some class cast exception with cglib when the dependency is a concrete class, maybe someone can take a look. basically what this is does is this: traverses the class hierarchy and looks for any fields that are annotated with a SpringBean annotation, for any field it creates a proxy that will load the dependency on first method invocation and sets the proxy as the field value. the proxy does not replace the field value with the dependency when its loaded, but instead forwards the invocations itself. this allows the proxy to remain as the field value and be serialized and deserialized instead of the dependency and thus solves the deserialization problem because the proxy keeps enough information to be able to lookup the dependency on its own. this approach allows pages or components to carry spring references and there is very low overhead because everything is lazy, and the hierarchy is only traversed once. right now the impl is jdk5 because that's the easiest, but this will work just fine with jdk4, just need a way to store the metadata elsewhere - like wicket metadata store in 1.2. it can also be easily extended to pull out dependencies from places other then spring - the principle is the same. the code (which needs to be refactored a lot) is in wicket-contrib-spring project in wicket-stuff. see the wicket.contrib.spring.injection for code and tests (examples :) ) this can work automatically for pages, just create a constructor like this: SpringEnabledPage extends WebPage { public SpringEnabledPage() { super(); SpringInitailizer.initialize(this, getSpringContextLocator()); } } and then any page that extends the current page gets the proxies created automatically does this sound good to people and will any one actually use it? or is this not ioc enough and i am just wasting my time? Good night, -Igor On 11/7/05, Igor Vaynberg [EMAIL PROTECTED] wrote: or a JNDIAnnotation, anything is possible with this approach. Let me try and get some of it going tonight and we can move from there. -Igor On 11/7/05, Christian Essl [EMAIL PROTECTED] wrote: I think there should be both of your implementations. IMO the constructor based impl should have the protected doInject method, because to me it seems to be the easiest way to inject manually services in the constructor without the need to manually proxy them. Yes with cglib we'll hit the final problem. I think - don't know - we'll need also a default constructor. Anyway spring runs into the same problem if it uses ie transaction proxies because spring does also use cglib for non interface based AOP. Maybe use spring AOP directly, which is well tested and performend. To me it would be fine to only use interfaces, because in the end those things are services I want to replace for mocking, remoting or whatsoever. So interfaces are a good (recomended) practice. By the way we could also create an EJBInjection annotation. Christian On Mon, 7 Nov 2005 16:22:02 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote:
Re: [Wicket-user] redirect to previous url
please see http://www.wicket-wiki.org.uk/wiki/index.php/Obfuscating_urls Jürgen On 11/8/05, pepone pepone [EMAIL PROTECTED] wrote: I take a look at WebRequestCrawlerSaver and this can be what i loking for what is the way to plug this in a wicket application thanks in advantage On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: If you are sure that you are realy not interested in path=xxx, may be it worth if you create your own WebRequest/WebResponse (see WebRequestCrawlerSaver for an example what can be done) Juergen On 11/8/05, pepone pepone [EMAIL PROTECTED] wrote: In my current aplication all links are bookmarkables or redirects to a bookmarkable pagte and i only want this for the SingInForm user that are not signedin can only access tow forms RegisterForm and SignIn form the register form redirect allways to a page that show the result of regitration or error in registration if any path=x is clean but if a user is read and article in this page with a bookmarkable url sigin for be able tos post a coment then it is in a url that it can bookmarkat and this can be confused for user. for example you are reading and article at http://domain.com/app?bookmarakblePage=ArticleViewnodePath=/wicket/intro you sing in to post a coment and your url is now http://domain.com/app?path=x the user make a bookmark to remenber this article later ops this bookmark is broken how can i prevent user for not make bookmarks when a url is no bookmarkable i think that i can´t this is the problem that i see for the rest path=x is clean for me On 11/7/05, Johan Compagner [EMAIL PROTECTED] wrote: then you have to make sure that you always redirect to a bookmarkable url at all places! (form submits, link clicks) A form submit will always be a path=x thing So if that form submit is the page before youre redirectToIntercept (so a user submits a form but should login first) Then it will be hard to know the bookmarkable url because there is none a form always submits to path=x Personally i find the path=x very very clean. I would use bookmarkable urls only for outside entry points inside my application. johan On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: What i trying to do is maintain the clean url that i have before form submit i don´t want that my app has not bookmarkable urls wiht path o version in it On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: what i don´t understand is when i must call redirectToInterceptPage beacause my sigin panel is allways in the border and documentation says that continueToOriginal only works with a previous call to redirectToInterceptPage On 11/7/05, Johan Compagner [EMAIL PROTECTED] wrote: We are redirecting to the real url: final void redirectToInterceptPage(final Page page) { interceptContinuationURL = page.getResponse().encodeURL(page.getRequest().getURL()); But i think this url is already changed because of a client side redirect. (changed to: path=0 or something like that) But that shouldn't matter because it will redirect to the same instance as it was on is that not the case or not the desired behaviour? johan On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: I read singin2 to example but i think that this don´t solve the problem that i expresed Sigin2 use redirectToInterceptPage(SingIn2.class); and later calls getPage().continueToOriginal(); but in my case i haven´t a separte page for sigin my sigin panel is allways present in the border if a user is at this url http://domain.com/app?bookmarkablePage=FileViewnodePath=/test-001.html when i submit form continue in same page but url is not bookmarkable what i want is keep the previous bookmarkable Url continueToOriginal not make sense here because i haven´t a separted singin page that i redirect to using void redirectToInterceptPage(Page page) On 11/7/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: Please see the signin2 example. Juergen On 11/7/05, pepone pepone [EMAIL PROTECTED] wrote: Hello i have a form in my border to do login/logout I wan to redirect user to same url before login the url that i use are allways bookmarkable and i wan to mantain the url whith the same parameters i thinking in same thing
[Wicket-user] Question about AJAX and Wicket
Hi,I've been looking at the Dojo and Scriptaculous extensions for Wicket and haven't seen what I'm looking for. Essentially, I want to have a master-detail display where the details are retrieved from the server and displayed in a div. Also, I'd like to be able to request a Form object from the server and have it displayed in the Page, like if the user clicks Edit, for instance. Any pointers on this? Can the extensions, or even Wicket, support this yet?
Re: [Wicket-user] simple bookmarkable url
Howare thebase url's different? In all cases, aren't the base url's the following? www.wicket-library.com/wicket-examples/template My desire is to have url's that are as simple as possible. Long url's are problems for nontechnical users (for example in emails, whenbookmarking, on written publications, describing verbally say over phone, or when typing in address bar of browser.). When something like "bookmarkablePage" is added to the url, a simple url becomes complicated. Especially sinceurl is case sensitive where only "P" is capital and all other characters are lower case. This may sound trivial to us technical people since we understand what happens with case-sensitive string compares. However,complicated url's complicate acompany's ability for goodcustomer servicefor web-related things. Jeff Johan Compagner [EMAIL PROTECTED] wrote: that is currently not possibleAlso with these kind of urls you suddenly have all kind of url problems (other resources like images/css/js files) because the base dir is different.You have to use a url rewriter for that currently.johan On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: putClassAlias is close to what I was suggesting but it does not remove all of the implementation details from the url. It eliminates the package name but the url still contains "?bookmarkablePage=" which is an implementation detail for Wicket butis not related to thesemantic value of the url. No alias: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 With putClassAlias(Page2.class, "Page2"): http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=Page2 Desired alias: http://www.wicket-library.com/wicket-examples/template/Page2 Jeff Johan Compagner [EMAIL PROTECTED] wrote: ApplicationPages is just a configuration object you can set properties that are used for pages (Error pages etc)For aliasses see wicket-examples, we use there as an example a few page aliasses. Just put youre bookmarkable page class as a allias:putClassAlias(MyPage.class, "mypage"); On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: Where would I find an example? I could not find any on wiki, wicket.sourceforge.net, or in examples. The javadoc isnot clear how to use ApplicationPages except that I need to use putClassAlias method. What object, if any, needs reference to the ApplicationPages object with the aliases? Thanks, Jeff Johan Compagner [EMAIL PROTECTED] wrote: there is already support for page aliasses see ApplicationPages On 11/4/05, Jeff Miller [EMAIL PROTECTED] wrote: Is there a way to create bookmarkable page without embedding any of the Wicket implementation details in the url? For example, the template example page 2 url is: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 However,"bookmarkablePage=wicket.examples.template" is a Wicket implementation detail thatis used because Wicket needs itand not because it is relevant to theurl. It would begood if the url could be simpler like: http://www.wicket-library.com/wicket-examples/template/Page2 Now I realize that Wicket needs to knowhow to map "Page2" to "wicket.examples.template.Page2". One wayto accomplish this could beto add a method to WebApplicationlike addAlias(String alias, Class page). For example: public class TemplateApplication extends WicketExampleApplication{ public TemplateApplication() { getPages().setHomePage(Page1.class); addAlias("Page1", Page1.class); addAlias("Page2", Page2.class); }} Here are some articles that recommend keeping implementation details outof urls: http://www.w3.org/Provider/Style/URI http://www.useit.com/alertbox/990321.html Thanks, JeffJeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click.
Re: [Wicket-user] simple bookmarkable url
We could also support: page=wicket (instead of bookmarkablePage=wicket) the base in this: www.wicket-library.com/wicket-examples/template is www.wicket-library.com/wicket-examples/ but with: www.wicket-library.com/wicket-examples/template /page it is: www.wicket-library.com/wicket-examples/template / johan On 11/8/05, Jeff Miller [EMAIL PROTECTED] wrote: Howare thebase url's different? In all cases, aren't the base url's the following? www.wicket-library.com/wicket-examples/template My desire is to have url's that are as simple as possible. Long url's are problems for nontechnical users (for example in emails, whenbookmarking, on written publications, describing verbally say over phone, or when typing in address bar of browser.). When something like bookmarkablePage is added to the url, a simple url becomes complicated. Especially sinceurl is case sensitive where only P is capital and all other characters are lower case. This may sound trivial to us technical people since we understand what happens with case-sensitive string compares. However,complicated url's complicate acompany's ability for goodcustomer servicefor web-related things. Jeff Johan Compagner [EMAIL PROTECTED] wrote: that is currently not possibleAlso with these kind of urls you suddenly have all kind of url problems (other resources like images/css/js files) because the base dir is different.You have to use a url rewriter for that currently.johan On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: putClassAlias is close to what I was suggesting but it does not remove all of the implementation details from the url. It eliminates the package name but the url still contains ?bookmarkablePage= which is an implementation detail for Wicket butis not related to thesemantic value of the url. No alias: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 With putClassAlias(Page2.class, Page2): http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=Page2 Desired alias: http://www.wicket-library.com/wicket-examples/template/Page2 Jeff Johan Compagner [EMAIL PROTECTED] wrote: ApplicationPages is just a configuration object you can set properties that are used for pages (Error pages etc)For aliasses see wicket-examples, we use there as an example a few page aliasses. Just put youre bookmarkable page class as a allias:putClassAlias(MyPage.class, mypage); On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: Where would I find an example? I could not find any on wiki, wicket.sourceforge.net, or in examples. The javadoc isnot clear how to use ApplicationPages except that I need to use putClassAlias method. What object, if any, needs reference to the ApplicationPages object with the aliases? Thanks, Jeff Johan Compagner [EMAIL PROTECTED] wrote: there is already support for page aliasses see ApplicationPages On 11/4/05, Jeff Miller [EMAIL PROTECTED] wrote: Is there a way to create bookmarkable page without embedding any of the Wicket implementation details in the url? For example, the template example page 2 url is: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 However,bookmarkablePage=wicket.examples.template is a Wicket implementation detail thatis used because Wicket needs itand not because it is relevant to theurl. It would begood if the url could be simpler like: http://www.wicket-library.com/wicket-examples/template/Page2 Now I realize that Wicket needs to knowhow to map Page2 to wicket.examples.template.Page2. One wayto accomplish this could beto add a method to WebApplicationlike addAlias(String alias, Class page). For example: public class TemplateApplication extends WicketExampleApplication{ public TemplateApplication() { getPages().setHomePage(Page1.class); addAlias(Page1, Page1.class); addAlias(Page2, Page2.class); }} Here are some articles that recommend keeping implementation details outof urls: http://www.w3.org/Provider/Style/URI http://www.useit.com/alertbox/990321.html Thanks, JeffJeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller [EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click.
Re: Re: [Wicket-user] My take on Spring integration
Yes you are right! I was now more thinking of Igors proposal todo the 'injection' from the outside: MyComponent comp = new MyComponent(id); //set this and that SpringInitializer.initialize(comp,locator); If you'd do it from the inside (as the original code) it is a different story. I don't know what is better. What do you think? Christian On Tue, 8 Nov 2005 16:36:51 +0100, Johan Compagner [EMAIL PROTECTED] wrote: Just of my head two further suggestions: 1.) If a field is not null than do not inject anything. This way custom injections could be done Fields are always null because they are not initialized yet by the sub class (when having a super class that does the injections) -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
What I'm working on now is an ApplicationContext which wrapps the 'real'ApplicationContext and does create for getBean() etc automatically the proxies. I think this way I'll never have to worry about the serializationproblem for such beans. but what will inject your pages? -Igor
Re: [Wicket-user] simple bookmarkable url
On 11/8/05, Jeff Miller [EMAIL PROTECTED] wrote: How are the base url's different? In all cases, aren't the base url's the following? www.wicket-library.com/wicket-examples/template My desire is to have url's that are as simple as possible. Long url's are problems for nontechnical users (for example in emails, when bookmarking, on written publications, describing verbally say over phone, or when typing in address bar of browser.). When something like bookmarkablePage is added to the url, a simple url becomes complicated. Especially since url is case sensitive where only P is capital and all other characters are lower case. This may sound trivial to us technical people since we understand what happens with case-sensitive string compares. However, complicated url's complicate a company's ability for good customer service for web-related things. Yes, base url remains the same, of course. But everything behind it can be whatever you want to. A single name, a number, a path, with or without parameters. Juergen --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Question about AJAX and Wicket
I'll give it a shot. To be honest, I'd really like some more docs about the AJAX stuff. I've looked at the examples and they don't really provide the high-level overview I need to get my head around it. On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: In the HEAD (1.2 dev) version of Wicket we now have beta support forpartial rendering (e.g. rendering of 1 panel). You probably need thatto elegantly build what you want.It's still working on the frontier (though some simpler ajax components are available now), but please try and implement. That'sthe only way we can know whether our Ajax support is good enough/ bugfree.EelcoOn 11/8/05, Nick Heudecker [EMAIL PROTECTED] wrote: Hi, I've been looking at the Dojo and Scriptaculous extensions for Wicket and haven't seen what I'm looking for.Essentially, I want to have a master-detail display where the details are retrieved from the server and displayed in a div.Also, I'd like to be able to request a Form object from the server and have it displayed in the Page, like if the user clicks Edit, for instance. Any pointers on this?Can the extensions, or even Wicket, support this yet? ---SF.Net email is sponsored by:Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing list Wicket-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
It is more for components: //constructor public OrderPage(){ add(new CustomerPanel(customer,getWrappingContext().getBean(customerDAO,CustomerDAO.class)); } Just for normal DI in code. Christian On Tue, 8 Nov 2005 08:31:47 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: What I'm working on now is an ApplicationContext which wrapps the 'real' ApplicationContext and does create for getBean() etc automatically the proxies. I think this way I'll never have to worry about the serialization problem for such beans. but what will inject your pages? -Igor -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Question about AJAX and Wicket
Well, the ajax support in Wicket is quite basic really. Just take a look at Behaviour/ AjaxHandler/ one of the concrete AjaxHandlers like DojoAjaxHandler. Generally, what they do is provide the means to let handlers cooperate with components (due to suggestions earlier this week, this was generalized into behaviours) and let them contribute header and body onload code. The hardest part you have to learn is how each individual library (like Dojo or Scriptaculous) takes care of ajax handling. And of course, how to put things together in a nice way. The more people give this a try, the better our understanding will be of how we can support best. I think when we reach a level that we have done more complex ajax stuff (like what you want to do) and agree on the taken approaches, we can go on and create some more high level documentation on Ajax. Eelco On 11/8/05, Nick Heudecker [EMAIL PROTECTED] wrote: I'll give it a shot. To be honest, I'd really like some more docs about the AJAX stuff. I've looked at the examples and they don't really provide the high-level overview I need to get my head around it. On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: In the HEAD (1.2 dev) version of Wicket we now have beta support for partial rendering (e.g. rendering of 1 panel). You probably need that to elegantly build what you want. It's still working on the frontier (though some simpler ajax components are available now), but please try and implement. That's the only way we can know whether our Ajax support is good enough/ bug free. Eelco On 11/8/05, Nick Heudecker [EMAIL PROTECTED] wrote: Hi, I've been looking at the Dojo and Scriptaculous extensions for Wicket and haven't seen what I'm looking for. Essentially, I want to have a master-detail display where the details are retrieved from the server and displayed in a div. Also, I'd like to be able to request a Form object from the server and have it displayed in the Page, like if the user clicks Edit, for instance. Any pointers on this? Can the extensions, or even Wicket, support this yet? --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Question about AJAX and Wicket
In the mean time, I think Jessy Sightler has got some ajax writing on his blog. Google for scriptaculous, wicket and autocomplete. Martijn On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: Well, the ajax support in Wicket is quite basic really. Just take a look at Behaviour/ AjaxHandler/ one of the concrete AjaxHandlers like DojoAjaxHandler. Generally, what they do is provide the means to let handlers cooperate with components (due to suggestions earlier this week, this was generalized into behaviours) and let them contribute header and body onload code. The hardest part you have to learn is how each individual library (like Dojo or Scriptaculous) takes care of ajax handling. And of course, how to put things together in a nice way. The more people give this a try, the better our understanding will be of how we can support best. I think when we reach a level that we have done more complex ajax stuff (like what you want to do) and agree on the taken approaches, we can go on and create some more high level documentation on Ajax. Eelco On 11/8/05, Nick Heudecker [EMAIL PROTECTED] wrote: I'll give it a shot. To be honest, I'd really like some more docs about the AJAX stuff. I've looked at the examples and they don't really provide the high-level overview I need to get my head around it. On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: In the HEAD (1.2 dev) version of Wicket we now have beta support for partial rendering (e.g. rendering of 1 panel). You probably need that to elegantly build what you want. It's still working on the frontier (though some simpler ajax components are available now), but please try and implement. That's the only way we can know whether our Ajax support is good enough/ bug free. Eelco On 11/8/05, Nick Heudecker [EMAIL PROTECTED] wrote: Hi, I've been looking at the Dojo and Scriptaculous extensions for Wicket and haven't seen what I'm looking for. Essentially, I want to have a master-detail display where the details are retrieved from the server and displayed in a div. Also, I'd like to be able to request a Form object from the server and have it displayed in the Page, like if the user clicks Edit, for instance. Any pointers on this? Can the extensions, or even Wicket, support this yet? --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user -- Living a wicket life... Martijn Dashorst - http://www.jroller.com/page/dashorst Wicket 1.1 is out: http://wicket.sourceforge.net/wicket-1.1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think? -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced fromsession attributes (full serialization closure). However the spec doesnot speak about writeReplace()and readResolve() so 'legaly' you should be on the right side if you rely on these.Enclosed is some code which I guess does what is described on the cglibhowto page. I have not tested the code yet. I'll try to do so untiltomorrow.Anyway is it so important to inject objects without interfaces? ChristianOn Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED]wrote: got the proxies for concrete objects working, but another dead end unfortunately. seems cglib proxies are not serializable objects. in their howto they recommend overriding read/write resolve and reconstructing the proxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor
Re: [Wicket-user] simple bookmarkable url
I considered recommending "page=". It would be better than "bookmarkablePage=". Allowing "page=" in conjunction with alias would certainly allow simpler urls. When browsing to bookmarkable page,wouldthe urlshow in browser as "page=alias"? I would prefer that to "bookmarkablePage=com.mycompany.app.myapp" or "bookmarkablePage=alias" even though "page" is understood by Wicket. In other words, ifmy applicationis configured to use "page", I wouldnever want "bookmarkablePage" toshow in browser address during navigation. JeffJohan Compagner [EMAIL PROTECTED] wrote: We could also support:page=wicket (instead of bookmarkablePage=wicket)the base in this:www.wicket-library.com/wicket-examples/template iswww.wicket-library.com/wicket-examples/ but with:www.wicket-library.com/wicket-examples/template /pageit is:www.wicket-library.com/wicket-examples/template /johanOn 11/8/05, Jeff Miller [EMAIL PROTECTED] wrote: Howare thebase url's different? In all cases, aren't the base url's the following? www.wicket-library.com/wicket-examples/template My desire is to have url's that are as simple as possible. Long url's are problems for nontechnical users (for example in emails, whenbookmarking, on written publications, describing verbally say over phone, or when typing in address bar of browser.). When something like "bookmarkablePage" is added to the url, a simple url becomes complicated. Especially sinceurl is case sensitive where only "P" is capital and all other characters are lower case. This may sound trivial to us technical people since we understand what happens with case-sensitive string compares. However,complicated url's complicate acompany's ability for goodcustomer servicefor web-related things. Jeff Johan Compagner [EMAIL PROTECTED] wrote: that is currently not possibleAlso with these kind of urls you suddenly have all kind of url problems (other resources like images/css/js files) because the base dir is different.You have to use a url rewriter for that currently.johan On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: putClassAlias is close to what I was suggesting but it does not remove all of the implementation details from the url. It eliminates the package name but the url still contains "?bookmarkablePage=" which is an implementation detail for Wicket butis not related to thesemantic value of the url. No alias: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 With putClassAlias(Page2.class, "Page2"): http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=Page2 Desired alias: http://www.wicket-library.com/wicket-examples/template/Page2 Jeff Johan Compagner [EMAIL PROTECTED] wrote: ApplicationPages is just a configuration object you can set properties that are used for pages (Error pages etc)For aliasses see wicket-examples, we use there as an example a few page aliasses. Just put youre bookmarkable page class as a allias:putClassAlias(MyPage.class, "mypage"); On 11/7/05, Jeff Miller [EMAIL PROTECTED] wrote: Where would I find an example? I could not find any on wiki, wicket.sourceforge.net, or in examples. The javadoc isnot clear how to use ApplicationPages except that I need to use putClassAlias method. What object, if any, needs reference to the ApplicationPages object with the aliases? Thanks, Jeff Johan Compagner [EMAIL PROTECTED] wrote: there is already support for page aliasses see ApplicationPages On 11/4/05, Jeff Miller [EMAIL PROTECTED] wrote: Is there a way to create bookmarkable page without embedding any of the Wicket implementation details in the url? For example, the template example page 2 url is: http://www.wicket-library.com/wicket-examples/template?bookmarkablePage=wicket.examples.template.Page2 However,"bookmarkablePage=wicket.examples.template" is a Wicket implementation detail thatis used because Wicket needs itand not because it is relevant to theurl. It would begood if the url could be simpler like: http://www.wicket-library.com/wicket-examples/template/Page2 Now I realize that Wicket needs to knowhow to map "Page2" to "wicket.examples.template.Page2". One wayto accomplish this could beto add a method to WebApplicationlike addAlias(String alias, Class page). For example: public class TemplateApplication extends WicketExampleApplication{ public TemplateApplication() { getPages().setHomePage(Page1.class); addAlias("Page1", Page1.class); addAlias("Page2", Page2.class); }} Here are some articles that recommend keeping implementation details outof urls: http://www.w3.org/Provider/Style/URI http://www.useit.com/alertbox/990321.html Thanks, JeffJeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase - Search multiple travel sites in one click. Jeff Miller[EMAIL PROTECTED] Yahoo! FareChase -
Re: Re: [Wicket-user] My take on Spring integration
On Tue, 8 Nov 2005 11:59:22 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects. I think the problem is in the SpringLazyLookupInterceptor.intercept() method you should at the end call proxy.invoke(target, args) instead of proxy.invokeSuper(). invokeSuper expects that the given argument is the enhanced instance. You need it to call methods on the super (original) class. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think? That seems reasonable. I'll post a question on the spring list and see what they say. Christian -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced from session attributes (full serialization closure). However the spec does not speak about writeReplace() and readResolve() so 'legaly' you should be on the right side if you rely on these. Enclosed is some code which I guess does what is described on the cglib howto page. I have not tested the code yet. I'll try to do so until tomorrow. Anyway is it so important to inject objects without interfaces? Christian On Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: got the proxies for concrete objects working, but another dead end unfortunately. seems cglib proxies are not serializable objects. in their howto they recommend overriding read/write resolve and reconstructing the proxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
I would rather weave it in using cglib and stay away from a spring-specific proxy impl, becuase this thing can easily be generalized to things beyound spring, like jndi lookups, etc. -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: On Tue, 8 Nov 2005 11:59:22 -0800, Igor Vaynberg [EMAIL PROTECTED]wrote: Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects.I think the problem is in the SpringLazyLookupInterceptor.intercept ()method you should at theend call proxy.invoke(target, args) instead of proxy.invokeSuper().invokeSuper expects that the given argument is the enhanced instance. Youneed it to call methods on the super (original) class. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think?That seems reasonable. I'll post a question on the spring list and seewhat they say.Christian -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced from session attributes (full serialization closure). However the spec does not speak about writeReplace() and readResolve() so 'legaly' you should be on the right side if you rely on these. Enclosed is some code which I guess does what is described on the cglib howto page. I have not tested the code yet. I'll try to do so until tomorrow. Anyway is it so important to inject objects without interfaces? Christian On Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: got the proxies for concrete objects working, but another dead end unfortunately. seems cglib proxies are not serializable objects. in their howto they recommend overriding read/write resolve and reconstructing the proxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor --Christian Essl___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de---SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very ownSony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing listWicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] simple bookmarkable url
Jeff Miller wrote: I considered recommending page=. It would be better than bookmarkablePage=. Allowing page= in conjunction with alias would certainly allow simpler urls. +1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
ok, got the pure cglib solution working. just had to call enhancer.setInterfaces(new Class[] { Serializable.class}) to weave in the serializable interface. now it appears everything is working. sweet. i am going to do a lot of refactoring today. maybe you can make your wrappingcontext use the same proxies as this thing so we can keep it all in one place. -Igor On 11/8/05, Igor Vaynberg [EMAIL PROTECTED] wrote: I would rather weave it in using cglib and stay away from a spring-specific proxy impl, becuase this thing can easily be generalized to things beyound spring, like jndi lookups, etc. -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: On Tue, 8 Nov 2005 11:59:22 -0800, Igor Vaynberg [EMAIL PROTECTED]wrote: Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects.I think the problem is in the SpringLazyLookupInterceptor.intercept ()method you should at theend call proxy.invoke(target, args) instead of proxy.invokeSuper().invokeSuper expects that the given argument is the enhanced instance. Youneed it to call methods on the super (original) class. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think?That seems reasonable. I'll post a question on the spring list and seewhat they say.Christian -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced from session attributes (full serialization closure). However the spec does not speak about writeReplace() and readResolve() so 'legaly' you should be on the right side if you rely on these. Enclosed is some code which I guess does what is described on the cglib howto page. I have not tested the code yet. I'll try to do so until tomorrow. Anyway is it so important to inject objects without interfaces? Christian On Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: got the proxies for concrete objects working, but another dead end unfortunately. seems cglib proxies are not serializable objects. in their howto they recommend overriding read/write resolve and reconstructing the proxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor --Christian Essl___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de--- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very ownSony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] simple bookmarkable url
you know you can have that today by implementing it yourself? Take a look WebRequestCrawlerSave and you'll see that you can easily change bookmarkablePage to page; you can make it case insensitive etc. Juergen On 11/8/05, Dan Gould [EMAIL PROTECTED] wrote: Jeff Miller wrote: I considered recommending page=. It would be better than bookmarkablePage=. Allowing page= in conjunction with alias would certainly allow simpler urls. +1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] simple bookmarkable url
or use a url rewriting filter like http://tuckey.org/urlrewrite/ -Igor On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: you know you can have that today by implementing it yourself? Take alook WebRequestCrawlerSave and you'll see that you can easily changebookmarkablePage to page; you can make it case insensitive etc.Juergen On 11/8/05, Dan Gould [EMAIL PROTECTED] wrote: Jeff Miller wrote: I considered recommending page=.It would be better than bookmarkablePage=.Allowing page= in conjunction with alias would certainly allow simpler urls. +1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user ---SF.Net email is sponsored by:Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing list Wicket-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] simple bookmarkable url
Thanks. I'll take a look. With the proper regular expression, I may be able to affect any url. I don't want to program a rule for each url. I was hoping you Wicket developers would tell me that my proposal was faily simple to add to Wicket. I was looking for the simple url's to be as easy and automatic as other Wicket features [no XML configuration :) ] Jeff --- Igor Vaynberg [EMAIL PROTECTED] wrote: or use a url rewriting filter like http://tuckey.org/urlrewrite/ -Igor On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: you know you can have that today by implementing it yourself? Take a look WebRequestCrawlerSave and you'll see that you can easily change bookmarkablePage to page; you can make it case insensitive etc. Juergen On 11/8/05, Dan Gould [EMAIL PROTECTED] wrote: Jeff Miller wrote: I considered recommending page=. It would be better than bookmarkablePage=. Allowing page= in conjunction with alias would certainly allow simpler urls. +1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user Jeff Miller [EMAIL PROTECTED] __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
Very good. I am still playing around with the writeReplace thing. Regarding the refactoring what do you thing about this: Instead of the ISpringContextLocator have a interface ObjectResolverFactory{ ObjectResolver getObjectResolver(Field field); } interface ObjectResolver{ Object resolve(); } The (Spring)Initializer than calls for *each* field the ObjectResolverFactory. If the ObjectResolverFactory thinks the field is suitable for injection (ie has a SpringBean Annotation or JNDI Annotation) it returns an ObjectResolver otherwise null. And the code which creates the proxy could than be ProxyCreator.create(Class proxyType, ObjectResolver res). This would than make my wrapping context very simple. Thanks, Christian On Tue, 8 Nov 2005 13:45:31 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: ok, got the pure cglib solution working. just had to call enhancer.setInterfaces(new Class[] { Serializable.class}) to weave in the serializable interface. now it appears everything is working. sweet. i am going to do a lot of refactoring today. maybe you can make your wrappingcontext use the same proxies as this thing so we can keep it all in one place. -Igor On 11/8/05, Igor Vaynberg [EMAIL PROTECTED] wrote: I would rather weave it in using cglib and stay away from a spring-specific proxy impl, becuase this thing can easily be generalized to things beyound spring, like jndi lookups, etc. -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: On Tue, 8 Nov 2005 11:59:22 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects. I think the problem is in the SpringLazyLookupInterceptor.intercept () method you should at the end call proxy.invoke(target, args) instead of proxy.invokeSuper(). invokeSuper expects that the given argument is the enhanced instance. You need it to call methods on the super (original) class. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think? That seems reasonable. I'll post a question on the spring list and see what they say. Christian -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced from session attributes (full serialization closure). However the spec does not speak about writeReplace() and readResolve() so 'legaly' you should be on the right side if you rely on these. Enclosed is some code which I guess does what is described on the cglib howto page. I have not tested the code yet. I'll try to do so until tomorrow. Anyway is it so important to inject objects without interfaces? Christian On Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: got the proxies for concrete objects working, but another dead end unfortunately. seems cglib proxies are not serializable objects. in their howto they recommend overriding read/write resolve and reconstructing the proxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: Re: [Wicket-user] My take on Spring integration
thats pretty much exactly what i was thinking. -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: Very good. I am still playing around with the writeReplace thing.Regarding the refactoring what do you thing about this:Instead of the ISpringContextLocator have ainterface ObjectResolverFactory{ ObjectResolver getObjectResolver(Field field);}interface ObjectResolver{ Object resolve();}The (Spring)Initializer than calls for *each* field theObjectResolverFactory. If the ObjectResolverFactory thinks the field is suitable for injection (ie has a SpringBean Annotation or JNDI Annotation)it returns an ObjectResolver otherwise null.And the code which creates the proxy could than beProxyCreator.create(Class proxyType, ObjectResolver res). This would than make my wrapping context very simple.Thanks,ChristianOn Tue, 8 Nov 2005 13:45:31 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: ok, got the pure cglib solution working. just had to call enhancer.setInterfaces(new Class[] { Serializable.class}) to weave in the serializable interface. now it appears everything is working. sweet. i am going to do a lot of refactoring today. maybe you can make your wrappingcontext use the same proxies as this thing so we can keep it all in one place. -Igor On 11/8/05, Igor Vaynberg [EMAIL PROTECTED] wrote: I would rather weave it in using cglib and stay away from a spring-specific proxy impl, becuase this thing can easily be generalized to things beyound spring, like jndi lookups, etc. -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: On Tue, 8 Nov 2005 11:59:22 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: Im still getting a class cast exception using cglib directly. im probably doing something dumb, you want to take a look? SpringInitializer line 61 is commented out, thats where proxies are created for concrete objects. I think the problem is in the SpringLazyLookupInterceptor.intercept () method you should at the end call proxy.invoke(target, args) instead of proxy.invokeSuper(). invokeSuper expects that the given argument is the enhanced instance. You need it to call methods on the super (original) class. By the way, the spring one works fine IF the dependency implements Serializable, because then the proxy itself becomes serializable since its a subclass. so im wondering if we can just weave in that interface into the created subclass and that will solve our problem. what do you think? That seems reasonable. I'll post a question on the spring list and see what they say. Christian -Igor On 11/8/05, Christian Essl [EMAIL PROTECTED] wrote: I do not know wheter read/writeObject is called on objects referenced from session attributes (full serialization closure). However the spec does not speak about writeReplace() and readResolve() so 'legaly' you should be on the right side if you rely on these. Enclosed is some code which I guess does what is described on the cglib howto page. I have not tested the code yet. I'll try to do so until tomorrow. Anyway is it so important to inject objects without interfaces? Christian On Tue, 8 Nov 2005 09:07:24 -0800, Igor Vaynberg [EMAIL PROTECTED] wrote: got the proxies for concrete objects working, but another dead endunfortunately. seems cglib proxies are not serializable objects. intheirhowto they recommend overriding read/write resolve and reconstructing theproxy, but those are not guaranteed to be called when nonstandard serialization is used. not sure where to go from here -Igor -- Christian Essl ___ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --Christian Essl ___Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de ---SF.Net email is sponsored by:Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing list Wicket-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] simple bookmarkable url
you can create a regular _expression_ to go from page=name to bookmarkablePage=name that along with page aliases whill get you where you want to go we are concentrating our efforts on 1.2. your request is pretty simple to implement, but we are trying to figure out how to create pluggable and flexible url handlers for 1.2 so that you will be able to do that yourself. everyone has a different idea of how they want their urls to look. today we add page=name, tomorrow someone asks for p=name and so on and so forth. so instead of doing this case by case we are figuring out how to have something general that is easy to customize. -Igor On 11/8/05, Jeff Miller [EMAIL PROTECTED] wrote: Thanks.I'll take a look.With the proper regular _expression_, I maybe able to affect any url.I don't want to program a rule for eachurl.I was hoping you Wicket developers would tell me that my proposal was faily simple to add to Wicket.I was looking for the simple url's tobe as easy and automatic as other Wicket features [no XMLconfiguration :) ]Jeff--- Igor Vaynberg [EMAIL PROTECTED] wrote: or use a url rewriting filter like http://tuckey.org/urlrewrite/ -Igor On 11/8/05, Juergen Donnerstag [EMAIL PROTECTED] wrote: you know you can have that today by implementing it yourself? Take a look WebRequestCrawlerSave and you'll see that you can easily change bookmarkablePage to page; you can make it case insensitive etc. Juergen On 11/8/05, Dan Gould [EMAIL PROTECTED] wrote: Jeff Miller wrote:I considered recommending page=. It would be better thanbookmarkablePage=. Allowing page= in conjunction with alias wouldcertainly allow simpler urls. +1 --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user Jeff Miller [EMAIL PROTECTED]__Yahoo! Mail - PC Magazine Editors' Choice 2005http://mail.yahoo.com--- SF.Net email is sponsored by:Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very ownSony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___Wicket-user mailing listWicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] remove jsessionid in first page
Hello all when i load the firs page browser is redirected to a url that is like /app;jsessionid=12324?path=1 there are any way to be redirected to samething like bookmarkablePage=HomePage thanks in advantage --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] remove jsessionid in first page
There is no way for Wicket to remove jsessionid (at least no legal way). It's your servlet container that appends it. When you support cookies however, there should be no need to encode this id in the url, and I think some servlet engines don't append it if this is the case. Eelco On 11/8/05, pepone pepone [EMAIL PROTECTED] wrote: Hello all when i load the firs page browser is redirected to a url that is like /app;jsessionid=12324?path=1 there are any way to be redirected to samething like bookmarkablePage=HomePage thanks in advantage --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] remove jsessionid in first page
No, I am not sure for all appservers, so I decided to abandon the attempts for the most perfect URL ;-)) Because there will be only one address which is screwed up after all, so I really don't care much (or so I convinced myself). I would say to pepone, forgeddaboudid ;-) Michael. On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: Are you sure that's for all appservers though? I think some don't do it, and I don't see any reason for doing it either (as they can send the cookie right away, right? Eelco On 11/8/05, Michael Jouravlev [EMAIL PROTECTED] wrote: The very first time one accesses an application, session ID is in the address. So, for the first bookmarkable page you have two addresses, which screws up the browser history navigation. The simple answer: do one more redirect on first request. The more complex answer: do one more redirect when you see that jsessionid in in the URL. The hardest thing: to distinguish that jsessionid is in the URL. See this discussion for relevant information: http://marc.theaimsgroup.com/?l=struts-userm=111886657513840w=2 Michael. On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: There is no way for Wicket to remove jsessionid (at least no legal way). It's your servlet container that appends it. When you support cookies however, there should be no need to encode this id in the url, and I think some servlet engines don't append it if this is the case. Eelco On 11/8/05, pepone pepone [EMAIL PROTECTED] wrote: Hello all when i load the firs page browser is redirected to a url that is like /app;jsessionid=12324?path=1 there are any way to be redirected to samething like bookmarkablePage=HomePage thanks in advantage --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] PageableGridDataView and IDataProvider
Hi, I'm trying to use recompile code that uses PageableGridDataView which used to work. The problem is that PageableGridDataView has a constructor which takes in wicket.contrib.dataview.IDataProvider in its constructor but HibernateDataProvider now extends wicket.extensions.markup.html.repeater.data.IDataProvider. The two are not compatible. Did you guys plan on dropping wicket.contrib.dataview.IDataProvider in favor of the extensions one? If so, can someone please update PageableGridDataView so this will work? Thank you, Gili -- http://www.desktopbeautifier.com/ --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] PageableGridDataView and IDataProvider
I don't know much about that package, but afaik the dataview project will be dropped in favor of the extensions project. Eelco On 11/8/05, Gili [EMAIL PROTECTED] wrote: Hi, I'm trying to use recompile code that uses PageableGridDataView which used to work. The problem is that PageableGridDataView has a constructor which takes in wicket.contrib.dataview.IDataProvider in its constructor but HibernateDataProvider now extends wicket.extensions.markup.html.repeater.data.IDataProvider. The two are not compatible. Did you guys plan on dropping wicket.contrib.dataview.IDataProvider in favor of the extensions one? If so, can someone please update PageableGridDataView so this will work? Thank you, Gili -- http://www.desktopbeautifier.com/ --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] PageableGridDataView and IDataProvider
oops, not=now. -Igor On 11/8/05, Igor Vaynberg [EMAIL PROTECTED] wrote: PageableGridDataView is not GridView in extensions. there are only minor incompatibilities with the old dataview package so you should have no problems migrating. the dataview project is no longer in wicket-stuff cvs btw. -Igor On 11/8/05, Eelco Hillenius [EMAIL PROTECTED] wrote: I don't know much about that package, but afaik the dataview projectwill be dropped in favor of the extensions project.EelcoOn 11/8/05, Gili [EMAIL PROTECTED] wrote: Hi, I'm trying to use recompile code that uses PageableGridDataView which used to work. The problem is that PageableGridDataView has a constructor which takes in wicket.contrib.dataview.IDataProvider in its constructor but HibernateDataProvider now extends wicket.extensions.markup.html.repeater.data.IDataProvider. The two are not compatible. Did you guys plan on dropping wicket.contrib.dataview.IDataProvider in favor of the extensions one? If so, can someone please update PageableGridDataView so this will work? Thank you, Gili -- http://www.desktopbeautifier.com/ --- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user ---SF.Net email is sponsored by:Tame your development challenges with Apache's Geronimo App Server. Downloadit for free - -and be entered to win a 42 plasma tv or your very own Sony(tm)PSP.Click here to play: http://sourceforge.net/geronimo.php___ Wicket-user mailing list Wicket-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/wicket-user