Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
Thanks Martin,

I did make that much progress yesterday after sending this, but I
can't figure out how to get the Application inside the onBeginRequest
method that I override. In the other examples they call
getApplication()

@Override
protected void onBeginRequest() {
if 
(getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
{
final GaeModificationWatcher resourceWatcher =
(GaeModificationWatcher) getApplication()
.getResourceSettings().getResourceWatcher(true);
resourceWatcher.checkResources();
}
}

How can I get the Application object?

Daniel

On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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: Reload html in Wicket + GAE

2012-02-07 Thread Martin Grigorov
On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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




-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
I've now created a class MyRequestCycleListener extends
AbstractRequestCycleListener.

I'm having a little trouble building  class GaeModificationWatcher
implements IModificationWatcher. I've tried following this example:
http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

to create the public void checkResources() function, but I'm not sure
what Entry class to import. I have tried importing these two Entry
classes:
org.apache.wicket.util.collections.IntHashMap.Entry
import com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry

It seems no matter which Entry class I import I get errors like:

Multiple markers at this line
- Entry cannot be resolved to a type
- The constructor
HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
is
 undefined
- Incorrect number of arguments for type IntHashMap.Entry; it cannot
be parameterized with arguments IModifiable,
 SetIChangeListener

Thanks for any pointers.

Daniel


On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

 Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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: Reload html in Wicket + GAE

2012-02-07 Thread Martin Grigorov
Try with java.util.Map.Entry

On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous daniel.watr...@gmail.com wrote:
 I've now created a class MyRequestCycleListener extends
 AbstractRequestCycleListener.

 I'm having a little trouble building  class GaeModificationWatcher
 implements IModificationWatcher. I've tried following this example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 to create the public void checkResources() function, but I'm not sure
 what Entry class to import. I have tried importing these two Entry
 classes:
 org.apache.wicket.util.collections.IntHashMap.Entry
 import 
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry

 It seems no matter which Entry class I import I get errors like:

 Multiple markers at this line
        - Entry cannot be resolved to a type
        - The constructor
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
 is
         undefined
        - Incorrect number of arguments for type IntHashMap.Entry; it cannot
 be parameterized with arguments IModifiable,
         SetIChangeListener

 Thanks for any pointers.

 Daniel


 On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

 Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 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




-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
That helped. I'm getting really close.

I'm now getting a null pointer exception in this function

public boolean add(IModifiable modifiable, IChangeListener listener) {
// TODO Auto-generated method stub
checkResources();
SetIChangeListener listeners = 
listenersMap.putIfAbsent(modifiable,
new HashSetIChangeListener());
return listeners.add(listener);
}

listeners is null.

I noticed that start(Duration pollFrequency) in GaeModificationWatcher
was never getting called, so I updated my WicketApplication to set it
like this:

IModificationWatcher watcher = new GaeModificationWatcher();
watcher.start(Duration.ONE_SECOND);
getResourceSettings().setResourceWatcher(watcher);

But that didn't help my problem. I'm still trying to follow
http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

Any pointers?

Thanks,
Daniel

On Tue, Feb 7, 2012 at 8:42 AM, Martin Grigorov mgrigo...@apache.org wrote:
 Try with java.util.Map.Entry

 On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 I've now created a class MyRequestCycleListener extends
 AbstractRequestCycleListener.

 I'm having a little trouble building  class GaeModificationWatcher
 implements IModificationWatcher. I've tried following this example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 to create the public void checkResources() function, but I'm not sure
 what Entry class to import. I have tried importing these two Entry
 classes:
 org.apache.wicket.util.collections.IntHashMap.Entry
 import 
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry

 It seems no matter which Entry class I import I get errors like:

 Multiple markers at this line
        - Entry cannot be resolved to a type
        - The constructor
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
 is
         undefined
        - Incorrect number of arguments for type IntHashMap.Entry; it cannot
 be parameterized with arguments IModifiable,
         SetIChangeListener

 Thanks for any pointers.

 Daniel


 On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org wrote:
 On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

 Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




 --
 Martin Grigorov
 jWeekend
 Training, Consulting, Development
 http://jWeekend.com

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org


 -
 To unsubscribe, e-mail: 

Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
So I was just looking at what I sent along and it seems that
putIfAbsent(modifiable, new HashSetIChangeListener()) should return
the value component, which should be the new HashSetIChangeListener.
Even if the key modifiable already exists, it should return the
previously created HashSetIChangeListener.

I'm confused that listener is coming back null.

Daniel

On Tue, Feb 7, 2012 at 9:21 AM, Daniel Watrous daniel.watr...@gmail.com wrote:
 That helped. I'm getting really close.

 I'm now getting a null pointer exception in this function

        public boolean add(IModifiable modifiable, IChangeListener listener) {
                // TODO Auto-generated method stub
                checkResources();
                SetIChangeListener listeners = 
 listenersMap.putIfAbsent(modifiable,
                                new HashSetIChangeListener());
                return listeners.add(listener);
        }

 listeners is null.

 I noticed that start(Duration pollFrequency) in GaeModificationWatcher
 was never getting called, so I updated my WicketApplication to set it
 like this:

                IModificationWatcher watcher = new GaeModificationWatcher();
                watcher.start(Duration.ONE_SECOND);
                getResourceSettings().setResourceWatcher(watcher);

 But that didn't help my problem. I'm still trying to follow
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 Any pointers?

 Thanks,
 Daniel

 On Tue, Feb 7, 2012 at 8:42 AM, Martin Grigorov mgrigo...@apache.org wrote:
 Try with java.util.Map.Entry

 On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 I've now created a class MyRequestCycleListener extends
 AbstractRequestCycleListener.

 I'm having a little trouble building  class GaeModificationWatcher
 implements IModificationWatcher. I've tried following this example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 to create the public void checkResources() function, but I'm not sure
 what Entry class to import. I have tried importing these two Entry
 classes:
 org.apache.wicket.util.collections.IntHashMap.Entry
 import 
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry

 It seems no matter which Entry class I import I get errors like:

 Multiple markers at this line
        - Entry cannot be resolved to a type
        - The constructor
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
 is
         undefined
        - Incorrect number of arguments for type IntHashMap.Entry; it cannot
 be parameterized with arguments IModifiable,
         SetIChangeListener

 Thanks for any pointers.

 Daniel


 On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

 Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

 application.getRequestCycleListeners().add(new MyRequestCycleListener())

 class MyRequestCycleListener extends AbstractRequestCycleListener {
  // override the method you need here
 }

 Once you have it you can contribute it to gae-initializer project so
 other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For 

Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
I finally got it working. Here's the modified function:

public boolean add(IModifiable modifiable, IChangeListener listener) {
// TODO Auto-generated method stub
checkResources();
HashSetIChangeListener listenerSet = new 
HashSetIChangeListener();
SetIChangeListener listeners =
listenersMap.putIfAbsent(modifiable, listenerSet);
if (listeners != null) {
return listeners.add(listener);
} else return listenerSet.add(listener);
}

I'm not sure if that's a good approach or not, but it works for me and
that's fantastic.

Daniel

On Tue, Feb 7, 2012 at 9:30 AM, Daniel Watrous daniel.watr...@gmail.com wrote:
 So I was just looking at what I sent along and it seems that
 putIfAbsent(modifiable, new HashSetIChangeListener()) should return
 the value component, which should be the new HashSetIChangeListener.
 Even if the key modifiable already exists, it should return the
 previously created HashSetIChangeListener.

 I'm confused that listener is coming back null.

 Daniel

 On Tue, Feb 7, 2012 at 9:21 AM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 That helped. I'm getting really close.

 I'm now getting a null pointer exception in this function

        public boolean add(IModifiable modifiable, IChangeListener listener) {
                // TODO Auto-generated method stub
                checkResources();
                SetIChangeListener listeners = 
 listenersMap.putIfAbsent(modifiable,
                                new HashSetIChangeListener());
                return listeners.add(listener);
        }

 listeners is null.

 I noticed that start(Duration pollFrequency) in GaeModificationWatcher
 was never getting called, so I updated my WicketApplication to set it
 like this:

                IModificationWatcher watcher = new GaeModificationWatcher();
                watcher.start(Duration.ONE_SECOND);
                getResourceSettings().setResourceWatcher(watcher);

 But that didn't help my problem. I'm still trying to follow
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 Any pointers?

 Thanks,
 Daniel

 On Tue, Feb 7, 2012 at 8:42 AM, Martin Grigorov mgrigo...@apache.org wrote:
 Try with java.util.Map.Entry

 On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 I've now created a class MyRequestCycleListener extends
 AbstractRequestCycleListener.

 I'm having a little trouble building  class GaeModificationWatcher
 implements IModificationWatcher. I've tried following this example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html

 to create the public void checkResources() function, but I'm not sure
 what Entry class to import. I have tried importing these two Entry
 classes:
 org.apache.wicket.util.collections.IntHashMap.Entry
 import 
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry

 It seems no matter which Entry class I import I get errors like:

 Multiple markers at this line
        - Entry cannot be resolved to a type
        - The constructor
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
 is
         undefined
        - Incorrect number of arguments for type IntHashMap.Entry; it cannot
 be parameterized with arguments IModifiable,
         SetIChangeListener

 Thanks for any pointers.

 Daniel


 On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous daniel.watr...@gmail.com 
 wrote:
 Thanks Martin,

 I did make that much progress yesterday after sending this, but I
 can't figure out how to get the Application inside the onBeginRequest
 method that I override. In the other examples they call
 getApplication()

    @Override
    protected void onBeginRequest() {
        if 
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
 {
            final GaeModificationWatcher resourceWatcher =
 (GaeModificationWatcher) getApplication()
                    .getResourceSettings().getResourceWatcher(true);
            resourceWatcher.checkResources();
        }
    }

 How can I get the Application object?

 Application.get()


 Daniel

 On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov mgrigo...@apache.org 
 wrote:
 Hi,

 On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 

Re: Reload html in Wicket + GAE

2012-02-07 Thread Kayode Odeyemi
Glad you got it working Daniel, as Martin mentioned earlier, I'll
appreciate if you can contribute this to existing GaeInitializer or
somewhere comfortable with the full code so it can be valuable to us all.

Thanks

On Tue, Feb 7, 2012 at 5:31 PM, Daniel Watrous daniel.watr...@gmail.comwrote:

 I finally got it working. Here's the modified function:

public boolean add(IModifiable modifiable, IChangeListener
 listener) {
// TODO Auto-generated method stub
checkResources();
 HashSetIChangeListener listenerSet = new
 HashSetIChangeListener();
SetIChangeListener listeners =
 listenersMap.putIfAbsent(modifiable, listenerSet);
if (listeners != null) {
return listeners.add(listener);
} else return listenerSet.add(listener);
}

 I'm not sure if that's a good approach or not, but it works for me and
 that's fantastic.

 Daniel

 On Tue, Feb 7, 2012 at 9:30 AM, Daniel Watrous daniel.watr...@gmail.com
 wrote:
  So I was just looking at what I sent along and it seems that
  putIfAbsent(modifiable, new HashSetIChangeListener()) should return
  the value component, which should be the new HashSetIChangeListener.
  Even if the key modifiable already exists, it should return the
  previously created HashSetIChangeListener.
 
  I'm confused that listener is coming back null.
 
  Daniel
 
  On Tue, Feb 7, 2012 at 9:21 AM, Daniel Watrous daniel.watr...@gmail.com
 wrote:
  That helped. I'm getting really close.
 
  I'm now getting a null pointer exception in this function
 
 public boolean add(IModifiable modifiable, IChangeListener
 listener) {
 // TODO Auto-generated method stub
 checkResources();
 SetIChangeListener listeners =
 listenersMap.putIfAbsent(modifiable,
 new HashSetIChangeListener());
 return listeners.add(listener);
 }
 
  listeners is null.
 
  I noticed that start(Duration pollFrequency) in GaeModificationWatcher
  was never getting called, so I updated my WicketApplication to set it
  like this:
 
 IModificationWatcher watcher = new
 GaeModificationWatcher();
 watcher.start(Duration.ONE_SECOND);
 getResourceSettings().setResourceWatcher(watcher);
 
  But that didn't help my problem. I'm still trying to follow
 
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 
  Any pointers?
 
  Thanks,
  Daniel
 
  On Tue, Feb 7, 2012 at 8:42 AM, Martin Grigorov mgrigo...@apache.org
 wrote:
  Try with java.util.Map.Entry
 
  On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
  I've now created a class MyRequestCycleListener extends
  AbstractRequestCycleListener.
 
  I'm having a little trouble building  class GaeModificationWatcher
  implements IModificationWatcher. I've tried following this example:
 
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 
  to create the public void checkResources() function, but I'm not sure
  what Entry class to import. I have tried importing these two Entry
  classes:
  org.apache.wicket.util.collections.IntHashMap.Entry
  import
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry
 
  It seems no matter which Entry class I import I get errors like:
 
  Multiple markers at this line
 - Entry cannot be resolved to a type
 - The constructor
 
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
  is
  undefined
 - Incorrect number of arguments for type IntHashMap.Entry; it
 cannot
  be parameterized with arguments IModifiable,
  SetIChangeListener
 
  Thanks for any pointers.
 
  Daniel
 
 
  On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org
 wrote:
  On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
  Thanks Martin,
 
  I did make that much progress yesterday after sending this, but I
  can't figure out how to get the Application inside the
 onBeginRequest
  method that I override. In the other examples they call
  getApplication()
 
 @Override
 protected void onBeginRequest() {
 if
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
  {
 final GaeModificationWatcher resourceWatcher =
  (GaeModificationWatcher) getApplication()
 .getResourceSettings().getResourceWatcher(true);
 resourceWatcher.checkResources();
 }
 }
 
  How can I get the Application object?
 
  Application.get()
 
 
  Daniel
 
  On Mon, Feb 6, 2012 at 11:43 PM, Martin Grigorov 
 mgrigo...@apache.org wrote:
  Hi,
 
  On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
  Hi,
 
  I'm following up on a previous thread that's still unresolved. I
 would
  like GAE to automatically reload 

Re: Reload html in Wicket + GAE

2012-02-07 Thread Daniel Watrous
Here's my write up:
http://software.danielwatrous.com/software-engineering/wicket-gae-automatic-reload

I'm not sure if I can push directly into wicketstuff, but I'm happy to
try. You can grab the source from my site and put it in there. You may
even have a more clever way to composing things.

Daniel

On Tue, Feb 7, 2012 at 12:17 PM, Kayode Odeyemi drey...@gmail.com wrote:
 Glad you got it working Daniel, as Martin mentioned earlier, I'll
 appreciate if you can contribute this to existing GaeInitializer or
 somewhere comfortable with the full code so it can be valuable to us all.

 Thanks

 On Tue, Feb 7, 2012 at 5:31 PM, Daniel Watrous 
 daniel.watr...@gmail.comwrote:

 I finally got it working. Here's the modified function:

        public boolean add(IModifiable modifiable, IChangeListener
 listener) {
                // TODO Auto-generated method stub
                checkResources();
                 HashSetIChangeListener listenerSet = new
 HashSetIChangeListener();
                SetIChangeListener listeners =
 listenersMap.putIfAbsent(modifiable, listenerSet);
                if (listeners != null) {
                        return listeners.add(listener);
                } else return listenerSet.add(listener);
        }

 I'm not sure if that's a good approach or not, but it works for me and
 that's fantastic.

 Daniel

 On Tue, Feb 7, 2012 at 9:30 AM, Daniel Watrous daniel.watr...@gmail.com
 wrote:
  So I was just looking at what I sent along and it seems that
  putIfAbsent(modifiable, new HashSetIChangeListener()) should return
  the value component, which should be the new HashSetIChangeListener.
  Even if the key modifiable already exists, it should return the
  previously created HashSetIChangeListener.
 
  I'm confused that listener is coming back null.
 
  Daniel
 
  On Tue, Feb 7, 2012 at 9:21 AM, Daniel Watrous daniel.watr...@gmail.com
 wrote:
  That helped. I'm getting really close.
 
  I'm now getting a null pointer exception in this function
 
         public boolean add(IModifiable modifiable, IChangeListener
 listener) {
                 // TODO Auto-generated method stub
                 checkResources();
                 SetIChangeListener listeners =
 listenersMap.putIfAbsent(modifiable,
                                 new HashSetIChangeListener());
                 return listeners.add(listener);
         }
 
  listeners is null.
 
  I noticed that start(Duration pollFrequency) in GaeModificationWatcher
  was never getting called, so I updated my WicketApplication to set it
  like this:
 
                 IModificationWatcher watcher = new
 GaeModificationWatcher();
                 watcher.start(Duration.ONE_SECOND);
                 getResourceSettings().setResourceWatcher(watcher);
 
  But that didn't help my problem. I'm still trying to follow
 
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 
  Any pointers?
 
  Thanks,
  Daniel
 
  On Tue, Feb 7, 2012 at 8:42 AM, Martin Grigorov mgrigo...@apache.org
 wrote:
  Try with java.util.Map.Entry
 
  On Tue, Feb 7, 2012 at 5:39 PM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
  I've now created a class MyRequestCycleListener extends
  AbstractRequestCycleListener.
 
  I'm having a little trouble building  class GaeModificationWatcher
  implements IModificationWatcher. I've tried following this example:
 
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 
  to create the public void checkResources() function, but I'm not sure
  what Entry class to import. I have tried importing these two Entry
  classes:
  org.apache.wicket.util.collections.IntHashMap.Entry
  import
 com.google.appengine.repackaged.com.google.common.collect.Multiset.Entry
 
  It seems no matter which Entry class I import I get errors like:
 
  Multiple markers at this line
         - Entry cannot be resolved to a type
         - The constructor
 
 HashSetEntryIModifiable,SetIChangeListener(SetMap.EntryIModifiable,SetIChangeListener)
  is
          undefined
         - Incorrect number of arguments for type IntHashMap.Entry; it
 cannot
  be parameterized with arguments IModifiable,
          SetIChangeListener
 
  Thanks for any pointers.
 
  Daniel
 
 
  On Tue, Feb 7, 2012 at 7:07 AM, Martin Grigorov mgrigo...@apache.org
 wrote:
  On Tue, Feb 7, 2012 at 3:53 PM, Daniel Watrous 
 daniel.watr...@gmail.com wrote:
  Thanks Martin,
 
  I did make that much progress yesterday after sending this, but I
  can't figure out how to get the Application inside the
 onBeginRequest
  method that I override. In the other examples they call
  getApplication()
 
     @Override
     protected void onBeginRequest() {
         if
 (getApplication().getConfigurationType().equals(Application.DEVELOPMENT))
  {
             final GaeModificationWatcher resourceWatcher =
  (GaeModificationWatcher) getApplication()
                     .getResourceSettings().getResourceWatcher(true);
             resourceWatcher.checkResources();
    

Re: Reload html in Wicket + GAE

2012-02-06 Thread Martin Grigorov
Hi,

On Tue, Feb 7, 2012 at 1:32 AM, Daniel Watrous daniel.watr...@gmail.com wrote:
 Hi,

 I'm following up on a previous thread that's still unresolved. I would
 like GAE to automatically reload my HTML when I save changes. Classes
 are reloaded when I save (compile) them, but I have to restart each
 time for HTML changes.

 There are some old articles that show how to do this, but they deal
 with older versions of Wicket and GAE. For example:
 http://agilewombat.blogspot.com/2010/01/wicket-on-google-app-engine.html
 http://apache-wicket.1842946.n4.nabble.com/How-can-I-reload-HTML-in-app-engine-td3005241.html
 http://code.google.com/p/kickat26/source/browse/trunk/src/de/kickat26/ui/wicket/GAEModificationWatcher.java

 Those suggest creating a class MyWebRequestCycle extends
 WebRequestCycle, but wicket 1.5 doesn't have WebRequestCycle.

 How can I accomplish this same thing in the current version of wicket?

application.getRequestCycleListeners().add(new MyRequestCycleListener())

class MyRequestCycleListener extends AbstractRequestCycleListener {
 // override the method you need here
}

Once you have it you can contribute it to gae-initializer project so
other people can re-use it and improve it.


 Daniel

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org




-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org