Merge "ASM #17092 - Add cronOTRs.xml to radar NDM files" into asm_14.4.1
Former-commit-id: 346fc7563a680155c286bcbbcdaea25ec12b30fc
This commit is contained in:
commit
ea11991a31
4 changed files with 59 additions and 11 deletions
|
@ -37,13 +37,16 @@ import com.raytheon.rcm.config.RadarConfig;
|
||||||
* 2009-04-22 #1693 D. Friedman Initial checkin
|
* 2009-04-22 #1693 D. Friedman Initial checkin
|
||||||
* ...
|
* ...
|
||||||
* 2014-02-03 DR 14762 D. Friedman Add Category enum
|
* 2014-02-03 DR 14762 D. Friedman Add Category enum
|
||||||
|
* 2015-02-11 DR 17092 D. Friedman Handle NDM cronOTRs.xml updates.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@XmlRootElement
|
@XmlRootElement
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class ConfigEvent {
|
public class ConfigEvent {
|
||||||
public static enum Category { GLOBAL_CONFIG, RADAR_CONFIG, PROD_DISTRIBUTION, NATIONAL_RPS_LISTS }
|
public static enum Category {
|
||||||
|
GLOBAL_CONFIG, RADAR_CONFIG, PROD_DISTRIBUTION, NATIONAL_RPS_LISTS, CRON_OTRS
|
||||||
|
}
|
||||||
|
|
||||||
private String radarID; // null indicates global configuration change.
|
private String radarID; // null indicates global configuration change.
|
||||||
private RadarConfig oldConfig;
|
private RadarConfig oldConfig;
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.quartz.impl.StdSchedulerFactory;
|
||||||
import com.raytheon.rcm.config.Configuration;
|
import com.raytheon.rcm.config.Configuration;
|
||||||
import com.raytheon.rcm.config.RadarConfig;
|
import com.raytheon.rcm.config.RadarConfig;
|
||||||
import com.raytheon.rcm.config.Util;
|
import com.raytheon.rcm.config.Util;
|
||||||
|
import com.raytheon.rcm.event.ConfigEvent;
|
||||||
import com.raytheon.rcm.event.OtrEvent;
|
import com.raytheon.rcm.event.OtrEvent;
|
||||||
import com.raytheon.rcm.event.RadarEventAdapter;
|
import com.raytheon.rcm.event.RadarEventAdapter;
|
||||||
import com.raytheon.rcm.event.RadarEventListener;
|
import com.raytheon.rcm.event.RadarEventListener;
|
||||||
|
@ -37,6 +38,19 @@ import com.raytheon.rcm.request.Request;
|
||||||
import com.raytheon.rcm.server.Log;
|
import com.raytheon.rcm.server.Log;
|
||||||
import com.raytheon.rcm.server.RadarServer;
|
import com.raytheon.rcm.server.RadarServer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the standard configuration model of the AWIPS 2 RadarServer.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* ...
|
||||||
|
* 2015-02-11 DR 17092 D. Friedman Handle NDM cronOTRs.xml updates.
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class RequestScheduler extends RadarEventAdapter {
|
public class RequestScheduler extends RadarEventAdapter {
|
||||||
|
|
||||||
// Quartz job detail properties
|
// Quartz job detail properties
|
||||||
|
@ -46,8 +60,6 @@ public class RequestScheduler extends RadarEventAdapter {
|
||||||
private RadarServer radarServer;
|
private RadarServer radarServer;
|
||||||
private OTRManager otrManager;
|
private OTRManager otrManager;
|
||||||
|
|
||||||
private CronOTRConfiguration cronConfig;
|
|
||||||
|
|
||||||
private Scheduler scheduler;
|
private Scheduler scheduler;
|
||||||
|
|
||||||
private Random random = new Random();
|
private Random random = new Random();
|
||||||
|
@ -71,6 +83,18 @@ public class RequestScheduler extends RadarEventAdapter {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
|
private synchronized void loadConfiguration() {
|
||||||
|
if (scheduler != null) {
|
||||||
|
try {
|
||||||
|
scheduler.shutdown();
|
||||||
|
} catch (SchedulerException e) {
|
||||||
|
Log.errorf("Error stopping cron-OTR scheduler: %s", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
scheduler = StdSchedulerFactory.getDefaultScheduler();
|
scheduler = StdSchedulerFactory.getDefaultScheduler();
|
||||||
scheduler.start();
|
scheduler.start();
|
||||||
|
@ -80,6 +104,7 @@ public class RequestScheduler extends RadarEventAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scheduler != null) {
|
if (scheduler != null) {
|
||||||
|
CronOTRConfiguration cronConfig = null;
|
||||||
InputStream ins = null;
|
InputStream ins = null;
|
||||||
try {
|
try {
|
||||||
ins = radarServer.getConfiguration().getDropInData("cronOTRs.xml");
|
ins = radarServer.getConfiguration().getDropInData("cronOTRs.xml");
|
||||||
|
@ -112,7 +137,7 @@ public class RequestScheduler extends RadarEventAdapter {
|
||||||
try {
|
try {
|
||||||
scheduler.scheduleJob(jd, trigger);
|
scheduler.scheduleJob(jd, trigger);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.errorf("Error schedule cron \"%s\": %s",
|
Log.errorf("Error scheduling cron \"%s\": %s",
|
||||||
cronOTR.getCron(), e);
|
cronOTR.getCron(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,6 +205,12 @@ public class RequestScheduler extends RadarEventAdapter {
|
||||||
runCron(cronOTR);
|
runCron(cronOTR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void handleConfigEvent(ConfigEvent event) {
|
||||||
|
if (event.getCategory() == ConfigEvent.Category.CRON_OTRS) {
|
||||||
|
loadConfiguration();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class declared public only so that it can be instantiated by
|
* This class declared public only so that it can be instantiated by
|
||||||
* Quartz.
|
* Quartz.
|
||||||
|
|
|
@ -40,6 +40,8 @@ import com.raytheon.rcm.config.LinkType;
|
||||||
import com.raytheon.rcm.config.RadarConfig;
|
import com.raytheon.rcm.config.RadarConfig;
|
||||||
import com.raytheon.rcm.config.StandardProductDistInfoDB;
|
import com.raytheon.rcm.config.StandardProductDistInfoDB;
|
||||||
import com.raytheon.rcm.config.awips1.Awips1ConfigProvider;
|
import com.raytheon.rcm.config.awips1.Awips1ConfigProvider;
|
||||||
|
import com.raytheon.rcm.event.ConfigEvent;
|
||||||
|
import com.raytheon.rcm.event.RadarEventListener;
|
||||||
import com.raytheon.rcm.server.Log;
|
import com.raytheon.rcm.server.Log;
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,6 +56,7 @@ import com.raytheon.rcm.server.Log;
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* ...
|
* ...
|
||||||
* 2014-02-03 DR 14762 D. Friedman Handle updated NDM config files.
|
* 2014-02-03 DR 14762 D. Friedman Handle updated NDM config files.
|
||||||
|
* 2015-02-11 DR 17092 D. Friedman Handle NDM cronOTRs.xml updates.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -62,6 +65,7 @@ public class StandardConfigProvider implements ConfigurationProvider {
|
||||||
private static String WSR_88D_PROD_LIST_NAME = "prodList.txt";
|
private static String WSR_88D_PROD_LIST_NAME = "prodList.txt";
|
||||||
private static String TDWR__PROD_LIST_NAME = "tdwrProdList.txt";
|
private static String TDWR__PROD_LIST_NAME = "tdwrProdList.txt";
|
||||||
private static String WMO_SITE_INFO_NAME = "wmoSiteInfo.txt";
|
private static String WMO_SITE_INFO_NAME = "wmoSiteInfo.txt";
|
||||||
|
private static String CRON_OTRS_NAME = "cronOTRs.xml";
|
||||||
|
|
||||||
private static JAXBContext jaxbContext;
|
private static JAXBContext jaxbContext;
|
||||||
private static Unmarshaller u;
|
private static Unmarshaller u;
|
||||||
|
@ -266,6 +270,12 @@ public class StandardConfigProvider implements ConfigurationProvider {
|
||||||
loadProdListDB();
|
loadProdListDB();
|
||||||
} else if (WMO_SITE_INFO_NAME.equals(name)) {
|
} else if (WMO_SITE_INFO_NAME.equals(name)) {
|
||||||
updateRegionCode();
|
updateRegionCode();
|
||||||
|
} else if (CRON_OTRS_NAME.equals(name)) {
|
||||||
|
RadarEventListener target = config.getConfigurationEventTarget();
|
||||||
|
if (target != null) {
|
||||||
|
ConfigEvent ev = new ConfigEvent(ConfigEvent.Category.CRON_OTRS);
|
||||||
|
target.handleConfigEvent(ev);
|
||||||
|
}
|
||||||
} else if (Pattern.matches("^rps-.*OP.*$", name)) {
|
} else if (Pattern.matches("^rps-.*OP.*$", name)) {
|
||||||
config.notifyNationalRpsLists();
|
config.notifyNationalRpsLists();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -32,6 +32,10 @@
|
||||||
<constructor-arg value="wmoSiteInfo.txt" />
|
<constructor-arg value="wmoSiteInfo.txt" />
|
||||||
<constructor-arg ref="radarServerNdmListener" />
|
<constructor-arg ref="radarServerNdmListener" />
|
||||||
</bean>
|
</bean>
|
||||||
|
<bean factory-bean="ndmProc" factory-method="registerListener">
|
||||||
|
<constructor-arg value="cronOTRs.xml" />
|
||||||
|
<constructor-arg ref="radarServerNdmListener" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
<camelContext id="rpgenvdata-camel" xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="errorHandler">
|
<camelContext id="rpgenvdata-camel" xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="errorHandler">
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue