Merge "Issue #1655 - Implement the framework for DD system status messaging" into development
Former-commit-id:7ceaed43c3
[formerly 638b708123bb5a89292cc7778ed8211102718d28] Former-commit-id:51a097fb8d
This commit is contained in:
commit
d075546952
19 changed files with 1313 additions and 10 deletions
|
@ -64,6 +64,7 @@ Export-Package: com.raytheon.uf.viz.core,
|
||||||
com.raytheon.uf.viz.core.geom,
|
com.raytheon.uf.viz.core.geom,
|
||||||
com.raytheon.uf.viz.core.globals,
|
com.raytheon.uf.viz.core.globals,
|
||||||
com.raytheon.uf.viz.core.icon,
|
com.raytheon.uf.viz.core.icon,
|
||||||
|
com.raytheon.uf.viz.core.image,
|
||||||
com.raytheon.uf.viz.core.interp,
|
com.raytheon.uf.viz.core.interp,
|
||||||
com.raytheon.uf.viz.core.jobs,
|
com.raytheon.uf.viz.core.jobs,
|
||||||
com.raytheon.uf.viz.core.legend,
|
com.raytheon.uf.viz.core.legend,
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.core.image;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.events.DisposeEvent;
|
||||||
|
import org.eclipse.swt.events.DisposeListener;
|
||||||
|
import org.eclipse.swt.graphics.GC;
|
||||||
|
import org.eclipse.swt.graphics.Image;
|
||||||
|
import org.eclipse.swt.widgets.Display;
|
||||||
|
import org.eclipse.swt.widgets.Shell;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Images for use in Viz Code. These are small circular images.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 17, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class StatusImages {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Status Image enum.
|
||||||
|
*/
|
||||||
|
public enum StatusImage {
|
||||||
|
RED(SWT.COLOR_RED), YELLOW(SWT.COLOR_YELLOW), GREEN(SWT.COLOR_GREEN), UNKNOWN(
|
||||||
|
SWT.COLOR_GRAY);
|
||||||
|
|
||||||
|
private final int colorId;
|
||||||
|
|
||||||
|
StatusImage(int id) {
|
||||||
|
colorId = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getColorId() {
|
||||||
|
return colorId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Array of images */
|
||||||
|
private final Map<StatusImage, Image> statusImages = new HashMap<StatusImage, Image>();
|
||||||
|
|
||||||
|
private final Shell shell;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param shell
|
||||||
|
* The shell these images are associated with.
|
||||||
|
*/
|
||||||
|
public StatusImages(Shell shell) {
|
||||||
|
this.shell = shell;
|
||||||
|
this.shell.addDisposeListener(new DisposeListener() {
|
||||||
|
@Override
|
||||||
|
public void widgetDisposed(DisposeEvent e) {
|
||||||
|
for (StatusImage si : statusImages.keySet()) {
|
||||||
|
statusImages.get(si).dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a status image.
|
||||||
|
*
|
||||||
|
* @param image
|
||||||
|
* The image to get
|
||||||
|
* @param width
|
||||||
|
* image width
|
||||||
|
* @param height
|
||||||
|
* image height
|
||||||
|
* @return The image
|
||||||
|
*/
|
||||||
|
private Image getStatusImage(StatusImage image, int width, int height) {
|
||||||
|
Image img = statusImages.get(image);
|
||||||
|
if (img == null) {
|
||||||
|
img = new Image(Display.getCurrent(), width, height);
|
||||||
|
GC gc = new GC(img);
|
||||||
|
drawCircleImage(gc, width, height, image.getColorId());
|
||||||
|
gc.dispose();
|
||||||
|
statusImages.put(image, img);
|
||||||
|
}
|
||||||
|
|
||||||
|
return img;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a status image 12 x 12 in size.
|
||||||
|
*
|
||||||
|
* @param image
|
||||||
|
* The image to get
|
||||||
|
* @return The image
|
||||||
|
*/
|
||||||
|
public Image getStatusImage(StatusImage image) {
|
||||||
|
return getStatusImage(image, 12, 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draw the circle image.
|
||||||
|
*
|
||||||
|
* @param gc
|
||||||
|
* Graphics context.
|
||||||
|
* @param imgWidth
|
||||||
|
* Image width.
|
||||||
|
* @param imgHeight
|
||||||
|
* Image height.
|
||||||
|
* @param colorId
|
||||||
|
* Color to paint the image.
|
||||||
|
*/
|
||||||
|
private void drawCircleImage(GC gc, int imgWidth, int imgHeight, int colorId) {
|
||||||
|
gc.setAntialias(SWT.ON);
|
||||||
|
|
||||||
|
Display disp = Display.getCurrent();
|
||||||
|
|
||||||
|
gc.setBackground(disp.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
|
||||||
|
|
||||||
|
gc.fillRectangle(0, 0, imgWidth, imgHeight);
|
||||||
|
|
||||||
|
gc.setBackground(disp.getSystemColor(colorId));
|
||||||
|
gc.fillOval(0, 0, imgWidth - 1, imgHeight - 1);
|
||||||
|
|
||||||
|
gc.setBackground(disp.getSystemColor(SWT.COLOR_BLACK));
|
||||||
|
gc.drawOval(0, 0, imgWidth - 1, imgHeight - 1);
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,8 @@ Require-Bundle: org.eclipse.ui,
|
||||||
com.raytheon.uf.common.datadelivery.retrieval;bundle-version="1.0.0",
|
com.raytheon.uf.common.datadelivery.retrieval;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.datadelivery.service;bundle-version="1.0.0",
|
com.raytheon.uf.common.datadelivery.service;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.units;bundle-version="1.0.0",
|
com.raytheon.uf.common.units;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.site;bundle-version="1.12.1174"
|
com.raytheon.uf.common.site;bundle-version="1.12.1174",
|
||||||
|
com.raytheon.uf.common.event;bundle-version="1.0.0"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Export-Package: com.raytheon.uf.viz.datadelivery;uses:="org.eclipse.ui.plugin,org.osgi.framework",
|
Export-Package: com.raytheon.uf.viz.datadelivery;uses:="org.eclipse.ui.plugin,org.osgi.framework",
|
||||||
|
|
|
@ -0,0 +1,260 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.datadelivery.system;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.layout.GridData;
|
||||||
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
|
import org.eclipse.swt.widgets.Composite;
|
||||||
|
import org.eclipse.swt.widgets.Group;
|
||||||
|
import org.eclipse.swt.widgets.Label;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatusDefinition;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusRequest;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusResponse;
|
||||||
|
import com.raytheon.uf.common.datadelivery.request.DataDeliveryConstants;
|
||||||
|
import com.raytheon.uf.common.serialization.comm.RequestRouter;
|
||||||
|
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||||
|
import com.raytheon.uf.common.status.UFStatus;
|
||||||
|
import com.raytheon.uf.viz.core.image.StatusImages;
|
||||||
|
import com.raytheon.uf.viz.core.image.StatusImages.StatusImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data Delivery Status Tab
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 17, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class StatusTab extends SystemTab {
|
||||||
|
private final IUFStatusHandler statusHandler = UFStatus
|
||||||
|
.getHandler(StatusTab.class);
|
||||||
|
|
||||||
|
/** Provider Group */
|
||||||
|
private Composite providerComp;
|
||||||
|
|
||||||
|
/** Registry Group */
|
||||||
|
private Composite registryComp;
|
||||||
|
|
||||||
|
private StatusImages images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param parentComp
|
||||||
|
* The Composite holding these
|
||||||
|
* controlsDataDeliverySystemStatusDefinition
|
||||||
|
*/
|
||||||
|
public StatusTab(Composite parentComp) {
|
||||||
|
super(parentComp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
images = new StatusImages(getParentComp().getShell());
|
||||||
|
|
||||||
|
GridLayout gl = new GridLayout(2, true);
|
||||||
|
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||||
|
gl.marginWidth = 0;
|
||||||
|
|
||||||
|
Composite sysComp = new Composite(parentComp, SWT.NONE);
|
||||||
|
sysComp.setLayout(gl);
|
||||||
|
sysComp.setLayoutData(gd);
|
||||||
|
|
||||||
|
gl = new GridLayout(1, false);
|
||||||
|
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||||
|
Group registryGrp = new Group(sysComp, SWT.NONE);
|
||||||
|
registryGrp.setText(" Registry Status ");
|
||||||
|
registryGrp.setLayout(gl);
|
||||||
|
registryGrp.setLayoutData(gd);
|
||||||
|
|
||||||
|
gl = new GridLayout(1, true);
|
||||||
|
gd = new GridData(SWT.FILL, SWT.DEFAULT, false, false);
|
||||||
|
registryComp = new Composite(registryGrp, SWT.NONE);
|
||||||
|
registryComp.setLayout(gl);
|
||||||
|
registryComp.setLayoutData(gd);
|
||||||
|
|
||||||
|
gl = new GridLayout(1, false);
|
||||||
|
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||||
|
Group providerGroup = new Group(sysComp, SWT.NONE);
|
||||||
|
providerGroup.setText(" Provider Status ");
|
||||||
|
providerGroup.setLayout(gl);
|
||||||
|
providerGroup.setLayoutData(gd);
|
||||||
|
|
||||||
|
gl = new GridLayout(1, true);
|
||||||
|
gd = new GridData(SWT.FILL, SWT.DEFAULT, false, false);
|
||||||
|
providerComp = new Composite(providerGroup, SWT.NONE);
|
||||||
|
providerComp.setLayout(gl);
|
||||||
|
providerComp.setLayoutData(gd);
|
||||||
|
|
||||||
|
// Legend
|
||||||
|
gl = new GridLayout(8, false);
|
||||||
|
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||||
|
Group legendGrp = new Group(parentComp, SWT.NONE);
|
||||||
|
legendGrp.setText(" Legend ");
|
||||||
|
legendGrp.setLayout(gl);
|
||||||
|
legendGrp.setLayoutData(gd);
|
||||||
|
|
||||||
|
Label l = new Label(legendGrp, SWT.NONE);
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.GREEN));
|
||||||
|
|
||||||
|
Label l2 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l2.setText(DataDeliverySystemStatusDefinition.UP.getStatus() + " ");
|
||||||
|
|
||||||
|
Label l3 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l3.setImage(images.getStatusImage(StatusImage.YELLOW));
|
||||||
|
|
||||||
|
Label l4 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l4.setText(DataDeliverySystemStatusDefinition.PROBLEM.getStatus()
|
||||||
|
+ " ");
|
||||||
|
|
||||||
|
Label l5 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l5.setImage(images.getStatusImage(StatusImage.RED));
|
||||||
|
|
||||||
|
Label l6 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l6.setText(DataDeliverySystemStatusDefinition.DOWN.getStatus() + " ");
|
||||||
|
|
||||||
|
Label l7 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l7.setImage(images.getStatusImage(StatusImage.UNKNOWN));
|
||||||
|
|
||||||
|
Label l8 = new Label(legendGrp, SWT.NONE);
|
||||||
|
l8.setText(DataDeliverySystemStatusDefinition.UNKNOWN.getStatus() + "");
|
||||||
|
|
||||||
|
populate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Populate this tab.
|
||||||
|
*/
|
||||||
|
private void populate() {
|
||||||
|
try {
|
||||||
|
SystemStatusResponse response = (SystemStatusResponse) RequestRouter
|
||||||
|
.route(new SystemStatusRequest(),
|
||||||
|
DataDeliveryConstants.DATA_DELIVERY_SERVER);
|
||||||
|
|
||||||
|
SystemStatusData statusData = new SystemStatusData(
|
||||||
|
response.getData());
|
||||||
|
|
||||||
|
for (String systemType : statusData.getSystemTypes()) {
|
||||||
|
if (systemType.equalsIgnoreCase("Provider")) {
|
||||||
|
List<DataDeliverySystemStatus> dataList = statusData
|
||||||
|
.getRecords(systemType);
|
||||||
|
addProviders(dataList);
|
||||||
|
} else if (systemType.equalsIgnoreCase("Registry")) {
|
||||||
|
List<DataDeliverySystemStatus> dataList = statusData
|
||||||
|
.getRecords(systemType);
|
||||||
|
addRegistries(dataList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
statusHandler.error("Error generating Status Data", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Provider status information.
|
||||||
|
*
|
||||||
|
* @param dataList
|
||||||
|
* List of system statuses
|
||||||
|
*/
|
||||||
|
private void addProviders(List<DataDeliverySystemStatus> dataList) {
|
||||||
|
for (DataDeliverySystemStatus status : dataList) {
|
||||||
|
GridLayout gl = new GridLayout(2, false);
|
||||||
|
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||||
|
Composite entryComp = new Composite(providerComp, SWT.NONE);
|
||||||
|
entryComp.setLayout(gl);
|
||||||
|
entryComp.setLayoutData(gd);
|
||||||
|
|
||||||
|
Label l = new Label(entryComp, SWT.NONE);
|
||||||
|
if (DataDeliverySystemStatusDefinition.UP.getStatus().equals(
|
||||||
|
status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.GREEN));
|
||||||
|
} else if (DataDeliverySystemStatusDefinition.PROBLEM.getStatus()
|
||||||
|
.equals(status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.YELLOW));
|
||||||
|
} else if (DataDeliverySystemStatusDefinition.DOWN.getStatus()
|
||||||
|
.equals(status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.RED));
|
||||||
|
} else {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.UNKNOWN));
|
||||||
|
}
|
||||||
|
|
||||||
|
Label nameLbl = new Label(entryComp, SWT.NONE);
|
||||||
|
nameLbl.setText(status.getKey().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Registry status information.
|
||||||
|
*
|
||||||
|
* @param dataList
|
||||||
|
* List of registry statuses
|
||||||
|
*/
|
||||||
|
private void addRegistries(List<DataDeliverySystemStatus> dataList) {
|
||||||
|
for (DataDeliverySystemStatus status : dataList) {
|
||||||
|
GridLayout gl = new GridLayout(2, false);
|
||||||
|
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||||
|
Composite entryComp = new Composite(registryComp, SWT.NONE);
|
||||||
|
entryComp.setLayout(gl);
|
||||||
|
entryComp.setLayoutData(gd);
|
||||||
|
|
||||||
|
Label l = new Label(entryComp, SWT.NONE);
|
||||||
|
if (DataDeliverySystemStatusDefinition.UP.getStatus().equals(
|
||||||
|
status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.GREEN));
|
||||||
|
} else if (DataDeliverySystemStatusDefinition.PROBLEM.getStatus()
|
||||||
|
.equals(status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.YELLOW));
|
||||||
|
} else if (DataDeliverySystemStatusDefinition.DOWN.getStatus()
|
||||||
|
.equals(status.getStatus())) {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.RED));
|
||||||
|
} else {
|
||||||
|
l.setImage(images.getStatusImage(StatusImage.UNKNOWN));
|
||||||
|
}
|
||||||
|
|
||||||
|
Label nameLbl = new Label(entryComp, SWT.NONE);
|
||||||
|
nameLbl.setText(status.getKey().getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getTabText() {
|
||||||
|
return "System Status";
|
||||||
|
}
|
||||||
|
}
|
|
@ -57,6 +57,7 @@ import com.raytheon.viz.ui.presenter.IDisplay;
|
||||||
* Jan 17, 2013 1501 djohnson Close the dialog when force apply occurs,
|
* Jan 17, 2013 1501 djohnson Close the dialog when force apply occurs,
|
||||||
* and check whether changes have already been applied when OK is pressed.
|
* and check whether changes have already been applied when OK is pressed.
|
||||||
* May 17, 2013 2000 djohnson Move bandwidth configuration into its own tab, add subscription overlap rules.
|
* May 17, 2013 2000 djohnson Move bandwidth configuration into its own tab, add subscription overlap rules.
|
||||||
|
* Jul 16, 2013 1655 mpduff Add system status tab.
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -84,6 +85,9 @@ public class SystemManagementDlg extends CaveSWTDialog implements IDisplay,
|
||||||
/** The bandwidth tab */
|
/** The bandwidth tab */
|
||||||
private BandwidthTab bTab;
|
private BandwidthTab bTab;
|
||||||
|
|
||||||
|
/** The status tab */
|
||||||
|
private StatusTab statusTab;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
|
@ -164,6 +168,10 @@ public class SystemManagementDlg extends CaveSWTDialog implements IDisplay,
|
||||||
createTabItem(tabFolder, bTab);
|
createTabItem(tabFolder, bTab);
|
||||||
bTab.init();
|
bTab.init();
|
||||||
|
|
||||||
|
statusTab = new StatusTab(getTabComposite(tabFolder));
|
||||||
|
createTabItem(tabFolder, statusTab);
|
||||||
|
statusTab.init();
|
||||||
|
|
||||||
lTab.loadList();
|
lTab.loadList();
|
||||||
pTab.loadList();
|
pTab.loadList();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,122 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.datadelivery.system;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* System Status Data Object
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class SystemStatusData {
|
||||||
|
/** The Multimap data structure */
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private final Multimap<String, DataDeliverySystemStatus> systemTypesMap = ArrayListMultimap
|
||||||
|
.create();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
|
public SystemStatusData() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param dataRecords
|
||||||
|
* Records to add
|
||||||
|
*/
|
||||||
|
public SystemStatusData(List<DataDeliverySystemStatus> dataRecords) {
|
||||||
|
addRecords(dataRecords);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a list of records.
|
||||||
|
*
|
||||||
|
* @param dataRecords
|
||||||
|
* List of DataDeliverySystemStatus records
|
||||||
|
*/
|
||||||
|
public void addRecords(List<DataDeliverySystemStatus> dataRecords) {
|
||||||
|
for (DataDeliverySystemStatus record : dataRecords) {
|
||||||
|
this.addRecord(record);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a record.
|
||||||
|
*
|
||||||
|
* @param record
|
||||||
|
* The record to add
|
||||||
|
*/
|
||||||
|
public void addRecord(DataDeliverySystemStatus record) {
|
||||||
|
systemTypesMap.put(record.getKey().getSystemType(), record);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the data for the system type provided.
|
||||||
|
*
|
||||||
|
* @param systemType
|
||||||
|
* the system type
|
||||||
|
* @return the data
|
||||||
|
*/
|
||||||
|
public List<DataDeliverySystemStatus> getRecords(String systemType) {
|
||||||
|
return (List<DataDeliverySystemStatus>) systemTypesMap.get(systemType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the different System Types in the data structure
|
||||||
|
*
|
||||||
|
* @return Set of system types
|
||||||
|
*/
|
||||||
|
public Set<String> getSystemTypes() {
|
||||||
|
return systemTypesMap.keySet();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all the records.
|
||||||
|
*
|
||||||
|
* @return Collection of DataDeliverySystemStatus records
|
||||||
|
*/
|
||||||
|
public Collection<DataDeliverySystemStatus> getRecords() {
|
||||||
|
return systemTypesMap.values();
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,8 @@ Bundle-ActivationPolicy: lazy
|
||||||
Bundle-ClassPath: .
|
Bundle-ClassPath: .
|
||||||
Export-Package: com.raytheon.uf.common.datadelivery.event,
|
Export-Package: com.raytheon.uf.common.datadelivery.event,
|
||||||
com.raytheon.uf.common.datadelivery.event.notification,
|
com.raytheon.uf.common.datadelivery.event.notification,
|
||||||
com.raytheon.uf.common.datadelivery.event.retrieval
|
com.raytheon.uf.common.datadelivery.event.retrieval,
|
||||||
|
com.raytheon.uf.common.datadelivery.event.status
|
||||||
Require-Bundle: javax.persistence;bundle-version="1.0.0",
|
Require-Bundle: javax.persistence;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
|
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
|
||||||
com.raytheon.uf.common.dataplugin;bundle-version="1.12.1174",
|
com.raytheon.uf.common.dataplugin;bundle-version="1.12.1174",
|
||||||
|
@ -18,4 +19,5 @@ Require-Bundle: javax.persistence;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
|
com.raytheon.uf.common.serialization.comm;bundle-version="1.12.1174",
|
||||||
com.raytheon.uf.common.time;bundle-version="1.12.1174",
|
com.raytheon.uf.common.time;bundle-version="1.12.1174",
|
||||||
com.raytheon.uf.common.stats;bundle-version="1.0.0",
|
com.raytheon.uf.common.stats;bundle-version="1.0.0",
|
||||||
com.raytheon.uf.common.registry.ebxml;bundle-version="1.0.0"
|
com.raytheon.uf.common.registry.ebxml;bundle-version="1.0.0",
|
||||||
|
com.google.guava;bundle-version="1.0.0"
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
com.raytheon.uf.common.datadelivery.event.notification.NotificationRecord
|
com.raytheon.uf.common.datadelivery.event.notification.NotificationRecord
|
||||||
|
com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus
|
||||||
|
com.raytheon.uf.common.datadelivery.event.status.SystemStatusRequest
|
||||||
|
|
|
@ -0,0 +1,118 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.dataplugin.persist.PersistableDataObject;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data Delivery System Status.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 17, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "DDSystemStatus")
|
||||||
|
@XmlRootElement
|
||||||
|
@XmlAccessorType(XmlAccessType.NONE)
|
||||||
|
@DynamicSerialize
|
||||||
|
public class DataDeliverySystemStatus extends
|
||||||
|
PersistableDataObject<DataDeliverySystemStatusId> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -8864011415705803837L;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
@EmbeddedId
|
||||||
|
private DataDeliverySystemStatusId key;
|
||||||
|
|
||||||
|
@XmlElement
|
||||||
|
@DynamicSerializeElement
|
||||||
|
@Column
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the status
|
||||||
|
*/
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param status
|
||||||
|
* the status to set
|
||||||
|
*/
|
||||||
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the key
|
||||||
|
*/
|
||||||
|
public DataDeliverySystemStatusId getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param key
|
||||||
|
* the key to set
|
||||||
|
*/
|
||||||
|
public void setKey(DataDeliverySystemStatusId key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see java.lang.Object#toString()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder buffer = new StringBuilder();
|
||||||
|
if (identifier != null) {
|
||||||
|
buffer.append("SystemType: ").append(identifier.getSystemType())
|
||||||
|
.append("\n");
|
||||||
|
buffer.append("Name: ").append(identifier.getName())
|
||||||
|
.append("\n");
|
||||||
|
buffer.append("Status: ").append(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data Delivery System Status Definitions.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 17, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public enum DataDeliverySystemStatusDefinition {
|
||||||
|
UP("System Up"), DOWN("System Down"), PROBLEM("Problem"), UNKNOWN(
|
||||||
|
"Status Unknown");
|
||||||
|
|
||||||
|
private final String status;
|
||||||
|
|
||||||
|
DataDeliverySystemStatusDefinition(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,98 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embeddable;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Key for the Data Delivery System Status Table.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jul 3, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Embeddable
|
||||||
|
@DynamicSerialize
|
||||||
|
@XmlRootElement
|
||||||
|
@XmlAccessorType(XmlAccessType.NONE)
|
||||||
|
public class DataDeliverySystemStatusId implements Serializable,
|
||||||
|
ISerializableObject {
|
||||||
|
private static final long serialVersionUID = -6970802086185781078L;
|
||||||
|
|
||||||
|
@XmlElement
|
||||||
|
@DynamicSerializeElement
|
||||||
|
@Column
|
||||||
|
private String systemType;
|
||||||
|
|
||||||
|
@XmlElement
|
||||||
|
@DynamicSerializeElement
|
||||||
|
@Column
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the systemType
|
||||||
|
*/
|
||||||
|
public String getSystemType() {
|
||||||
|
return systemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param systemType
|
||||||
|
* the systemType to set
|
||||||
|
*/
|
||||||
|
public void setSystemType(String systemType) {
|
||||||
|
this.systemType = systemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the name
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name
|
||||||
|
* the name to set
|
||||||
|
*/
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.event.Event;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* System Status Event data object.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class SystemStatusEvent extends Event {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 6304253608858754280L;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String systemType;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private DataDeliverySystemStatusDefinition status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the systemType
|
||||||
|
*/
|
||||||
|
public String getSystemType() {
|
||||||
|
return systemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param systemType
|
||||||
|
* the systemType to set
|
||||||
|
*/
|
||||||
|
public void setSystemType(String systemType) {
|
||||||
|
this.systemType = systemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the name
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param name
|
||||||
|
* the name to set
|
||||||
|
*/
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the status
|
||||||
|
*/
|
||||||
|
public DataDeliverySystemStatusDefinition getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param status
|
||||||
|
* the status to set
|
||||||
|
*/
|
||||||
|
public void setStatus(DataDeliverySystemStatusDefinition status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.comm.IServerRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request object for Data Delivery System Status
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class SystemStatusRequest implements IServerRequest {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.datadelivery.event.status;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The System Status Response object.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class SystemStatusResponse implements ISerializableObject {
|
||||||
|
@DynamicSerializeElement
|
||||||
|
private List<DataDeliverySystemStatus> data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
* The system status data
|
||||||
|
*/
|
||||||
|
public SystemStatusResponse(List<DataDeliverySystemStatus> data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
|
public SystemStatusResponse() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the data
|
||||||
|
*/
|
||||||
|
public List<DataDeliverySystemStatus> getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param data
|
||||||
|
* the data to set
|
||||||
|
*/
|
||||||
|
public void setData(List<DataDeliverySystemStatus> data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a record.
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
* the record to add.
|
||||||
|
*/
|
||||||
|
public void addData(DataDeliverySystemStatus data) {
|
||||||
|
this.data.add(data);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||||
|
|
||||||
|
<bean id="statusDao" class="com.raytheon.uf.edex.datadelivery.event.dao.DataDeliverySystemStatusDao">
|
||||||
|
<property name="sessionFactory" ref="metadataSessionFactory" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="systemStatusHandler" class="com.raytheon.uf.edex.datadelivery.event.handler.SystemStatusRequestHandler" >
|
||||||
|
<property name="statusDao" ref="statusDao" />
|
||||||
|
</bean>
|
||||||
|
<bean factory-bean="handlerRegistry" factory-method="register">
|
||||||
|
<constructor-arg value="com.raytheon.uf.common.datadelivery.event.status.SystemStatusRequest"/>
|
||||||
|
<constructor-arg ref="systemStatusHandler"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="systemStatusEventBusHandler" class="com.raytheon.uf.edex.datadelivery.event.handler.SystemStatusEventBusHandler">
|
||||||
|
<property name="statusDao" ref="statusDao" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean factory-bean="eventBus" factory-method="register">
|
||||||
|
<constructor-arg ref="systemStatusEventBusHandler" />
|
||||||
|
</bean>
|
||||||
|
</beans>
|
|
@ -0,0 +1,53 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.edex.datadelivery.event.dao;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatusId;
|
||||||
|
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||||
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||||
|
import com.raytheon.uf.edex.database.dao.SessionManagedDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data Delivery System Status DAO
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@DynamicSerialize
|
||||||
|
public class DataDeliverySystemStatusDao extends
|
||||||
|
SessionManagedDao<DataDeliverySystemStatusId, DataDeliverySystemStatus>
|
||||||
|
implements ISerializableObject {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<DataDeliverySystemStatus> getEntityClass() {
|
||||||
|
return DataDeliverySystemStatus.class;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.edex.datadelivery.event.handler;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.google.common.eventbus.AllowConcurrentEvents;
|
||||||
|
import com.google.common.eventbus.Subscribe;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatusId;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusEvent;
|
||||||
|
import com.raytheon.uf.edex.datadelivery.event.dao.DataDeliverySystemStatusDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event bus message handler class.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 20, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Transactional
|
||||||
|
public class SystemStatusEventBusHandler {
|
||||||
|
/** The Data Access Object */
|
||||||
|
private DataDeliverySystemStatusDao statusDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets called when Event Bus publishes an event
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
* EventBus's
|
||||||
|
*/
|
||||||
|
@Subscribe
|
||||||
|
@AllowConcurrentEvents
|
||||||
|
public void eventListener(SystemStatusEvent event) {
|
||||||
|
DataDeliverySystemStatus record = new DataDeliverySystemStatus();
|
||||||
|
DataDeliverySystemStatusId id = new DataDeliverySystemStatusId();
|
||||||
|
id.setName(event.getName());
|
||||||
|
record.setStatus(event.getStatus().getStatus());
|
||||||
|
id.setSystemType(event.getSystemType());
|
||||||
|
record.setKey(id);
|
||||||
|
|
||||||
|
statusDao.createOrUpdate(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the statusDao
|
||||||
|
*/
|
||||||
|
public DataDeliverySystemStatusDao getStatusDao() {
|
||||||
|
return statusDao;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param statusDao
|
||||||
|
* the statusDao to set
|
||||||
|
*/
|
||||||
|
public void setStatusDao(DataDeliverySystemStatusDao statusDao) {
|
||||||
|
this.statusDao = statusDao;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.edex.datadelivery.event.handler;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatus;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusRequest;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusResponse;
|
||||||
|
import com.raytheon.uf.common.serialization.comm.IRequestHandler;
|
||||||
|
import com.raytheon.uf.edex.datadelivery.event.dao.DataDeliverySystemStatusDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data Delivery System Status Request Handler
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 18, 2013 1655 mpduff Initial creation.
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mpduff
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class SystemStatusRequestHandler implements
|
||||||
|
IRequestHandler<SystemStatusRequest> {
|
||||||
|
/** System status DAO */
|
||||||
|
private DataDeliverySystemStatusDao statusDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object handleRequest(SystemStatusRequest request) throws Exception {
|
||||||
|
List<DataDeliverySystemStatus> dataRecords = statusDao.getAll();
|
||||||
|
|
||||||
|
return new SystemStatusResponse(dataRecords);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param statusDao
|
||||||
|
* the statusDao to set
|
||||||
|
*/
|
||||||
|
public void setStatusDao(DataDeliverySystemStatusDao statusDao) {
|
||||||
|
this.statusDao = statusDao;
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,10 +23,13 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.DataDeliverySystemStatusDefinition;
|
||||||
|
import com.raytheon.uf.common.datadelivery.event.status.SystemStatusEvent;
|
||||||
import com.raytheon.uf.common.datadelivery.registry.Network;
|
import com.raytheon.uf.common.datadelivery.registry.Network;
|
||||||
import com.raytheon.uf.common.datadelivery.registry.Provider.ServiceType;
|
import com.raytheon.uf.common.datadelivery.registry.Provider.ServiceType;
|
||||||
import com.raytheon.uf.common.datadelivery.retrieval.xml.Retrieval;
|
import com.raytheon.uf.common.datadelivery.retrieval.xml.Retrieval;
|
||||||
import com.raytheon.uf.common.datadelivery.retrieval.xml.RetrievalAttribute;
|
import com.raytheon.uf.common.datadelivery.retrieval.xml.RetrievalAttribute;
|
||||||
|
import com.raytheon.uf.common.event.EventBus;
|
||||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||||
import com.raytheon.uf.common.status.UFStatus;
|
import com.raytheon.uf.common.status.UFStatus;
|
||||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||||
|
@ -54,6 +57,7 @@ import com.raytheon.uf.edex.datadelivery.retrieval.interfaces.IRetrievalResponse
|
||||||
* Feb 07, 2013 1543 djohnson Expose process() for testing.
|
* Feb 07, 2013 1543 djohnson Expose process() for testing.
|
||||||
* Feb 12, 2013 1543 djohnson Retrieval responses are now passed further down the chain.
|
* Feb 12, 2013 1543 djohnson Retrieval responses are now passed further down the chain.
|
||||||
* Feb 15, 2013 1543 djohnson Retrieval responses are now xml.
|
* Feb 15, 2013 1543 djohnson Retrieval responses are now xml.
|
||||||
|
* Jul 16, 2013 1655 mpduff Send a system status event based on the response from the provider.
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -61,8 +65,7 @@ import com.raytheon.uf.edex.datadelivery.retrieval.interfaces.IRetrievalResponse
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class PerformRetrievalsThenReturnFinder implements
|
public class PerformRetrievalsThenReturnFinder implements IRetrievalsFinder {
|
||||||
IRetrievalsFinder {
|
|
||||||
|
|
||||||
private static final IUFStatusHandler statusHandler = UFStatus
|
private static final IUFStatusHandler statusHandler = UFStatus
|
||||||
.getHandler(PerformRetrievalsThenReturnFinder.class);
|
.getHandler(PerformRetrievalsThenReturnFinder.class);
|
||||||
|
@ -86,8 +89,7 @@ public class PerformRetrievalsThenReturnFinder implements
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public RetrievalResponseXml findRetrievals()
|
public RetrievalResponseXml findRetrievals() throws Exception {
|
||||||
throws Exception {
|
|
||||||
RetrievalResponseXml retVal = null;
|
RetrievalResponseXml retVal = null;
|
||||||
|
|
||||||
ITimer timer = TimeUtil.getTimer();
|
ITimer timer = TimeUtil.getTimer();
|
||||||
|
@ -171,8 +173,7 @@ public class PerformRetrievalsThenReturnFinder implements
|
||||||
setCompletionStateFromResponse(requestRecord, response);
|
setCompletionStateFromResponse(requestRecord, response);
|
||||||
|
|
||||||
retrievalAttributePluginDataObjects
|
retrievalAttributePluginDataObjects
|
||||||
.add(new RetrievalResponseWrapper(
|
.add(new RetrievalResponseWrapper(response));
|
||||||
response));
|
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalStateException("No PDO's to store: "
|
throw new IllegalStateException("No PDO's to store: "
|
||||||
+ serviceType + " original: "
|
+ serviceType + " original: "
|
||||||
|
@ -194,6 +195,22 @@ public class PerformRetrievalsThenReturnFinder implements
|
||||||
retrievalPluginDataObject
|
retrievalPluginDataObject
|
||||||
.setSuccess(requestRecord.getState() == State.COMPLETED);
|
.setSuccess(requestRecord.getState() == State.COMPLETED);
|
||||||
|
|
||||||
|
// Create system status event
|
||||||
|
SystemStatusEvent event = new SystemStatusEvent();
|
||||||
|
event.setName(requestRecord.getProvider());
|
||||||
|
event.setSystemType("Provider");
|
||||||
|
if (requestRecord.getState() == State.COMPLETED
|
||||||
|
|| requestRecord.getState() == State.PENDING
|
||||||
|
|| requestRecord.getState() == State.RUNNING) {
|
||||||
|
event.setStatus(DataDeliverySystemStatusDefinition.UP);
|
||||||
|
} else if (requestRecord.getState() == State.FAILED) {
|
||||||
|
event.setStatus(DataDeliverySystemStatusDefinition.DOWN);
|
||||||
|
} else {
|
||||||
|
event.setStatus(DataDeliverySystemStatusDefinition.UNKNOWN);
|
||||||
|
}
|
||||||
|
|
||||||
|
EventBus.publish(event);
|
||||||
|
|
||||||
return retrievalPluginDataObject;
|
return retrievalPluginDataObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue