connector.initialize(context); OffsetStorageWriter offsetWriter = new OffsetStorageWriter(offsetStore, engineName, keyConverter, valueConverter); connector.start(config.asMap()); connectorCallback.ifPresent(ConnectorCallback::connectorStarted); List<Map<String, String>> taskConfigs = connector.taskConfigs(1); Class<? extends Task> taskClass = connector.taskClass(); SourceTask task = null; try { connector.stop(); connectorCallback.ifPresent(ConnectorCallback::connectorStopped);
/** * Create all the {@link Runnable} workers needed to host the source threads. * * @return * @throws IllegalAccessException if task instantiation fails. * @throws InstantiationException if task instantiation fails. */ private List<SourceThread> createThreadTasks() throws IllegalAccessException, InstantiationException { Class<? extends SourceTask> taskClass = (Class<? extends SourceTask>) connector.taskClass(); List<Map<String, String>> configs = connector.taskConfigs(maxTasks); List<SourceThread> ret = new ArrayList<>(); LOGGER.info("Creating {} tasks for connector {}", configs.size(), connectorName()); for (Map<String, String> conf : configs) { //create the task final SourceThread t = new SourceThread(taskClass, conf, sharedSourceTaskContext); ret.add(t); } return ret; }
connector.initialize(connectorContext); connector.start(connectorProperties); this.offsetBackingStore = offsetBackingStore; offsetBackingStore.start();
@Override public void stop() { if (!startWatch.compareAndSet(true, false)) { throw new IllegalStateException("Connector is not started"); } LOGGER.info("Stopping connector {}", connectorName()); stopAllThreads(); sharedSourceTaskContext.clean(); offsetBackingStore.stop(); connector.stop(); }