1 package org.opendaylight.controller.sal.binding.impl.connect.dom;
3 import java.util.Collection;
4 import java.util.Collections;
6 import javassist.ClassPool;
8 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
9 import org.opendaylight.controller.sal.binding.dom.serializer.impl.TransformerGenerator;
10 import org.opendaylight.controller.sal.core.api.Broker;
11 import org.opendaylight.controller.sal.core.api.Provider;
12 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
13 import org.opendaylight.controller.sal.core.api.data.DataBrokerService;
14 import org.opendaylight.controller.sal.core.api.model.SchemaService;
15 import org.osgi.framework.BundleContext;
16 import org.osgi.framework.ServiceReference;
17 import org.osgi.util.tracker.ServiceTracker;
18 import org.osgi.util.tracker.ServiceTrackerCustomizer;
20 public class ConnectorActivator implements Provider, ServiceTrackerCustomizer<Broker, Broker> {
22 BindingIndependentDataServiceConnector dataConnector;
23 BindingIndependentMappingService mappingService;
25 private final DataProviderService baDataService;
26 private BundleContext context;
28 private ServiceTracker<Broker, Broker> brokerTracker;
30 public ConnectorActivator(DataProviderService dataService, BundleContext context) {
31 baDataService = dataService;
32 this.context = context;
33 brokerTracker = new ServiceTracker<>(context, Broker.class, this);
37 public Collection<ProviderFunctionality> getProviderFunctionality() {
38 return Collections.emptySet();
42 public void onSessionInitiated(ProviderSession session) {
44 RuntimeGeneratedMappingServiceImpl mappingImpl = new RuntimeGeneratedMappingServiceImpl();
45 SchemaService schemaService = (session.getService(SchemaService.class));
46 ClassPool pool = new ClassPool();
47 mappingImpl.setBinding(new TransformerGenerator(pool));
49 schemaService.registerSchemaServiceListener(mappingImpl);
50 mappingService = mappingImpl;
51 dataConnector = new BindingIndependentDataServiceConnector();
52 dataConnector.setBaDataService(baDataService);
53 dataConnector.setBiDataService(session.getService(DataBrokerService.class));
54 dataConnector.setMappingService(mappingService);
55 dataConnector.start();
59 public Broker addingService(ServiceReference<Broker> reference) {
60 Broker br= context.getService(reference);
61 br.registerProvider(this, context);
66 public void modifiedService(ServiceReference<Broker> reference, Broker service) {
71 public void removedService(ServiceReference<Broker> reference, Broker service) {