perfsonar-dev - perfsonar: r4700 - branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl
Subject: perfsonar development work
List archive
- From:
- To:
- Subject: perfsonar: r4700 - branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl
- Date: Fri, 21 Nov 2008 10:38:05 -0500
Author: nemanja.zutic
Date: 2008-11-21 10:38:04 -0500 (Fri, 21 Nov 2008)
New Revision: 4700
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLGraphPanel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTDelays.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLMainComponent.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLPerfsonarTab.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLRequest.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTRequest.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTUserData.java
Log:
Fixes to BWCTL tab, plus the added graph to display results
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLGraphPanel.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLMainComponent.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLMainComponent.java
2008-11-20 13:32:22 UTC (rev 4699)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLMainComponent.java
2008-11-21 15:38:04 UTC (rev 4700)
@@ -4,16 +4,20 @@
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
+import java.text.NumberFormat;
import java.util.Hashtable;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
+import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
+import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
@@ -66,7 +70,7 @@
protected JTextField windowSize;
protected JLabel windowSizeLabel;
- protected JTextField userRTT;
+ protected JFormattedTextField userRTT;
protected JLabel userRTTLabel;
protected JTextField bufferSize;
@@ -94,16 +98,19 @@
protected JPasswordField password;
protected JLabel passwordLabel;
- protected JSeparator oneWayDelaySeparator;
+ protected JSeparator infoLabelSeparator;
- protected JLabel oneWayDelayInfoLabel;
+ protected JLabel infoLabelLine1;
+ protected JLabel infoLabelLine2;
protected JSeparator resultSeparator;
protected JTextArea result;
+
+ protected BWCTLGraphPanel graph;
public BWCTLMainComponent(Component parentComponent, IPerfsonarTab
psModel) {
- super(parentComponent, psModel);
+ super(parentComponent, psModel, new GridLayout());
namePairs.put("ARNES_Ljubljana_JRA1", "Ljubljana_ARNES");
namePairs.put("BELNET_Gent_JRA1","Gent_BELNET");
namePairs.put("CARNET_Zagreb_JRA1", "Zagreb_CARNET");
@@ -117,15 +124,16 @@
namePairs.put("ISTF_Sofia_JRA1", "Sofia_ISTF");
namePairs.put("RENATER_Paris_JRA1", "none");
namePairs.put("SURFNet_Amsterdam_JRA1", "Amsterdam_SURFnet");
- namePairs.put("PSNC_Poznan_JRA1", "Poznan_GEANT");
+ namePairs.put("PSNC_Poznan_JRA1", "Poznan_PSNC");
namePairs.put("UNINet_Tromsoe_JRA1", "Tromso_UNINet");
}
public void addWidgets() {
+ JPanel panel = new JPanel();
GridBagConstraints constraints;
-
- setLayout(new GridBagLayout());
+ this.setLayout(new GridLayout());
+ panel.setLayout(new GridBagLayout());
constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.insets = new Insets(2,2,2,2);
@@ -134,31 +142,30 @@
constraints.gridx = 2;
constraints.gridy = 0;
constraints.gridheight = 8;
- add(leftRightDivider, constraints);
+ panel.add(leftRightDivider, constraints);
constraints.gridheight = 1;
-
sourceAddress = new JTextField(getEndpointHost(
model.getEndpointList()));
constraints.gridx = 4;
constraints.gridy = 0;
- add(sourceAddress, constraints);
+ panel.add(sourceAddress, constraints);
sourceAddressLabel = new JLabel("Source Address");
sourceAddressLabel.setLabelFor(sourceAddress);
constraints.gridx -= 1;
- add(sourceAddressLabel, constraints);
+ panel.add(sourceAddressLabel, constraints);
destinationAddress = new JTextField("");
constraints.gridx = 4;
constraints.gridy = 1;
- add(destinationAddress, constraints);
+ panel.add(destinationAddress, constraints);
destinationAddressLabel = new JLabel("Destination Address");
destinationAddressLabel.setLabelFor(destinationAddress);
constraints.gridx -= 1;
- add(destinationAddressLabel, constraints);
+ panel.add(destinationAddressLabel, constraints);
addressTypeIPV4 = new JRadioButton("IPv4");
addressTypeIPV4.setSelected(true);
@@ -173,21 +180,21 @@
constraints.gridx = 1;
constraints.gridy = 0;
- add(addressTypeIPV4, constraints);
+ panel.add(addressTypeIPV4, constraints);
constraints.gridy = 1;
- add(addressTypeIPV6, constraints);
+ panel.add(addressTypeIPV6, constraints);
addressTypeLabel = new JLabel("Address type");
addressTypeLabel.setLabelFor(addressTypeIPV4);
constraints.gridx = 0;
constraints.gridy = 0;
- add(addressTypeLabel, constraints);
+ panel.add(addressTypeLabel, constraints);
addressSeparator = new JSeparator();
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridwidth = 5;
- add(addressSeparator, constraints);
+ panel.add(addressSeparator, constraints);
constraints.gridwidth = 1;
protocolTCP = new JRadioButton("TCP");
@@ -205,69 +212,69 @@
constraints.gridx = 1;
constraints.gridy = 3;
- add(protocolTCP, constraints);
+ panel.add(protocolTCP, constraints);
constraints.gridy = 4;
- add(protocolUDP, constraints);
+ panel.add(protocolUDP, constraints);
protocolLabel = new JLabel("Transport layer");
addressTypeLabel.setLabelFor(protocolTCP);
constraints.gridx = 0;
constraints.gridy = 3;
- add(protocolLabel, constraints);
+ panel.add(protocolLabel, constraints);
windowSize = new JTextField("");
constraints.gridx = 4;
constraints.gridy = 3;
- add(windowSize, constraints);
+ panel.add(windowSize, constraints);
windowSizeLabel = new JLabel("TCP Window Size");
constraints.gridx -= 1;
windowSizeLabel.setLabelFor(windowSize);
- add(windowSizeLabel, constraints);
+ panel.add(windowSizeLabel, constraints);
- userRTT = new JTextField("");
+ userRTT = new
JFormattedTextField(NumberFormat.getNumberInstance());
constraints.gridx = 4;
constraints.gridy = 4;
userRTT.setToolTipText("Note: Either enter RTT manually " +
"or retrieve it using IPPM OneWayDelay
requsets "+
"by clicking 'Estimate RTT' command");
- add(userRTT, constraints);
+ panel.add(userRTT, constraints);
userRTTLabel = new JLabel("RTT (ms)");
constraints.gridx -= 1;
userRTTLabel.setLabelFor(userRTT);
- add(userRTTLabel, constraints);
+ panel.add(userRTTLabel, constraints);
bufferSize = new JTextField("");
constraints.gridx = 4;
constraints.gridy = 3;
bufferSize.setVisible(false);
- add(bufferSize, constraints);
+ panel.add(bufferSize, constraints);
bufferSizeLabel = new JLabel("UDP Buffer Size");
constraints.gridx -= 1;
bufferSizeLabel.setLabelFor(bufferSize);
bufferSizeLabel.setVisible(false);
- add(bufferSizeLabel, constraints);
+ panel.add(bufferSizeLabel, constraints);
bandwidth = new JTextField("");
constraints.gridx = 4;
constraints.gridy = 4;
bandwidth.setVisible(false);
- add(bandwidth, constraints);
+ panel.add(bandwidth, constraints);
bandwidthLabel = new JLabel("Maximum Bandwidth");
constraints.gridx -= 1;
bandwidthLabel.setLabelFor(bandwidth);
bandwidthLabel.setVisible(false);
- add(bandwidthLabel, constraints);
+ panel.add(bandwidthLabel, constraints);
transportSeparator = new JSeparator();
constraints.gridx = 0;
constraints.gridy = 5;
constraints.gridwidth = 5;
- add(transportSeparator, constraints);
+ panel.add(transportSeparator, constraints);
constraints.gridwidth = 1;
duration = new JTextField("");
@@ -276,83 +283,90 @@
"results!");
constraints.gridx = 1;
constraints.gridy = 6;
- add(duration, constraints);
+ panel.add(duration, constraints);
durationLabel = new JLabel("Test Duration (s)");
constraints.gridx -= 1;
windowSizeLabel.setLabelFor(duration);
- add(durationLabel, constraints);
+ panel.add(durationLabel, constraints);
interval = new JTextField("");
constraints.gridx = 4;
constraints.gridy = 6;
- add(interval, constraints);
+ panel.add(interval, constraints);
intervalLabel = new JLabel("Reporting Interval (s)");
constraints.gridx -= 1;
intervalLabel.setLabelFor(interval);
- add(intervalLabel, constraints);
+ panel.add(intervalLabel, constraints);
tos = new JTextField("");
constraints.gridx = 1;
constraints.gridy = 7;
- add(tos, constraints);
+ panel.add(tos, constraints);
tosLabel = new JLabel("Type of Service bits");
constraints.gridx -= 1;
tosLabel.setLabelFor(tos);
- add(tosLabel, constraints);
+ panel.add(tosLabel, constraints);
loginSeparator = new JSeparator();
constraints.gridx = 0;
constraints.gridy = 8;
constraints.gridwidth = 5;
- add(loginSeparator, constraints);
+ panel.add(loginSeparator, constraints);
constraints.gridwidth = 1;
login = new JTextField("");
constraints.gridx = 1;
constraints.gridy = 9;
- add(login, constraints);
+ panel.add(login, constraints);
loginLabel = new JLabel("BWCTL Login");
constraints.gridx -= 1;
loginLabel.setLabelFor(login);
- add(loginLabel, constraints);
+ panel.add(loginLabel, constraints);
password = new JPasswordField();
constraints.gridx = 4;
- add(password, constraints);
+ panel.add(password, constraints);
passwordLabel = new JLabel("Password");
constraints.gridx -= 1;
passwordLabel.setLabelFor(password);
- add(passwordLabel, constraints);
+ panel.add(passwordLabel, constraints);
resultSeparator = new JSeparator();
constraints.gridx = 0;
constraints.gridy = 10;
constraints.gridwidth = 5;
- add(resultSeparator, constraints);
+ panel.add(resultSeparator, constraints);
//constraints.gridwidth = 1;
- oneWayDelayInfoLabel = new JLabel("Click 'Estimate RTT' to
get the estimated RTT between two points (based on IPPM OWD)");
+ infoLabelLine1 = new JLabel("Click 'Estimate RTT' to get the
estimated RTT between two points (based on IPPM OWD)");
constraints.gridx = 0;
constraints.gridy = 11;
constraints.gridwidth = 5;
constraints.fill = GridBagConstraints.HORIZONTAL;
- add(oneWayDelayInfoLabel, constraints);
+ panel.add(infoLabelLine1, constraints);
- oneWayDelaySeparator = new JSeparator();
+ infoLabelLine2 = new JLabel(" ");
constraints.gridx = 0;
constraints.gridy = 12;
constraints.gridwidth = 5;
- add(oneWayDelaySeparator, constraints);
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ panel.add(infoLabelLine2, constraints);
+ infoLabelSeparator = new JSeparator();
+ constraints.gridx = 0;
+ constraints.gridy = 13;
+ constraints.gridwidth = 5;
+ panel.add(infoLabelSeparator, constraints);
+
result = new JTextArea("Result");
result.setBorder(BorderFactory.createEtchedBorder());
constraints.gridx = 0;
- constraints.gridy = 13;
+ constraints.gridy = 14;
constraints.gridwidth = 5;
constraints.fill = GridBagConstraints.BOTH;
//result.setAutoscrolls(true);
@@ -360,23 +374,31 @@
JScrollPane sp = new JScrollPane(result);
sp.setBorder(BorderFactory.createTitledBorder("Result"));
result.setWrapStyleWord(true);
- sp.setPreferredSize(new Dimension(200,200));
- add(sp, constraints);
+// sp.setPreferredSize(new Dimension(200,200));
+ panel.add(sp, constraints);
+
+ graph = new BWCTLGraphPanel(this);
+ constraints.gridx = 0;
+ constraints.gridy = 15;
+ constraints.gridwidth = 5;
+ constraints.fill = GridBagConstraints.BOTH;
+// graph.setPreferredSize(new Dimension(200,300));
+ panel.add(graph,constraints);
Dimension d = new Dimension(128,20);
- sourceAddress.setMinimumSize(d);
- sourceAddress.setPreferredSize(d);
- destinationAddress.setMinimumSize(d);
- destinationAddress.setPreferredSize(d);
+// sourceAddress.setMinimumSize(d);
+// sourceAddress.setPreferredSize(d);
+// destinationAddress.setMinimumSize(d);
+// destinationAddress.setPreferredSize(d);
duration.setMinimumSize(d);
duration.setPreferredSize(d);
interval.setMinimumSize(d);
interval.setPreferredSize(d);
- d = new Dimension(300,300);
-
- setMinimumSize(d);
- setPreferredSize(d);
+// d = new Dimension(600,600);
+// setPreferredSize(d);
+ JScrollPane mainSrcPane = new JScrollPane(panel);
+ add(mainSrcPane);
}
public String getAddressType()
@@ -540,7 +562,25 @@
}
}
public void resetRTTData(){
- userRTT.setText("");
- oneWayDelayInfoLabel.setText("Click 'Estimate RTT' to get the
estimated RTT between two points (based on IPPM OWD)");
+ userRTT.setValue(0.0);
+ infoLabelLine1.setText("Click 'Estimate RTT' to get the
estimated RTT between two points (based on IPPM OWD)");
+ infoLabelLine2.setText(" ");
}
+
+ public void clearInfoLabels(){
+ infoLabelLine1.setText(" ");
+ infoLabelLine2.setText(" ");
+ }
+
+ public void addValueToGraph(double time, double value){
+ graph.setChartValue(time, value);
+ }
+
+ public void addAverageToGraph(double startTime, double endTime,
double value){
+ graph.setAverageValue(startTime, endTime, value);
+ }
+
+ public void clearGraph(){
+ graph.clearChart();
+ }
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLPerfsonarTab.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLPerfsonarTab.java
2008-11-20 13:32:22 UTC (rev 4699)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLPerfsonarTab.java
2008-11-21 15:38:04 UTC (rev 4700)
@@ -7,7 +7,6 @@
import javax.swing.JDialog;
-import org.perfsonar.perfsonarui.AbstractUserData;
import org.perfsonar.perfsonarui.IPerfsonarSchema;
import org.perfsonar.perfsonarui.PSException;
import org.perfsonar.perfsonarui.PerfsonarSchema;
@@ -88,8 +87,7 @@
}
public PerfsonarRequestAction createMetadataRequestAction(){
- AbstractUserData rttUserData = new AbstractUserData();
- rttUserData.setEndpoint(new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated"));
+ RTTUserData rttUserData = new RTTUserData();
return new
SetupDataRequestAction(createSmartRequest(),rttUserData,responseData,"Estimate
RTT",null,defaultGroupQuery);
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLRequest.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLRequest.java
2008-11-20 13:32:22 UTC (rev 4699)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/BWCTLRequest.java
2008-11-21 15:38:04 UTC (rev 4700)
@@ -47,6 +47,8 @@
}
if
(messageType.equals(IPerfsonarRequest.MA_SetupDataRequest)) {
+ mainComponent.clearInfoLabels();
+ mainComponent.infoLabelLine1.setText("Querying
service");
return createSetupDataRequest(uData);
}
else {
@@ -234,6 +236,11 @@
/* No error, read normal return data */
output = new String();
+ mainComponent.clearGraph();
+ String startTime = "";
+ String endTime = mainComponent.duration.getText();
+ double duration =
Double.parseDouble(mainComponent.duration.getText());
+
datas = response.getElementsByTagName("nmwg:data");
for (i = 0; i < datas.getLength(); i++)
@@ -243,6 +250,10 @@
for (j = 0; j < datums.getLength(); j++)
{
datum = (Element) datums.item(j);
+ String interval =
datum.getAttribute("duration");
+ String time = interval.split("-")[1];
+ if(startTime.equals("")) startTime = time;
+ String value = datum.getAttribute("value");
output = output +
"Interval: " +
datum.getAttribute("duration") +
@@ -254,23 +265,29 @@
" " +
datum.getAttribute("valueUnits") +
"\n";
+
if(!(interval.startsWith("0.0")&&Double.parseDouble(time)>=duration)){
+
mainComponent.addValueToGraph(Double.parseDouble(time),
Double.parseDouble(value)/(1000*1000));
+ }
+ else{
+
if(!mainComponent.interval.getText().equals(""))mainComponent.addAverageToGraph(Double.parseDouble(startTime),Double.parseDouble(endTime),Double.parseDouble(value)/(1000*1000));
+ else
mainComponent.infoLabelLine2.setText("Graph is not displayed because no
reporting interval value was entered");
+ }
}
if(mainComponent.protocolTCP.isSelected()){
- Double rtt = 0.0;
+ Double rtt =
(Double)mainComponent.userRTT.getValue();
Double window = 0.0;
Double maxBW = 0.0;
- try {
- rtt =
Double.parseDouble(mainComponent.userRTT.getText());
+ try{
window =
Double.parseDouble(mainComponent.windowSize.getText());
- }catch (NumberFormatException e){
-// output+="\nRTT or window size is not
a valid number";
+ }catch(NumberFormatException e){
+
mainComponent.infoLabelLine1.setText("Window size cannot be converted from
string to number");
}
window*=8;
rtt/=1000;
if(rtt!=0.0) maxBW = window/rtt;
Long maxBWLong = new Long(maxBW.longValue());
- if (maxBWLong!=0) output+="\nExpected maximum
theoretical bandwidth (TCP window size * RTT) is:\n" + maxBWLong + "
bits/sec";
- else output+="\nIf you wish to see the
Expected maximum theoretical bandwidth (TCP window size * RTT) please enter a
RTT value and a window size";
+ if (maxBWLong!=0)
mainComponent.infoLabelLine1.setText("Expected maximum theoretical bandwidth
(TCP window size * RTT) is: " + maxBWLong + " bits/sec ("+
maxBWLong/(1000*1000) +" Mbits/sec)");
+ else mainComponent.infoLabelLine1.setText("If
you wish to see the Expected maximum theoretical bandwidth (TCP window size *
RTT) both RTT value and a window size must be entered");
}
}
mainComponent.result.setText(output);
Added: branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTDelays.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTRequest.java
===================================================================
--- branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTRequest.java
2008-11-20 13:32:22 UTC (rev 4699)
+++ branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTRequest.java
2008-11-21 15:38:04 UTC (rev 4700)
@@ -1,19 +1,11 @@
package org.perfsonar.perfsonarui.bwctl;
-import java.net.URL;
import java.text.DecimalFormat;
import java.util.Calendar;
-import java.util.LinkedList;
-import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.soap.SOAPEnvelope;
-
-import org.apache.axis.Message;
-import org.apache.axis.client.Call;
-import org.apache.axis.message.SOAPBodyElement;
import org.perfsonar.perfsonarui.AbstractMARequest;
import org.perfsonar.perfsonarui.plugins.IPerfsonarRequest;
import org.perfsonar.perfsonarui.plugins.IPerfsonarResponse;
@@ -25,17 +17,9 @@
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-public class RTTRequest extends AbstractMARequest {
+public class RTTRequest extends AbstractMARequest{
public static final String REQUEST_TYPE = "ippm";
- public static final int DELAY_MEASUREMENTS = 2;
- protected LinkedList<Double> delays;
- protected RTTUserData forward;
- protected RTTUserData backward;
- protected SOAPBodyElement requestMessageFwd;
- protected SOAPBodyElement requestMessageBck;
protected IPerfsonarResponse response;
- protected Call callFwd;
- protected Call callBck;
protected int timeout = 10000; //10 sec
@@ -43,10 +27,8 @@
public RTTRequest(BWCTLMainComponent pane){
super();
- mainComponent = pane;
- delays = new LinkedList<Double>();
- forward = new
RTTUserData(mainComponent.getSourceName(),mainComponent.getDestinationName());
- backward = new
RTTUserData(mainComponent.getDestinationName(),mainComponent.getSourceName());
+ this.mainComponent = pane;
+ this.query = new
RTTUserData(mainComponent.getSourceName(),mainComponent.getDestinationName());
}
public Document createRequest(MAEndpoint endpoint,
@@ -64,131 +46,18 @@
}
if
(messageType.equals(IPerfsonarRequest.MA_SetupDataRequest)) {
- return
createIPPMDataRequest(((RTTUserData)uData).getSourceName(),((RTTUserData)uData).getDestinationName());
+ if(RTTDelays.getInstance().getRecievedDelays()==0)
return
createIPPMDataRequest(((RTTUserData)query).getSourceName(),((RTTUserData)query).getDestinationName());
+ else return
createIPPMDataRequest(((RTTUserData)query).getDestinationName(),
((RTTUserData)query).getSourceName());
}
else {
throw new Exception("Unknown message type! " +
messageType);
}
}
-
-
- @Override
- public void makeRequest(MAEndpoint endpoint, IUserData uData,
- String messageType, IPerfsonarResponse response,
boolean runInThread) {
- try {
- forward.setSourceName(mainComponent.getSourceName());
-
forward.setDestinationName(mainComponent.getDestinationName());
- backward.setSourceName(mainComponent.getDestinationName());
- backward.setDestinationName(mainComponent.getSourceName());
- this.response = response;
- if (callFwd == null) {
- callFwd = (Call)service.createCall();
- }
-
- callFwd.setTargetEndpointAddress(new
URL(endpoint.getEndpoint()));
- callFwd.setOperationName(new QName(URI_SOAP,"submit"));
- if (callBck == null) {
- callBck = (Call)service.createCall();
- }
- callBck.setTargetEndpointAddress(new
URL(endpoint.getEndpoint()));
- callBck.setOperationName(new QName(URI_SOAP,"submit"));
- Document requestForward =
createRequest(forward,messageType);
- requestMessageFwd = new
SOAPBodyElement(requestForward.getDocumentElement());
- Document requestBackward =
createRequest(backward,messageType);
- requestMessageBck = new
SOAPBodyElement(requestBackward.getDocumentElement());
-
- queries = null;
- if (runInThread) {
- Thread t = new Thread(this,endpoint.getTitle());
- t.start();
- } else run();
-
- } catch (Exception x) {
- logger.error(x);
- fireAxisCallException(uData, x);
- }
- }
-
- public void run() {
- long startTime = System.currentTimeMillis();
- setInterrupted(false);
-
- Object resultObjectFwd = null;
- Object resultObjectBck = null;
- try{
- addPropertyChangeListener(response);
- fireAxisCallInitiated(forward);
- logger.debug("Sending request to\t" +
forward.getEndpoint());
- logger.debug(requestMessageFwd);
-
- callFwd.setTimeout(new Integer(timeout));
- logger.debug("Timeout set to "+callFwd.getTimeout());
-
- SOAPEnvelope envelopeFwd =
prepareEnvelope(requestMessageFwd);
-
- long now = System.currentTimeMillis();
- if (envelopeFwd != null) {
- resultObjectFwd = callFwd.invoke(new
Message(envelopeFwd));
- } else
- resultObjectFwd = callFwd.invoke(new Object[]
{requestMessageFwd});
-
- requestMessageFwd = null;
-
- logger.info("Axis call completed in
"+(System.currentTimeMillis()-now)+" ms.");
-
- if (!isInterrupted()) {
- logger.debug("request completed");
- fireAxisCallCompleted(forward);
- fireAxisCallResult(forward, resultObjectFwd);
- }
-
- addPropertyChangeListener(response);
- fireAxisCallInitiated(backward);
- logger.debug("Sending request to\t" +
backward.getEndpoint());
- logger.debug(requestMessageBck);
-
- callBck.setTimeout(new Integer(timeout));
- logger.debug("Timeout set to "+callBck.getTimeout());
-
- SOAPEnvelope envelopeBck =
prepareEnvelope(requestMessageBck);
-
- now = System.currentTimeMillis();
- if (envelopeBck != null) {
- resultObjectBck = callBck.invoke(new
Message(envelopeBck));
- } else
- resultObjectBck = callBck.invoke(new Object[]
{requestMessageBck});
-
- requestMessageBck = null;
-
- logger.info("Axis call completed in
"+(System.currentTimeMillis()-now)+" ms.");
-
- if (!isInterrupted()) {
- logger.debug("request completed");
- fireAxisCallCompleted(backward);
- fireAxisCallResult(backward, resultObjectBck);
- }
-
- }catch(Exception e){
- if (!isInterrupted()) {
- logger.error("request exception");
- if (queries != null)
- fireAxisCallException(queries, e);
- else
- fireAxisCallException(forward, e);
- fireAxisCallException(backward, e);
- }
- }
- forward.setServiceTime(System.currentTimeMillis()-startTime);
- backward.setServiceTime(System.currentTimeMillis()-startTime);
- queries = null;
- }
-
private Document createIPPMDataRequest(String sourceName, String
destinationName)
throws Exception
{
-
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
@@ -328,28 +197,32 @@
last_med_delay=Double.parseDouble(mes);
last_med_delay*=1000;
}
- delays.add(last_med_delay);
+ RTTDelays.getInstance().addDelay(last_med_delay);
}
- if(delays.size() == 1){
- Double rtt = delays.get(0);
+ DecimalFormat fourDigits = new DecimalFormat("0.0000");
+ if(RTTDelays.getInstance().getRecievedDelays() == 1){
+ Double rtt = RTTDelays.getInstance().getSrc2Dst();
if(rtt == 0.0){
-
mainComponent.oneWayDelayInfoLabel.setText("No RTT measurement available");
+ mainComponent.infoLabelLine1.setText("No Src
to Dst measurement available");
}
else {
-
mainComponent.oneWayDelayInfoLabel.setText("Only one OWD measurement
received");
+ mainComponent.infoLabelLine1.setText("Src to
Dst delay ("+fourDigits.format(rtt)+")");
}
}
- if(delays.size() == DELAY_MEASUREMENTS){
- Double rtt = delays.get(0) + delays.get(1);
- if(rtt == 0.0){
-
mainComponent.oneWayDelayInfoLabel.setText("No RTT measurement available");
+ else if(RTTDelays.getInstance().getRecievedDelays() == 2){
+ Double rtt1 = RTTDelays.getInstance().getSrc2Dst();
+ Double rtt2 = RTTDelays.getInstance().getDst2Src();
+ if(rtt1 == 0.0){
+ mainComponent.infoLabelLine1.setText("No Src
to Dst measurement available");
}
- else {
- DecimalFormat fourDigits = new
DecimalFormat("0.0000");
-
mainComponent.oneWayDelayInfoLabel.setText("Estimated RTT
"+fourDigits.format(rtt)+" = Src to Dst delay
("+fourDigits.format(delays.get(0))+") + Dst to Src delay
("+fourDigits.format(delays.get(1))+")");
-
mainComponent.userRTT.setText(fourDigits.format(rtt));
+ if(rtt2 == 0.0){
+ mainComponent.infoLabelLine2.setText("No Dst
to Src measurement available");
}
+ if(rtt1!=0 && rtt2!=0) {
+ mainComponent.infoLabelLine1.setText("Src to
Dst delay ("+fourDigits.format(rtt1)+"); Dst to Src delay
("+fourDigits.format(rtt2)+")");
+ mainComponent.infoLabelLine2.setText("Total
estimated RTT ("+fourDigits.format(rtt1+rtt2)+")");
+ mainComponent.userRTT.setValue(rtt1+rtt2);
+ }
}
}
-
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTUserData.java
===================================================================
--- branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTUserData.java
2008-11-20 13:32:22 UTC (rev 4699)
+++ branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl/RTTUserData.java
2008-11-21 15:38:04 UTC (rev 4700)
@@ -2,22 +2,39 @@
import org.perfsonar.perfsonarui.AbstractUserData;
import org.perfsonar.perfsonarui.plugins.MAEndpoint;
+import org.perfsonar.perfsonarui.plugins.MAEndpointList;
public class RTTUserData extends AbstractUserData {
private static final long serialVersionUID = 6650070627813545094L;
protected String sourceName;
protected String destinationName;
- protected MAEndpoint serviceEndpoint;
public RTTUserData(){
- serviceEndpoint = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+ this.endpoints = new MAEndpointList(){
+ public void add(MAEndpoint endpoint) {
+ list.add(endpoint);
+ endpoint.addObserver(this);
+ setChanged();
+ notifyObservers(endpoint);
+ }
+
+ };
+ MAEndpoint serviceEndpointF = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+ MAEndpoint serviceEndpointB = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+
+ this.endpoints.add(serviceEndpointF);
+ this.endpoints.add(serviceEndpointB);
}
public RTTUserData(String src, String dst){
sourceName = src;
destinationName = dst;
- serviceEndpoint = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+ MAEndpoint serviceEndpointF = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+ MAEndpoint serviceEndpointB = new
MAEndpoint("GEANT,http://radagast.x-win.dfn.de:8090/services/MA/HADES/GEANT,ippm,,ippm_aggregated,ippm_aggregated");
+
+ this.endpoints.add(serviceEndpointF);
+ this.endpoints.add(serviceEndpointB);
}
public String getSourceName() {
@@ -32,11 +49,6 @@
public void setDestinationName(String dst) {
destinationName = dst;
}
- public MAEndpoint getEndpoint() {
- return serviceEndpoint;
- }
- public void setEndpoint(MAEndpoint endpoint) {
- serviceEndpoint = endpoint;
- }
+
}
- perfsonar: r4700 - branches/perfsonarui/src/org/perfsonar/perfsonarui/bwctl, svnlog, 11/21/2008
Archive powered by MHonArc 2.6.16.