import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
-import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.openflowplugin.common.txchain.TransactionChainManager;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Singleton
+@Component(service = OperationProcessor.class)
public final class OperationProcessor implements AutoCloseable, Runnable {
private static final Logger LOG = LoggerFactory.getLogger(OperationProcessor.class);
private static final int MAX_TRANSACTION_OPERATIONS = 100;
private volatile boolean finishing = false;
@Inject
+ @Activate
public OperationProcessor(@Reference final DataBroker dataBroker) {
transactionChainManager = new TransactionChainManager(dataBroker, TOPOLOGY_MANAGER);
transactionChainManager.activateTransactionManager();
thread = new Thread(this);
thread.setDaemon(true);
thread.setName("ofp-topo-expo-" + FlowCapableTopologyProvider.TOPOLOGY_ID);
+ thread.start();
+ LOG.debug("OperationProcessor started");
}
void enqueueOperation(final TopologyOperation task) {
}
}
- @PostConstruct
- public void start() {
- thread.start();
- }
-
@Override
public void run() {
while (!finishing) {
}
}
- @Override
@PreDestroy
+ @Deactivate
+ @Override
public void close() {
thread.interrupt();
try {
}
transactionChainManager.close();
-
- LOG.debug("OperationProcessor closed");
+ LOG.debug("OperationProcessor stopped");
}
}