Fix copyright header
[groupbasedpolicy.git] / neutron-mapper / src / main / java / org / opendaylight / groupbasedpolicy / neutron / mapper / NeutronMapper.java
index e973936fbf76ba496ae6234faf59de4703e1b1cc..e46cdff4ec7064541605e55217ce2e38bc8e608b 100644 (file)
@@ -19,13 +19,17 @@ import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronFloatingI
 import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronNetworkAware;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronPortAware;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronRouterAware;
-import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronSecurityGroupAware;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronSubnetAware;
+import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.group.NeutronSecurityGroupAware;
+import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.group.SecGroupDao;
+import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule.NeutronSecurityRuleAware;
+import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule.SecRuleDao;
 import org.opendaylight.neutron.spi.INeutronFloatingIPAware;
 import org.opendaylight.neutron.spi.INeutronNetworkAware;
 import org.opendaylight.neutron.spi.INeutronPortAware;
 import org.opendaylight.neutron.spi.INeutronRouterAware;
 import org.opendaylight.neutron.spi.INeutronSecurityGroupAware;
+import org.opendaylight.neutron.spi.INeutronSecurityRuleAware;
 import org.opendaylight.neutron.spi.INeutronSubnetAware;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
 import org.osgi.framework.BundleContext;
@@ -40,34 +44,43 @@ public class NeutronMapper implements AutoCloseable {
         checkNotNull(rpcProvider);
         checkNotNull(context);
         EndpointService epService = rpcProvider.getRpcService(EndpointService.class);
-
         registerAwareProviders(dataProvider, epService, context);
     }
 
     private void registerAwareProviders(DataBroker dataProvider, EndpointService epService, BundleContext context) {
-        ServiceRegistration<INeutronNetworkAware> neutronNetworkAwareRegistration = context.registerService(
-                INeutronNetworkAware.class, new NeutronNetworkAware(dataProvider), null);
+        ServiceRegistration<INeutronNetworkAware> neutronNetworkAwareRegistration =
+                context.registerService(INeutronNetworkAware.class, new NeutronNetworkAware(dataProvider), null);
         registrations.add(neutronNetworkAwareRegistration);
 
-        ServiceRegistration<INeutronSubnetAware> neutronSubnetAwareRegistration = context.registerService(
-                INeutronSubnetAware.class, new NeutronSubnetAware(dataProvider), null);
+        ServiceRegistration<INeutronSubnetAware> neutronSubnetAwareRegistration =
+                context.registerService(INeutronSubnetAware.class, new NeutronSubnetAware(dataProvider), null);
         registrations.add(neutronSubnetAwareRegistration);
 
-        ServiceRegistration<INeutronPortAware> neutronPortAwareRegistration = context.registerService(
-                INeutronPortAware.class, new NeutronPortAware(dataProvider, epService), null);
-        registrations.add(neutronPortAwareRegistration);
+        SecGroupDao secGroupDao = new SecGroupDao();
+        SecRuleDao secRuleDao = new SecRuleDao();
+        NeutronSecurityRuleAware securityRuleAware = new NeutronSecurityRuleAware(dataProvider, secRuleDao, secGroupDao);
+        ServiceRegistration<INeutronSecurityRuleAware> neutronSecurityRuleAwareRegistration =
+                context.registerService(INeutronSecurityRuleAware.class, securityRuleAware, null);
+        registrations.add(neutronSecurityRuleAwareRegistration);
 
-        ServiceRegistration<INeutronSecurityGroupAware> neutronSecurityGroupAwareRegistration = context.registerService(
-                INeutronSecurityGroupAware.class, new NeutronSecurityGroupAware(dataProvider), null);
+        NeutronSecurityGroupAware securityGroupAware = new NeutronSecurityGroupAware(dataProvider, securityRuleAware, secGroupDao);
+        ServiceRegistration<INeutronSecurityGroupAware> neutronSecurityGroupAwareRegistration =
+                context.registerService(INeutronSecurityGroupAware.class, securityGroupAware, null);
         registrations.add(neutronSecurityGroupAwareRegistration);
 
-        NeutronRouterAware.init(dataProvider, epService);
-        ServiceRegistration<INeutronRouterAware> neutronRouterAwareRegistration = context.registerService(
-                INeutronRouterAware.class, NeutronRouterAware.getInstance(), null);
+        NeutronPortAware portAware =
+                new NeutronPortAware(dataProvider, epService, securityRuleAware, securityGroupAware);
+        ServiceRegistration<INeutronPortAware> neutronPortAwareRegistration =
+                context.registerService(INeutronPortAware.class, portAware, null);
+        registrations.add(neutronPortAwareRegistration);
+
+        NeutronRouterAware routerAware = new NeutronRouterAware(dataProvider, epService, securityRuleAware);
+        ServiceRegistration<INeutronRouterAware> neutronRouterAwareRegistration =
+                context.registerService(INeutronRouterAware.class, routerAware, null);
         registrations.add(neutronRouterAwareRegistration);
 
-        ServiceRegistration<INeutronFloatingIPAware> neutronFloatingIpAwareRegistration = context.registerService(
-                INeutronFloatingIPAware.class, new NeutronFloatingIpAware(dataProvider), null);
+        ServiceRegistration<INeutronFloatingIPAware> neutronFloatingIpAwareRegistration = context
+            .registerService(INeutronFloatingIPAware.class, new NeutronFloatingIpAware(dataProvider, epService), null);
         registrations.add(neutronFloatingIpAwareRegistration);
     }