@Override
public void init(ComponentRepository repo, LinkedHashMap<String, String> configuration) {
ComponentInfo info = new ComponentInfo(HolidayMaster.class, getClassifier());
// create
DbHolidayMaster master = new DbHolidayMaster(getDbConnector());
master.registerMetrics(OpenGammaMetricRegistry.getSummaryInstance(), OpenGammaMetricRegistry.getDetailedInstance(), "DbHolidayMaster-" + getClassifier());
if (getUniqueIdScheme() != null) {
master.setUniqueIdScheme(getUniqueIdScheme());
}
if (getMaxRetries() != null) {
master.setMaxRetries(getMaxRetries());
}
if (getJmsChangeManagerTopic() != null) {
JmsChangeManager cm = new JmsChangeManager(getJmsConnector(), getJmsChangeManagerTopic());
master.setChangeManager(cm);
repo.registerLifecycle(cm);
if (getJmsConnector().getClientBrokerUri() != null) {
info.addAttribute(ComponentInfoAttributes.JMS_BROKER_URI, getJmsConnector().getClientBrokerUri().toString());
}
info.addAttribute(ComponentInfoAttributes.JMS_CHANGE_MANAGER_TOPIC, getJmsChangeManagerTopic());
}
checkSchema(master.getSchemaVersion(), "exg");
// register
info.addAttribute(ComponentInfoAttributes.LEVEL, 1);
info.addAttribute(ComponentInfoAttributes.REMOTE_CLIENT_JAVA, RemoteHolidayMaster.class);
info.addAttribute(ComponentInfoAttributes.UNIQUE_ID_SCHEME, master.getUniqueIdScheme());
repo.registerComponent(info, master);
// publish
if (isPublishRest()) {
repo.getRestComponents().publish(info, new DataHolidayMasterResource(master));