summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/PropertiesAdminI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/PropertiesAdminI.java')
-rw-r--r--java/src/IceInternal/PropertiesAdminI.java35
1 files changed, 22 insertions, 13 deletions
diff --git a/java/src/IceInternal/PropertiesAdminI.java b/java/src/IceInternal/PropertiesAdminI.java
index bb698bcf8ac..59846b5b975 100644
--- a/java/src/IceInternal/PropertiesAdminI.java
+++ b/java/src/IceInternal/PropertiesAdminI.java
@@ -37,7 +37,7 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na
java.util.Map<String, String> added = new java.util.HashMap<String, String>();
java.util.Map<String, String> changed = new java.util.HashMap<String, String>();
java.util.Map<String, String> removed = new java.util.HashMap<String, String>();
- Ice.PropertiesAdminUpdateCallback callback;
+ java.util.List<Ice.PropertiesAdminUpdateCallback> callbacks = null;
synchronized(this)
{
@@ -162,7 +162,7 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na
_properties.setProperty(e.getKey(), "");
}
- callback = _updateCallback;
+ callbacks = new java.util.ArrayList<Ice.PropertiesAdminUpdateCallback>(_updateCallbacks);
}
//
@@ -170,31 +170,40 @@ public class PropertiesAdminI extends Ice._PropertiesAdminDisp implements Ice.Na
//
cb.ice_response();
- if(callback != null)
+ if(callbacks != null)
{
java.util.Map<String, String> changes = new java.util.HashMap<String, String>(added);
changes.putAll(changed);
changes.putAll(removed);
-
- try
- {
- callback.updated(changes);
- }
- catch(RuntimeException ex)
+ for(Ice.PropertiesAdminUpdateCallback callback : callbacks)
{
- // Ignore.
+ try
+ {
+ callback.updated(changes);
+ }
+ catch(RuntimeException ex)
+ {
+ // Ignore.
+ }
}
}
}
public synchronized void
- setUpdateCallback(Ice.PropertiesAdminUpdateCallback cb)
+ addUpdateCallback (Ice.PropertiesAdminUpdateCallback cb)
+ {
+ _updateCallbacks.add(cb);
+ }
+
+ public synchronized void
+ removeUpdateCallback(Ice.PropertiesAdminUpdateCallback cb)
{
- _updateCallback = cb;
+ _updateCallbacks.remove(cb);
}
private final String _name;
private final Ice.Properties _properties;
private final Ice.Logger _logger;
- private Ice.PropertiesAdminUpdateCallback _updateCallback;
+ private java.util.List<Ice.PropertiesAdminUpdateCallback> _updateCallbacks =
+ new java.util.ArrayList<Ice.PropertiesAdminUpdateCallback>();
}