
pro.taskana.adapter.manager.AdapterManager Maven / Gradle / Ivy
package pro.taskana.adapter.manager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import pro.taskana.adapter.systemconnector.api.SystemConnector;
import pro.taskana.adapter.systemconnector.spi.SystemConnectorProvider;
import pro.taskana.adapter.taskanaconnector.api.TaskanaConnector;
import pro.taskana.adapter.taskanaconnector.spi.TaskanaConnectorProvider;
import pro.taskana.adapter.util.Assert;
/**
* Scheduler for receiving referenced tasks, completing Taskana tasks and cleaning adapter tables.
*/
@Component
public class AdapterManager {
private static final Logger LOGGER = LoggerFactory.getLogger(AdapterManager.class);
private boolean isInitialized = false;
private Map systemConnectors;
private List taskanaConnectors;
public Map getSystemConnectors() {
return systemConnectors;
}
public TaskanaConnector getTaskanaConnector() {
Assert.assertion(taskanaConnectors.size() == 1, "taskanaConnectors.size() == 1");
return taskanaConnectors.get(0);
}
public boolean isInitialized() {
return isInitialized;
}
public void init() {
if (isInitialized) {
return;
}
LOGGER.debug("initAdapterInfrastructure called ");
initTaskanaConnectors();
initSystemConnectors();
isInitialized = true;
}
private void initSystemConnectors() {
systemConnectors = new HashMap<>();
LOGGER.info("initializing system connectors ");
ServiceLoader loader =
ServiceLoader.load(SystemConnectorProvider.class);
for (SystemConnectorProvider provider : loader) {
List connectors = provider.create();
for (SystemConnector conn : connectors) {
systemConnectors.put(conn.getSystemUrl(), conn);
if (LOGGER.isInfoEnabled()) {
LOGGER.info(
"initialized system connectors {} for system_url {}", conn, conn.getSystemUrl());
}
}
}
}
private void initTaskanaConnectors() {
taskanaConnectors = new ArrayList<>();
ServiceLoader loader =
ServiceLoader.load(TaskanaConnectorProvider.class);
for (TaskanaConnectorProvider provider : loader) {
List connectors = provider.create();
if (LOGGER.isInfoEnabled()) {
LOGGER.info("initialized taskana connectors {} ", connectors);
}
taskanaConnectors.addAll(connectors);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy