Re: Making Wicket Fully Compatible with Google App Engine

2010-09-30 Thread Bruno Borges
Away for long time, but now back with great news. (Hey Jeremy! Eelco!
Martijn!)

Like I've tweeted a few minutes ago, I've implemented a BigTableGAEPageStore
for Wicket so we can advance another step further full compatibility with
Google App Engine.

The project can be seen at http://code.google.com/p/gawcket

It is a fork of wicket-gae-template with a modified Guestbook to not use
LoadableDetachableModel and the BigTableGAEPageStore.

With this said, you can go to http://gawcket.appspot.com and test it. Submit
the form a few times and then modify the URL to reference an older version.

You can check this video on YouTube to see how data is being stored at GAE's
Datastore: http://youtu.be/ObvA9ao8U2Q

I just hope I've done everything correctly on this implementation. So I ask
the experts to take a look, and more important: to try it on your apps that
run on more than one CPU at GAE.

Thank you,

Long live Wicket!!

Bruno Borges
www.brunoborges.com.br
+55 21 76727099

The glory of great men should always be
measured by the means they have used to
acquire it.
 - Francois de La Rochefoucauld



On Tue, Sep 21, 2010 at 3:01 PM, Rodolfo Hansen kry...@gmail.com wrote:

 There is also an archetype I wrote that works with the maven-gae-plugin

 mvn archetype:generate -DarchetypeGroupId=net.kindleit
 -DarchetypeArtifactId=gae-archetype-wicket -DarchetypeVersion=0.7.1 \

 -DgroupId=com.myapp.test -DartifactId=testapp



 On Tue, 2010-09-21 at 13:40 +0200, Ernesto Reinaldo Barreiro wrote:

  There is already a GAE template project somewhere on goggle code [1].
  Would it make sense to try to contact the author and join forces with
  other GAE users?
 
  Cheers,
 
  Ernesto
 
  1-http://code.google.com/p/wicket-gae-template/
 
 
  On Tue, Sep 21, 2010 at 1:19 PM, nino martinez wael
  nino.martinez.w...@gmail.com wrote:
   It would make perfect sense for me if there appeared a wicketstuff
   project(subclasses necessary for compability with GAE) for this along
   with an example project..
  
   2010/9/20 Jeremy Thomerson jer...@wickettraining.com:
   On Mon, Sep 20, 2010 at 1:18 PM, tetsuo ronald.tet...@gmail.com
 wrote:
  
   An auto-detected GAE-specific mode in Wicket core? I don't think this
 is a
   good idea...
  
  
   I agree that this shouldn't go in core, but I think if someone like
 Clint
   has the motivation to do so, I'd love to see a project that provides
   out-of-the-box GAE support.  This might make it easier for newbs to
 get
   something deployed to play with.  This could potentially be done as a
   standalone project that provides subclasses to WebApplication, etc,
 with the
   default implementations switched out to GAE-compatible classes,
 configured
   correctly, etc.  Or, it could be a git clone of 1.4 and 1.5 (trunk)
 that
   keeps current with the vendor (us, official Wicket), but adds in
 their
   custom changes to make it GAE compatible.
  
   Why not use Jira sub tasks?
  
  
   I think this is the way to go - create a master make GAE compatible
   version task and subtasks for each individual thing.  There should be
 a
   differentiation made between ones that can be accepted in core and
 those
   that can't.  For example, we (probably) won't be accepting a
 WebApplication
   subclass specific to GAE.  But, we could accept some changes that need
 to be
   made to make it compatible with, or easier to make compatible with,
 GAE.
For example, I'd love to see a task for kill the use of stupid
 TreeModel
   in 1.5 (and, really, any java.awt / javax.swing usage in core).  But,
 this
   would be better discussed as a separate thread.
  
   --
   Jeremy Thomerson
   http://www.wickettraining.com
  
  





Re: Making Wicket Fully Compatible with Google App Engine

2010-09-21 Thread nino martinez wael
It would make perfect sense for me if there appeared a wicketstuff
project(subclasses necessary for compability with GAE) for this along
with an example project..

2010/9/20 Jeremy Thomerson jer...@wickettraining.com:
 On Mon, Sep 20, 2010 at 1:18 PM, tetsuo ronald.tet...@gmail.com wrote:

 An auto-detected GAE-specific mode in Wicket core? I don't think this is a
 good idea...


 I agree that this shouldn't go in core, but I think if someone like Clint
 has the motivation to do so, I'd love to see a project that provides
 out-of-the-box GAE support.  This might make it easier for newbs to get
 something deployed to play with.  This could potentially be done as a
 standalone project that provides subclasses to WebApplication, etc, with the
 default implementations switched out to GAE-compatible classes, configured
 correctly, etc.  Or, it could be a git clone of 1.4 and 1.5 (trunk) that
 keeps current with the vendor (us, official Wicket), but adds in their
 custom changes to make it GAE compatible.

 Why not use Jira sub tasks?


 I think this is the way to go - create a master make GAE compatible
 version task and subtasks for each individual thing.  There should be a
 differentiation made between ones that can be accepted in core and those
 that can't.  For example, we (probably) won't be accepting a WebApplication
 subclass specific to GAE.  But, we could accept some changes that need to be
 made to make it compatible with, or easier to make compatible with, GAE.
  For example, I'd love to see a task for kill the use of stupid TreeModel
 in 1.5 (and, really, any java.awt / javax.swing usage in core).  But, this
 would be better discussed as a separate thread.

 --
 Jeremy Thomerson
 http://www.wickettraining.com



Re: Making Wicket Fully Compatible with Google App Engine

2010-09-21 Thread Clint Checketts
Thanks for all the responses.

I've gone ahead and created
https://issues.apache.org/jira/browse/WICKET-3064 to track the overall GAE
Compatibility state.

Currently to get Wicket to run on GAE the process is:

1) Make your project with Wicket
2) Google around grab some code trust it
3) Deploy to App Engine
4) Profit! (Kidding)

My goal is to remove step 2. I'm not saying that Wicket should instantly
work with GAE, but just that if it fails, that Wicket itself will help you
get it up and running. (Helpful error messages, minor internal changes,
etc.)

Eclipse is telling me that there are 99 errors to fix. Just some initial
tracking down looks like 1/3rd are file access items that shouldn't be
changed in Wicket. A bunch of issues with the javax.swing.* and java.awt.*
libraries. And a few other minor changes.

The workspace where I'm trying to break Wicket on GAE is
http://wicketexamples.appspot.com. Let me know if you want to view the logs
and contribute.

Regarding creating  a separate project in Wicket-Stuff or a template, I'm
open to those ideas, but the changes I'm mainly looking at couldn't be done
in a separate project. Like Jeremy said: its time java.awt and java.swing
were eliminated!


-Clint Checketts


Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread Peter Ertl
Why not prefix all issue titles with something like 

 [GAE] problem description

?

This should be easy to filter or lookup

Am 20.09.2010 um 14:43 schrieb Clint Checketts:

 There is a 'Will it play in app engine' page that tracks libraries that are
 compatible with Google App Engine (aka GAE):
 http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
 
 Correctly, Wicket is listed as Semi-Compatible.
 
 As a project I've been looking through the Wicket codebase locating the
 pieces that need to change to make it fully compatible. Does it make sense
 to have a master Jira that tracks the overall 'compatible with GAE' state
 while making individual issues for the specific changes that reference back
 to the master issue?
 
 Thanks,
 
 -Clint Checketts



Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread Clint Checketts
Sure I could take whichever approach the core team prefers. A bonus of
having a master issue is once it gets resolved that the release notes will
specifically mark that it is compatible with GAE.

On Mon, Sep 20, 2010 at 7:52 AM, Peter Ertl pe...@gmx.org wrote:

 Why not prefix all issue titles with something like

  [GAE] problem description

 ?

 This should be easy to filter or lookup

 Am 20.09.2010 um 14:43 schrieb Clint Checketts:

  There is a 'Will it play in app engine' page that tracks libraries that
 are
  compatible with Google App Engine (aka GAE):
 
 http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
 
  Correctly, Wicket is listed as Semi-Compatible.
 
  As a project I've been looking through the Wicket codebase locating the
  pieces that need to change to make it fully compatible. Does it make
 sense
  to have a master Jira that tracks the overall 'compatible with GAE' state
  while making individual issues for the specific changes that reference
 back
  to the master issue?
 
  Thanks,
 
  -Clint Checketts




Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread James Carman
Jira supports tags right?

On Sep 20, 2010 8:55 AM, Clint Checketts checke...@gmail.com wrote:
 Sure I could take whichever approach the core team prefers. A bonus of
 having a master issue is once it gets resolved that the release notes will
 specifically mark that it is compatible with GAE.

 On Mon, Sep 20, 2010 at 7:52 AM, Peter Ertl pe...@gmx.org wrote:

 Why not prefix all issue titles with something like

 [GAE] problem description

 ?

 This should be easy to filter or lookup

 Am 20.09.2010 um 14:43 schrieb Clint Checketts:

  There is a 'Will it play in app engine' page that tracks libraries that
 are
  compatible with Google App Engine (aka GAE):
 

http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
 
  Correctly, Wicket is listed as Semi-Compatible.
 
  As a project I've been looking through the Wicket codebase locating the
  pieces that need to change to make it fully compatible. Does it make
 sense
  to have a master Jira that tracks the overall 'compatible with GAE'
state
  while making individual issues for the specific changes that reference
 back
  to the master issue?
 
  Thanks,
 
  -Clint Checketts




Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread tetsuo
I think Wicket is listed as semi-compatible because it requires some
customization (override some methods, change some configuration) to make it
work, not because its internals are inherently incompatible to GAE, or
because it has some incompatible visual components.

Such customization are simply disabling resource polling, enabling sessions
and persisting the session store in the HttpSession, and those shouldn't
change, since the defaults shoud target to the plain-old Java web
application, not GAE.

Some things could be done to improve GAE support, such as eliminating
javax.swing dependencies (from the Tree component), but I think nothing one
could do would change the classification from semi-compatible to compatible
in that listing. Unless, of course, GAE turns to be the main target for
Wicket (which I don't think is the case).

my 2c,

Tetsuo


On Mon, Sep 20, 2010 at 9:52 AM, Peter Ertl pe...@gmx.org wrote:

 Why not prefix all issue titles with something like

  [GAE] problem description

 ?

 This should be easy to filter or lookup

 Am 20.09.2010 um 14:43 schrieb Clint Checketts:

  There is a 'Will it play in app engine' page that tracks libraries that
 are
  compatible with Google App Engine (aka GAE):
 
 http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
 
  Correctly, Wicket is listed as Semi-Compatible.
 
  As a project I've been looking through the Wicket codebase locating the
  pieces that need to change to make it fully compatible. Does it make
 sense
  to have a master Jira that tracks the overall 'compatible with GAE' state
  while making individual issues for the specific changes that reference
 back
  to the master issue?
 
  Thanks,
 
  -Clint Checketts




Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread Erik van Oosten



...and those shouldn't change, since the defaults shoud target...
...I think nothing one could do would change the classification from 
semi-compatible to compatible...


Sure you can, the defaults could change automatically by detecting that 
GAE is the container.


Regards,
Erik.


Op 20-09-10 15:05, tetsuo wrote:

I think Wicket is listed as semi-compatible because it requires some
customization (override some methods, change some configuration) to make it
work, not because its internals are inherently incompatible to GAE, or
because it has some incompatible visual components.

Such customization are simply disabling resource polling, enabling sessions
and persisting the session store in the HttpSession, and those shouldn't
change, since the defaults shoud target to the plain-old Java web
application, not GAE.

Some things could be done to improve GAE support, such as eliminating
javax.swing dependencies (from the Tree component), but I think nothing one
could do would change the classification from semi-compatible to compatible
in that listing. Unless, of course, GAE turns to be the main target for
Wicket (which I don't think is the case).

my 2c,

Tetsuo

   

--
Sent from my SMTP compliant software
Erik van Oosten
http://day-to-day-stuff.blogspot.com/




Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread tetsuo
An auto-detected GAE-specific mode in Wicket core? I don't think this is a
good idea...




On Mon, Sep 20, 2010 at 3:07 PM, Erik van Oosten e.vanoos...@grons.nlwrote:


  ...and those shouldn't change, since the defaults shoud target...
 ...I think nothing one could do would change the classification from
 semi-compatible to compatible...


 Sure you can, the defaults could change automatically by detecting that GAE
 is the container.

 Regards,
Erik.



 Op 20-09-10 15:05, tetsuo wrote:

 I think Wicket is listed as semi-compatible because it requires some
 customization (override some methods, change some configuration) to make
 it
 work, not because its internals are inherently incompatible to GAE, or
 because it has some incompatible visual components.

 Such customization are simply disabling resource polling, enabling
 sessions
 and persisting the session store in the HttpSession, and those shouldn't
 change, since the defaults shoud target to the plain-old Java web
 application, not GAE.

 Some things could be done to improve GAE support, such as eliminating
 javax.swing dependencies (from the Tree component), but I think nothing
 one
 could do would change the classification from semi-compatible to
 compatible
 in that listing. Unless, of course, GAE turns to be the main target for
 Wicket (which I don't think is the case).

 my 2c,

 Tetsuo



 --
 Sent from my SMTP compliant software
 Erik van Oosten
 http://day-to-day-stuff.blogspot.com/





Re: Making Wicket Fully Compatible with Google App Engine

2010-09-20 Thread Jeremy Thomerson
On Mon, Sep 20, 2010 at 1:18 PM, tetsuo ronald.tet...@gmail.com wrote:

 An auto-detected GAE-specific mode in Wicket core? I don't think this is a
 good idea...


I agree that this shouldn't go in core, but I think if someone like Clint
has the motivation to do so, I'd love to see a project that provides
out-of-the-box GAE support.  This might make it easier for newbs to get
something deployed to play with.  This could potentially be done as a
standalone project that provides subclasses to WebApplication, etc, with the
default implementations switched out to GAE-compatible classes, configured
correctly, etc.  Or, it could be a git clone of 1.4 and 1.5 (trunk) that
keeps current with the vendor (us, official Wicket), but adds in their
custom changes to make it GAE compatible.

Why not use Jira sub tasks?


I think this is the way to go - create a master make GAE compatible
version task and subtasks for each individual thing.  There should be a
differentiation made between ones that can be accepted in core and those
that can't.  For example, we (probably) won't be accepting a WebApplication
subclass specific to GAE.  But, we could accept some changes that need to be
made to make it compatible with, or easier to make compatible with, GAE.
 For example, I'd love to see a task for kill the use of stupid TreeModel
in 1.5 (and, really, any java.awt / javax.swing usage in core).  But, this
would be better discussed as a separate thread.

-- 
Jeremy Thomerson
http://www.wickettraining.com