X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fservices%2FAbstractService.java;h=0da48399a21fabf4beebeb7d59782ee1cf964211;hb=2a8cb12d9f6c185974283e396dea03d688ea4dac;hp=5888d2b443ac3da370303f9619842874221aea05;hpb=9684de318d522d418fc5f8501f6a64da9033a873;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java index 5888d2b443..0da48399a2 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java @@ -14,15 +14,16 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.math.BigInteger; import javax.annotation.Nonnull; -import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceRegistry; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; +import org.opendaylight.openflowplugin.api.openflow.device.TxFacade; import org.opendaylight.openflowplugin.api.openflow.device.Xid; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.EventIdentifier; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; import org.opendaylight.yangtools.yang.binding.DataContainer; import org.opendaylight.yangtools.yang.common.RpcError; @@ -33,24 +34,21 @@ import org.slf4j.LoggerFactory; abstract class AbstractService { private static final Logger LOG = LoggerFactory.getLogger(AbstractService.class); - private static final long WAIT_TIME = 2000; - private static final BigInteger PRIMARY_CONNECTION = BigInteger.ZERO; private final short version; private final BigInteger datapathId; private final RequestContextStack requestContextStack; private final DeviceContext deviceContext; - private final ConnectionAdapter primaryConnectionAdapter; private final MessageSpy messageSpy; private EventIdentifier eventIdentifier; - public AbstractService(final RequestContextStack requestContextStack, final DeviceContext deviceContext) { + AbstractService(final RequestContextStack requestContextStack, final DeviceContext deviceContext) { + final DeviceInfo deviceInfo = deviceContext.getDeviceInfo(); + this.requestContextStack = requestContextStack; this.deviceContext = deviceContext; - final FeaturesReply features = this.deviceContext.getPrimaryConnectionContext().getFeatures(); - this.datapathId = features.getDatapathId(); - this.version = features.getVersion(); - this.primaryConnectionAdapter = deviceContext.getPrimaryConnectionContext().getConnectionAdapter(); + this.datapathId = deviceInfo.getDatapathId(); + this.version = deviceInfo.getVersion(); this.messageSpy = deviceContext.getMessageSpy(); } @@ -74,19 +72,26 @@ abstract class AbstractService { return requestContextStack; } + @Deprecated public DeviceContext getDeviceContext() { return deviceContext; } + protected DeviceRegistry getDeviceRegistry() {return deviceContext;} + + public DeviceInfo getDeviceInfo() {return deviceContext.getDeviceInfo();} + + public TxFacade getTxFacade() {return deviceContext;} + public MessageSpy getMessageSpy() { return messageSpy; } - protected abstract OfHeader buildRequest(Xid xid, I input) throws Exception; + protected abstract OfHeader buildRequest(Xid xid, I input) throws ServiceException; protected abstract FutureCallback createCallback(RequestContext context, Class requestType); - public final ListenableFuture> handleServiceCall(@Nonnull final I input) { + public ListenableFuture> handleServiceCall(@Nonnull final I input) { Preconditions.checkNotNull(input); final Class requestType; @@ -101,16 +106,16 @@ abstract class AbstractService { final RequestContext requestContext = requestContextStack.createRequestContext(); if (requestContext == null) { LOG.trace("Request context refused."); - deviceContext.getMessageSpy().spyMessage(AbstractService.class, MessageSpy.STATISTIC_GROUP.TO_SWITCH_DISREGARDED); + getMessageSpy().spyMessage(AbstractService.class, MessageSpy.STATISTIC_GROUP.TO_SWITCH_DISREGARDED); return failedFuture(); } if (requestContext.getXid() == null) { - deviceContext.getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_RESERVATION_REJECTED); + getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_RESERVATION_REJECTED); return RequestContextUtil.closeRequestContextWithRpcError(requestContext, "Outbound queue wasn't able to reserve XID."); } - messageSpy.spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_READY_FOR_SUBMIT); + getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_READY_FOR_SUBMIT); final Xid xid = requestContext.getXid(); OfHeader request = null;