ASM #17092 - Add cronOTRs.xml to radar NDM files
Change-Id: I46bf0728607737509ad97f6d2ed1803b3b10eeff Former-commit-id:6db744c3cc
[formerlyc6c9209f84
] [formerly6db744c3cc
[formerlyc6c9209f84
] [formerly562582f056
[formerly fc9eb096ce16005be0a80eff3b4728f279f75cf5]]] Former-commit-id:562582f056
Former-commit-id:298a9cd43f
[formerly02c1658af2
] Former-commit-id:aa0746f502
This commit is contained in:
parent
3384329b96
commit
db8a119ca1
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
|
||||
* ...
|
||||
* 2014-02-03 DR 14762 D. Friedman Add Category enum
|
||||
* 2015-02-11 DR 17092 D. Friedman Handle NDM cronOTRs.xml updates.
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
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 RadarConfig oldConfig;
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.quartz.impl.StdSchedulerFactory;
|
|||
import com.raytheon.rcm.config.Configuration;
|
||||
import com.raytheon.rcm.config.RadarConfig;
|
||||
import com.raytheon.rcm.config.Util;
|
||||
import com.raytheon.rcm.event.ConfigEvent;
|
||||
import com.raytheon.rcm.event.OtrEvent;
|
||||
import com.raytheon.rcm.event.RadarEventAdapter;
|
||||
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.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 {
|
||||
|
||||
// Quartz job detail properties
|
||||
|
@ -46,8 +60,6 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
private RadarServer radarServer;
|
||||
private OTRManager otrManager;
|
||||
|
||||
private CronOTRConfiguration cronConfig;
|
||||
|
||||
private Scheduler scheduler;
|
||||
|
||||
private Random random = new Random();
|
||||
|
@ -70,16 +82,29 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
OTRManager.class.getSimpleName());
|
||||
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 {
|
||||
scheduler = StdSchedulerFactory.getDefaultScheduler();
|
||||
scheduler.start();
|
||||
} catch (SchedulerException e) {
|
||||
Log.errorf("Failed to start cron-OTR scheduler: %s", e);
|
||||
Log.errorf("Failed to start cron-OTR scheduler: %s", e);
|
||||
scheduler = null;
|
||||
}
|
||||
|
||||
|
||||
if (scheduler != null) {
|
||||
CronOTRConfiguration cronConfig = null;
|
||||
InputStream ins = null;
|
||||
try {
|
||||
ins = radarServer.getConfiguration().getDropInData("cronOTRs.xml");
|
||||
|
@ -91,7 +116,7 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
} catch (Exception e) {
|
||||
Log.errorf("Error loading cron-OTR configuration: %s", e);
|
||||
}
|
||||
|
||||
|
||||
if (cronConfig != null) {
|
||||
int jobIndex = 1; // Used to generate unique JobDetail names
|
||||
for (CronOTR cronOTR : cronConfig.cronOTRList) {
|
||||
|
@ -104,7 +129,7 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
cronOTR.getCron(), e);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
JobDetail jd = new JobDetail(name, null, CronOTRJob.class);
|
||||
JobDataMap jdm = jd.getJobDataMap();
|
||||
jdm.put(SCHEDULER, this);
|
||||
|
@ -112,10 +137,10 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
try {
|
||||
scheduler.scheduleJob(jd, trigger);
|
||||
} catch (Exception e) {
|
||||
Log.errorf("Error schedule cron \"%s\": %s",
|
||||
Log.errorf("Error scheduling cron \"%s\": %s",
|
||||
cronOTR.getCron(), e);
|
||||
}
|
||||
|
||||
|
||||
jobIndex++;
|
||||
}
|
||||
}
|
||||
|
@ -179,7 +204,13 @@ public class RequestScheduler extends RadarEventAdapter {
|
|||
|
||||
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
|
||||
* Quartz.
|
||||
|
|
|
@ -40,6 +40,8 @@ import com.raytheon.rcm.config.LinkType;
|
|||
import com.raytheon.rcm.config.RadarConfig;
|
||||
import com.raytheon.rcm.config.StandardProductDistInfoDB;
|
||||
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;
|
||||
|
||||
|
||||
|
@ -54,6 +56,7 @@ import com.raytheon.rcm.server.Log;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* ...
|
||||
* 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>
|
||||
*
|
||||
*/
|
||||
|
@ -62,6 +65,7 @@ public class StandardConfigProvider implements ConfigurationProvider {
|
|||
private static String WSR_88D_PROD_LIST_NAME = "prodList.txt";
|
||||
private static String TDWR__PROD_LIST_NAME = "tdwrProdList.txt";
|
||||
private static String WMO_SITE_INFO_NAME = "wmoSiteInfo.txt";
|
||||
private static String CRON_OTRS_NAME = "cronOTRs.xml";
|
||||
|
||||
private static JAXBContext jaxbContext;
|
||||
private static Unmarshaller u;
|
||||
|
@ -266,6 +270,12 @@ public class StandardConfigProvider implements ConfigurationProvider {
|
|||
loadProdListDB();
|
||||
} else if (WMO_SITE_INFO_NAME.equals(name)) {
|
||||
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)) {
|
||||
config.notifyNationalRpsLists();
|
||||
} else {
|
||||
|
|
|
@ -32,6 +32,10 @@
|
|||
<constructor-arg value="wmoSiteInfo.txt" />
|
||||
<constructor-arg ref="radarServerNdmListener" />
|
||||
</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">
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue