@Override
public void init(ComponentRepository repo, LinkedHashMap<String, String> configuration) {
ComponentInfo info = new ComponentInfo(PositionMaster.class, getClassifier());
// create
DbPositionMaster master = new DbPositionMaster(getDbConnector());
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(), "pos");
// register
info.addAttribute(ComponentInfoAttributes.LEVEL, 1);
info.addAttribute(ComponentInfoAttributes.REMOTE_CLIENT_JAVA, RemotePositionMaster.class);
info.addAttribute(ComponentInfoAttributes.UNIQUE_ID_SCHEME, master.getUniqueIdScheme());
repo.registerComponent(info, master);
// publish
if (isPublishRest()) {
repo.getRestComponents().publish(info, new DataDbPositionMasterResource(master));