*/
package org.opendaylight.controller.sal.compatibility;
-import java.util.Collection;
-import java.util.Collections;
-
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
import org.opendaylight.controller.sal.binding.api.NotificationService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService;
-import org.opendaylight.yangtools.yang.binding.RpcService;
import com.google.common.base.Preconditions;
this.activator = Preconditions.checkNotNull(cmpAct);
}
- @Override
- public Collection<? extends ProviderFunctionality> getFunctionality() {
- return Collections.emptyList();
- }
-
- @Override
- public Collection<? extends RpcService> getImplementations() {
- return Collections.emptyList();
- }
-
- @Override
- public void onSessionInitialized(final ConsumerContext session) {
- // No-op
- }
-
@Override
public void onSessionInitiated(final ProviderContext session) {
final NotificationService subscribe = session.getSALService(NotificationService.class);
*/
package org.opendaylight.controller.sal.binding.api;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.yangtools.yang.binding.RpcService;
import org.osgi.framework.BundleContext;
@Deprecated
@Override
protected final void onBrokerAvailable(BindingAwareBroker broker, BundleContext context) {
ProviderContext ctx = broker.registerProvider(this, context);
- registerRpcImplementations(ctx);
- registerFunctionality(ctx);
- }
-
- private void registerFunctionality(ProviderContext ctx) {
- Collection<? extends ProviderFunctionality> functionality = this.getFunctionality();
- if (functionality == null || functionality.isEmpty()) {
- return;
- }
- for (ProviderFunctionality providerFunctionality : functionality) {
- ctx.registerFunctionality(providerFunctionality);
- }
-
- }
-
- private void registerRpcImplementations(ProviderContext ctx) {
- Collection<? extends RpcService> rpcs = this.getImplementations();
- if (rpcs == null || rpcs.isEmpty()) {
- return;
- }
- for (RpcService rpcService : rpcs) {
- // ctx.addRpcImplementation(type, implementation);
- }
-
- }
-
- @Override
- public Collection<? extends ProviderFunctionality> getFunctionality() {
- return Collections.emptySet();
- }
-
- @Override
- public Collection<? extends RpcService> getImplementations() {
- return Collections.emptySet();
- }
-
- /**
- * Initialization of consumer context.
- *
- * {@link ProviderContext} is replacement of {@link ConsumerContext}
- * so this method is not needed in case of Provider.
- *
- */
- @Deprecated
- @Override
- public final void onSessionInitialized(ConsumerContext session) {
- // NOOP
}
}
package org.opendaylight.controller.sal.binding.api;
import org.opendaylight.controller.md.sal.common.api.routing.RoutedRegistration;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider.ProviderFunctionality;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.binding.BaseIdentity;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
* and {@link ProviderContext}
*/
public interface BindingAwareBroker {
+ /*
+ * @deprecated Use registerConsumer(BindingAwareConsumer cons) instead (BundleContext is no longer used)
+ */
+ @Deprecated
+ ConsumerContext registerConsumer(BindingAwareConsumer consumer, BundleContext ctx);
+
/**
* Registers the {@link BindingAwareConsumer}, which will use the SAL layer.
*
* @throws IllegalStateException
* If the consumer is already registered.
*/
- ConsumerContext registerConsumer(BindingAwareConsumer consumer, BundleContext ctx);
+ ConsumerContext registerConsumer(BindingAwareConsumer consumer);
+
+ /*
+ * @deprecated Use registerProvider(BindingAwareProvider prov) instead (BundleContext is no longer used)
+ */
+ @Deprecated
+ ProviderContext registerProvider(BindingAwareProvider provider, BundleContext ctx);
/**
* Registers the {@link BindingAwareProvider}, which will use the SAL layer.
* @throws IllegalStateException
* If the consumer is already registered.
*/
- ProviderContext registerProvider(BindingAwareProvider provider, BundleContext ctx);
+ ProviderContext registerProvider(BindingAwareProvider provider);
/**
* {@link BindingAwareConsumer} specific access to the SAL functionality.
*/
public interface ProviderContext extends ConsumerContext, RpcProviderRegistry {
- @Deprecated
- void registerFunctionality(ProviderFunctionality functionality);
-
- @Deprecated
- void unregisterFunctionality(ProviderFunctionality functionality);
}
/**
*/
package org.opendaylight.controller.sal.binding.api;
-import java.util.Collection;
-
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.yangtools.yang.binding.RpcService;
/**
*
*/
public interface BindingAwareProvider {
- /**
- * @deprecated
- *
- * This interface was originally intended to solve problems of how to get Implementations
- * of functionality from a provider, but that is no longer necessary because the Provider
- * Registers RPCs in onSessionInitiated.
- *
- * Recommend:
- * {code
- * public Collection<? extends RpcService> getImplementations() {
- * return Collections.emptySet();
- * }
- * }
- */
- @Deprecated
- Collection<? extends RpcService> getImplementations();
-
- /**
- * @deprecated
- *
- * This interface was originally intended to solve problems of how to get Functionality
- * a provider could provide, but that is no longer necessary because the Provider
- * Registers RPCs in onSessionInitiated.
- *
- * Recommend:
- * {code
- * public Collection<? extends ProviderFunctionality> getFunctionality() {
- * return Collections.emptySet();
- * }
- * }
- *
- */
- @Deprecated
- Collection<? extends ProviderFunctionality> getFunctionality();
-
- /**
- * Functionality provided by the {@link BindingAwareProvider}
- *
- * <p>
- * Marker interface used to mark the interfaces describing specific
- * functionality which could be exposed by providers to other components.
- *
- *
- *
- */
- @Deprecated
- public interface ProviderFunctionality {
-
- }
/**
* Callback signaling initialization of the consumer session to the SAL.
*
* @param session Unique session between consumer and SAL.
*/
void onSessionInitiated(ProviderContext session);
-
- /*
- * @deprecated
- *
- * A provider was at one point considered an extension of a consumer, thus this
- * call. It is deprecated and the @see org.opendaylight.controller.sal.binding.api.BindingAwareConsumer#onSessionInitiated
- * used, or you should simply use {@link #onSessionInitiated(ProviderContext)}
- *
- * Recommend:
- * {code
- * public final void onSessionInitialized(ConsumerContext session) {
- * // NOOP - as method is deprecated
- * }
- * }
- */
- @Deprecated
- void onSessionInitialized(ConsumerContext session);
-
}
+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.api.data;
-
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-
-/**
- * Trigger for refreshing of the data exposed by the {@link Provider}
- *
- *
- * @deprecated Unused, not supported. Replaced by org.opendaylight.controller.sal.core.spi.data.DOMStore.
- */
-@Deprecated
-public interface DataRefresher extends BindingAwareProvider.ProviderFunctionality {
-
- /**
- * Fired when some component explicitly requested the data refresh.
- *
- * The provider which exposed the {@link DataRefresher} should republish its
- * provided data by editing the data in all affected data stores.
- */
- void refreshData();
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.api.data;
-
-import org.opendaylight.controller.md.sal.common.api.data.DataReader;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider.ProviderFunctionality;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Utility interface which does type capture for BindingAware DataReader.
- *
- *
- * @deprecated Removed, replaced by org.opendaylight.controller.sal.core.spi.data.DOMStore.
- *
- */
-@Deprecated
-public interface RuntimeDataProvider extends ProviderFunctionality,DataReader<InstanceIdentifier<? extends DataObject>, DataObject> {
-
-
-
-}
}
@Override
- public ConsumerContext registerConsumer(final BindingAwareConsumer consumer, final BundleContext ctx) {
+ public ConsumerContext registerConsumer(BindingAwareConsumer consumer,
+ BundleContext ctx) {
+ return registerConsumer(consumer);
+ }
+
+ @Override
+ public ProviderContext registerProvider(BindingAwareProvider provider,
+ BundleContext ctx) {
+ return registerProvider(provider);
+ }
+
+ @Override
+ public ConsumerContext registerConsumer(final BindingAwareConsumer consumer) {
checkState(supportedConsumerServices != null, "Broker is not initialized.");
return BindingContextUtils.createConsumerContextAndInitialize(consumer, supportedConsumerServices);
}
@Override
- public ProviderContext registerProvider(final BindingAwareProvider provider, final BundleContext ctx) {
+ public ProviderContext registerProvider(final BindingAwareProvider provider) {
checkState(supportedProviderServices != null, "Broker is not initialized.");
return BindingContextUtils.createProviderContextAndInitialize(provider, supportedProviderServices);
}
import java.util.Collection;
import java.util.Collections;
-
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+
import org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.DataReader;
import org.opendaylight.controller.md.sal.common.api.routing.RouteChangePublisher;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
-import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider;
import org.opendaylight.controller.sal.binding.impl.DataBrokerImpl;
import org.opendaylight.controller.sal.binding.impl.MountPointManagerImpl.BindingMountPointImpl;
import org.opendaylight.controller.sal.binding.impl.RpcProviderRegistryImpl;
import org.slf4j.LoggerFactory;
public class BindingIndependentConnector implements //
- RuntimeDataProvider, //
+ DataReader<InstanceIdentifier<? extends DataObject>, DataObject>, //
Provider, //
AutoCloseable {
*/
package org.opendaylight.controller.test.sal.binding.it;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-import org.opendaylight.yangtools.yang.binding.RpcService;
public abstract class AbstractTestProvider implements BindingAwareProvider {
- @Override
- public Collection<? extends RpcService> getImplementations() {
- return Collections.emptySet();
- }
-
- @Override
- public Collection<? extends ProviderFunctionality> getFunctionality() {
- return Collections.emptySet();
- }
-
- @Override
- public void onSessionInitialized(ConsumerContext session) {
- // Noop
-
- }
}
import java.math.BigInteger;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import org.junit.Before;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.NotificationListener;
-import org.opendaylight.yangtools.yang.binding.RpcService;
@Ignore
public class NotificationTest extends AbstractTest {
listener2Reg = session.getSALService(NotificationProviderService.class).registerNotificationListener(
listener2);
}
-
- @Override
- public void onSessionInitialized(ConsumerContext session) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public Collection<? extends RpcService> getImplementations() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Collection<? extends ProviderFunctionality> getFunctionality() {
- // TODO Auto-generated method stub
- return null;
- }
-
};
// registerConsumer method calls onSessionInitialized method above
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider.ProviderFunctionality;
import org.opendaylight.controller.sal.binding.api.BindingAwareService;
import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry;
import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
throws IllegalStateException {
return getSALService(RpcProviderRegistry.class).addRpcImplementation(type, implementation);
}
-
- @Deprecated
- @Override
- public void registerFunctionality(ProviderFunctionality functionality) {
- // NOOP
- }
-
- @Deprecated
- @Override
- public void unregisterFunctionality(ProviderFunctionality functionality) {
- // NOOP
- }
}
}
import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry;
import org.opendaylight.controller.sal.core.api.notify.NotificationPublishService;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
-import org.opendaylight.yangtools.yang.binding.RpcService;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.slf4j.Logger;
return Collections.emptySet();
}
- @Override
- public Collection<? extends RpcService> getImplementations() {
- return Collections.emptySet();
- }
-
- @Override
- public Collection<? extends BindingAwareProvider.ProviderFunctionality> getFunctionality() {
- return Collections.emptySet();
- }
-
@Override
public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
logger.debug("{}: Session with sal established {}", id, session);
datastoreAdapter = new NetconfDeviceDatastoreAdapter(id, dataBroker);
}
- @Override
- public void onSessionInitialized(final BindingAwareBroker.ConsumerContext session) {}
-
public void close() throws Exception {
mountInstance.close();
datastoreAdapter.close();
.put(RpcConsumerRegistry.class,servicesFactory.getRpcConsumerRegistry() ).build();
}
- public ProviderContext registerProvider(BindingAwareProvider provider, BundleContext ctx) {
+ public ProviderContext registerProvider(BindingAwareProvider provider) {
throw new UnsupportedOperationException();
}
@Override
//TODO decide if serviceFactory should close clientContext or it has to be closed by consumer
}
@Override
- public ConsumerContext registerConsumer(BindingAwareConsumer consumer, BundleContext ctx) {
+ public ConsumerContext registerConsumer(BindingAwareConsumer consumer) {
checkState(supportedConsumerServices != null, "Broker is not initialized.");
return BindingContextUtils.createConsumerContextAndInitialize(consumer, supportedConsumerServices);
}
+ @Override
+ public ConsumerContext registerConsumer(BindingAwareConsumer consumer,
+ BundleContext ctx) {
+ return registerConsumer(consumer);
+ }
+
+ @Override
+ public ProviderContext registerProvider(BindingAwareProvider provider,
+ BundleContext ctx) {
+ return registerProvider(provider);
+ }
+
}