summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rwxr-xr-xjava/src/IceGridGUI/EditorBase.java2
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/CommunicatorEditor.java11
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Editor.java62
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Node.java34
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Root.java12
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Server.java1
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/ServerEditor.java17
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Service.java5
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/ServiceEditor.java17
9 files changed, 152 insertions, 9 deletions
diff --git a/java/src/IceGridGUI/EditorBase.java b/java/src/IceGridGUI/EditorBase.java
index 1e11340f891..7b43cb37bf2 100755
--- a/java/src/IceGridGUI/EditorBase.java
+++ b/java/src/IceGridGUI/EditorBase.java
@@ -41,6 +41,8 @@ public abstract class EditorBase
return null;
}
+
+
static public java.util.SortedMap propertiesToMap(java.util.List props,
Utils.Resolver resolver)
{
diff --git a/java/src/IceGridGUI/LiveDeployment/CommunicatorEditor.java b/java/src/IceGridGUI/LiveDeployment/CommunicatorEditor.java
index b91521d8c2d..8931d26009f 100755
--- a/java/src/IceGridGUI/LiveDeployment/CommunicatorEditor.java
+++ b/java/src/IceGridGUI/LiveDeployment/CommunicatorEditor.java
@@ -45,14 +45,15 @@ class CommunicatorEditor extends Editor
_columnNames.add("Value");
}
- protected void show(CommunicatorDescriptor descriptor, Utils.Resolver resolver)
+ protected void show(CommunicatorDescriptor descriptor,
+ ExpandedPropertySet propertySet,
+ ExpandedPropertySet instancePropertySet,
+ Utils.Resolver resolver)
{
_description.setText(resolver.substitute(descriptor.description));
- //
- // TODO: BENOIT: Add support for property set.
- //
+
_propertiesModel.setDataVector(
- mapToVector(propertiesToMap(descriptor.propertySet.properties, resolver)),
+ propertySetToVector(propertySet, instancePropertySet, resolver),
_columnNames);
DefaultTableCellRenderer cr = (DefaultTableCellRenderer)
diff --git a/java/src/IceGridGUI/LiveDeployment/Editor.java b/java/src/IceGridGUI/LiveDeployment/Editor.java
index 957c55c2018..d50f7fc6969 100755
--- a/java/src/IceGridGUI/LiveDeployment/Editor.java
+++ b/java/src/IceGridGUI/LiveDeployment/Editor.java
@@ -9,8 +9,68 @@
package IceGridGUI.LiveDeployment;
import IceGridGUI.*;
+import IceGrid.*;
public abstract class Editor extends EditorBase
-{}
+{
+ //
+ // An expanded property set (i.e. containing other property sets)
+ //
+ static public class ExpandedPropertySet
+ {
+ public ExpandedPropertySet[] references;
+ public java.util.List properties; // list of PropertyDescriptor
+ }
+
+ static public java.util.Vector propertySetToVector(
+ ExpandedPropertySet propertySet,
+ ExpandedPropertySet instancePropertySet, // can be null
+ Utils.Resolver resolver)
+ {
+ java.util.SortedMap toMap = new java.util.TreeMap();
+
+ addSet(propertySet, resolver, toMap);
+ if(instancePropertySet != null)
+ {
+ addSet(instancePropertySet, resolver, toMap);
+ }
+
+ java.util.Vector result = new java.util.Vector(toMap.size());
+ java.util.Iterator p = toMap.entrySet().iterator();
+ while(p.hasNext())
+ {
+ java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
+ java.util.Vector row = new java.util.Vector(2);
+ row.add(entry.getKey());
+ row.add(entry.getValue());
+ result.add(row);
+ }
+ return result;
+ }
+
+
+ static private void addSet(ExpandedPropertySet set, Utils.Resolver resolver,
+ java.util.SortedMap toMap)
+ {
+ for(int i = 0; i < set.references.length; ++i)
+ {
+ addSet(set.references[i], resolver, toMap);
+ }
+
+ java.util.Iterator p = set.properties.iterator();
+ while(p.hasNext())
+ {
+ PropertyDescriptor pd = (PropertyDescriptor)p.next();
+ String name = (String)pd.name;
+ String val = (String)pd.value;
+
+ assert resolver != null;
+ name = resolver.substitute(pd.name);
+ val = resolver.substitute(pd.value);
+
+ toMap.put(name, val);
+ }
+ }
+}
diff --git a/java/src/IceGridGUI/LiveDeployment/Node.java b/java/src/IceGridGUI/LiveDeployment/Node.java
index 3483521f9d1..61a2b30956a 100755
--- a/java/src/IceGridGUI/LiveDeployment/Node.java
+++ b/java/src/IceGridGUI/LiveDeployment/Node.java
@@ -190,6 +190,36 @@ class Node extends ListTreeNode
add(appDesc, nodeDesc);
}
+ Editor.ExpandedPropertySet expand(PropertySetDescriptor descriptor,
+ String applicationName)
+ {
+ Editor.ExpandedPropertySet result = new Editor.ExpandedPropertySet();
+ result.references = new Editor.ExpandedPropertySet[descriptor.references.length];
+
+ for(int i = 0; i < descriptor.references.length; ++i)
+ {
+ result.references[i] = expand(
+ findNamedPropertySet(descriptor.references[i], applicationName), applicationName);
+ }
+
+ result.properties = descriptor.properties;
+ return result;
+ }
+
+ PropertySetDescriptor findNamedPropertySet(String name, String applicationName)
+ {
+ ApplicationData appData = (ApplicationData)_map.get(applicationName);
+ if(appData != null)
+ {
+ NodeDescriptor descriptor = appData.descriptor;
+ PropertySetDescriptor result = (PropertySetDescriptor)descriptor.propertySets.get(name);
+ if(result != null)
+ {
+ return result;
+ }
+ }
+ return getRoot().findNamedPropertySet(name, applicationName);
+ }
void add(ApplicationDescriptor appDesc, NodeDescriptor nodeDesc)
{
@@ -277,6 +307,10 @@ class Node extends ListTreeNode
!update.variables.isEmpty();
}
+ nodeDesc.propertySets.keySet().removeAll(
+ java.util.Arrays.asList(update.removePropertySets));
+ nodeDesc.propertySets.putAll(update.propertySets);
+
//
// Remove servers
//
diff --git a/java/src/IceGridGUI/LiveDeployment/Root.java b/java/src/IceGridGUI/LiveDeployment/Root.java
index d50fc0af7eb..7dc2766f82e 100755
--- a/java/src/IceGridGUI/LiveDeployment/Root.java
+++ b/java/src/IceGridGUI/LiveDeployment/Root.java
@@ -143,6 +143,10 @@ public class Root extends ListTreeNode
//
// Update only descriptors (no tree node shown in this view)
//
+ appDesc.propertySets.keySet().
+ removeAll(java.util.Arrays.asList(update.removePropertySets));
+ appDesc.propertySets.putAll(update.propertySets);
+
for(int i = 0; i < update.removeReplicaGroups.length; ++i)
{
for(int j = 0; j < appDesc.replicaGroups.size(); ++j)
@@ -164,7 +168,6 @@ public class Root extends ListTreeNode
removeAll(java.util.Arrays.asList(update.removeServerTemplates));
appDesc.serverTemplates.putAll(update.serverTemplates);
-
//
// Nodes
//
@@ -327,6 +330,13 @@ public class Root extends ListTreeNode
return this;
}
+ PropertySetDescriptor findNamedPropertySet(String name, String applicationName)
+ {
+ ApplicationDescriptor descriptor = (ApplicationDescriptor)
+ _descriptorMap.get(applicationName);
+ return (PropertySetDescriptor)descriptor.propertySets.get(name);
+ }
+
private Node findNode(String nodeName)
{
return (Node)find(nodeName, _children);
diff --git a/java/src/IceGridGUI/LiveDeployment/Server.java b/java/src/IceGridGUI/LiveDeployment/Server.java
index e2b58a05788..38e64f9b6e7 100755
--- a/java/src/IceGridGUI/LiveDeployment/Server.java
+++ b/java/src/IceGridGUI/LiveDeployment/Server.java
@@ -468,6 +468,7 @@ class Server extends ListArrayTreeNode
_resolver.reset(resolver, _instanceDescriptor.parameterValues,
templateDescriptor.parameterDefaults);
_resolver.put("server", _id);
+ _serverDescriptor = (ServerDescriptor)templateDescriptor.descriptor;
}
_adapters.clear();
diff --git a/java/src/IceGridGUI/LiveDeployment/ServerEditor.java b/java/src/IceGridGUI/LiveDeployment/ServerEditor.java
index fad35395110..4564c07c629 100755
--- a/java/src/IceGridGUI/LiveDeployment/ServerEditor.java
+++ b/java/src/IceGridGUI/LiveDeployment/ServerEditor.java
@@ -109,7 +109,22 @@ class ServerEditor extends CommunicatorEditor
_application.setText(resolver.find("application"));
- super.show(descriptor, resolver);
+ Node node = (Node)server.getParent();
+
+ ExpandedPropertySet propertySet =
+ node.expand(descriptor.propertySet,
+ server.getApplication().name);
+
+ ExpandedPropertySet instancePropertySet = null;
+ ServerInstanceDescriptor instanceDescriptor =
+ server.getInstanceDescriptor();
+ if(instanceDescriptor != null)
+ {
+ instancePropertySet = node.expand(instanceDescriptor.propertySet,
+ server.getApplication().name);
+ }
+
+ super.show(descriptor, propertySet, instancePropertySet, resolver);
_exe.setText(resolver.substitute(descriptor.exe));
_pwd.setText(resolver.substitute(descriptor.pwd));
diff --git a/java/src/IceGridGUI/LiveDeployment/Service.java b/java/src/IceGridGUI/LiveDeployment/Service.java
index b7d3f8cbb54..9c91d22a807 100755
--- a/java/src/IceGridGUI/LiveDeployment/Service.java
+++ b/java/src/IceGridGUI/LiveDeployment/Service.java
@@ -120,6 +120,11 @@ class Service extends ListArrayTreeNode
return _serviceDescriptor;
}
+ ServiceInstanceDescriptor getInstanceDescriptor()
+ {
+ return _instanceDescriptor;
+ }
+
private void createAdapters()
{
java.util.Iterator p = _serviceDescriptor.adapters.iterator();
diff --git a/java/src/IceGridGUI/LiveDeployment/ServiceEditor.java b/java/src/IceGridGUI/LiveDeployment/ServiceEditor.java
index 1164338ef28..0d611fd0e7a 100755
--- a/java/src/IceGridGUI/LiveDeployment/ServiceEditor.java
+++ b/java/src/IceGridGUI/LiveDeployment/ServiceEditor.java
@@ -26,7 +26,22 @@ class ServiceEditor extends CommunicatorEditor
ServiceDescriptor descriptor = service.getServiceDescriptor();
Utils.Resolver resolver = service.getResolver();
- show(descriptor, resolver);
+ String application = ((Server)service.getParent()).getApplication().name;
+ Node node = (Node)service.getParent().getParent();
+
+ ExpandedPropertySet propertySet =
+ node.expand(descriptor.propertySet, application);
+
+ ExpandedPropertySet instancePropertySet = null;
+ ServiceInstanceDescriptor instanceDescriptor =
+ service.getInstanceDescriptor();
+ if(instanceDescriptor != null)
+ {
+ instancePropertySet = node.expand(instanceDescriptor.propertySet,
+ application);
+ }
+
+ show(descriptor, propertySet, instancePropertySet, resolver);
_entry.setText(resolver.substitute(descriptor.entry));
}