Issue #2811 - Added check for empty message. Updated logger.

Former-commit-id: 24895b9308 [formerly 9ac8a7a2f3] [formerly 24895b9308 [formerly 9ac8a7a2f3] [formerly 982735561c [formerly e0010578785dd88861e8c9ef229e3e6452a5bd0e]]]
Former-commit-id: 982735561c
Former-commit-id: 0b04fb80e3 [formerly b5fb10a84d]
Former-commit-id: 08be3d0f45
This commit is contained in:
Slav Korolev 2014-03-27 09:48:30 -04:00
parent a64288b37d
commit 6efb1f4f5c
6 changed files with 251 additions and 195 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Acars Plug-in
Bundle-SymbolicName: com.raytheon.uf.edex.plugin.acars
Bundle-Version: 1.12.1174.qualifier
Bundle-Version: 1.14.0.qualifier
Eclipse-RegisterBuddy: com.raytheon.edex.common, com.raytheon.uf.common.serialization
Bundle-Vendor: RAYTHEON
Require-Bundle: com.raytheon.edex.common,
@ -16,4 +16,4 @@ Export-Package: com.raytheon.uf.edex.plugin.acars,
com.raytheon.uf.edex.plugin.acars.dao
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: com.raytheon.uf.common.dataplugin.acars,
org.apache.commons.logging
com.raytheon.uf.common.status

View file

