diff options
Diffstat (limited to 'java/src')
5 files changed, 75 insertions, 46 deletions
diff --git a/java/src/IceGridGUI/Application/Adapter.java b/java/src/IceGridGUI/Application/Adapter.java index 8e483da0bce..f7153ff7211 100755 --- a/java/src/IceGridGUI/Application/Adapter.java +++ b/java/src/IceGridGUI/Application/Adapter.java @@ -159,6 +159,10 @@ class Adapter extends TreeNode implements DescriptorHolder { attributes.add(createAttribute("replica-group", _descriptor.replicaGroupId)); } + if(_descriptor.priority != null && _descriptor.priority.length() > 0) + { + attributes.add(createAttribute("priority", _descriptor.priority)); + } if(!_descriptor.waitForActivation) { attributes.add(createAttribute("wait-for-activation", "false")); @@ -185,11 +189,6 @@ class Adapter extends TreeNode implements DescriptorHolder } } - boolean inIceBox() - { - return ((Communicator)_parent).isIceBox(); - } - String getProperty(String property) { return ((Communicator)_parent).getProperty(_descriptor.name + "." + property); diff --git a/java/src/IceGridGUI/Application/AdapterEditor.java b/java/src/IceGridGUI/Application/AdapterEditor.java index c37deef59c9..f1bb5997df3 100755 --- a/java/src/IceGridGUI/Application/AdapterEditor.java +++ b/java/src/IceGridGUI/Application/AdapterEditor.java @@ -163,6 +163,11 @@ class AdapterEditor extends CommunicatorChildEditor _replicaGroupId.getEditor().getEditorComponent(); replicaGroupIdTextField.getDocument().addDocumentListener(_updateListener); _replicaGroupId.setToolTipText("Select a replica group"); + + _priority.getDocument().addDocumentListener(_updateListener); + _priority.setToolTipText("The priority of this adapter; see the Ordered load-balancing " + + "policy in Replica Groups"); + JTextField publishedEndpointsTextField = (JTextField) _publishedEndpoints.getEditor().getEditorComponent(); @@ -184,6 +189,7 @@ class AdapterEditor extends CommunicatorChildEditor descriptor.description = _description.getText(); descriptor.id = getIdAsString(); descriptor.replicaGroupId = getReplicaGroupIdAsString(); + descriptor.priority = _priority.getText().trim(); descriptor.registerProcess = _registerProcess.isSelected(); descriptor.waitForActivation = _waitForActivation.isSelected(); descriptor.objects = mapToObjectDescriptorSeq(_objects.get()); @@ -228,11 +234,15 @@ class AdapterEditor extends CommunicatorChildEditor builder.append(_replicaGroupButton); builder.nextLine(); + builder.append("Priority"); + builder.append(_priority, 3); + builder.nextLine(); + builder.append("Endpoints" ); builder.append(_endpoints, 3); builder.nextLine(); - builder.append("Published Endpoints" ); + builder.append("Published Endpoints"); builder.append(_publishedEndpoints, 3); builder.nextLine(); @@ -353,7 +363,7 @@ class AdapterEditor extends CommunicatorChildEditor else { _replicaGroupId.setSelectedItem(replicaGroupId); - } + } } } @@ -390,12 +400,11 @@ class AdapterEditor extends CommunicatorChildEditor adapter.getResolver() : null; boolean isEditable = resolver == null; - boolean inIceBox = adapter.inIceBox(); _oldName = descriptor.name; _name.setText(Utils.substitute(descriptor.name, resolver)); - _name.setEditable(isEditable && !inIceBox); + _name.setEditable(isEditable); _description.setText( Utils.substitute(descriptor.description, resolver)); @@ -448,9 +457,13 @@ class AdapterEditor extends CommunicatorChildEditor }); setReplicaGroupId(Utils.substitute(descriptor.replicaGroupId, resolver)); + _replicaGroupId.setEnabled(isEditable); _replicaGroupId.setEditable(isEditable); + _priority.setText(Utils.substitute(descriptor.priority, resolver)); + _priority.setEditable(isEditable); + if(adapter.isEphemeral()) { _endpoints.setText("default"); @@ -545,6 +558,8 @@ class AdapterEditor extends CommunicatorChildEditor private JComboBox _replicaGroupId = new JComboBox(); private JButton _replicaGroupButton; + private JTextField _priority = new JTextField(20); + private JTextField _endpoints = new JTextField(20); private JComboBox _publishedEndpoints = new JComboBox( new Object[]{PUBLISH_ACTUAL}); diff --git a/java/src/IceGridGUI/Application/ReplicaGroup.java b/java/src/IceGridGUI/Application/ReplicaGroup.java index 046e5f3e581..ca234ec1ed5 100755 --- a/java/src/IceGridGUI/Application/ReplicaGroup.java +++ b/java/src/IceGridGUI/Application/ReplicaGroup.java @@ -176,29 +176,32 @@ class ReplicaGroup extends TreeNode { writer.writeElement("description", _descriptor.description); } - if(_descriptor.loadBalancing != null) + assert _descriptor.loadBalancing != null; + + attributes.clear(); + if(_descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "random")); + } + else if(_descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "ordered")); + } + else if(_descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "round-robin")); + } + else if(_descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) { - attributes.clear(); - if(_descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "random")); - } - else if(_descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "round-robin")); - } - else if(_descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "adaptive")); - AdaptiveLoadBalancingPolicy policy = - (AdaptiveLoadBalancingPolicy)_descriptor.loadBalancing; - attributes.add(createAttribute("load-sample", policy.loadSample)); - } - attributes.add(createAttribute("n-replicas", - _descriptor.loadBalancing.nReplicas)); - writer.writeElement("load-balancing", attributes); - } - + attributes.add(createAttribute("type", "adaptive")); + AdaptiveLoadBalancingPolicy policy = + (AdaptiveLoadBalancingPolicy)_descriptor.loadBalancing; + attributes.add(createAttribute("load-sample", policy.loadSample)); + } + attributes.add(createAttribute("n-replicas", + _descriptor.loadBalancing.nReplicas)); + writer.writeElement("load-balancing", attributes); + writeObjects("object", writer, _descriptor.objects); writer.writeEndTag("replica-group"); } diff --git a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java index 7a27b704812..e6a126dfea8 100755 --- a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java +++ b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java @@ -181,17 +181,15 @@ class ReplicaGroupEditor extends Editor { updated(); - Object item = e.getItem(); - _nReplicasLabel.setVisible(item != RETURN_ALL); - _nReplicas.setVisible(item != RETURN_ALL); - + Object item = e.getItem(); _loadSampleLabel.setVisible(item == ADAPTIVE); _loadSample.setVisible(item == ADAPTIVE); } } }); _loadBalancing.setToolTipText( - "Specifies how IceGrid selects adapters when resolving a replica group ID"); + "<html>Specifies how IceGrid selects adapters and return<br>" + + "their endpoints when resolving a replica group ID</html>"); // // Associate updateListener with various fields @@ -206,7 +204,8 @@ class ReplicaGroupEditor extends Editor _nReplicas.getDocument().addDocumentListener(_updateListener); _nReplicas.setToolTipText("<html>IceGrid returns the endpoints of " + "up to <i>number</i> adapters<br>" - + "when resolving a replica group ID</html>"); + + "when resolving a replica group ID.<br>" + + "Enter 0 to returns the endpoints of all adapters.</html>"); _loadSample.setEditable(true); JTextField loadSampleTextField = (JTextField) @@ -214,7 +213,6 @@ class ReplicaGroupEditor extends Editor loadSampleTextField.getDocument().addDocumentListener(_updateListener); _loadSample.setToolTipText( "Use the load average or CPU usage over the last 1, 5 or 15 minutes?"); - } void writeDescriptor() @@ -227,9 +225,10 @@ class ReplicaGroupEditor extends Editor descriptor.objects = AdapterEditor.mapToObjectDescriptorSeq(_objects.get()); Object loadBalancing = _loadBalancing.getSelectedItem(); - if(loadBalancing == RETURN_ALL) + if(loadBalancing == ORDERED) { - descriptor.loadBalancing = null; + descriptor.loadBalancing = new OrderedLoadBalancingPolicy( + _nReplicas.getText().trim()); } else if(loadBalancing == RANDOM) { @@ -294,7 +293,7 @@ class ReplicaGroupEditor extends Editor builder.append("Load Balancing Policy"); builder.append(_loadBalancing, 3); builder.nextLine(); - _nReplicasLabel = builder.append("How many Adapters?"); + builder.append("How many Adapters? (0 = all)"); builder.append(_nReplicas, 3); builder.nextLine(); _loadSampleLabel = builder.append("Load Sample"); @@ -344,8 +343,8 @@ class ReplicaGroupEditor extends Editor if(descriptor.loadBalancing == null) { - _loadBalancing.setSelectedItem(RETURN_ALL); - _nReplicas.setText("1"); + _loadBalancing.setSelectedItem(RANDOM); + _nReplicas.setText("0"); _loadSample.setSelectedItem("1"); } else if(descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) @@ -355,6 +354,13 @@ class ReplicaGroupEditor extends Editor Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); _loadSample.setSelectedItem("1"); } + else if(descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) + { + _loadBalancing.setSelectedItem(ORDERED); + _nReplicas.setText( + Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); + _loadSample.setSelectedItem("1"); + } else if(descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) { _loadBalancing.setSelectedItem(ROUND_ROBIN); @@ -391,7 +397,7 @@ class ReplicaGroupEditor extends Editor return (ReplicaGroup)_target; } - static private String RETURN_ALL = "Return all"; + static private String ORDERED = "Ordered"; static private String RANDOM = "Random"; static private String ROUND_ROBIN = "Round-robin"; static private String ADAPTIVE = "Adaptive"; @@ -400,9 +406,8 @@ class ReplicaGroupEditor extends Editor private JTextArea _description = new JTextArea(3, 20); private JComboBox _loadBalancing = new JComboBox(new Object[] - {ADAPTIVE, RANDOM, RETURN_ALL, ROUND_ROBIN}); + {ADAPTIVE, ORDERED, RANDOM, ROUND_ROBIN}); - private JLabel _nReplicasLabel; private JTextField _nReplicas = new JTextField(20); private JLabel _loadSampleLabel; diff --git a/java/src/IceGridGUI/LiveDeployment/AdapterEditor.java b/java/src/IceGridGUI/LiveDeployment/AdapterEditor.java index 9d685a090e3..05279b756b8 100755 --- a/java/src/IceGridGUI/LiveDeployment/AdapterEditor.java +++ b/java/src/IceGridGUI/LiveDeployment/AdapterEditor.java @@ -36,6 +36,7 @@ class AdapterEditor extends Editor _description.setOpaque(false); _id.setEditable(false); _replicaGroupId.setEditable(false); + _priority.setEditable(false); _endpoints.setEditable(false); _publishedEndpoints.setEditable(false); _registerProcess.setEnabled(false); @@ -65,6 +66,7 @@ class AdapterEditor extends Editor _description.setText(resolver.substitute(descriptor.description)); _replicaGroupId.setText(resolver.substitute(descriptor.replicaGroupId)); + _priority.setText(resolver.substitute(descriptor.priority)); java.util.Map properties = adapter.getProperties(); @@ -112,6 +114,10 @@ class AdapterEditor extends Editor builder.append("Replica Group"); builder.append(_replicaGroupId, 3); builder.nextLine(); + + builder.append("Priority"); + builder.append(_priority, 3); + builder.nextLine(); builder.append("Endpoints"); builder.append(_endpoints, 3); @@ -167,6 +173,7 @@ class AdapterEditor extends Editor private JTextArea _description = new JTextArea(3, 20); private JTextField _id = new JTextField(20); private JTextField _replicaGroupId = new JTextField(20); + private JTextField _priority = new JTextField(20); private JTextField _endpoints = new JTextField(20); private JTextField _publishedEndpoints = new JTextField(20); |