diff --git a/src/helma/extensions/HelmaExtension.java b/src/helma/extensions/HelmaExtension.java index 5750e65c..9c02c7f5 100644 --- a/src/helma/extensions/HelmaExtension.java +++ b/src/helma/extensions/HelmaExtension.java @@ -32,6 +32,12 @@ public abstract class HelmaExtension { */ public abstract void applicationStopped (Application app); + /** + * called when an Application's properties are have been updated. + * note that this will be called at startup once *before* applicationStarted(). + */ + public abstract void applicationUpdated (Application app); + /** * called by the ScriptingEngine when it is initizalized. Throws a ConfigurationException * when this type of ScriptingEngine is not supported. New methods and prototypes can be diff --git a/src/helma/extensions/demo/DemoExtension.java b/src/helma/extensions/demo/DemoExtension.java index 0d1d9455..2a946e06 100644 --- a/src/helma/extensions/demo/DemoExtension.java +++ b/src/helma/extensions/demo/DemoExtension.java @@ -43,6 +43,10 @@ public class DemoExtension extends HelmaExtension { app.logEvent ("DemoExtension stopped on app " + app.getName () ); } + public void applicationUpdated (Application app) { + app.logEvent ("DemoExtension updated on app " + app.getName () ); + } + public HashMap initScripting (Application app, ScriptingEngine engine) throws ConfigurationException { if (!(engine instanceof FesiEngine)) throw new ConfigurationException ("scripting engine " + engine.toString () + " not supported in DemoExtension"); diff --git a/src/helma/framework/core/Application.java b/src/helma/framework/core/Application.java index 169e137c..89fe19aa 100644 --- a/src/helma/framework/core/Application.java +++ b/src/helma/framework/core/Application.java @@ -1252,6 +1252,14 @@ public final class Application implements IPathElement, Runnable { // if node manager exists, update it if (nmgr != null) nmgr.updateProperties (props); + // update extensions + Vector extensions = Server.getServer ().getExtensions (); + for (int i=0; i