@ -19,7 +19,6 @@
**/
package com.raytheon.uf.edex.plugin.acars;
import java.io.File;
import java.lang.management.ManagementFactory;
import java.util.concurrent.atomic.AtomicInteger;
@ -27,14 +26,29 @@ import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.StandardMBean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raytheon.edex.esb.Headers;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
/**
* ACARS Archiver.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 27, 2014 2811 skorolev Updated logger.
*
* </pre>
*
* @author
* @version 1.0
*/
public class ACARSArchiver implements ACARSArchiverMBean {
protected transient Log logger = LogFactory.getLog(getClass());
private IUFStatusHandler logger = UFStatus.getHandler(ACARSDecoder.class);
private static AtomicInteger serviceInstanceId = new AtomicInteger();
@ -56,8 +70,7 @@ public class ACARSArchiver implements ACARSArchiverMBean {
}
/**
*
* @param path
* @param headers
*/
public void checkForArchive(Headers headers) {
String traceId = serviceName;
@ -67,8 +80,12 @@ public class ACARSArchiver implements ACARSArchiverMBean {
logger.info(traceId);
}
/**
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.edex.plugin.acars.ACARSArchiverMBean#execute(java.lang
* .String)
*/
public void execute(String command) {
@ -76,8 +93,11 @@ public class ACARSArchiver implements ACARSArchiverMBean {
}
/**
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.edex.plugin.acars.ACARSArchiverMBean#getServiceName()
*/
@Override
public String getServiceName() {
@ -86,6 +106,8 @@ public class ACARSArchiver implements ACARSArchiverMBean {
/**
* Register this service with the JMX management.
*
* @param name
*/
protected void register(String name) {
if (serviceRegistered) {
@ -111,6 +133,8 @@ public class ACARSArchiver implements ACARSArchiverMBean {
/**
* Unregister this service from the JMX server. This should be called prior
* to shutting down the service.
*
* @param name
*/
protected void unRegister(String name) {
if (!serviceRegistered) {

View file

@ -19,19 +19,17 @@
**/
package com.raytheon.uf.edex.plugin.acars;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raytheon.edex.esb.Headers;
import com.raytheon.edex.exception.DecoderException;
import com.raytheon.edex.plugin.AbstractDecoder;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.acars.ACARSRecord;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.decodertools.core.IDecoderInput;
import com.raytheon.uf.edex.plugin.acars.decoder.ACARSDataAdapter;
/**
*
* ACARS Decoder.
*
* <pre>
*
@ -39,6 +37,7 @@ import com.raytheon.uf.edex.plugin.acars.decoder.ACARSDataAdapter;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 21, 2009 1939 jkorman Initial creation
* Mar 27, 2014 2811 skorolev Updated logger.
*
* </pre>
*
@ -48,7 +47,7 @@ import com.raytheon.uf.edex.plugin.acars.decoder.ACARSDataAdapter;
public class ACARSDecoder extends AbstractDecoder {
private Log logger = LogFactory.getLog(getClass());
private IUFStatusHandler logger = UFStatus.getHandler(ACARSDecoder.class);
private String pluginName = "acars";
@ -63,9 +62,9 @@ public class ACARSDecoder extends AbstractDecoder {
/**
* Get the next decoded data record.
*
* @param data
* @param headers
* @return One record of decoded data.
* @throws DecoderException
* Thrown if no data is available.
*/
public PluginDataObject[] decode(byte[] data, Headers headers) {
@ -98,7 +97,7 @@ public class ACARSDecoder extends AbstractDecoder {
/**
* @param input
* @param decodeProperties
* @return
*/
public PluginDataObject[] decodeInput(IDecoderInput input) {
logger.error("decodeInput method not supported");
@ -116,7 +115,8 @@ public class ACARSDecoder extends AbstractDecoder {
com.raytheon.uf.common.util.StringUtil.isEmptyString(" ");
ACARSRecord r = new ACARSRecord("/acars/2011-03-21_17:58:32.0/2TPYR4JA/null/42.85/-84.92/9754");
ACARSRecord r = new ACARSRecord(
"/acars/2011-03-21_17:58:32.0/2TPYR4JA/null/42.85/-84.92/9754");
System.out.println(r.getLatitude());
}

View file

@ -45,6 +45,7 @@ import com.raytheon.uf.edex.database.DataAccessLayerException;
* Oct 10, 2012 1261 djohnson Add some generics wildcarding.
* Nov 02, 2012 1302 djohnson Add Javadoc.
* Aug 30, 2013 2298 rjpeter Make getPluginName abstract
* Mar 27, 2014 2811 skorolev Updated logger.
*
* </pre>
*
@ -155,9 +156,9 @@ public class ACARSDao extends DefaultPluginDao {
String query = String.format(queryTemplate, tailNumber, startTime);
if (logger.isDebugEnabled()) {
logger.debug(query);
}
// if (logger.isDebugEnabled()) {
// logger.debug(query);
// }
List<?> result = executeACARSQuery(query);
@ -177,6 +178,7 @@ public class ACARSDao extends DefaultPluginDao {
*
* @param tailNumber
* @param startTime
* @param stopTime
* @return
*/
public List<ACARSRecord> getReports(String tailNumber, Calendar startTime,
@ -192,9 +194,9 @@ public class ACARSDao extends DefaultPluginDao {
String query = String.format(queryTemplate, tailNumber, startTime,
stopTime);
if (logger.isDebugEnabled()) {
logger.debug(query);
}
// if (logger.isDebugEnabled()) {
// logger.debug(query);
// }
List<?> result = executeACARSQuery(query);

View file

@ -30,13 +30,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raytheon.edex.esb.Headers;
import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.acars.ACARSRecord;
import com.raytheon.uf.common.pointdata.spatial.AircraftObsLocation;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.edex.decodertools.bufr.BUFRDataDocument;
import com.raytheon.uf.edex.decodertools.bufr.descriptors.BUFRDescriptor;
@ -55,6 +54,7 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader;
* Jan 22, 2009 1939 jkorman Initial creation
* Aug 30, 2013 2298 rjpeter Make getPluginName abstract
* Sep 18, 2013 2339 njensen Index safety check in getTailNumber()
* Mar 27, 2014 2811 skorolev Added check for empty message.
*
* </pre>
*
@ -64,6 +64,9 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader;
public class ACARSDataAdapter {
private IUFStatusHandler logger = UFStatus
.getHandler(ACARSDataAdapter.class);
private static final int MONTH_OFFSET = 1;
private static final int DAY_OFFSET = 2;
@ -74,8 +77,6 @@ public class ACARSDataAdapter {
private static final int SECOND_OFFSET = 5;
private final Log logger = LogFactory.getLog(getClass());
// Map detailed flight phase [0-08-009] to flight phase [0-08-004]
private static final int[] DETAIL_PHASE_MAP = { 3, 4, 2, 3, 4, 5, 6, 5, 5,
5, 5, 6, 6, 6, 6, 7, };
@ -93,8 +94,9 @@ public class ACARSDataAdapter {
}
/**
*
* @param rawData
* @param traceId
* @param headers
* @return
*/
public PluginDataObject[] getACARSData(byte[] rawData, String traceId,
@ -158,7 +160,7 @@ public class ACARSDataAdapter {
Calendar timeObs = null;
AircraftObsLocation loc = null;
String tailNumber = null;
if (!subList.isEmpty()) {
IBUFRDataPacket packet = subList.get(0);
int d = packet.getReferencingDescriptor().getDescriptor();
if (d == BUFRDescriptor.createDescriptor(0, 1, 6)) {
@ -185,8 +187,8 @@ public class ACARSDataAdapter {
getFlightPhase(subList, rpt, 9);
getWxDataA(subList, rpt);
logger.debug(traceId + " -Observation time = "
+ timeObs);
logger.debug(traceId
+ " -Observation time = " + timeObs);
} else {
logger.error(traceId
+ " -No Aircraft tail number was found");
@ -223,8 +225,8 @@ public class ACARSDataAdapter {
getWxDataC(subList, rpt, loc);
getPressure(subList, rpt, 16);
logger.debug(traceId + " -Observation time = "
+ timeObs);
logger.debug(traceId
+ " -Observation time = " + timeObs);
} else {
logger.error(traceId
+ " -No Aircraft tail number was found");
@ -276,8 +278,8 @@ public class ACARSDataAdapter {
getWxDataB(dataList, rpt, loc);
}
logger.debug(traceId + " -Observation time = "
+ timeObs);
logger.debug(traceId
+ " -Observation time = " + timeObs);
} else {
logger.error(traceId
+ " -No Aircraft tail number was found");
@ -314,8 +316,8 @@ public class ACARSDataAdapter {
getWxDataD(subList, rpt, loc, 12);
logger.debug(traceId + " -Observation time = "
+ timeObs);
logger.debug(traceId
+ " -Observation time = " + timeObs);
} else {
logger.error(traceId
+ " -No Aircraft tail number was found");
@ -334,6 +336,7 @@ public class ACARSDataAdapter {
}
}
}
}
if (rpt != null) {
if (rpt.getFlightLevel() == null) {
logger.error(traceId + " -No aircraft flight level was found");
@ -345,9 +348,9 @@ public class ACARSDataAdapter {
}
/**
*
* @param packets
* @param yearPos
* @param getSeconds
* @return
*/
private Calendar getTimeObs(List<IBUFRDataPacket> packets, int yearPos,
@ -637,10 +640,10 @@ public class ACARSDataAdapter {
}
/**
*
* @param dataList
* @param record
* @return
* @param loc
* @return ACARS Record
*/
@SuppressWarnings("unchecked")
private ACARSRecord getWxDataB(List<IBUFRDataPacket> dataList,
@ -709,9 +712,9 @@ public class ACARSDataAdapter {
}
/**
*
* @param dataList
* @param record
* @param loc
* @return
*/
private ACARSRecord getWxDataC(List<IBUFRDataPacket> dataList,
@ -781,9 +784,10 @@ public class ACARSDataAdapter {
}
/**
*
* @param dataList
* @param record
* @param loc
* @param pos
* @return
*/
private ACARSRecord getWxDataD(List<IBUFRDataPacket> dataList,
@ -852,6 +856,12 @@ public class ACARSDataAdapter {
return record;
}
/**
* @param dataList
* @param record
* @param pos
* @return
*/
private ACARSRecord getFlightPhaseD(List<IBUFRDataPacket> dataList,
ACARSRecord record, int pos) {
@ -892,6 +902,12 @@ public class ACARSDataAdapter {
return tailNumber;
}
/**
* @param dataList
* @param record
* @param pos
* @return
*/
private ACARSRecord getFlightPhase(List<IBUFRDataPacket> dataList,
ACARSRecord record, int pos) {
@ -906,6 +922,11 @@ public class ACARSDataAdapter {
return record;
}
/**
* @param dataList
* @param record
* @param pos
*/
private void getReceiver(List<IBUFRDataPacket> dataList,
ACARSRecord record, int pos) {
@ -921,6 +942,11 @@ public class ACARSDataAdapter {
}
}
/**
* @param dataList
* @param record
* @param pos
*/
private void getPressure(List<IBUFRDataPacket> dataList,
ACARSRecord record, int pos) {
@ -933,6 +959,10 @@ public class ACARSDataAdapter {
}
}
/**
* @param data
* @return
*/
private static final String cleanString(String data) {
String retValue = null;
if (data != null) {

View file

@ -23,10 +23,9 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raytheon.edex.esb.Headers;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.decodertools.bufr.BUFRDataDocument;
import com.raytheon.uf.edex.decodertools.bufr.BUFRDocument;
import com.raytheon.uf.edex.decodertools.bufr.BUFRFile;
@ -38,7 +37,7 @@ import com.raytheon.uf.edex.decodertools.bufr.packets.IBUFRDataPacket;
import com.raytheon.uf.edex.wmo.message.WMOHeader;
/**
* TODO Add Description
* ACARS Parser.
*
* <pre>
*
@ -47,6 +46,7 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 21, 2009 1939 jkorman Initial creation
* Mar 27, 2014 2811 skorolev Updated logger.
*
* </pre>
*
@ -57,7 +57,7 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader;
public class ACARSParser implements Iterator<BUFRDataDocument>,
Iterable<BUFRDataDocument>, IDescriptorFactorySelector {
private Log logger = LogFactory.getLog(getClass());
private IUFStatusHandler logger = UFStatus.getHandler(ACARSParser.class);
// WMO header of the message containing the BUFR data.
private WMOHeader wmoHeader = null;