Re: [OT] More Java's generic type parameters are not reified...
the first time I used genericsuperclass() was in generic daos after reading https://www.hibernate.org/328.html, though it has it's own quirks, it doesn't apply every where .. abstract modifier in above code was needed,it's done so that one will eventually subclass funnyfactory and that genericsuperclass hack will work .. apart from that one another simple way for retrieving the generic classtype is intializing the class type in constructor. conditions apply ;) -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 4:13 AM, jWeekend jweekend_for...@cabouge.comwrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: [OT] More Java's generic type parameters are not reified...
what happens if down the line the index of the type changes?: ) class FunnierFactoryA,B extends FunnyFactoryB -igor On Wed, Sep 16, 2009 at 3:43 PM, jWeekend jweekend_for...@cabouge.com wrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: [OT] More Java's generic type parameters are not reified...
... or, if you subclass the subclass ... In the form I gave it's very fragile - just a trick really, but it tells you a bit about what is actually in the bytecode and contradicts (as conclusively as using javap) what some would have you believe. Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com igor.vaynberg wrote: what happens if down the line the index of the type changes?: ) class FunnierFactoryA,B extends FunnyFactory -igor On Wed, Sep 16, 2009 at 3:43 PM, jWeekend jweekend_for...@cabouge.com wrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://www.nabble.com/-OT--More-%22Java%27s-generic-type-parameters-are-not-reified%22...-tp25482235p25487838.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: [OT] More Java's generic type parameters are not reified...
Vineet , Yes, this is a technique that, carefully and properly used, could help in building a generic DAO. Can you elaborate on intializing the class type in constructor. ? Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com vineet semwal wrote: the first time I used genericsuperclass() was in generic daos after reading https://www.hibernate.org/328.html, though it has it's own quirks, it doesn't apply every where .. abstract modifier in above code was needed,it's done so that one will eventually subclass funnyfactory and that genericsuperclass hack will work .. apart from that one another simple way for retrieving the generic classtype is intializing the class type in constructor. conditions apply ;) -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 4:13 AM, jWeekend jweekend_for...@cabouge.comwrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://www.nabble.com/-OT--More-%22Java%27s-generic-type-parameters-are-not-reified%22...-tp25482235p25487989.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
RE: [OT] More Java's generic type parameters are not reified...
Another related article by Gafter: http://gafter.blogspot.com/2006/12/super-type-tokens.html class ST{ S() { // T t = new T(); T t = new TypeReferenceT() {}.newInstance(); } } The unittest would then look like this. public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { Point instance = new TypeReferencePoint() {}.newInstance(); instance.x = 22; instance.y = 47; assertEquals(new Point(22, 47), instance); } } Looks pretty powerful to me ;-) Regards misl -Oorspronkelijk bericht- Van: jWeekend [mailto:jweekend_for...@cabouge.com] Verzonden: donderdag 17 september 2009 0:44 Aan: users@wicket.apache.org Onderwerp: [OT] More Java's generic type parameters are not reified... Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.ht ml - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org =DISCLAIMER De informatie in deze e-mail is vertrouwelijk en uitsluitend bestemd voor de geadresseerde. Indien u niet de geadresseerde bent, wordt u er hierbij op gewezen, dat u geen recht heeft kennis te nemen van de rest van deze e-mail, deze te gebruiken, te kopieren of te verstrekken aan andere personen dan de geadresseerde. Indien u deze e-mail abusievelijk hebt ontvangen, brengt u dan alstublieft de afzender op de hoogte, waarbij u bij deze gevraagd wordt het originele bericht te vernietigen. Politie Amsterdam-Amstelland is niet verantwoordelijk voor de inhoud van deze e-mail en wijst iedere aansprakelijkheid af voor en/of in verband met alle gevolgen en/of schade van een onjuiste of onvolledige verzending ervan. Tenzij uitdrukkelijk het tegendeel blijkt, kunnen aan dit bericht geen rechten worden ontleend. Het gebruik van Internet e-mail brengt zekere risico?s met zich mee. Daarom wordt iedere aansprakelijkheid voor het gebruik van dit medium door de Politie Amsterdam-Amstelland van de hand gewezen. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
RE: [OT] More Java's generic type parameters are not reified...
Yes indeed! This (see Neal Gafter's code below) is neat and getting much closer to being actually usable, as long as its implementation is hidden well away. I'd probably mark some of those methods final too (it's a shame the class itself can't be - a subclasser could mess up the type parameter list, as per Igor's post). public abstract class TypeReferenceT private final Type type; private volatile Constructor? constructor; protected TypeReference() { Type superclass = getClass().getGenericSuperclass(); if (superclass instanceof Class) { throw new RuntimeException(Missing type parameter.); } this.type = ((ParameterizedType) superclass).getActualTypeArguments()[0]; } /** * Instantiates a new instance of {...@code T} using the default, no-arg * constructor. */ @SuppressWarnings(unchecked) public T newInstance() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { if (constructor == null) { Class? rawType = type instanceof Class? ? (Class?) type : (Class?) ((ParameterizedType) type) .getRawType(); constructor = rawType.getConstructor(); } return (T) constructor.newInstance(); } /** * Gets the referenced type. */ public Type getType() { return this.type; } public static void main(String[] args) throws Exception { ListString l1 = new TypeReferenceArrayListString() { }.newInstance(); List l2 = new TypeReferenceArrayList() { }.newInstance(); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com Minto.van.der.Sluis wrote: Another related article by Gafter: http://gafter.blogspot.com/2006/12/super-type-tokens.html class ST{ S() { // T t = new T(); T t = new TypeReferenceT() {}.newInstance(); } } The unittest would then look like this. public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { Point instance = new TypeReferencePoint() {}.newInstance(); instance.x = 22; instance.y = 47; assertEquals(new Point(22, 47), instance); } } Looks pretty powerful to me ;-) Regards misl -Oorspronkelijk bericht- Van: jWeekend [mailto:jweekend_for...@cabouge.com] Verzonden: donderdag 17 september 2009 0:44 Aan: users@wicket.apache.org Onderwerp: [OT] More Java's generic type parameters are not reified... Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.ht ml - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org =DISCLAIMER De informatie in deze e-mail is vertrouwelijk en uitsluitend bestemd voor de geadresseerde. Indien u niet de geadresseerde bent, wordt u er hierbij op gewezen, dat u geen recht heeft
Re: [OT] More Java's generic type parameters are not reified...
I should have stated it clearly .. i actually meant passing type Class in constructor itself like in following code:- class FunnyT { private ClassTtypeClass; public Funny(ClassTtypeClass){ this.typeClass=typeClass; } } class FunnierT,R extends FunnyT{ private ClassTtypeClassT; private ClassRtypeClassR; public Funnier( ClassTtypeClassT,ClassRtypeClassR){ super(typeClassT); this.typeClassT=typeClassT; this.typeClassR=typeClassR; } } -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 2:58 PM, jWeekend jweekend_for...@cabouge.comwrote: Vineet , Yes, this is a technique that, carefully and properly used, could help in building a generic DAO. Can you elaborate on intializing the class type in constructor. ? Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com vineet semwal wrote: the first time I used genericsuperclass() was in generic daos after reading https://www.hibernate.org/328.html, though it has it's own quirks, it doesn't apply every where .. abstract modifier in above code was needed,it's done so that one will eventually subclass funnyfactory and that genericsuperclass hack will work .. apart from that one another simple way for retrieving the generic classtype is intializing the class type in constructor. conditions apply ;) -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 4:13 AM, jWeekend jweekend_for...@cabouge.comwrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://www.nabble.com/-OT--More-%22Java%27s-generic-type-parameters-are-not-reified%22...-tp25482235p25487989.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: [OT] More Java's generic type parameters are not reified...
and using it in this way Funnier Foo,Barfunnier=new FunnierFoo,Bar(Foo.class,Bar.class); or Funny Foofunny=new FunnyFoo(Foo.class); -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 8:16 PM, vineet semwal vineetsemwal1...@gmail.comwrote: I should have stated it clearly .. i actually meant passing type Class in constructor itself like in following code:- class FunnyT { private ClassTtypeClass; public Funny(ClassTtypeClass){ this.typeClass=typeClass; } } class FunnierT,R extends FunnyT{ private ClassTtypeClassT; private ClassRtypeClassR; public Funnier( ClassTtypeClassT,ClassRtypeClassR){ super(typeClassT); this.typeClassT=typeClassT; this.typeClassR=typeClassR; } } -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 2:58 PM, jWeekend jweekend_for...@cabouge.comwrote: Vineet , Yes, this is a technique that, carefully and properly used, could help in building a generic DAO. Can you elaborate on intializing the class type in constructor. ? Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com vineet semwal wrote: the first time I used genericsuperclass() was in generic daos after reading https://www.hibernate.org/328.html, though it has it's own quirks, it doesn't apply every where .. abstract modifier in above code was needed,it's done so that one will eventually subclass funnyfactory and that genericsuperclass hack will work .. apart from that one another simple way for retrieving the generic classtype is intializing the class type in constructor. conditions apply ;) -- regards, Vineet Semwal On Thu, Sep 17, 2009 at 4:13 AM, jWeekend jweekend_for...@cabouge.comwrote: Since you can NOT do class ST{S(){T t = new T();}} // broken how would you create an object of type T somewhere in S? Think about this before you read on ... At the risk of reigniting the world-famous generics debates of yesteryear, just as our noble core-developers regroup to start work on making 1.5 even better than what is already the best Java web framework, I thought I'd share the idea I suggested to one of our developers who was having a bad day with generics (for several good reasons [1][2]) a couple of months ago, in case you can make use of it somewhere, or, find an even more convoluted solution - notice the innocent looking abstract modifier! // not real code // don't try this at home without adult supervision! public abstract class FunnyFactoryT { private T instance = null; public T getInstance() { if (instance == null) { try { final ParameterizedType gsc = (ParameterizedType)getClass().getGenericSuperclass(); final ClassT typeT = (ClassT) gsc.getActualTypeArguments()[0]; instance = typeT.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return instance; } } ... public class CreateInstanceOfTypeParameter { @Test public void testCreateInstanceOfTypeParameter() { FunnyFactoryPoint factory = new FunnyFactoryPoint() {}; factory .getInstance().x = 22; factory .getInstance().y = 47; assertEquals(new Point(22, 47), factory.getInstance()); } } Regards - Cemal jWeekend OO Java Technologies, Wicket Training and Development http://jWeekend.com [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html [2] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- View this message in context: http://www.nabble.com/-OT--More-%22Java%27s-generic-type-parameters-are-not-reified%22...-tp25482235p25487989.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org