expanded extension-interface with applicationUpdated(app) to tell
extensions when app.properties have changed.
This commit is contained in:
parent
ac0c47adc1
commit
b77e5da24b
3 changed files with 18 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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<extensions.size(); i++) {
|
||||
HelmaExtension ext = (HelmaExtension)extensions.get(i);
|
||||
try {
|
||||
ext.applicationUpdated (this);
|
||||
} catch (ConfigurationException e) { }
|
||||
}
|
||||
// set prop read timestamp
|
||||
lastPropertyRead = props.lastModified ();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue