Merge branch 'master_13.5.2' (13.5.1-18) into omaha_13.5.2
Conflicts: cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/FollowupData.java nativeLib/edexBridge/edexBridge.cpp Former-commit-id:e361386eab
[formerly a3671ea2935178a28dce6d075dc2067a609e6725] Former-commit-id:119af8a466
This commit is contained in:
commit
5b11d137df
8 changed files with 56 additions and 12 deletions
|
@ -42,6 +42,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.common.time.SimulatedTime;
|
||||
import com.raytheon.uf.viz.core.AbstractTimeMatcher;
|
||||
import com.raytheon.uf.viz.core.IDisplayPane;
|
||||
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
|
||||
import com.raytheon.uf.viz.core.VizConstants;
|
||||
import com.raytheon.uf.viz.core.comm.PerspectiveSpecificLoadProperties;
|
||||
|
@ -192,8 +193,10 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
|
|||
@Override
|
||||
public void redoTimeMatching(IDescriptor descriptor) throws VizException {
|
||||
synchronized (this) {
|
||||
if (timeMatchBasis != null && ! validateTimeMatchBasis(descriptor.getResourceList()))
|
||||
timeMatchBasis = null;
|
||||
if (timeMatchBasis != null && timeMatchBasis.getDescriptor() == descriptor &&
|
||||
! validateTimeMatchBasis(descriptor)) {
|
||||
changeTimeMatchBasis(null);
|
||||
}
|
||||
if (timeMatchBasis != null) {
|
||||
IDescriptor tmDescriptor = timeMatchBasis.getDescriptor();
|
||||
if (tmDescriptor != null && tmDescriptor != descriptor) {
|
||||
|
@ -993,6 +996,33 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
|
|||
configFactory.resetMultiload();
|
||||
}
|
||||
|
||||
private boolean validateTimeMatchBasis(IDescriptor descriptor ) {
|
||||
/*
|
||||
* If a resource is shared by multiple panels (this can be the case with
|
||||
* tools, at least), then it is necessary to search all of them as
|
||||
* resource.descriptor() may not contain resource. TODO: Don't allow
|
||||
* this condition to occur?
|
||||
*/
|
||||
IRenderableDisplay display = descriptor.getRenderableDisplay();
|
||||
IDisplayPaneContainer container = display != null ?
|
||||
display.getContainer() : null;
|
||||
if (container != null) {
|
||||
for (IDisplayPane pane : container.getDisplayPanes()) {
|
||||
IRenderableDisplay paneDisplay = pane.getRenderableDisplay();
|
||||
IDescriptor paneDescriptor = paneDisplay != null ?
|
||||
paneDisplay.getDescriptor() : null;
|
||||
if (paneDescriptor != null
|
||||
&& validateTimeMatchBasis(paneDescriptor
|
||||
.getResourceList())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return validateTimeMatchBasis(descriptor.getResourceList());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean validateTimeMatchBasis(ResourceList list) {
|
||||
for (ResourcePair rp : list) {
|
||||
AbstractVizResource<?, ?> rsc = rp.getResource();
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
package com.raytheon.viz.warngen.gui;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.warning.AbstractWarningRecord;
|
||||
import com.raytheon.uf.common.dataplugin.warning.WarningRecord;
|
||||
import com.raytheon.uf.common.dataplugin.warning.WarningRecord.WarningAction;
|
||||
import com.raytheon.uf.common.time.SimulatedTime;
|
||||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
|
||||
|
@ -37,13 +37,14 @@ import com.raytheon.uf.common.time.util.TimeUtil;
|
|||
* May 7, 2013 1973 rferrel Changes to properly display Issue Time.
|
||||
* Jul 22, 2013 2176 jsanchez Added EMER to the display string in the update list.
|
||||
* Aug 7, 2013 2243 jsanchez Set all the attributes of an AbstractWarningRecord and added an expiration string. Removed calendar object.
|
||||
* Aug 15,2013 2243 jsanchez Improved the expiration string off by one minute. Fixed for practice mode.
|
||||
* Aug 15,2013 2243 jsanchez Improved the expiration string off by one minute.
|
||||
* </pre>
|
||||
*
|
||||
* @author rferrel
|
||||
* @version 1.0
|
||||
*/
|
||||
public class FollowupData extends WarningRecord {
|
||||
public class FollowupData extends AbstractWarningRecord {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
@ -64,7 +65,7 @@ public class FollowupData extends WarningRecord {
|
|||
private String expirationString;
|
||||
|
||||
public FollowupData(WarningAction action, AbstractWarningRecord record) {
|
||||
super((WarningRecord) record);
|
||||
super(record);
|
||||
setAct(action.toString());
|
||||
|
||||
displayString = createDisplayString(action, record);
|
||||
|
|
|
@ -1130,7 +1130,7 @@ public class GFEDao extends DefaultPluginDao {
|
|||
DatabaseQuery query = new DatabaseQuery(this.daoClass);
|
||||
query.addQueryParam("parmId.dbId.siteId", dbId.getSiteId(),
|
||||
QueryOperand.EQUALS);
|
||||
query.addQueryParam("parmId.dbId.format", dbId.getFormat(),
|
||||
query.addQueryParam("parmId.dbId.dbType", dbId.getDbType(),
|
||||
QueryOperand.EQUALS);
|
||||
query.addQueryParam("parmId.dbId.modelName", dbId.getModelName(),
|
||||
QueryOperand.EQUALS);
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
# Feb 19, 2013 1636 rferrel Use TimeTools to get file timestamp.
|
||||
# May 07, 2013 1973 rferrel Adjust Issue and Purge times to be relative to start time.
|
||||
# Jun 24, 2013 DR 16317 D. Friedman If no storm line, parse storm motion from event text.
|
||||
# Aug 21, 2013 DR16501 m.gamazaychikov Adjusted calculation of Purge time in NoVTECWarningDecoder.
|
||||
# </pre>
|
||||
#
|
||||
# @author rferrel
|
||||
|
@ -986,7 +987,7 @@ class NoVTECWarningDecoder(StdWarningDecoder):
|
|||
if self._officeFromWMO:
|
||||
template['officeid'] = self._officeFromWMO
|
||||
|
||||
template['purgeTime'] = long(purgeTime * 1000)
|
||||
template['purgeTime'] = long(self._dtgFromDDHHMM(purgeTime, self._issueTime)*1000)
|
||||
template['issueTime'] = long(self._issueTime * 1000)
|
||||
template['state'] = "Decoded"
|
||||
template['xxxid'] = self._completeProductPil[3:]
|
||||
|
|
|
@ -688,7 +688,6 @@ public class FFMPBasinData implements ISerializableObject {
|
|||
* @param times
|
||||
*/
|
||||
public void populate(List<Long> times) {
|
||||
|
||||
if (mapFactory == null) {
|
||||
mapFactory = new BasinMapFactory<Date>(Collections.reverseOrder(),
|
||||
getBasins().size());
|
||||
|
|
|
@ -61,6 +61,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
* Feb 27, 2013 1638 mschenke Cleaned up localization code to fix null pointer
|
||||
* when no distribution files present
|
||||
* Mar 19, 2013 1794 djohnson PatternWrapper is immutable, add toString() to it for debugging.
|
||||
* Aug 19, 2013 2257 bkowal edexBridge to qpid 0.18 upgrade
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -73,6 +74,8 @@ public class DistributionSrv {
|
|||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(DistributionSrv.class);
|
||||
|
||||
private static final String HEADER_QPID_SUBJECT = "qpid.subject";
|
||||
|
||||
private static class PatternWrapper {
|
||||
private final String plugin;
|
||||
|
||||
|
@ -223,7 +226,15 @@ public class DistributionSrv {
|
|||
StringBuilder pluginNames = new StringBuilder();
|
||||
List<String> dest = new ArrayList<String>();
|
||||
Message in = exchange.getIn();
|
||||
String header = (String) in.getHeader("header");
|
||||
// determine if the header is in the qpid subject field?
|
||||
String header = (String) in.getHeader(HEADER_QPID_SUBJECT);
|
||||
if (header != null) {
|
||||
// make the qpid subject the header so that everything downstream
|
||||
// will be able to read it as the header.
|
||||
in.setHeader("header", header);
|
||||
}
|
||||
|
||||
header = (String) in.getHeader("header");
|
||||
Object payload = in.getBody();
|
||||
String bodyString = null;
|
||||
if (payload instanceof byte[]) {
|
||||
|
@ -277,8 +288,8 @@ public class DistributionSrv {
|
|||
throws DistributionException {
|
||||
RequestPatterns patternSet = null;
|
||||
try {
|
||||
patternSet = SerializationUtil
|
||||
.jaxbUnmarshalFromXmlFile(RequestPatterns.class, modelFile.getPath());
|
||||
patternSet = SerializationUtil.jaxbUnmarshalFromXmlFile(
|
||||
RequestPatterns.class, modelFile.getPath());
|
||||
} catch (Exception e) {
|
||||
throw new DistributionException("File "
|
||||
+ modelFile.getAbsolutePath()
|
||||
|
|
|
@ -39,6 +39,7 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Feb 19, 2010 njensen Initial creation
|
||||
* Aug 21, 2013 DR 16521 D. Friedman Ensure endpoint URI is used for cluster entry
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -61,7 +62,7 @@ public class ClusteredQuartzEndpoint extends QuartzEndpoint {
|
|||
@Override
|
||||
public void onJobExecute(final JobExecutionContext jobExecutionContext)
|
||||
throws JobExecutionException {
|
||||
String jName = jobExecutionContext.getJobDetail().getName();
|
||||
String jName = getEndpointUri();
|
||||
long period = Math.abs(jobExecutionContext.getFireTime().getTime()
|
||||
- jobExecutionContext.getNextFireTime().getTime()) / 2;
|
||||
ClusterTask ct = ClusterLockUtils.lock(TASK, jName, period, false);
|
||||
|
|
|
@ -351,6 +351,7 @@ if [ "${1}" = "-viz" ]; then
|
|||
buildRPM "awips2-common-base"
|
||||
buildRPM "awips2-rcm"
|
||||
buildRPM "awips2-hydroapps-shared"
|
||||
buildRPM "awips2-notification"
|
||||
buildCAVE
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
|
|
Loading…
Add table
Reference in a new issue