Merge remote branch 'origin/ncep_14.4.1-n' into ncep_15.1.1-n
Conflicts: cave/build/p2-build.xml cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java edexOsgi/com.raytheon.uf.edex.plugin.npp.viirs/utility/edex_static/base/viirs/viirsHeaderMapping.xml Former-commit-id:c16678bf45
[formerly 3d3cecdeb7bc191fa10e7bcb6e4791cab34daadc] Former-commit-id:48c980abe8
This commit is contained in:
commit
d05d3909f0
24 changed files with 359 additions and 533 deletions
|
@ -253,6 +253,9 @@
|
|||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.acarssounding.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.ncep.npp.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.viz.avnfps.feature" />
|
||||
</antcall>
|
||||
|
|
|
@ -26,3 +26,4 @@ Require-Bundle: com.raytheon.uf.viz.core;bundle-version="1.14.0",
|
|||
Export-Package: com.raytheon.uf.viz.d2d.nsharp,
|
||||
com.raytheon.uf.viz.d2d.nsharp.display,
|
||||
com.raytheon.uf.viz.d2d.nsharp.rsc
|
||||
Import-Package: gov.noaa.nws.ncep.viz.soundingrequest
|
||||
|
|
|
@ -24,6 +24,7 @@ import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
|
|||
import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.view.NsharpHandleArchiveFile;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
|
@ -59,6 +60,9 @@ import com.raytheon.uf.viz.core.exception.VizException;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Aug 31, 2011 bsteffen Initial creation
|
||||
* 2/23/2015 RM#5694,7788 Chin Chen Use NCP's Nsharp text file loader
|
||||
* and comment out openNspFile()
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -114,7 +118,7 @@ public class D2DNsharpHandleArchiveFile {
|
|||
if (isTabular) {
|
||||
openTabularFile(lines);
|
||||
} else {
|
||||
openNspFile(lines);
|
||||
NsharpHandleArchiveFile.nsharpParseAndLoadTextFile(fileName);////Task#5694
|
||||
}
|
||||
} catch (IOException e) {
|
||||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||
|
@ -124,57 +128,57 @@ public class D2DNsharpHandleArchiveFile {
|
|||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void openNspFile(List<String> lines) throws ParseException,
|
||||
VizException {
|
||||
// It would have been great to reuse some ncep code here but the parsing
|
||||
// code is tied to the dialog/loading code.
|
||||
if (lines.size() < 3) {
|
||||
throw new VizException("Unrecognized file format");
|
||||
}
|
||||
NsharpStationInfo stninfo = new NsharpStationInfo();
|
||||
|
||||
// First line is all the metadata
|
||||
String line = lines.remove(0);
|
||||
line = line.replaceAll(" +", " ");
|
||||
String[] values = line.split(" ");
|
||||
if (values.length == 7) {
|
||||
stninfo.setSndType(values[1]);
|
||||
String stationId = values[2];
|
||||
String yearMonthDay = values[3];
|
||||
String hourMinuteSecond = values[4];
|
||||
// looks like "LAT=44.847"
|
||||
String lat = values[5];
|
||||
// looks like "LON=-93.564"
|
||||
String lon = values[6];
|
||||
String dateStr = yearMonthDay + " " + hourMinuteSecond;
|
||||
Date date = ncepDataFormat.parse(dateStr);
|
||||
stninfo.setReftime(new Timestamp(date.getTime()));
|
||||
stninfo.setRangestarttime(new Timestamp(date.getTime()));
|
||||
stninfo.setStnDisplayInfo(stationId + " " + dateStr);
|
||||
lat = lat.replace("LAT=", "");
|
||||
lon = lon.replace("LON=", "");
|
||||
stninfo.setLatitude(Float.parseFloat(lat));
|
||||
stninfo.setLongitude(Float.parseFloat(lon));
|
||||
} else {
|
||||
// TODO it might be possible to look at each token and throw
|
||||
// something together
|
||||
throw new VizException("Unrecognized data headings");
|
||||
}
|
||||
// Second line is the headings
|
||||
String headingLine = lines.remove(0);
|
||||
// The rest of the lines should be data lines.
|
||||
List<String> dataLines = new ArrayList<String>();
|
||||
line = lines.remove(0);
|
||||
while (!lines.isEmpty()) {
|
||||
dataLines.add(line);
|
||||
line = lines.remove(0);
|
||||
}
|
||||
|
||||
List<NcSoundingLayer> layers = parseLayers(headingLine, dataLines);
|
||||
|
||||
load(stninfo, layers);
|
||||
}
|
||||
//Task#5694: openNspFile() is no longer used.
|
||||
// public static void openNspFile(List<String> lines) throws ParseException,
|
||||
// VizException {
|
||||
// // It would have been great to reuse some ncep code here but the parsing
|
||||
// // code is tied to the dialog/loading code.
|
||||
// if (lines.size() < 3) {
|
||||
// throw new VizException("Unrecognized file format");
|
||||
// }
|
||||
// NsharpStationInfo stninfo = new NsharpStationInfo();
|
||||
//
|
||||
// // First line is all the metadata
|
||||
// String line = lines.remove(0);
|
||||
// line = line.replaceAll(" +", " ");
|
||||
// String[] values = line.split(" ");
|
||||
// if (values.length == 7) {
|
||||
// stninfo.setSndType(values[1]);
|
||||
// String stationId = values[2];
|
||||
// String yearMonthDay = values[3];
|
||||
// String hourMinuteSecond = values[4];
|
||||
// // looks like "LAT=44.847"
|
||||
// String lat = values[5];
|
||||
// // looks like "LON=-93.564"
|
||||
// String lon = values[6];
|
||||
// String dateStr = yearMonthDay + " " + hourMinuteSecond;
|
||||
// Date date = ncepDataFormat.parse(dateStr);
|
||||
// stninfo.setReftime(new Timestamp(date.getTime()));
|
||||
// stninfo.setRangestarttime(new Timestamp(date.getTime()));
|
||||
// stninfo.setStnDisplayInfo(stationId + " " + dateStr);
|
||||
// lat = lat.replace("LAT=", "");
|
||||
// lon = lon.replace("LON=", "");
|
||||
// stninfo.setLatitude(Float.parseFloat(lat));
|
||||
// stninfo.setLongitude(Float.parseFloat(lon));
|
||||
// } else {
|
||||
// // TODO it might be possible to look at each token and throw
|
||||
// // something together
|
||||
// throw new VizException("Unrecognized data headings");
|
||||
// }
|
||||
// // Second line is the headings
|
||||
// String headingLine = lines.remove(0);
|
||||
// // The rest of the lines should be data lines.
|
||||
// List<String> dataLines = new ArrayList<String>();
|
||||
// line = lines.remove(0);
|
||||
// while (!lines.isEmpty()) {
|
||||
// dataLines.add(line);
|
||||
// line = lines.remove(0);
|
||||
// }
|
||||
//
|
||||
// List<NcSoundingLayer> layers = parseLayers(headingLine, dataLines);
|
||||
//
|
||||
// load(stninfo, layers);
|
||||
// }
|
||||
|
||||
public static void openTabularFile(List<String> lines)
|
||||
throws ParseException, VizException {
|
||||
|
|
|
@ -23,7 +23,7 @@ import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
|
|||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
|
||||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile.ObsSndType;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
|
||||
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
|
||||
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
@ -22,8 +22,10 @@ package com.raytheon.uf.viz.d2d.nsharp.rsc;
|
|||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
|
||||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
|
||||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
|
||||
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
|
||||
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -49,6 +51,8 @@ import com.raytheon.uf.viz.core.exception.VizException;
|
|||
* Jul 26, 2011 bsteffen Initial creation
|
||||
* Feb 15, 2013 1638 mschenke Got rid of viz/edex topo classes
|
||||
* and moved into common
|
||||
* 04/27/2015 RM#6674&7787 Chin Chen support model sounding query data interpolation and nearest point option
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -82,9 +86,18 @@ public class GribNSharpResourceData extends D2DNSharpResourceData {
|
|||
float[][] latLon = { { (float) coordinate.y, (float) coordinate.x } };
|
||||
String refTimeStr = formatTimestamp(stnInfo.getReftime());
|
||||
String validTimeStr = formatTimestamp(stnInfo.getRangestarttime());
|
||||
//RM#6674
|
||||
NsharpConfigManager mgr =NsharpConfigManager.getInstance();
|
||||
NsharpConfigStore configStore = mgr.retrieveNsharpConfigStoreFromFs();
|
||||
boolean gridInterpolation;
|
||||
if(configStore != null){
|
||||
gridInterpolation = configStore.getGraphProperty().isGridInterpolation();
|
||||
}
|
||||
else
|
||||
gridInterpolation = true; //by default
|
||||
NcSoundingCube cube = NcSoundingQuery.mdlSoundingQueryByLatLon(
|
||||
refTimeStr, validTimeStr, latLon, "grid", getSoundingType(),
|
||||
false, "-1");
|
||||
false, "-1", gridInterpolation);
|
||||
if ((cube != null) && !cube.getSoundingProfileList().isEmpty()) {
|
||||
NcSoundingProfile profileList = cube.getSoundingProfileList()
|
||||
.get(0);
|
||||
|
|
|
@ -22,7 +22,7 @@ package com.raytheon.uf.viz.d2d.nsharp.rsc;
|
|||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
|
||||
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
|
||||
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
|
||||
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
|
||||
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
@ -28,7 +28,8 @@ Require-Bundle: org.eclipse.ui,
|
|||
com.raytheon.uf.viz.datacube
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.raytheon.uf.viz.npp.viirs.rsc
|
||||
Export-Package: com.raytheon.uf.viz.npp.viirs.rsc,
|
||||
com.raytheon.uf.viz.npp.viirs.style
|
||||
Import-Package: com.raytheon.uf.common.inventory.data,
|
||||
com.raytheon.uf.common.inventory.exception,
|
||||
com.raytheon.uf.common.inventory,
|
||||
|
|
|
@ -37,10 +37,11 @@ import com.raytheon.uf.common.localization.LocalizationContext;
|
|||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationFile;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.viz.core.localization.CAVELocalizationAdapter;
|
||||
import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
|
||||
|
||||
/**
|
||||
* TODO Add Description
|
||||
* A {@link BooleanFieldEditor} which adds a button that can be used to
|
||||
* synchronize localization files with the server.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
|
@ -48,7 +49,8 @@ import com.raytheon.uf.viz.core.localization.CAVELocalizationAdapter;
|
|||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Nov 22, 2011 bsteffen Initial creation
|
||||
* Nov 22, 2011 bsteffen Initial creation
|
||||
* May 29, 2015 4532 bsteffen Notify the preference store when sync is running.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -75,8 +77,9 @@ public class SyncLocalizationEditor extends BooleanFieldEditor {
|
|||
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
IPathManager pathManager = PathManagerFactory
|
||||
.getPathManager(new CAVELocalizationAdapter());
|
||||
getPreferenceStore().firePropertyChangeEvent(ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION,
|
||||
false, true);
|
||||
IPathManager pathManager = PathManagerFactory.getPathManager();
|
||||
LocalizationType[] types = { LocalizationType.CAVE_CONFIG,
|
||||
LocalizationType.CAVE_STATIC,
|
||||
LocalizationType.COMMON_STATIC };
|
||||
|
@ -105,6 +108,8 @@ public class SyncLocalizationEditor extends BooleanFieldEditor {
|
|||
System.out.println("Time to download " + type + ": "
|
||||
+ (endTime - startTime) + "ms");
|
||||
}
|
||||
getPreferenceStore().firePropertyChangeEvent(ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION,
|
||||
true, false);
|
||||
monitor.done();
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import java.util.Date;
|
|||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
||||
|
@ -53,6 +54,7 @@ import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
|
|||
* Aug 9, 2011 njensen Initial creation
|
||||
* Aug 13, 2013 2033 mschenke Changed to search all plugins when
|
||||
* CAVE_STATIC BASE context searched
|
||||
* May 29, 2015 4532 bsteffen Always use super when sync job is running.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -63,6 +65,12 @@ import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
|
|||
public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
||||
implements IPropertyChangeListener {
|
||||
|
||||
/**
|
||||
* Whenever there is a sync job running, always call super to allow it to go
|
||||
* to the server.
|
||||
*/
|
||||
private final AtomicInteger syncJobsRunning = new AtomicInteger(0);
|
||||
|
||||
private boolean useRemoteFiles = true;
|
||||
|
||||
public ThinClientLocalizationAdapter() {
|
||||
|
@ -83,6 +91,10 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
|||
@Override
|
||||
public void retrieve(LocalizationFile file)
|
||||
throws LocalizationOpFailedException {
|
||||
if (syncJobsRunning.get() > 0) {
|
||||
super.retrieve(file);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
File localFile = file.getFile(false);
|
||||
if (localFile.exists() == false || localFile.length() == 0) {
|
||||
|
@ -91,8 +103,15 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
|||
} catch (LocalizationOpFailedException e) {
|
||||
throw e;
|
||||
} catch (LocalizationException e) {
|
||||
// Ignore exception
|
||||
e.printStackTrace();
|
||||
/*
|
||||
* At the time of this writing, nothing will actually throw any
|
||||
* LocalizationException other than LocalizationOpFailedException.
|
||||
* However since LocalizationFile.getFile(boolean) has a method
|
||||
* signature indicating it could throw any LocalizationException
|
||||
* this code should be able to handle any LocalizationException in
|
||||
* case the implementation of getFile changes in the future.
|
||||
*/
|
||||
throw new LocalizationOpFailedException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -108,7 +127,7 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
|||
public ListResponse[] listDirectory(LocalizationContext[] contexts,
|
||||
String path, boolean recursive, boolean filesOnly)
|
||||
throws LocalizationOpFailedException {
|
||||
if (useRemoteFiles) {
|
||||
if (shouldUseRemoteFiles()) {
|
||||
return super.listDirectory(contexts, path, recursive, filesOnly);
|
||||
} else {
|
||||
|
||||
|
@ -164,7 +183,7 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
|||
public ListResponse[] getLocalizationMetadata(
|
||||
LocalizationContext[] context, String fileName)
|
||||
throws LocalizationOpFailedException {
|
||||
if (useRemoteFiles) {
|
||||
if (shouldUseRemoteFiles()) {
|
||||
return super.getLocalizationMetadata(context, fileName);
|
||||
} else {
|
||||
List<ListResponse> responses = new ArrayList<ListResponse>(
|
||||
|
@ -193,19 +212,30 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
|
|||
|
||||
@Override
|
||||
public boolean exists(LocalizationFile file) {
|
||||
if (useRemoteFiles) {
|
||||
if (shouldUseRemoteFiles()) {
|
||||
return super.exists(file);
|
||||
} else {
|
||||
return file.getFile().exists();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean shouldUseRemoteFiles() {
|
||||
return useRemoteFiles || syncJobsRunning.get() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChange(PropertyChangeEvent event) {
|
||||
if (ThinClientPreferenceConstants.P_DISABLE_REMOTE_LOCALIZATION
|
||||
.equals(event.getProperty())) {
|
||||
useRemoteFiles = !Boolean.valueOf(String.valueOf(event
|
||||
.getNewValue()));
|
||||
} else if (ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION.equals(event.getProperty())) {
|
||||
boolean sync = Boolean.valueOf(String.valueOf(event.getNewValue()));
|
||||
if (sync) {
|
||||
syncJobsRunning.incrementAndGet();
|
||||
} else {
|
||||
syncJobsRunning.decrementAndGet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
**/
|
||||
package com.raytheon.uf.viz.thinclient.preferences;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
||||
/**
|
||||
* Preference constants for the thin client mode
|
||||
*
|
||||
|
@ -32,6 +34,8 @@ package com.raytheon.uf.viz.thinclient.preferences;
|
|||
* Jan 14, 2013 1469 bkowal The hdf5 data directory is no longer a preference constant.
|
||||
* Feb 04, 2014 2704 njensen Consolidate services and pypies proxy addresses
|
||||
* Jun 24, 2014 3236 njensen Added proxy address options
|
||||
* May 29, 2015 4532 bsteffen Add sync localization option.
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -61,6 +65,19 @@ public class ThinClientPreferenceConstants {
|
|||
|
||||
public static String P_DISABLE_REMOTE_LOCALIZATION = "disableRemoteLocalization";
|
||||
|
||||
/**
|
||||
* This preference is not stored but is used to send notification through
|
||||
* the preference store that the {@link #P_CACHE_LOCALIZATION} and
|
||||
* {@link #P_DISABLE_REMOTE_LOCALIZATION} should be temporarily ignored so
|
||||
* that the localization files can be synchronized with the server. Before
|
||||
* performing synchronization, an event should be fired using
|
||||
* {@link IPreferenceStore#firePropertyChangeEvent(String, Object, Object)}
|
||||
* with the preference name as {@link #P_SYNC_REMOTE_LOCALIZATION} and a
|
||||
* newValue of true. When synchronization has completed another event should
|
||||
* be fired with a newValue of false.
|
||||
*/
|
||||
public static String P_SYNC_REMOTE_LOCALIZATION = "syncRemoteFiles";
|
||||
|
||||
public static String P_DISABLE_MENU_TIMES = "disableMenuTimes";
|
||||
|
||||
public static String P_DISABLE_JMS = "disableJms";
|
||||
|
|
|
@ -185,7 +185,7 @@
|
|||
id="com.raytheon.uf.viz.aviation.advisory.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<includes
|
||||
<includes
|
||||
id="com.raytheon.uf.viz.datadelivery.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
|
@ -193,6 +193,10 @@
|
|||
id="edu.wisc.ssec.cimss.viz.convectprob.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<includes
|
||||
id="com.raytheon.uf.viz.ncep.npp.feature"
|
||||
version="0.0.0"/>
|
||||
|
||||
<requires>
|
||||
<import feature="com.raytheon.uf.viz.application.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
|
|
@ -17,6 +17,13 @@ then
|
|||
echo "CAVE and/or gfeclient not installed on this workstation ..exiting"
|
||||
exit 1
|
||||
else
|
||||
$_GFECLI $_MODULE "$@"
|
||||
CONFDIR=${HOME}/.runProc-$(hostname)-$$
|
||||
cleanup() {
|
||||
rm -rf "$CONFDIR"
|
||||
}
|
||||
mkdir -p "$CONFDIR" || exit 1
|
||||
trap cleanup EXIT
|
||||
|
||||
$_GFECLI -configuration $CONFDIR $_MODULE "$@"
|
||||
fi
|
||||
|
||||
|
|
|
@ -166,6 +166,7 @@ import com.vividsolutions.jts.geom.Polygon;
|
|||
* not be as expected if percentage/area is different between the two products. But the
|
||||
* chance for that to occur is trivial.
|
||||
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
|
||||
* Jun 05, 2015 DR 17428 D. Friedman Fixed duration-related user interface issues. Added duration logging.
|
||||
* </pre>
|
||||
*
|
||||
* @author chammack
|
||||
|
@ -1095,15 +1096,25 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
* @param durations
|
||||
*/
|
||||
public void setDurations(int[] durations) {
|
||||
String[] durList = new String[durations.length];
|
||||
ArrayList<String> durList = new ArrayList<String>(durations.length);
|
||||
boolean isDefaultDurationInList = false;
|
||||
durationList.removeAll();
|
||||
for (int i = 0; i < durations.length; i++) {
|
||||
if (defaultDuration != null
|
||||
&& defaultDuration.minutes == durations[i]) {
|
||||
isDefaultDurationInList = true;
|
||||
}
|
||||
DurationData data = new DurationData(durations[i]);
|
||||
durationList.setData(data.displayString, data);
|
||||
durList[i] = data.displayString;
|
||||
durList.add(data.displayString);
|
||||
}
|
||||
// Add the default duration to the list if what was missing
|
||||
if (! isDefaultDurationInList && defaultDuration != null) {
|
||||
durationList.setData(defaultDuration.displayString, defaultDuration);
|
||||
durList.add(0, defaultDuration.displayString);
|
||||
}
|
||||
|
||||
durationList.setItems(durList);
|
||||
durationList.setItems(durList.toArray(new String[durList.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1179,6 +1190,9 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
long t0 = System.currentTimeMillis();
|
||||
try {
|
||||
monitor.beginTask("Generating product", 1);
|
||||
statusHandler.debug("using startTime " + startTime.getTime()
|
||||
+ " endTime " + endTime.getTime());
|
||||
long t0 = System.currentTimeMillis();
|
||||
String result = TemplateRunner.runTemplate(
|
||||
warngenLayer, startTime.getTime(),
|
||||
endTime.getTime(), selectedBullets,
|
||||
|
@ -1328,9 +1342,10 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
* Action for Reset button
|
||||
*/
|
||||
private void resetPressed() {
|
||||
statusHandler.debug("resetPressed");
|
||||
int durationToUse = getSelectedDuration();
|
||||
warngenLayer.resetState();
|
||||
warngenLayer.getStormTrackState().duration = ((DurationData) durationList
|
||||
.getData(durationList.getItem(durationList.getSelectionIndex()))).minutes;
|
||||
restoreDuration(durationToUse);
|
||||
durationList.setEnabled(warngenLayer.getConfiguration()
|
||||
.isEnableDuration());
|
||||
if (lineOfStorms.getSelection()) {
|
||||
|
@ -1366,6 +1381,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
warngenLayer.resetInitialFrame();
|
||||
warngenLayer.setWarningAction(null);
|
||||
instructionsLabel.setText("Instructions:");
|
||||
changeStartEndTimes();
|
||||
warngenLayer.issueRefresh();
|
||||
}
|
||||
|
||||
|
@ -1430,8 +1446,11 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
* Select one storm
|
||||
*/
|
||||
private void selectOneStorm() {
|
||||
statusHandler.debug("selectOneStorm");
|
||||
if (warngenLayer.state.followupData == null) {
|
||||
int savedDuration = warngenLayer.getStormTrackState().duration;
|
||||
warngenLayer.resetState();
|
||||
restoreDuration(savedDuration);
|
||||
warngenLayer.reset("oneStorm");
|
||||
warngenLayer.clearWarningGeometries();
|
||||
warngenLayer.getStormTrackState().dragMeLine = null;
|
||||
|
@ -1447,8 +1466,11 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
* Select line of storms
|
||||
*/
|
||||
private void selectLineOfStorms() {
|
||||
statusHandler.debug("selectLineOfStorms");
|
||||
if (warngenLayer.state.followupData == null) {
|
||||
int savedDuration = warngenLayer.getStormTrackState().duration;
|
||||
warngenLayer.resetState();
|
||||
restoreDuration(savedDuration);
|
||||
warngenLayer.reset("lineOfStorms");
|
||||
warngenLayer.clearWarningGeometries();
|
||||
warngenLayer.getStormTrackState().dragMeLine = null;
|
||||
|
@ -1596,6 +1618,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
* - The button that has been clicked
|
||||
*/
|
||||
private void changeTemplate(String templateName) {
|
||||
statusHandler.debug("changeTemplate: " + templateName);
|
||||
|
||||
String lastAreaSource = warngenLayer.getConfiguration()
|
||||
.getHatchedAreaSource().getAreaSource();
|
||||
|
@ -1689,11 +1712,11 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
}
|
||||
|
||||
protected void recreateDurations(Combo durList) {
|
||||
setDurations(warngenLayer.getConfiguration().getDurations());
|
||||
if (warngenLayer.getConfiguration().getDefaultDuration() != 0) {
|
||||
setDefaultDuration(warngenLayer.getConfiguration()
|
||||
.getDefaultDuration());
|
||||
}
|
||||
setDurations(warngenLayer.getConfiguration().getDurations());
|
||||
durList.setText(defaultDuration.displayString);
|
||||
endTime = DurationUtil.calcEndTime(startTime, defaultDuration.minutes);
|
||||
end.setText(df.format(endTime.getTime()));
|
||||
|
@ -1754,6 +1777,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
FollowupData data = (FollowupData) updateListCbo
|
||||
.getData(updateListCbo.getItem(updateListCbo
|
||||
.getSelectionIndex()));
|
||||
statusHandler.debug("updateListSelected: " + (data != null ? data.getDisplayString() : "(null)"));
|
||||
Mode currMode = warngenLayer.getStormTrackState().mode;
|
||||
if (data != null) {
|
||||
// does not refesh if user selected already highlighted option
|
||||
|
@ -1863,6 +1887,8 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
|| (action == WarningAction.EXT)) {
|
||||
recreateDurations(durationList);
|
||||
}
|
||||
} else {
|
||||
statusHandler.debug("updateListSelected");
|
||||
}
|
||||
updateListCbo.pack(true);
|
||||
productType.layout();
|
||||
|
@ -1895,6 +1921,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
}
|
||||
|
||||
private void changeSelected() {
|
||||
statusHandler.debug("changeSelected");
|
||||
if ((validPeriodDlg == null) || validPeriodDlg.isDisposed()) {
|
||||
validPeriodDlg = new ValidPeriodDialog(shell, startTime, endTime);
|
||||
validPeriodDlg.setCloseCallback(new ICloseCallback() {
|
||||
|
@ -1902,6 +1929,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
int duration = (Integer) returnValue;
|
||||
statusHandler.debug("changeSelected.dialogClosed: " + duration);
|
||||
if (duration != -1) {
|
||||
durationList.setEnabled(false);
|
||||
endTime.add(Calendar.MINUTE, duration);
|
||||
|
@ -1926,6 +1954,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
private void durationSelected() {
|
||||
String selection = durationList.getItem(durationList
|
||||
.getSelectionIndex());
|
||||
statusHandler.debug("durationSelected: " + selection);
|
||||
endTime = DurationUtil.calcEndTime(extEndTime != null ? extEndTime
|
||||
: startTime,
|
||||
((DurationData) durationList.getData(selection)).minutes);
|
||||
|
@ -2292,8 +2321,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
updatePolygon(newWarn);
|
||||
|
||||
recreateDurations(durationList);
|
||||
int duration = ((DurationData) durationList.getData(durationList
|
||||
.getItem(durationList.getSelectionIndex()))).minutes;
|
||||
int duration = getSelectedDuration();
|
||||
warngenLayer.getStormTrackState().duration = duration;
|
||||
|
||||
startTime = TimeUtil.newCalendar();
|
||||
|
@ -2615,4 +2643,39 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
return defaultTemplate;
|
||||
}
|
||||
|
||||
private void restoreDuration(int duration) {
|
||||
warngenLayer.getStormTrackState().duration =
|
||||
warngenLayer.getStormTrackState().newDuration = duration;
|
||||
warngenLayer.getStormTrackState().geomChanged = true;
|
||||
}
|
||||
|
||||
private int getSelectedDuration() {
|
||||
Exception excToReport= null;
|
||||
DurationData data = null;
|
||||
try {
|
||||
data = (DurationData) durationList.getData(durationList
|
||||
.getItem(durationList.getSelectionIndex()));
|
||||
} catch (RuntimeException e) {
|
||||
excToReport = e;
|
||||
}
|
||||
int duration;
|
||||
if (data != null) {
|
||||
duration = data.minutes;
|
||||
} else {
|
||||
try {
|
||||
duration = warngenLayer.getConfiguration().getDefaultDuration();
|
||||
} catch (RuntimeException e) {
|
||||
if (excToReport == null) {
|
||||
excToReport = e;
|
||||
}
|
||||
duration = 30;
|
||||
}
|
||||
statusHandler.handle(Priority.WARN,
|
||||
"Unable to determine duration from selection in WarnGen dialog. Using default of "
|
||||
+ duration + " minutes.", excToReport);
|
||||
}
|
||||
statusHandler.debug("selected duration is " + duration);
|
||||
return duration;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
|||
# Version 2015.5.21-0
|
||||
# Version 2015.6.16-0
|
||||
|
||||
import GenericHazards
|
||||
import string, time, os, re, types, copy, LogStream, collections
|
||||
|
@ -1171,25 +1171,26 @@ class TextProduct(HLSTCV_Common.TextProduct):
|
|||
|
||||
editAreas = [(self._cwa(), self._cwa())]
|
||||
intersectAreas = self._computeIntersectAreas(editAreas, argDict)
|
||||
intersectSampler = self.getSampler(argDict,
|
||||
(self._intersectAnalysisList_HLS(), self._timeRangeList, intersectAreas))
|
||||
|
||||
statList = self.getStatList(intersectSampler,
|
||||
self._intersectAnalysisList_HLS(),
|
||||
self._timeRangeList,
|
||||
"intersect_" + self._cwa())
|
||||
|
||||
for period in range(len(statList)):
|
||||
statDict = statList[period]
|
||||
self._sampleRankedDiscreteValue('StormSurgeThreat', statDict)
|
||||
self._sampleMostSignificantDiscreteValue('StormSurgeThreat', statDict)
|
||||
if len(intersectAreas) != 0:
|
||||
intersectSampler = self.getSampler(argDict,
|
||||
(self._intersectAnalysisList_HLS(), self._timeRangeList, intersectAreas))
|
||||
|
||||
inundationMax = self._getStatValue(statDict, "InundationMax", "Max")
|
||||
decidingField = self._samplingDict['StormSurgeThreat']['decidingField']
|
||||
if decidingField is None or inundationMax > decidingField:
|
||||
self._samplingDict['StormSurgeThreat']['decidingField'] = inundationMax
|
||||
|
||||
self.debug_print("StormSurgeThreat = %s" % (self._samplingDict['StormSurgeThreat']['inputThreatDominant']), 1)
|
||||
statList = self.getStatList(intersectSampler,
|
||||
self._intersectAnalysisList_HLS(),
|
||||
self._timeRangeList,
|
||||
"intersect_" + self._cwa())
|
||||
|
||||
for period in range(len(statList)):
|
||||
statDict = statList[period]
|
||||
self._sampleRankedDiscreteValue('StormSurgeThreat', statDict)
|
||||
self._sampleMostSignificantDiscreteValue('StormSurgeThreat', statDict)
|
||||
|
||||
inundationMax = self._getStatValue(statDict, "InundationMax", "Max")
|
||||
decidingField = self._samplingDict['StormSurgeThreat']['decidingField']
|
||||
if decidingField is None or inundationMax > decidingField:
|
||||
self._samplingDict['StormSurgeThreat']['decidingField'] = inundationMax
|
||||
|
||||
self.debug_print("StormSurgeThreat = %s" % (self._samplingDict['StormSurgeThreat']['inputThreatDominant']), 1)
|
||||
|
||||
def _sampleTCVAdvisory(self, advisory):
|
||||
self.debug_print("sampling TCV advisory!", 1)
|
||||
|
|
|
@ -1516,12 +1516,11 @@ class SectionCommon():
|
|||
pass
|
||||
|
||||
# If this is the "default" case
|
||||
if self._tr == "default" and len(statements) > 0:
|
||||
|
||||
if elementName in ["Wind", "Storm Surge"]:
|
||||
if statements[0].find("If realized, ") == -1:
|
||||
statements[0] = "If realized, " + statements[0] + \
|
||||
statements[0][1:]
|
||||
#if self._tr == "default" and len(statements) > 0:
|
||||
#
|
||||
# if elementName in ["Wind", "Storm Surge"]:
|
||||
# if statements[0].find("If realized, ") == -1:
|
||||
# statements[0] = "If realized, " + statements[0][0].lower() + statements[0][1:]
|
||||
|
||||
return statements
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<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 class="com.raytheon.uf.common.message.JAXBMessageRegistry" factory-method="register">
|
||||
<constructor-arg>
|
||||
<list>
|
||||
<value>com.raytheon.uf.common.dataplugin.obs.metar.MetarRecord</value>
|
||||
</list>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -66,5 +66,18 @@
|
|||
<defaultColormap>NPP/VIIRS/CA (Low Light Vis)</defaultColormap>
|
||||
</imageStyle>
|
||||
</styleRule>
|
||||
|
||||
<!-- Special Ref 1.378u Satellite Rule based on sample data -->
|
||||
<styleRule>
|
||||
<viirsDataMatches>
|
||||
<parameter>Ref</parameter>
|
||||
<wavelength>1.378</wavelength>
|
||||
</viirsDataMatches>
|
||||
<imageStyle>
|
||||
<range scale="LINEAR">
|
||||
<minValue>0</minValue>
|
||||
<maxValue>0.6</maxValue>
|
||||
</range>
|
||||
<defaultColormap>NPP/VIIRS/CA (Low Light Vis)</defaultColormap>
|
||||
</imageStyle>
|
||||
</styleRule>
|
||||
</styleRuleset>
|
|
@ -1,406 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<aliasList namespace="GEMPAK">
|
||||
<alias base="5WAVA">HGHT5</alias>
|
||||
<alias base="ALBDO">ALBD</alias>
|
||||
<alias base="ALBDO1hr">ALBD01</alias>
|
||||
<alias base="ALBDO3hr">ALBD03</alias>
|
||||
<alias base="ALBDO6hr">ALBD06</alias>
|
||||
<alias base="ALBDO9hr">ALBD09</alias>
|
||||
<alias base="ALBD12hr">ALBD12</alias>
|
||||
<alias base="ALBD18hr">ALBD18</alias>
|
||||
<alias base="ALBD24hr">ALBD24</alias>
|
||||
<alias base="ALBD48hr">ALBD48</alias>
|
||||
<alias base="APCP6hr">P06M</alias>
|
||||
<alias base="APCP12hr">P12M</alias>
|
||||
<alias base="APCP18hr">P18M</alias>
|
||||
<alias base="APCP24hr">P24M</alias>
|
||||
<alias base="APCP30hr">P30M</alias>
|
||||
<alias base="APCP36hr">P36M</alias>
|
||||
<alias base="APCP42hr">P42M</alias>
|
||||
<alias base="APCP48hr">P48M</alias>
|
||||
<alias base="APCP54hr">P54M</alias>
|
||||
<alias base="APCP60hr">P60M</alias>
|
||||
<alias base="APCP66hr">P66M</alias>
|
||||
<alias base="APCP72hr">P72M</alias>
|
||||
<alias base="APCP78hr">P78M</alias>
|
||||
<alias base="APCP84hr">P84M</alias>
|
||||
<alias base="APCP90hr">P90M</alias>
|
||||
<alias base="APCP96hr">P96M</alias>
|
||||
<alias base="APCP102hr">P102M</alias>
|
||||
<alias base="APCP108hr">P108M</alias>
|
||||
<alias base="APCP114hr">P114M</alias>
|
||||
<alias base="APCP120hr">P120M</alias>
|
||||
<alias base="APCP126hr">P126M</alias>
|
||||
<alias base="APCP132hr">P132M</alias>
|
||||
<alias base="APCP138hr">P138M</alias>
|
||||
<alias base="APCP144hr">P144M</alias>
|
||||
<alias base="APCP150hr">P150M</alias>
|
||||
<alias base="APCP156hr">P156M</alias>
|
||||
<alias base="APCP162hr">P162M</alias>
|
||||
<alias base="APCP168hr">P168M</alias>
|
||||
<alias base="APCP174hr">P174M</alias>
|
||||
<alias base="APCP180hr">P180M</alias>
|
||||
<alias base="APCP186hr">P186M</alias>
|
||||
<alias base="APCP192hr">P192M</alias>
|
||||
<alias base="APCP198hr">P198M</alias>
|
||||
<alias base="APCP204hr">P204M</alias>
|
||||
<alias base="APCP210hr">P210M</alias>
|
||||
<alias base="APCP216hr">P216M</alias>
|
||||
<alias base="APCP222hr">P222M</alias>
|
||||
<alias base="APCP228hr">P228M</alias>
|
||||
<alias base="APCP234hr">P234M</alias>
|
||||
<alias base="APCP240hr">P240M</alias>
|
||||
<alias base="AV">AVOR</alias>
|
||||
<alias base="BLI">LFT4</alias>
|
||||
<alias base="CAPE">CAPE</alias>
|
||||
<alias base="CDCON">CCLD</alias>
|
||||
<alias base="CFRZR">WXTZ</alias>
|
||||
<alias base="CFRZR1hr">WXTZ01</alias>
|
||||
<alias base="CFRZR3hr">WXTZ03</alias>
|
||||
<alias base="CFRZR6hr">WXTZ06</alias>
|
||||
<alias base="CFRZR9hr">WXTZ09</alias>
|
||||
<alias base="CFRZR12hr">WXTZ12</alias>
|
||||
<alias base="CFRZR18hr">WXTZ18</alias>
|
||||
<alias base="CFRZR24hr">WXTZ24</alias>
|
||||
<alias base="CFRZR48hr">WXTZ48</alias>
|
||||
<alias base="CICEP">WXTP</alias>
|
||||
<alias base="CICEP1hr">WXTP01</alias>
|
||||
<alias base="CICEP3hr">WXTP03</alias>
|
||||
<alias base="CICEP6hr">WXTP06</alias>
|
||||
<alias base="CICEP9hr">WXTP09</alias>
|
||||
<alias base="CICEP12hr">WXTP12</alias>
|
||||
<alias base="CICEP18hr">WXTP18</alias>
|
||||
<alias base="CICEP24hr">WXTP24</alias>
|
||||
<alias base="CICEP48hr">WXTP48</alias>
|
||||
<alias base="CIn">CINS</alias>
|
||||
<alias base="CLWMR">CLWMR</alias>
|
||||
<alias base="CP">ACPCP</alias>
|
||||
<alias base="CP1hr">C01M</alias>
|
||||
<alias base="CP3hr">C03M</alias>
|
||||
<alias base="CP6hr">C06M</alias>
|
||||
<alias base="CP9hr">C09M</alias>
|
||||
<alias base="CP12hr">C12M</alias>
|
||||
<alias base="CP18hr">C18M</alias>
|
||||
<alias base="CP24hr">C24M</alias>
|
||||
<alias base="CP48hr">C48M</alias>
|
||||
<alias base="CPOFP">POPZ</alias>
|
||||
<alias base="CPOZP">POPF</alias>
|
||||
<alias base="CPRAT1hr">C01M</alias>
|
||||
<alias base="CPRAT3hr">C03M</alias>
|
||||
<alias base="CPRAT6hr">C06M</alias>
|
||||
<alias base="CPRAT9hr">C09M</alias>
|
||||
<alias base="CPRAT12hr">C12M</alias>
|
||||
<alias base="CPRAT18hr">C18M</alias>
|
||||
<alias base="CPRAT24hr">C24M</alias>
|
||||
<alias base="CPRAT48hr">C48M</alias>
|
||||
<alias base="CRAIN">WXTR</alias>
|
||||
<alias base="CRAIN1hr">WXTR01</alias>
|
||||
<alias base="CRAIN3hr">WXTR03</alias>
|
||||
<alias base="CRAIN6hr">WXTR06</alias>
|
||||
<alias base="CRAIN9hr">WXTR09</alias>
|
||||
<alias base="CRAIN12hr">WXTR12</alias>
|
||||
<alias base="CRAIN18hr">WXTR18</alias>
|
||||
<alias base="CRAIN24hr">WXTR24</alias>
|
||||
<alias base="CRAIN48hr">WXTR48</alias>
|
||||
<alias base="CSNOW">WXTS</alias>
|
||||
<alias base="CSNOW1hr">WXTS01</alias>
|
||||
<alias base="CSNOW3hr">WXTS03</alias>
|
||||
<alias base="CSNOW6hr">WXTS06</alias>
|
||||
<alias base="CSNOW9hr">WXTS09</alias>
|
||||
<alias base="CSNOW12hr">WXTS12</alias>
|
||||
<alias base="CSNOW18hr">WXTS18</alias>
|
||||
<alias base="CSNOW24hr">WXTS24</alias>
|
||||
<alias base="CSNOW48hr">WXTS48</alias>
|
||||
<alias base="CWAT">CWTR</alias>
|
||||
<alias base="CWORK">CWRK</alias>
|
||||
<alias base="CWORK1hr">CWRK01</alias>
|
||||
<alias base="CWORK3hr">CWRK03</alias>
|
||||
<alias base="CWORK6hr">CWRK06</alias>
|
||||
<alias base="CWORK9hr">CWRK09</alias>
|
||||
<alias base="CWORK12hr">CWRK12</alias>
|
||||
<alias base="CWORK18hr">CWRK18</alias>
|
||||
<alias base="CWORK24hr">CWRK24</alias>
|
||||
<alias base="CWORK48hr">CWRK48</alias>
|
||||
<alias base="DIRPW">DRCTPW</alias>
|
||||
<alias base="DIRSW">DRCTSW</alias>
|
||||
<alias base="DIRWWW">SDWWW</alias>
|
||||
<alias base="DLWRF">LWRD</alias>
|
||||
<alias base="DLWRF1hr">LWRD01</alias>
|
||||
<alias base="DLWRF3hr">LWRD03</alias>
|
||||
<alias base="DLWRF6hr">LWRD06</alias>
|
||||
<alias base="DLWRF9hr">LWRD09</alias>
|
||||
<alias base="DLWRF12hr">LWRD12</alias>
|
||||
<alias base="DLWRF18hr">LWRD18</alias>
|
||||
<alias base="DLWRF24hr">LWRD24</alias>
|
||||
<alias base="DLWRF48hr">LWRD48</alias>
|
||||
<alias base="DpT">DWPK</alias>
|
||||
<alias base="DpD">DPDK</alias>
|
||||
<alias base="DSWRF">SWRD</alias>
|
||||
<alias base="DSWRF1hr">SWRD01</alias>
|
||||
<alias base="DSWRF3hr">SWRD03</alias>
|
||||
<alias base="DSWRF6hr">SWRD06</alias>
|
||||
<alias base="DSWRF9hr">SWRD09</alias>
|
||||
<alias base="DSWRF12hr">SWRD12</alias>
|
||||
<alias base="DSWRF18hr">SWRD18</alias>
|
||||
<alias base="DSWRF24hr">SWRD24</alias>
|
||||
<alias base="DSWRF48hr">SWRD48</alias>
|
||||
<alias base="EMSP">EMSL</alias>
|
||||
<alias base="EPT">THTE</alias>
|
||||
<alias base="EVP">EVAP</alias>
|
||||
<alias base="FLDCP">FLDCP</alias>
|
||||
<alias base="GeH">DIST</alias>
|
||||
<alias base="GFLUX">GHFX</alias>
|
||||
<alias base="GFLUX1hr">GHFX01</alias>
|
||||
<alias base="GFLUX3hr">GHFX03</alias>
|
||||
<alias base="GFLUX6hr">GHFX06</alias>
|
||||
<alias base="GFLUX9hr">GHFX09</alias>
|
||||
<alias base="GFLUX12hr">GHFX12</alias>
|
||||
<alias base="GFLUX18hr">GHFX18</alias>
|
||||
<alias base="GFLUX24hr">GHFX24</alias>
|
||||
<alias base="GFLUX48hr">GHFX48</alias>
|
||||
<alias base="GH">HGHT</alias>
|
||||
<alias base="GHa">HGHTA</alias>
|
||||
<alias base="HCDC">CLDH</alias>
|
||||
<alias base="Heli">HLCY</alias>
|
||||
<alias base="HIdx">HEAT</alias>
|
||||
<alias base="HINDEX">HINDEX</alias>
|
||||
<alias base="HPBL">ZPBL</alias>
|
||||
<alias base="ICAHT">ICAHT</alias>
|
||||
<alias base="ICEC">ICEC</alias>
|
||||
<alias base="ICETK">ICET</alias>
|
||||
<alias base="LAND">LAND</alias>
|
||||
<alias base="LAPR">LAPS</alias>
|
||||
<alias base="LCDC">CLDL</alias>
|
||||
<alias base="LgSP">NCPCP</alias>
|
||||
<alias base="LgSP1hr">S01M</alias>
|
||||
<alias base="LgSP3hr">S03M</alias>
|
||||
<alias base="LgSP6hr">S06M</alias>
|
||||
<alias base="LgSP9hr">S09M</alias>
|
||||
<alias base="LgSP12hr">S12M</alias>
|
||||
<alias base="LgSP18hr">S18M</alias>
|
||||
<alias base="LgSP24hr">S24M</alias>
|
||||
<alias base="LgSP48hr">S48M</alias>
|
||||
<alias base="LHF">FXLH</alias>
|
||||
<alias base="LHF1hr">FXLH01</alias>
|
||||
<alias base="LHF3hr">FXLH03</alias>
|
||||
<alias base="LHF6hr">FXLH06</alias>
|
||||
<alias base="LHF9hr">FXLH09</alias>
|
||||
<alias base="LHF12hr">FXLH12</alias>
|
||||
<alias base="LHF18hr">FXLH18</alias>
|
||||
<alias base="LHF24hr">FXLH24</alias>
|
||||
<alias base="LHF48hr">FXLH48</alias>
|
||||
<alias base="MCDC">CLDM</alias>
|
||||
<alias base="MIXR">MIXR</alias>
|
||||
<alias base="MMSP">MMSL</alias>
|
||||
<alias base="MN2T66hr">TKMN06</alias>
|
||||
<alias base="MnT">TMNK</alias>
|
||||
<alias base="MnT1hr">TMNK01</alias>
|
||||
<alias base="MnT3hr">TMNK03</alias>
|
||||
<alias base="MnT6hr">TMNK06</alias>
|
||||
<alias base="MnT9hr">TMNK09</alias>
|
||||
<alias base="MnT12hr">TMNK12</alias>
|
||||
<alias base="MnT18hr">TMNK18</alias>
|
||||
<alias base="MnT24hr">TMNK24</alias>
|
||||
<alias base="MnT48hr">TMNK48</alias>
|
||||
<alias base="MX2T66hr">TKMX06</alias>
|
||||
<alias base="MxT">TMXK</alias>
|
||||
<alias base="MxT1hr">TMXK01</alias>
|
||||
<alias base="MxT3hr">TMXK03</alias>
|
||||
<alias base="MxT6hr">TMXK06</alias>
|
||||
<alias base="MxT9hr">TMXK09</alias>
|
||||
<alias base="MxT12hr">TMXK12</alias>
|
||||
<alias base="MxT18hr">TMXK18</alias>
|
||||
<alias base="MxT24hr">TMXK24</alias>
|
||||
<alias base="MxT48hr">TMXK48</alias>
|
||||
<alias base="O3MR">OZMR</alias>
|
||||
<alias base="P">PRES</alias>
|
||||
<alias base="P1hr">PRES01</alias>
|
||||
<alias base="P3hr">PRES03</alias>
|
||||
<alias base="P6hr">PRES06</alias>
|
||||
<alias base="P9hr">PRES09</alias>
|
||||
<alias base="P12hr">PRES12</alias>
|
||||
<alias base="P18hr">PRES18</alias>
|
||||
<alias base="P24hr">PRES24</alias>
|
||||
<alias base="P48hr">PRES48</alias>
|
||||
<alias base="P1PS">PERSW1</alias>
|
||||
<alias base="P2PS">PERSW2</alias>
|
||||
<alias base="P1WW">PERWW1</alias>
|
||||
<alias base="P2WW">PERWW2</alias>
|
||||
<alias base="PERPW">PERDPW</alias>
|
||||
<alias base="PERSW">PERDSW</alias>
|
||||
<alias base="PEVAP">PEVAP</alias>
|
||||
<alias base="PEVPR">PEVP</alias>
|
||||
<alias base="PLI">LIFT</alias>
|
||||
<alias base="PLPL">PLPL</alias>
|
||||
<alias base="PMSL">PMSL</alias>
|
||||
<alias base="PoT">THTA</alias>
|
||||
<alias base="PR">PRATE</alias>
|
||||
<alias base="PR1hr">PR01</alias>
|
||||
<alias base="PR3hr">PR03</alias>
|
||||
<alias base="PR6hr">PR06</alias>
|
||||
<alias base="PR9hr">PR09</alias>
|
||||
<alias base="PR12hr">PR12</alias>
|
||||
<alias base="PR18hr">PR18</alias>
|
||||
<alias base="PR24hr">PR24</alias>
|
||||
<alias base="PR48hr">PR48</alias>
|
||||
<alias base="PRESA">PRESA</alias>
|
||||
<alias base="PVORT">PVOR</alias>
|
||||
<alias base="PVV">OMEG</alias>
|
||||
<alias base="PW">PWTR</alias>
|
||||
<alias base="RH">RELH</alias>
|
||||
<alias base="SATD">SATD</alias>
|
||||
<alias base="SCP">SCVR</alias>
|
||||
<alias base="SH">SPFH</alias>
|
||||
<alias base="SHF">FXSH</alias>
|
||||
<alias base="SHF1hr">FXSH01</alias>
|
||||
<alias base="SHF3hr">FXSH03</alias>
|
||||
<alias base="SHF6hr">FXSH06</alias>
|
||||
<alias base="SHF9hr">FXSH09</alias>
|
||||
<alias base="SHF12hr">FXSH12</alias>
|
||||
<alias base="SHF18hr">FXSH18</alias>
|
||||
<alias base="SHF24hr">FXSH24</alias>
|
||||
<alias base="SHF48hr">FXSH48</alias>
|
||||
<alias base="SLI">LIFT</alias>
|
||||
<alias base="SnD">SNDM</alias>
|
||||
<alias base="SOILW">SOIM</alias>
|
||||
<alias base="SUNSD">SUNSD</alias>
|
||||
<alias base="SWDIR">DRCTSW</alias>
|
||||
<alias base="SWELL">HGHTSW</alias>
|
||||
<alias base="SWPER">PERDSW</alias>
|
||||
<alias base="T">TMPK</alias>
|
||||
<alias base="T1hr">TMPK01</alias>
|
||||
<alias base="T3hr">TMPK03</alias>
|
||||
<alias base="T6hr">TMPK06</alias>
|
||||
<alias base="T9hr">TMPK09</alias>
|
||||
<alias base="T12hr">TMPK12</alias>
|
||||
<alias base="T18hr">TMPK18</alias>
|
||||
<alias base="T24hr">TMPK24</alias>
|
||||
<alias base="T48hr">TMPK48</alias>
|
||||
<alias base="Ta">TMPKA</alias>
|
||||
<alias base="TCC">TCLD</alias>
|
||||
<alias base="TCC1hr">TCLD01</alias>
|
||||
<alias base="TCC3hr">TCLD03</alias>
|
||||
<alias base="TCC6hr">TCLD06</alias>
|
||||
<alias base="TCC9hr">TCLD09</alias>
|
||||
<alias base="TCC12hr">TCLD12</alias>
|
||||
<alias base="TCC18hr">TCLD18</alias>
|
||||
<alias base="TCC24hr">TCLD24</alias>
|
||||
<alias base="TCC48hr">TCLD48</alias>
|
||||
<alias base="TCWAT">TCWTR</alias>
|
||||
<alias base="ThP">TSTM</alias>
|
||||
<alias base="TOZNE">TOZO</alias>
|
||||
<alias base="TP">APCP</alias>
|
||||
<alias base="TP1hr">P01M</alias>
|
||||
<alias base="TP3hr">P03M</alias>
|
||||
<alias base="TP6hr">P06M</alias>
|
||||
<alias base="TP9hr">P09M</alias>
|
||||
<alias base="TP12hr">P12M</alias>
|
||||
<alias base="TP18hr">P18M</alias>
|
||||
<alias base="TP24hr">P24M</alias>
|
||||
<alias base="TP48hr">P48M</alias>
|
||||
<alias base="TSOIL">SLTK</alias>
|
||||
<alias base="U-GWD">UGWD</alias>
|
||||
<alias base="U-GWD1hr">UGWD01</alias>
|
||||
<alias base="U-GWD3hr">UGWD03</alias>
|
||||
<alias base="U-GWD6hr">UGWD06</alias>
|
||||
<alias base="U-GWD9hr">UGWD09</alias>
|
||||
<alias base="U-GWD12hr">UGWD12</alias>
|
||||
<alias base="U-GWD18hr">UGWD18</alias>
|
||||
<alias base="U-GWD24hr">UGWD24</alias>
|
||||
<alias base="U-GWD48hr">UGWD48</alias>
|
||||
<alias base="UFLX">URELFX</alias>
|
||||
<alias base="UFLX1hr">URELFX01</alias>
|
||||
<alias base="UFLX3hr">URELFX03</alias>
|
||||
<alias base="UFLX6hr">URELFX06</alias>
|
||||
<alias base="UFLX9hr">URELFX09</alias>
|
||||
<alias base="UFLX12hr">URELFX12</alias>
|
||||
<alias base="UFLX18hr">URELFX18</alias>
|
||||
<alias base="UFLX24hr">URELFX24</alias>
|
||||
<alias base="UFLX48hr">URELFX48</alias>
|
||||
<alias base="ULWRF">LWRU</alias>
|
||||
<alias base="ULWRF1hr">LWRU01</alias>
|
||||
<alias base="ULWRF3hr">LWRU03</alias>
|
||||
<alias base="ULWRF6hr">LWRU06</alias>
|
||||
<alias base="ULWRF9hr">LWRU09</alias>
|
||||
<alias base="ULWRF12hr">LWRU12</alias>
|
||||
<alias base="ULWRF18hr">LWRU18</alias>
|
||||
<alias base="ULWRF24hr">LWRU24</alias>
|
||||
<alias base="ULWRF48hr">LWRU48</alias>
|
||||
<alias base="USTM">USTRM</alias>
|
||||
<alias base="VSTM">VSTRM</alias>
|
||||
<alias base="USWRF">SWRU</alias>
|
||||
<alias base="USWRF1hr">SWRU01</alias>
|
||||
<alias base="USWRF3hr">SWRU03</alias>
|
||||
<alias base="USWRF6hr">SWRU06</alias>
|
||||
<alias base="USWRF9hr">SWRU09</alias>
|
||||
<alias base="USWRF12hr">SWRU12</alias>
|
||||
<alias base="USWRF18hr">SWRU18</alias>
|
||||
<alias base="USWRF24hr">SWRU24</alias>
|
||||
<alias base="USWRF48hr">SWRU48</alias>
|
||||
<alias base="uW">UREL</alias>
|
||||
<alias base="vW">VREL</alias>
|
||||
<alias base="VAFTAD1hr">VASH01</alias>
|
||||
<alias base="VAPP">VAPR</alias>
|
||||
<alias base="VFLX">VRELFX</alias>
|
||||
<alias base="VFLX1hr">VRELFX01</alias>
|
||||
<alias base="VFLX3hr">VRELFX03</alias>
|
||||
<alias base="VFLX6hr">VRELFX06</alias>
|
||||
<alias base="VFLX9hr">VRELFX09</alias>
|
||||
<alias base="VFLX12hr">VRELFX12</alias>
|
||||
<alias base="VFLX18hr">VRELFX18</alias>
|
||||
<alias base="VFLX24hr">VRELFX24</alias>
|
||||
<alias base="VFLX48hr">VRELFX48</alias>
|
||||
<alias base="V-GWD">VGWD</alias>
|
||||
<alias base="V-GWD1hr">VGWD01</alias>
|
||||
<alias base="V-GWD3hr">VGWD03</alias>
|
||||
<alias base="V-GWD6hr">VGWD06</alias>
|
||||
<alias base="V-GWD9hr">VGWD09</alias>
|
||||
<alias base="V-GWD12hr">VGWD12</alias>
|
||||
<alias base="V-GWD18hr">VGWD18</alias>
|
||||
<alias base="V-GWD24hr">VGWD24</alias>
|
||||
<alias base="V-GWD48hr">VGWD48</alias>
|
||||
<alias base="Vis">VSBY</alias>
|
||||
<alias base="VPT">THTV</alias>
|
||||
<alias base="VRATE">VRATE</alias>
|
||||
<alias base="VSS">VWSH</alias>
|
||||
<alias base="VTMP">TVRK</alias>
|
||||
<alias base="VWSH">VWSH</alias>
|
||||
<alias base="WATR">WATR</alias>
|
||||
<alias base="WATR1hr">WATR01</alias>
|
||||
<alias base="WATR3hr">WATR03</alias>
|
||||
<alias base="WATR6hr">WATR06</alias>
|
||||
<alias base="WATR9hr">WATR09</alias>
|
||||
<alias base="WATR12hr">WATR12</alias>
|
||||
<alias base="WATR18hr">WATR18</alias>
|
||||
<alias base="WATR24hr">WATR24</alias>
|
||||
<alias base="WATR48hr">WATR48</alias>
|
||||
<alias base="WD">DRCT</alias>
|
||||
<alias base="WEASD">SWEM</alias>
|
||||
<alias base="WGH">HGHT5</alias>
|
||||
<alias base="WGS">GUST</alias>
|
||||
<alias base="WILT">WILT</alias>
|
||||
<alias base="WMIXE">ENRG</alias>
|
||||
<alias base="WS">SPED</alias>
|
||||
<alias base="WVDIR">DRCTWW</alias>
|
||||
<alias base="WVHGT">HGHTWW</alias>
|
||||
<alias base="WVPER">PERDWW</alias>
|
||||
</aliasList>
|
|
@ -36,6 +36,11 @@
|
|||
<regionInfo id="TIPQ">
|
||||
<region>Puerto Rico</region>
|
||||
</regionInfo>
|
||||
|
||||
<!-- Global region -->
|
||||
<regionInfo id="TIPG">
|
||||
<region>Global</region>
|
||||
</regionInfo>
|
||||
|
||||
<!-- I1 -->
|
||||
<channelInfo id="01">
|
||||
|
@ -130,10 +135,11 @@
|
|||
<resolution>750.0</resolution>
|
||||
</channelInfo>
|
||||
|
||||
<!-- DNB replace id when known -->
|
||||
<channelInfo id="??">
|
||||
<channelType>Moderate</channelType>
|
||||
<wavelength>0.7</wavelength>
|
||||
<resolution>750.0</resolution>
|
||||
</channelInfo>
|
||||
</viirsHeaderMapping>
|
||||
<!-- DNB/NCC -->
|
||||
<channelInfo id="10">
|
||||
<channelType>Moderate</channelType>
|
||||
<wavelength>0.7</wavelength>
|
||||
<channel>10</channel>
|
||||
<resolution>750.0</resolution>
|
||||
</channelInfo>
|
||||
</viirsHeaderMapping>
|
||||
|
|
|
@ -41,38 +41,42 @@ def __parseCommandLine():
|
|||
parser = UsageArgumentParser.UsageArgumentParser(prog='retrieveActivity',description="Retrieve PGEN Activities from EDEX. When invoked without any arguments, retrieveActivity is run in interactive mode.")
|
||||
bgroup = parser.add_argument_group(title='batch',description='For running in scripts and/or batch mode.')
|
||||
|
||||
bgroup.add_argument("-l*", action="store", dest="label",
|
||||
help="Activity Label being requested",
|
||||
required=False, metavar="label")
|
||||
bgroup.add_argument("-t*", action="store", dest="type",
|
||||
bgroup.add_argument("-type", action="store", dest="type",
|
||||
help="Activity Type being requested",
|
||||
required=False, metavar="type")
|
||||
required=False, metavar=" type")
|
||||
bgroup.add_argument("-st", action="store", dest="subtype",
|
||||
help="Activity Subtype being requested",
|
||||
required=False, metavar="subtype")
|
||||
bgroup.add_argument("-d*", action="store", dest="reftime",
|
||||
required=False, metavar=" subtype")
|
||||
bgroup.add_argument("-tag", action="store", dest="tagId",
|
||||
help="Tag ID being requested",
|
||||
required=False, metavar=" tag")
|
||||
bgroup.add_argument("-l", action="store", dest="label",
|
||||
help="Activity Label being requested",
|
||||
required=False, metavar=" label")
|
||||
bgroup.add_argument("-time", action="store", dest="reftime",
|
||||
help="Activity Ref Time being requested (YYYY-MM-DD_HH:MM)",
|
||||
required=False, metavar="reftime")
|
||||
bgroup.add_argument("-n*", action="store", dest="name",
|
||||
required=False, metavar=" time")
|
||||
bgroup.add_argument("-n", action="store", dest="name",
|
||||
help="Activity Name being requested",
|
||||
required=False, metavar="name")
|
||||
required=False, metavar=" name")
|
||||
bgroup.add_argument("-f", action="store", dest="fullpath",
|
||||
help="Write out XML with full path? (Yes/No)",
|
||||
required=False, metavar="fullpath")
|
||||
required=False, metavar=" Yes/No")
|
||||
|
||||
bgroup = parser.add_argument_group(title='Note',description='Pattern match with "*" is allowed for -l, -t, -d, and -n. E.g, -l "*CCFP*3*" will match any activities whose label contains CCFP and 3.')
|
||||
bgroup = parser.add_argument_group(title='Note',description='Pattern matching with "*" is allowed for -type, -l, -time, and -n. E.g., -l "*CCFP*3*" will match any activities whose label contains CCFP and 3.')
|
||||
|
||||
options = parser.parse_args()
|
||||
|
||||
options.interactive = False
|
||||
if (options.label == None and options.type == None and
|
||||
options.reftime == None and options.subtype == None and
|
||||
options.tagId == None and
|
||||
options.fullpath == None and options.name == None):
|
||||
options.interactive = True
|
||||
else:
|
||||
if (options.label == None and options.type == None and
|
||||
options.reftime == None and options.name == None):
|
||||
print "Must enter values for at least one of -l, -t, -d, or -n"
|
||||
print "Must enter values for at least one of -type, -l, -d, or -n"
|
||||
exit(0)
|
||||
|
||||
logger.debug("Command-line arguments: " + str(options))
|
||||
|
@ -100,17 +104,24 @@ def main():
|
|||
mu = ActivityUtil.ActivityUtil()
|
||||
activityMap = mu.getActivityMap()
|
||||
|
||||
# Replace a space with the "_" in the type, accepting "CONV SIGMET" & "OUTL SIGMET".
|
||||
reqtype = None
|
||||
if ( options.type != None ):
|
||||
reqtype = options.type;
|
||||
reqtype = options.type.replace(" ", "_");
|
||||
if ( options.subtype != None ) :
|
||||
reqtype = options.type + "(" + options.subtype + ")"
|
||||
|
||||
|
||||
# Form the matching pattern for tag ID
|
||||
tagID = None
|
||||
if ( options.tagId != None):
|
||||
tagID = "*\." + options.tagId + "\.*"
|
||||
|
||||
records = []
|
||||
for key in activityMap.iterkeys():
|
||||
recs = activityMap[key]
|
||||
for rec in recs:
|
||||
if ( mu.stringMatcher(options.label, rec["activityLabel"]) and
|
||||
mu.stringMatcher(tagID, rec["activityLabel"]) and
|
||||
mu.stringMatcher(reqtype, key ) and
|
||||
mu.stringMatcher(options.name, rec["activityName"] ) ):
|
||||
#Remove sec.msec from record's refTime
|
||||
|
@ -122,7 +133,9 @@ def main():
|
|||
shortTime = dbRefTime
|
||||
|
||||
#Replace the "_" with a whitespace in reftime.
|
||||
optionTime = options.reftime.replace("_", " ")
|
||||
optionTime = options.reftime
|
||||
if ( optionTime != None ):
|
||||
optionTime = optionTime.replace("_", " ")
|
||||
|
||||
if ( mu.stringMatcher( optionTime, shortTime ) ):
|
||||
records.append( rec )
|
||||
|
@ -246,4 +259,4 @@ class RetrieveGui(Frame):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
|
Binary file not shown.
21
nativeLib/org.apache.thrift/thrift-0.9.0-chunked-encoding.patch
Executable file
21
nativeLib/org.apache.thrift/thrift-0.9.0-chunked-encoding.patch
Executable file
|
@ -0,0 +1,21 @@
|
|||
diff -ur thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp thrift-0.9.0-chunked-encoding-fix/lib/cpp/src/thrift/transport/THttpTransport.cpp
|
||||
--- thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp 2012-10-12 00:58:06.000000000 +0000
|
||||
+++ thrift-0.9.0-chunked-encoding-fix/lib/cpp/src/thrift/transport/THttpTransport.cpp 2015-05-08 21:14:29.532529766 +0000
|
||||
@@ -90,8 +90,8 @@
|
||||
size = readChunked();
|
||||
} else {
|
||||
size = readContent(contentLength_);
|
||||
+ readHeaders_ = true;
|
||||
}
|
||||
- readHeaders_ = true;
|
||||
return size;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
uint32_t chunkSize = parseChunkSize(line);
|
||||
if (chunkSize == 0) {
|
||||
readChunkedFooters();
|
||||
+ readHeaders_ = true;
|
||||
} else {
|
||||
// Read data content
|
||||
length += readContent(chunkSize);
|
15
nativeLib/org.apache.thrift/thrift-0.9.0-http-refill.patch
Normal file
15
nativeLib/org.apache.thrift/thrift-0.9.0-http-refill.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
diff -ur thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp thrift-0.9.0-http-refill/lib/cpp/src/thrift/transport/THttpTransport.cpp
|
||||
--- thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp 2012-10-12 00:58:06.000000000 +0000
|
||||
+++ thrift-0.9.0-http-refill/lib/cpp/src/thrift/transport/THttpTransport.cpp 2015-06-19 10:50:02.818636967 +0000
|
||||
@@ -80,7 +80,10 @@
|
||||
uint32_t size;
|
||||
|
||||
// Get more data!
|
||||
- refill();
|
||||
+ uint32_t avail = httpBufLen_ - httpPos_;
|
||||
+ if (avail == 0) {
|
||||
+ refill();
|
||||
+ }
|
||||
|
||||
if (readHeaders_) {
|
||||
readHeaders();
|
Loading…
Add table
Reference in a new issue