diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py index b006a2ae94..30026578b4 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py @@ -796,7 +796,7 @@ class SmartScript(BaseTool.BaseTool): if "A" == status: importance = Priority.PROBLEM elif "R" == status: - importance = Priority.EVENTB + importance = Priority.EVENTA elif "U" == status: importance = Priority.CRITICAL else: diff --git a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationManager.java b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationManager.java index b1b59f8ed8..db9b88d243 100644 --- a/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationManager.java +++ b/cave/com.raytheon.uf.viz.core/src/com/raytheon/uf/viz/core/localization/LocalizationManager.java @@ -129,6 +129,8 @@ public class LocalizationManager implements IPropertyChangeListener { /** The current localization site */ private String currentSite; + + private boolean nationalCenter; private boolean overrideSite; @@ -392,6 +394,12 @@ public class LocalizationManager implements IPropertyChangeListener { .getString("-site").toUpperCase(); this.overrideSite = true; } + + this.nationalCenter = false; + + if (ProgramArguments.getInstance().getString("-nc") != null) { + this.nationalCenter = true; + } } private void checkForServerOverride() { @@ -946,4 +954,8 @@ public class LocalizationManager implements IPropertyChangeListener { public boolean isOverrideSite() { return overrideSite; } + + public boolean isNationalCenter() { + return nationalCenter; + } } diff --git a/cave/com.raytheon.viz.gfe/help/GFEStartup.html b/cave/com.raytheon.viz.gfe/help/GFEStartup.html index a6c0052491..4924da4858 100644 --- a/cave/com.raytheon.viz.gfe/help/GFEStartup.html +++ b/cave/com.raytheon.viz.gfe/help/GFEStartup.html @@ -23,7 +23,7 @@ Table of Contents


cave.sh [-server hostname:port/services] [-mode TEST|PRACTICE|OPERATIONAL] [-site xxx] [-u user] [-component componentName] [-perspective perspecitiveName] [-noredirect] -[-consoleLog]
+[-consoleLog] [-nc TRUE]

@@ -77,6 +77,15 @@ Table of Contents
+ + + + +
Causes the CAVE log to be output to the console for monitoring/debugging.
-ncYESThis option is only used by Service backup. It is used to indicate that the site is + a national center, consequently a non-primary site gets special permission to export + site configuration to the central server via the Service Backup GUI. This option should + be set to 'true', i.e., -nc true. +

diff --git a/cave/com.raytheon.viz.gfe/help/gfeConfig_StartUp.html b/cave/com.raytheon.viz.gfe/help/gfeConfig_StartUp.html index 8e325e6577..c9162f1843 100644 --- a/cave/com.raytheon.viz.gfe/help/gfeConfig_StartUp.html +++ b/cave/com.raytheon.viz.gfe/help/gfeConfig_StartUp.html @@ -159,8 +159,9 @@ This item keyboard shortcuts. You are allowed up to 200 shortcuts.  IMPORTANT:  You should test your shortcuts on your system as many keys are already bound by the system.  For example, F10 is bound -by -some Tk widgets to bring up menus. +by some Tk widgets to bring up menus. Please note that AWIPS2 replaces +the KP_ syntax with the NUMPAD_ syntax, i.e. KP_Add in AWIPS1 becomes +NUMPAD_ADD in AWIPS2.

Each shortcut is defined by a list with entries:

  • Shortcut key
  • State of ShortCut key
  • @@ -198,10 +199,10 @@ Examples:

    ShortCut1 = ["F1", "None", "SmartTool","Assign_Value"]              # F1
    -ShortCut2 = ["KP_Subtract", "None", +ShortCut2 = ["NUMPAD_SUBTRACT", "None", "SmartTool","AdjustValue_Down"] # Keypad -
    -ShortCut3 = ["KP_Add", "None", +ShortCut3 = ["NUMPAD_ADD", "None", "SmartTool","AdjustValue_Up"]        # Keypad +
    ShortCut4 = ["F2", "None", "SmartTool","Smooth"]
    diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/parm/VCParm.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/parm/VCParm.java index df92e266d9..74dae96982 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/parm/VCParm.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/core/parm/VCParm.java @@ -116,7 +116,7 @@ public class VCParm extends VParm implements IParmListChangedListener, Activator .getDefault() .getLog() - .log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, + .log(new Status(IStatus.INFO, Activator.PLUGIN_ID, "Can't get GPI: " + this.mod.getErrorString())); } @@ -470,7 +470,7 @@ public class VCParm extends VParm implements IParmListChangedListener, Activator .getDefault() .getLog() - .log(new Status(IStatus.WARNING, Activator.PLUGIN_ID, + .log(new Status(IStatus.INFO, Activator.PLUGIN_ID, "Error getting dependent WeatherElements: " + this.mod.getErrorString())); } diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ProductAreaComp.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ProductAreaComp.java index 6ba210d317..45e098eef9 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ProductAreaComp.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/ProductAreaComp.java @@ -56,7 +56,8 @@ import com.raytheon.viz.gfe.textformatter.TextProductManager; * 2 SEP 2011 10654 gzhou Delete running/pending task and close tab. * 23 MAY 2012 14859 ryu Select VTEC formatting in practice mode * based on VTECMessageType setting. - * 10 AUG 2012 15178 mli Add autoWrite and autoStore capability + * 10 AUG 2012 15178 mli Add autoWrite and autoStore capability + * 26 SEP 2012 15423 ryu Fix product correction in practice mode * * * @@ -432,8 +433,11 @@ public class ProductAreaComp extends Composite implements int pracType = 0; if (practiceMode) { - String pil = (String) textProductMgr.getProductDefinition(productName) - .get("pil"); + String pil = null; + if (textProductMgr.getProductDefinition(productName) != null) { + pil = (String) textProductMgr.getProductDefinition(productName) + .get("pil"); + } if (pil != null) { String vtecMode = textProductMgr.getVtecMessageType( pil.substring(0, 3)); @@ -643,7 +647,7 @@ public class ProductAreaComp extends Composite implements if (productText != null) { productEditorComp.retrieveActiveVTEC(); productEditorComp.setProductText(productText); - + // handle autoWrite and autoStore... productEditorComp.doAutoStuff(); } diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java index 3faab1f87f..ee6beeec5f 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java @@ -1,19 +1,19 @@ /** * 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. **/ @@ -67,7 +67,7 @@ import com.raytheon.viz.gfe.textformatter.TextFmtParserUtil; /** * Composite containing the product editor. - * + * *

      * SOFTWARE HISTORY
      * Date         Ticket#    Engineer    Description
    @@ -75,12 +75,13 @@ import com.raytheon.viz.gfe.textformatter.TextFmtParserUtil;
      * 05 Jan 2008  1784       lvenable    Initial creation
      * 19 Feb 2010  4132       ryu         Product correction.
      * 30 Jul 2010  6719       jnjanga     Placed cursor at the end of inserted CTA
    - * 
    + * 26 Sep 2012  15423      ryu         Avoid resetting text when possible.
    + *
      * 
    - * + * * @author lvenable * @version 1.0 - * + * */ public class StyledTextComp extends Composite { private static final transient IUFStatusHandler statusHandler = UFStatus @@ -179,7 +180,7 @@ public class StyledTextComp extends Composite { /** * Constructor. - * + * * @param parent * Parent composite. */ @@ -297,7 +298,7 @@ public class StyledTextComp extends Composite { /** * Get the StyledText editor. - * + * * @return The StyledText editor. */ public StyledText getTextEditorST() { @@ -306,7 +307,7 @@ public class StyledTextComp extends Composite { /** * Set the product text. - * + * * @param text * The product text. */ @@ -324,7 +325,7 @@ public class StyledTextComp extends Composite { /** * computes the logical caret offset within the ProductEditor as a result of * the CTA insert. - * + * * @param newProductText * The new product text */ @@ -483,7 +484,7 @@ public class StyledTextComp extends Composite { /** * Parse the product text string. - * + * * @param productText */ private void parseProductText(String productText) { @@ -669,7 +670,7 @@ public class StyledTextComp extends Composite { /** * Handle the verify key event. This event fires after a change has been * made to the control (after the text has been updated, for example) - * + * * @param event * Verify event that was fired. */ @@ -765,7 +766,7 @@ public class StyledTextComp extends Composite { /** * Handle the key event when a key is released. - * + * * @param ke * Key event. */ @@ -787,7 +788,7 @@ public class StyledTextComp extends Composite { /** * Check if there is selected text and if there is locked text in the * selected text. - * + * * @return True if there is selected text that contains locked text. */ private boolean selectionHasLockedText() { @@ -801,12 +802,12 @@ public class StyledTextComp extends Composite { /** * Check if there is locked text in the specified range of text. - * + * * @param offset * The starting point of the locked text search. * @param length * The length of the search. - * + * * @return Whether or not there is text in the range that contains locked * text. */ @@ -824,7 +825,7 @@ public class StyledTextComp extends Composite { /** * Select the framing code and the text contained in the framing code. - * + * * @param sr * StyleRange. */ @@ -836,7 +837,7 @@ public class StyledTextComp extends Composite { /** * Check if the key being pressed is a "non-edit" key. - * + * * @param event * Verify event. * @return True if the key is an arrow or "non-edit" key. @@ -870,7 +871,7 @@ public class StyledTextComp extends Composite { /** * Handle the mouse down event. - * + * * @param e * Event fired. */ @@ -905,7 +906,7 @@ public class StyledTextComp extends Composite { /** * Handle the mouse up event - * + * * @param e * Event fired. */ @@ -1012,7 +1013,7 @@ public class StyledTextComp extends Composite { /** * Checks if the system is editing, e.g. updating the issue time every * minute, vs a user typing text in the text area - * + * * @return */ private boolean isSystemTextChange() { @@ -1036,7 +1037,18 @@ public class StyledTextComp extends Composite { dirty = false; } + protected boolean isUpperCase(final String word) { + for (int index= word.length() - 1; index >= 0; index--) { + if (Character.isLowerCase(word.charAt(index))) + return false; + } + return true; + } + protected void upper() { + String text = textEditorST.getText(); + if (isUpperCase(text)) + return; int topIdx = textEditorST.getTopIndex(); setProductText(textEditorST.getText().toUpperCase()); textEditorST.setTopIndex(topIdx); @@ -1152,7 +1164,7 @@ public class StyledTextComp extends Composite { /** * Getter for the column at which wrap and auto-wrap will wrap the text. - * + * * @return the column number */ public int getWrapColumn() { @@ -1161,7 +1173,7 @@ public class StyledTextComp extends Composite { /** * Getter for the column at which wrap and auto-wrap will wrap the text. - * + * * @param wrapColumn * the column number */ @@ -1200,7 +1212,7 @@ public class StyledTextComp extends Composite { /** * Query the prefs for setting. If it does not exist, use colorDft as its * value. Create an SWT Color for display from the value and return it. - * + * * @param prefs * A preference store which might have config values. * @param display @@ -1223,7 +1235,7 @@ public class StyledTextComp extends Composite { /** * Send a PROBLEM message if color1 is exactly equal to color2. - * + * * @param color1 * the first color * @param color2 @@ -1250,7 +1262,7 @@ public class StyledTextComp extends Composite { *

    * The getter name is different to avoid confusion with the getFgColor() * method of Control. - * + * * @return the foreground Color */ public Color getFgndColor() { @@ -1261,7 +1273,7 @@ public class StyledTextComp extends Composite { * Get the framed text color of the StyledTextComp. This is the actual * color, not a copy. It will be disposed when the StyledTextComp is, and * should not be disposed before then. - * + * * @return the frameColor */ public Color getFrameColor() { @@ -1272,7 +1284,7 @@ public class StyledTextComp extends Composite { * Get the insert color of the StyledTextComp. This is the actual color, not * a copy. It will be disposed when the StyledTextComp is, and should not be * disposed before then. - * + * * @return the insertColor */ public Color getInsertColor() { @@ -1283,7 +1295,7 @@ public class StyledTextComp extends Composite { * Get the locked text color of the StyledTextComp. This is the actual * color, not a copy. It will be disposed when the StyledTextComp is, and * should not be disposed before then. - * + * * @return the lockColor */ public Color getLockColor() { @@ -1293,7 +1305,7 @@ public class StyledTextComp extends Composite { /** * Word wrap the text in the block around cursorIndex. Adjust the cursor * position to account for inserted or deleted whitespace. - * + * * @param st * The StyledText in which word wrap is to be performed * @param cursorIndex diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/sbu/ServiceBackupDlg.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/sbu/ServiceBackupDlg.java index 1a1bb92776..34cbf3c6e8 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/sbu/ServiceBackupDlg.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/sbu/ServiceBackupDlg.java @@ -1198,7 +1198,7 @@ public class ServiceBackupDlg extends CaveJFACEDialog { + UserController.getUserObject().uniqueId()); } - if (!runningAsPrimary) { + if ((!runningAsPrimary) && (!LocalizationManager.getInstance().isNationalCenter())) { doExCon.setEnabled(false); } } diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/makehazard/MakeHazardDialog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/makehazard/MakeHazardDialog.java index 9a46a21412..650fd16c55 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/makehazard/MakeHazardDialog.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/makehazard/MakeHazardDialog.java @@ -29,6 +29,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.TimeZone; @@ -226,6 +227,8 @@ public class MakeHazardDialog extends CaveSWTDialog implements private boolean running; + private org.eclipse.swt.widgets.List hazardGroupList; + public MakeHazardDialog(Shell parent, DataManager dataManager, String colorName, int defaultMapWidth, int timeScaleEndTime, float areaThreshold, String defaultHazardType, @@ -1014,9 +1017,8 @@ public class MakeHazardDialog extends CaveSWTDialog implements } }; - org.eclipse.swt.widgets.List hazardGroupList = new org.eclipse.swt.widgets.List( - hazardTypeGroup, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL - | SWT.SINGLE); + hazardGroupList = new org.eclipse.swt.widgets.List(hazardTypeGroup, + SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE); gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false); gd.heightHint = hazardGroupList.getItemHeight() * 12 + hazardGroupList.getBorderWidth(); @@ -1334,6 +1336,7 @@ public class MakeHazardDialog extends CaveSWTDialog implements * the hazard type to select. */ public void setHazardType(String hazardType) { + hazardGroupList.setSelection(hazardGroupList.indexOf(hazardType)); updateSelectedHazardList(hazardType); if (this.localEffectAreas.containsKey(hazardType)) { @@ -1362,7 +1365,14 @@ public class MakeHazardDialog extends CaveSWTDialog implements leGroup.setVisible(false); ((GridData) leGroup.getLayoutData()).exclude = true; this.hazLocalEffect = "None"; - this.etnSegNumberField.setText(""); + String s = etnSegNumberField.getText(); + for (Entry> entry : localAreaData.entrySet()) { + if (s.equals(entry.getValue().get(0))) { + this.etnSegNumberField.setText(""); + this.etnSegNumberField.setSelection(0); + break; + } + } } } @@ -1391,9 +1401,9 @@ public class MakeHazardDialog extends CaveSWTDialog implements } } - private void hazardLocalEffectSelected(String s) { - this.hazLocalEffect = s; - List laData = this.localAreaData.get(s); + private void hazardLocalEffectSelected(String le) { + this.hazLocalEffect = le; + List laData = this.localAreaData.get(le); if (laData != null) { // get the segment number Integer segment = (Integer) laData.get(0); @@ -1403,8 +1413,15 @@ public class MakeHazardDialog extends CaveSWTDialog implements this.etnSegNumberField.setSelection(segText.length()); } else { - this.etnSegNumberField.setText(""); - this.etnSegNumberField.setSelection(0); + String s = etnSegNumberField.getText(); + for (Entry> entry : localAreaData + .entrySet()) { + if (s.equals(entry.getValue().get(0))) { + this.etnSegNumberField.setText(""); + this.etnSegNumberField.setSelection(0); + break; + } + } } @SuppressWarnings("unchecked") diff --git a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDlg.java b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDlg.java index 41f006e709..5295306dc0 100644 --- a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDlg.java +++ b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDlg.java @@ -115,7 +115,9 @@ import com.raytheon.viz.hydrocommon.util.StnClassSyncUtil; * 23 Jul 2012 15195 mpduff Fix Group graphing to use the date widgets. * 08 Aug 2012 570 mpduff Fix a Ctrl-F in Station list causing IndexOutOfBounds error. * 08 Aug 2012 657 mpduff Fix error when selecting a TS while no selection has been made - * in the Station List. + * in the Station List. + * 27 Sep 2012 15302 wkwock TimeSeries start mode should depends on token timeseries_mode + * despite start up in CAVE or standalone. * * * @author lvenable @@ -675,10 +677,6 @@ public class TimeSeriesDlg extends CaveHydroSWTDialog { openTimeSeriesDisplays = false; } - if (this.standaloneMode) { - this.updateInterfaceForStandalone(); - } - AbstractVizResource rsc = HydroDisplayManager.getInstance().getDisplayedResource(); if (rsc instanceof MultiPointResource) { ((MultiPointResource) rsc).setTs(this); @@ -2281,20 +2279,6 @@ public class TimeSeriesDlg extends CaveHydroSWTDialog { } } - /** - * Change the selected mode to group selection mode and display the groups - * in the user-defined group configuration file. - */ - private void updateInterfaceForStandalone() { - this.modeCbo.select(0); - this.prevModeIdx = 0; - stackLayout.topControl = groupGroup; - stackComp.layout(); - stnLayoutDisplayed = false; - - this.populateGroupListForStandalone(); - } - /** * Validate the user's selections. * diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/PrecipUtil.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/PrecipUtil.java index 845ca39b1b..ab2821aa2a 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/PrecipUtil.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/PrecipUtil.java @@ -50,6 +50,7 @@ import com.raytheon.viz.hydrocommon.HydroConstants; * Nov 4, 2008 1662 grichard Initial creation. * 11/19/2008 1662 grichard Updated loadPeRaw. * 11/24/2008 1662 grichard Added utility methods for raw precip. + * 09/26/2012 15385 lbousaidi fixed duplicate entries in gage table. * * * @author grichard @@ -188,8 +189,8 @@ public final class PrecipUtil { */ public static final String SUM_PC_REPORTS = "sum_pc_reports"; - static { - sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + static { + sdf = new SimpleDateFormat("yyyy-MM-dd"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); } @@ -1553,10 +1554,18 @@ public final class PrecipUtil { Calendar pTm = null; pTm = Calendar.getInstance(TimeZone.getTimeZone("GMT")); pTm.setTime(query_begin_time); - if (pTm.get(Calendar.HOUR_OF_DAY) == 0) { - pTm.add(Calendar.HOUR_OF_DAY, -1); + pTm.add(Calendar.DAY_OF_MONTH, -1); } + /* Need to convert the query begin and end times into dates. */ + String beginstr = sdf.format(pTm.getTime()); + + pTm.setTime(query_end_time); + if (pTm.get(Calendar.HOUR_OF_DAY) == 0) { + pTm.add(Calendar.DAY_OF_MONTH, -1); + } + + String endstr = sdf.format(pTm.getTime()); /* consider according to whether type-source specified. */ /* load data which is not missing value (-9999.0) */ @@ -1572,15 +1581,12 @@ public final class PrecipUtil { where.append(" AND "); } - /* Need to convert the query begin and end times into dates. */ - String beginstr = sdf.format(pTm.getTime()); - String endstr = sdf.format(query_end_time); - + where.append("id.obsdate between '"); where.append(beginstr); where.append("' AND '"); where.append(endstr); - where.append("' ORDER BY id.lid ASC, id.ts ASC, id.obsdate ASC"); + where.append("' ORDER BY id.lid ASC, id.ts ASC, id.obsdate ASC"); return where.toString(); } diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java index 2c43a1805b..2e35a544c0 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/src/com/raytheon/edex/plugin/gfe/textproducts/CombinationsFileMaker.java @@ -108,7 +108,7 @@ public class CombinationsFileMaker { String definitionDir = pathMgr .getLocalizationFile(caveStaticConfig, - GfePyIncludeUtil.TEXT_PRODUCTS).getFile().getPath(); + GfePyIncludeUtil.REGULAR).getFile().getPath(); File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig, FileUtil.join("gfe", "combinations")).getFile(); outputDirFile.mkdir(); diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py index 7f74d2db32..b3cb2c73c4 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py @@ -1529,7 +1529,7 @@ def executeIfpNetCDF(host, port, outputFilename, parmList, databaseID, startTime we = db.getItem(p) #determine inventory that we want to keep - weInv = determineSamplingValues(samplingDef, p, we.getKeys(), start) + weInv = determineSamplingValues(samplingDef, p, we.getKeys(), time.time()) gridType = str(we.getGpi().getGridType()) if gridType == "SCALAR": diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/alarms/ReportWriter.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/alarms/ReportWriter.java index d80891d918..07bb787246 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/alarms/ReportWriter.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/alarms/ReportWriter.java @@ -1090,7 +1090,7 @@ class ReportWriter { */ private void flushDataLimitsObj(Datalimits limits) { try { - Class cls = Class.forName("com.raytheon.edex.plugin.shef.objects.Datalimits"); + Class cls = Class.forName("com.raytheon.uf.common.dataplugin.shef.tables.Datalimits"); Method methodlist[]= cls.getDeclaredMethods(); for(Method method : methodlist) { if((method.getName().startsWith("set") && !method.getName().contains("Id")) diff --git a/edexOsgi/com.raytheon.edex.rpgenvdata/build.properties b/edexOsgi/com.raytheon.edex.rpgenvdata/build.properties index 0e9a3d51b2..5791d48d5f 100644 --- a/edexOsgi/com.raytheon.edex.rpgenvdata/build.properties +++ b/edexOsgi/com.raytheon.edex.rpgenvdata/build.properties @@ -2,4 +2,4 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ - res/spring/rpgenvdata-request.xml + res/ diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPDataContainer.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPDataContainer.java index 51fdd5e2cf..8d8219a85f 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPDataContainer.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPDataContainer.java @@ -42,7 +42,7 @@ import com.raytheon.uf.common.status.UFStatus; * ------------ ---------- ----------- -------------------------- * 03/31/11 5489 D. Hladky Initial release * 07/31/12 578 D.Hladky finished it - * + * 09/27/12 DR 15471 G.Zhang Fixed ConcurrentModificationException * * * @author dhladky @@ -54,8 +54,10 @@ public class FFMPDataContainer { private static final transient IUFStatusHandler statusHandler = UFStatus .getHandler(FFMPDataContainer.class); - private HashMap basinDataMap = new HashMap(); - + private java.util.concurrent.ConcurrentHashMap basinDataMap + = new java.util.concurrent.ConcurrentHashMap();//DR 15471 + //private HashMap basinDataMap = new HashMap(); + private String sourceName = null; private String filePath = null; diff --git a/edexOsgi/com.raytheon.uf.tools.cli/impl/importAdaptivePlot.py b/edexOsgi/com.raytheon.uf.tools.cli/impl/importAdaptivePlot.py index 88a8a94533..9d7f146bff 100755 --- a/edexOsgi/com.raytheon.uf.tools.cli/impl/importAdaptivePlot.py +++ b/edexOsgi/com.raytheon.uf.tools.cli/impl/importAdaptivePlot.py @@ -24,6 +24,7 @@ XML_TEMPLATE = "" import sys import os.path +import shutil class MainData: def __init__(self, file=None, prefix=None, descriptiveName=None, server='localhost:9581/services'): @@ -89,6 +90,15 @@ if name is None: print 'Parsing file,', file fileName = os.path.split(file)[1] +if fileName == "spotters.dat": + workFile = "/tmp/spotters.dat" + shutil.copy(file, workFile) + os.system("sed -i -e 's/spotterName/spottersName/g' /tmp/spotters.dat") + os.system("sed -i -e 's/spotterAddr/spottersAddr/g' /tmp/spotters.dat") + os.system("sed -i -e 's/spotterCity/spottersCity/g' /tmp/spotters.dat") + os.system("sed -i -e 's/spotterPhone/spottersPhone/g' /tmp/spotters.dat") + file = workFile + if exportFileName is None: exportFileName = fileName idx = exportFileName.rfind('.') @@ -108,4 +118,7 @@ request.setFileContents(open(file,"r").read()) client.sendRequest(request) +if fileName == "spotters.dat": + os.system("rm /tmp/spotters.dat") + print 'plots uploaded to server' diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite.servicebackup/svcBackup/ServiceBackup/scripts/export_grids b/edexOsgi/com.raytheon.uf.tools.gfesuite.servicebackup/svcBackup/ServiceBackup/scripts/export_grids index bd6b4b1ca9..b8c878c9b3 100644 --- a/edexOsgi/com.raytheon.uf.tools.gfesuite.servicebackup/svcBackup/ServiceBackup/scripts/export_grids +++ b/edexOsgi/com.raytheon.uf.tools.gfesuite.servicebackup/svcBackup/ServiceBackup/scripts/export_grids @@ -101,6 +101,8 @@ perform_export() { # For this, we'll read from a flat file in ${IFPS_DATA} that will contain list of element a site wants to include. # We'll also check if the site has $SVCBU_TRIM_ELEMS variable set to 1. We will only do wx element trimming if this variable is set to 1. # Otherwise, we'll continue to send all grids. + NETCDF_SUCCESS=1 + if [ "${SVCBU_TRIM_ELEMS}" != "" -a "${SVCBU_TRIM_ELEMS}" = "1" ] then # Check if we have the file that has list of elements to trim for. @@ -119,7 +121,11 @@ perform_export() { $LOGGER "ifpnetCDF failed. Export exits." rm -f ${lockFile} $LOGGER 100 - exit 1 + NETCDF_SUCCESS=0 + if [ $NATIONAL_CENTER != 1 ] && [ "$1" != "-c" ] + then + exit 1 + fi fi else $LOGGER "export_grids was not able to find ${IFPS_DATA}/svcbu_export_elements.${SITE} file." @@ -133,7 +139,11 @@ perform_export() { $LOGGER "ifpnetCDF failed. Export exits." rm -f ${lockFile} $LOGGER 100 - exit 1 + NETCDF_SUCCESS=0 + if [ $NATIONAL_CENTER != 1 ] && [ "$1" != "-c" ] + then + exit 1 + fi fi fi else @@ -146,12 +156,19 @@ perform_export() { $LOGGER ifpnetCDF failed. rm -f ${lockFile} $LOGGER 100 - exit 1 + NETCDF_SUCCESS=0 + if [ $NATIONAL_CENTER != 1 ] && [ "$1" != "-c" ] + then + exit 1 + fi fi fi - $LOGGER "Copying ${NETCDF_TMP_PATH}/${SITE}Grd.netcdf to ${NETCDF_PATH}/${SITE}Grd.netcdf" - cp ${NETCDF_TMP_PATH}/${SITE}Grd.netcdf ${NETCDF_PATH}/${SITE}Grd.netcdf + if [ $NETCDF_SUCCESS = 1 ] + then + $LOGGER "Copying ${NETCDF_TMP_PATH}/${SITE}Grd.netcdf to ${NETCDF_PATH}/${SITE}Grd.netcdf" + cp ${NETCDF_TMP_PATH}/${SITE}Grd.netcdf ${NETCDF_PATH}/${SITE}Grd.netcdf + fi if [ -f ${NETCDF_TMP_PATH}/${SITE}Grd.netcdf ] then @@ -173,15 +190,17 @@ elif [ $EXPORT_GRID = 2 ] && [ "$1" = "-c" ] then log_msg "export_grids cron disabled" exit 1 -elif [ $EXPORT_GRID = 1 ] && [ $NATIONAL_CENTER = 1 ] # DR14464 changes - loop through active sites +elif [ $NATIONAL_CENTER = 1 ] && [ "$1" = "-c" ] # DR14464 changes - loop through active sites then - log_msg "You are configured as a national center. Will use active sites list for site id generation." - work_site=`echo ${2} | tr [a-z] [A-Z]` - site_list=( `cat $LOCALIZATION_PATH/edex_static/site/$work_site/config/activeSites.txt` ) + log_msg "You are configured as $AW_SITE_IDENTIFIER. Will use activeSites.txt for site id info." + site_list=( `cat $LOCALIZATION_PATH/edex_static/site/$AW_SITE_IDENTIFIER/config/activeSites.txt` ) for site in "${site_list[@]}" do - log_msg "Processing $site" - perform_export ${site} + if [ $site != $AW_SITE_IDENTIFIER ] + then + log_msg "Processing $site" + perform_export ${site} + fi done else # this processes non-national centers the old way using AW_SITE_IDENTIFIER if run by cron log_msg "Processing $2" diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpBreakAllLocks/ifpBreakAllLocks.py b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpBreakAllLocks/ifpBreakAllLocks.py index 4a0338ade4..cc0c03ac93 100755 --- a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpBreakAllLocks/ifpBreakAllLocks.py +++ b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpBreakAllLocks/ifpBreakAllLocks.py @@ -20,11 +20,11 @@ from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetOfficialDbNameRequest from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetLockTablesRequest -from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import GetActiveSitesRequest from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import LockChangeRequest from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.request import LockTableRequest from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.server.request import LockRequest from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.db.objects import DatabaseID +from dynamicserialize.dstypes.com.raytheon.uf.common.site.requests import GetActiveSitesRequest from dynamicserialize.dstypes.com.raytheon.uf.common.time import TimeRange from dynamicserialize.dstypes.com.raytheon.uf.common.message import WsId from dynamicserialize import DynamicSerializationManager @@ -106,21 +106,23 @@ def logError(msg): logging.getLogger("ifpBreakAllLocks.py").error(msg) def validateSiteId(siteId, thriftClient): - sitesResp = thriftClient.sendRequest(GetActiveSitesRequest()) - if not sitesResp.isOkay(): - logError("Unable to validate siteId") + try: + sites = thriftClient.sendRequest(GetActiveSitesRequest()) + except Exception, e: + logError("Unable to validate siteId: \n %s" % str(e)) sys.exit(1) - sites = sitesResp.getPayload() + if not siteId in sites: logError('Invalid or not installed siteID: "%s"' % siteId) sys.exit(1) def findSiteID(thriftClient): - sitesResp = thriftClient.sendRequest(GetActiveSitesRequest()) - if not sitesResp.isOkay(): - logError("Unable to obtain siteId") + try: + sites = thriftClient.sendRequest(GetActiveSitesRequest()) + except Exception, e: + logError("Unable to obtain siteId: \n %s" % str(e)) sys.exit(1) - sites = sitesResp.getPayload() + if len(sites) > 1 : s = [] while len(sites) > 0 : s.append(sites.pop()) @@ -243,4 +245,4 @@ def getOfficialDbNamesRequest(siteID): if __name__ == '__main__': main() - \ No newline at end of file + diff --git a/rpms/common/yum/arch.x86/comps.xml b/rpms/common/yum/arch.x86/comps.xml index 6a6139165a..8b29358602 100644 --- a/rpms/common/yum/arch.x86/comps.xml +++ b/rpms/common/yum/arch.x86/comps.xml @@ -56,7 +56,6 @@ awips2-data.gfe awips2-aviation-shared - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -75,11 +74,13 @@ awips2-python-werkzeug awips2-python-pygtk awips2-python-pycairo + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment - awips2-data.gfe - + awips2-wes2bridge AWIPS II Wes2Bridge @@ -116,7 +117,6 @@ awips2-data.hdf5-gfe.climo awips2-aviation-shared - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -152,6 +152,7 @@ awips2-psql awips2-cave awips2-cave-etc + awips2-cave-viz-alertviz-localization awips2-cave-viz-avnfps awips2-cave-viz-common-core awips2-cave-viz-core @@ -185,13 +186,13 @@ awips2-cave-viz-thinclient awips2-cave-viz-npp awips2-cave-viz-collaboration + awips2-cave-viz-kml-export awips2-gfesuite-client awips2-alertviz awips2-cli awips2-notification - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -210,6 +211,10 @@ awips2-python-werkzeug awips2-python-pygtk awips2-python-pycairo + awips2-python-jimporter + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment @@ -256,7 +261,6 @@ awips2-tools awips2-aviation-shared - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -275,6 +279,9 @@ awips2-python-werkzeug awips2-python-pygtk awips2-python-pycairo + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment awips2-data.gfe @@ -304,7 +311,6 @@ awips2-data.hdf5-topo awips2-data.hdf5-gfe.climo - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -321,6 +327,9 @@ awips2-python-tpg awips2-python-ufpy awips2-python-werkzeug + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment @@ -344,7 +353,6 @@ awips2-httpd-pypies awips2-pypies - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -361,6 +369,9 @@ awips2-python-tpg awips2-python-ufpy awips2-python-werkzeug + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment @@ -379,7 +390,6 @@ awips2-qpid-server awips2-qpid-server-store - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -396,6 +406,9 @@ awips2-python-tpg awips2-python-ufpy awips2-python-werkzeug + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment @@ -414,7 +427,6 @@ awips2-ldm awips2-cli - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -431,6 +443,9 @@ awips2-python-tpg awips2-python-ufpy awips2-python-werkzeug + netcdf + netcdf-devel + netcdf-AWIPS awips2-localapps-environment @@ -451,7 +466,6 @@ awips2-notification awips2-tools - awips2-python-cherrypy awips2-python-dynamicserialize awips2-python-h5py awips2-python-matplotlib @@ -469,10 +483,14 @@ awips2-python-ufpy awips2-python-werkzeug awips2-python-pygtk - awips2-python-pycairo + awips2-python-pycairo + netcdf + netcdf-devel + netcdf-AWIPS awips2-cave awips2-cave-etc + awips2-cave-viz-alertviz-localization awips2-cave-viz-avnfps awips2-cave-viz-common-core awips2-cave-viz-core @@ -506,6 +524,7 @@ awips2-cave-viz-thinclient awips2-cave-viz-npp awips2-cave-viz-collaboration + awips2-cave-viz-kml-export awips2-localapps-environment diff --git a/rpms/python.site-packages/Installer.qpid/component.spec b/rpms/python.site-packages/Installer.qpid/component.spec index d5eadeb037..8134028d6d 100644 --- a/rpms/python.site-packages/Installer.qpid/component.spec +++ b/rpms/python.site-packages/Installer.qpid/component.spec @@ -8,7 +8,7 @@ Name: awips2-python-qpid Summary: AWIPS II Python qpid Distribution Version: 0.6 -Release: 5 +Release: 6 Group: AWIPSII BuildRoot: %{_build_root} BuildArch: %{_build_arch} @@ -59,6 +59,7 @@ popd > /dev/null QPID_SRC_DIR="%{_python_pkgs_dir}/qpid" QPID_SRC="qpid-0.6/python" QPID_SPECS="qpid-0.6/specs" +QPID_STAT_SCRIPT="qpid-stat" QPID_QUEUE_COUNT_SCRIPT="qpid-queue-count" QPID_MONITOR_SCRIPT="monitor_qpid_host.sh" @@ -74,11 +75,15 @@ if [ ${RC} -ne 0 ]; then fi popd > /dev/null +# Copy the stats script to bin +cp -v ${QPID_SRC_DIR}/bin/${QPID_STAT_SCRIPT} \ + %{_build_root}/awips2/python/bin + # Copy the queue-counting script to bin cp -v ${QPID_SRC_DIR}/bin/${QPID_QUEUE_COUNT_SCRIPT} \ %{_build_root}/awips2/python/bin -# Copy the queue-counting script to bin +# Copy the monitoring script to bin cp -v ${QPID_SRC_DIR}/bin/${QPID_MONITOR_SCRIPT} \ %{_build_root}/awips2/python/bin