These are additional fixes to make Juniper Contrail plugin work

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cc981250
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cc981250
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cc981250

Branch: refs/heads/ui-restyle
Commit: cc98125067575f305ea7621df28c70785128750a
Parents: 4583bac
Author: Sachchidanand Vaidya <vaidy...@juniper.net>
Authored: Wed Jan 8 00:26:46 2014 -0800
Committer: Hugo Trippaers <htrippa...@schubergphilis.com>
Committed: Tue Jan 28 08:58:22 2014 +0000

----------------------------------------------------------------------
 .../network-elements/juniper-contrail/pom.xml   |   6 +
 .../cloudstack/contrail/module.properties       |  18 +++
 .../contrail/spring-contrail-context.xml        |  50 ++++++++
 .../management/ContrailElementImpl.java         |   7 --
 .../IntegrationTestConfiguration.java           |  73 +++++++++--
 .../contrail/management/MockAccountManager.java |   3 -
 .../test/resources/commonContext.xml            | 126 ++++++-------------
 7 files changed, 172 insertions(+), 111 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/pom.xml 
b/plugins/network-elements/juniper-contrail/pom.xml
index ae6961e..8c6877d 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -83,6 +83,12 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.cloudstack</groupId>
+      <artifactId>cloud-framework-spring-lifecycle</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/module.properties
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/module.properties
 
b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/module.properties
new file mode 100644
index 0000000..ced0f3a
--- /dev/null
+++ 
b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/module.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+name=contrail
+parent=network
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
 
b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
new file mode 100644
index 0000000..4614af7
--- /dev/null
+++ 
b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
@@ -0,0 +1,50 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns:context="http://www.springframework.org/schema/context";
+       xmlns:aop="http://www.springframework.org/schema/aop";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+                      
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/context
+                      
http://www.springframework.org/schema/context/spring-context-3.0.xsd";
+                      >
+  <bean id="ContrailManager"
+       
class="org.apache.cloudstack.network.contrail.management.ContrailManagerImpl"/>
+  <bean id="ContrailElement"
+       
class="org.apache.cloudstack.network.contrail.management.ContrailElementImpl">
+    <property name="name" value="ContrailElement"/>
+  </bean>
+
+  <bean id="ContrailGuru"
+       class="org.apache.cloudstack.network.contrail.management.ContrailGuru">
+    <property name="name" value="ContrailGuru"/>
+  </bean>
+
+  <bean id="ServerDBSync"
+       
class="org.apache.cloudstack.network.contrail.management.ServerDBSyncImpl"/>
+  <bean id="ServerEventHandler"
+       
class="org.apache.cloudstack.network.contrail.management.ServerEventHandlerImpl"/>
+  <bean id="EventUtils"
+       class="org.apache.cloudstack.network.contrail.management.EventUtils"/>
+  <bean id="ServiceManager"
+       
class="org.apache.cloudstack.network.contrail.management.ServiceManagerImpl"/>
+
+</beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailElementImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailElementImpl.java
 
b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailElementImpl.java
index 092e4bc..05723b0 100644
--- 
a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailElementImpl.java
+++ 
b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailElementImpl.java
@@ -26,7 +26,6 @@ import java.util.Set;
 
 import javax.ejb.Local;
 import javax.inject.Inject;
-import javax.naming.ConfigurationException;
 
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
@@ -90,12 +89,6 @@ public class ContrailElementImpl extends AdapterBase
     ServerDBSync _dbSync;
     private static final Logger s_logger = 
Logger.getLogger(ContrailElement.class);
 
-    @Override
-    public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
-        s_logger.debug("configure");
-        return true;
-    }
-
     // PluggableService
     @Override
     public List<Class<?>> getCommands() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
 
b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
index 416653d..1a53c17 100644
--- 
a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
+++ 
b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
@@ -45,14 +45,17 @@ import 
org.apache.cloudstack.affinity.dao.AffinityGroupDomainMapDaoImpl;
 import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDaoImpl;
 import org.apache.cloudstack.context.CallContext;
 import 
org.apache.cloudstack.engine.datacenter.entity.api.db.dao.DcDetailsDaoImpl;
+import org.apache.cloudstack.engine.orchestration.NetworkOrchestrator;
 import 
org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
 import org.apache.cloudstack.engine.service.api.OrchestrationService;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
 import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
 import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService;
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
 import org.apache.cloudstack.framework.config.ConfigDepot;
 import org.apache.cloudstack.framework.config.ConfigDepotAdmin;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl;
@@ -65,6 +68,7 @@ import 
org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl;
 import org.apache.cloudstack.framework.jobs.impl.AsyncJobMonitor;
 import org.apache.cloudstack.framework.jobs.impl.SyncQueueManager;
 import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDaoImpl;
+import org.apache.cloudstack.network.element.InternalLoadBalancerElement;
 import org.apache.cloudstack.network.lb.ApplicationLoadBalancerService;
 import org.apache.cloudstack.network.lb.InternalLoadBalancerVMManager;
 import org.apache.cloudstack.network.lb.InternalLoadBalancerVMService;
@@ -73,6 +77,9 @@ import org.apache.cloudstack.region.PortableIpDaoImpl;
 import org.apache.cloudstack.region.PortableIpRangeDaoImpl;
 import org.apache.cloudstack.region.RegionManager;
 import org.apache.cloudstack.region.dao.RegionDaoImpl;
+import org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry;
+import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
 import org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl;
 import org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl;
@@ -120,6 +127,7 @@ import com.cloud.dc.dao.AccountVlanMapDaoImpl;
 import com.cloud.dc.dao.ClusterDaoImpl;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.DataCenterDaoImpl;
+import com.cloud.dc.dao.DataCenterDetailsDaoImpl;
 import com.cloud.dc.dao.DataCenterIpAddressDaoImpl;
 import com.cloud.dc.dao.DataCenterLinkLocalIpAddressDaoImpl;
 import com.cloud.dc.dao.DataCenterVnetDaoImpl;
@@ -141,11 +149,11 @@ import com.cloud.host.dao.HostDetailsDaoImpl;
 import com.cloud.host.dao.HostTagsDaoImpl;
 import com.cloud.hypervisor.HypervisorGuruManagerImpl;
 import com.cloud.hypervisor.dao.HypervisorCapabilitiesDaoImpl;
+import com.cloud.hypervisor.XenServerGuru;
 import com.cloud.network.ExternalDeviceUsageManager;
 import com.cloud.network.IpAddress;
 import com.cloud.network.IpAddressManagerImpl;
 import com.cloud.network.Ipv6AddressManagerImpl;
-import com.cloud.network.NetworkModelImpl;
 import com.cloud.network.NetworkServiceImpl;
 import com.cloud.network.NetworkUsageService;
 import com.cloud.network.StorageNetworkManager;
@@ -161,6 +169,7 @@ import com.cloud.network.as.dao.CounterDaoImpl;
 import com.cloud.network.dao.AccountGuestVlanMapDaoImpl;
 import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
 import com.cloud.network.dao.FirewallRulesDaoImpl;
+import com.cloud.network.dao.IPAddressDaoImpl;
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.LBHealthCheckPolicyDaoImpl;
 import com.cloud.network.dao.LBStickinessPolicyDaoImpl;
@@ -183,7 +192,11 @@ import com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl;
 import com.cloud.network.dao.UserIpv6AddressDaoImpl;
 import com.cloud.network.dao.VirtualRouterProviderDaoImpl;
 import com.cloud.network.dao.VpnUserDaoImpl;
+import com.cloud.network.element.FirewallServiceProvider;
+import com.cloud.network.element.NetworkACLServiceProvider;
+import com.cloud.network.element.PortForwardingServiceProvider;
 import com.cloud.network.element.Site2SiteVpnServiceProvider;
+import com.cloud.network.element.VpcProvider;
 import com.cloud.network.firewall.FirewallManagerImpl;
 import com.cloud.network.lb.LoadBalancingRulesManagerImpl;
 import com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl;
@@ -234,7 +247,7 @@ import com.cloud.storage.VolumeApiService;
 import com.cloud.storage.dao.DiskOfferingDaoImpl;
 import com.cloud.storage.dao.GuestOSCategoryDaoImpl;
 import com.cloud.storage.dao.GuestOSDaoImpl;
-import com.cloud.storage.dao.LaunchPermissionDao;
+import com.cloud.storage.dao.LaunchPermissionDaoImpl;
 import com.cloud.storage.dao.SnapshotDaoImpl;
 import com.cloud.storage.dao.SnapshotPolicyDaoImpl;
 import com.cloud.storage.dao.StoragePoolDetailsDaoImpl;
@@ -271,10 +284,13 @@ import com.cloud.utils.db.Transaction;
 import com.cloud.utils.db.TransactionCallbackNoReturn;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.vm.ItWorkDaoImpl;
+import com.cloud.vm.UserVmManagerImpl;
+import com.cloud.vm.VirtualMachineManagerImpl;
 import com.cloud.vm.dao.ConsoleProxyDaoImpl;
 import com.cloud.vm.dao.DomainRouterDaoImpl;
 import com.cloud.vm.dao.InstanceGroupDaoImpl;
 import com.cloud.vm.dao.InstanceGroupVMMapDaoImpl;
+import com.cloud.vm.dao.NicDaoImpl;
 import com.cloud.vm.dao.NicIpAliasDaoImpl;
 import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
 import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
@@ -291,19 +307,19 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
     AsyncJobJournalDaoImpl.class, AsyncJobManagerImpl.class, 
AutoScalePolicyConditionMapDaoImpl.class, AutoScalePolicyDaoImpl.class, 
AutoScaleVmGroupDaoImpl.class,
     AutoScaleVmGroupPolicyMapDaoImpl.class, AutoScaleVmProfileDaoImpl.class, 
CapacityDaoImpl.class, ClusterDaoImpl.class, ClusterDetailsDaoImpl.class,
     ConditionDaoImpl.class, ConfigurationDaoImpl.class, 
ConfigurationManagerImpl.class, ConfigurationServerImpl.class, 
ConsoleProxyDaoImpl.class,
-    ContrailElementImpl.class, ContrailGuru.class, ContrailManagerImpl.class, 
CounterDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class,
+    ContrailElementImpl.class, ContrailGuru.class, ContrailManagerImpl.class, 
CounterDaoImpl.class, DataCenterDaoImpl.class, DataCenterDetailsDaoImpl.class, 
DataCenterIpAddressDaoImpl.class,
     DataCenterJoinDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class, 
DataCenterVnetDaoImpl.class, DcDetailsDaoImpl.class, 
DedicatedResourceDaoImpl.class,
     DiskOfferingDaoImpl.class, DiskOfferingJoinDaoImpl.class, 
DomainDaoImpl.class, DomainManagerImpl.class, DomainRouterDaoImpl.class, 
DomainRouterJoinDaoImpl.class,
-    EventDaoImpl.class, EventJoinDaoImpl.class, EventUtils.class, 
EventUtils.class, FirewallManagerImpl.class, FirewallRulesCidrsDaoImpl.class,
+    EventDaoImpl.class, EventJoinDaoImpl.class, EventUtils.class, 
ExtensionRegistry.class, FirewallManagerImpl.class, 
FirewallRulesCidrsDaoImpl.class,
     FirewallRulesDaoImpl.class, GuestOSCategoryDaoImpl.class, 
GuestOSDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, 
HostJoinDaoImpl.class,
     HostPodDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, 
HypervisorCapabilitiesDaoImpl.class, HypervisorGuruManagerImpl.class,
  ImageStoreDaoImpl.class, ImageStoreJoinDaoImpl.class, 
InstanceGroupDaoImpl.class, InstanceGroupJoinDaoImpl.class,
-    InstanceGroupVMMapDaoImpl.class, IpAddressManagerImpl.class, 
Ipv6AddressManagerImpl.class, ItWorkDaoImpl.class, 
LBHealthCheckPolicyDaoImpl.class,
-    LBStickinessPolicyDaoImpl.class, LaunchPermissionDao.class, 
LoadBalancerDaoImpl.class, LoadBalancerVMMapDaoImpl.class, 
LoadBalancingRulesManagerImpl.class,
+    InstanceGroupVMMapDaoImpl.class, InternalLoadBalancerElement.class, 
IPAddressDaoImpl.class, IpAddressManagerImpl.class, 
Ipv6AddressManagerImpl.class, ItWorkDaoImpl.class, 
LBHealthCheckPolicyDaoImpl.class,
+    LBStickinessPolicyDaoImpl.class, LaunchPermissionDaoImpl.class, 
LoadBalancerDaoImpl.class, LoadBalancerVMMapDaoImpl.class, 
LoadBalancingRulesManagerImpl.class,
     ManagementServerHostDaoImpl.class, MockAccountManager.class, 
NetworkACLDaoImpl.class, NetworkACLItemDaoImpl.class, 
NetworkACLManagerImpl.class,
-    NetworkAccountDaoImpl.class, NetworkDaoImpl.class, 
NetworkDomainDaoImpl.class, NetworkModelImpl.class, 
NetworkOfferingDaoImpl.class,
-    NetworkOfferingDetailsDaoImpl.class, 
NetworkOfferingServiceMapDaoImpl.class, NetworkOpDaoImpl.class, 
NetworkRuleConfigDaoImpl.class, NetworkServiceImpl.class,
-    NetworkServiceMapDaoImpl.class, NicIpAliasDaoImpl.class, 
NicSecondaryIpDaoImpl.class, PhysicalNetworkDaoImpl.class, 
PhysicalNetworkServiceProviderDaoImpl.class,
+    NetworkAccountDaoImpl.class, NetworkDaoImpl.class, 
NetworkDomainDaoImpl.class, NetworkOfferingDaoImpl.class,
+    NetworkOfferingDetailsDaoImpl.class, 
NetworkOfferingServiceMapDaoImpl.class, NetworkOpDaoImpl.class, 
NetworkOrchestrator.class, NetworkRuleConfigDaoImpl.class, 
NetworkServiceImpl.class,
+    NetworkServiceMapDaoImpl.class, NicDaoImpl.class, NicIpAliasDaoImpl.class, 
NicSecondaryIpDaoImpl.class, PhysicalNetworkDaoImpl.class, 
PhysicalNetworkServiceProviderDaoImpl.class,
     PhysicalNetworkTrafficTypeDaoImpl.class, 
PlannerHostReservationDaoImpl.class, PodVlanDaoImpl.class, 
PodVlanMapDaoImpl.class, PortForwardingRulesDaoImpl.class,
     PortableIpDaoImpl.class, PortableIpRangeDaoImpl.class, 
PrimaryDataStoreDaoImpl.class, PrivateIpDaoImpl.class, 
ProjectAccountDaoImpl.class,
     ProjectAccountJoinDaoImpl.class, ProjectInvitationDaoImpl.class, 
ProjectDaoImpl.class, ProjectInvitationJoinDaoImpl.class, 
ProjectJoinDaoImpl.class,
@@ -315,11 +331,11 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
     SnapshotDaoImpl.class, SnapshotPolicyDaoImpl.class, 
StaticRouteDaoImpl.class, StatsCollector.class, 
StoragePoolDetailsDaoImpl.class, StoragePoolHostDaoImpl.class,
     StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, 
TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, 
UsageEventDaoImpl.class,
     UserAccountJoinDaoImpl.class, UserDaoImpl.class, 
UserIpv6AddressDaoImpl.class, UserStatisticsDaoImpl.class, 
UserStatsLogDaoImpl.class,
-    UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, 
UserVmDetailsDaoImpl.class, UserVmJoinDaoImpl.class, VMInstanceDaoImpl.class, 
VMSnapshotDaoImpl.class,
-    VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, 
VMTemplateHostDaoImpl.class, VMTemplateZoneDaoImpl.class, 
VirtualRouterProviderDaoImpl.class,
+    UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, 
UserVmDetailsDaoImpl.class, UserVmJoinDaoImpl.class, UserVmManagerImpl.class, 
VMInstanceDaoImpl.class, VMSnapshotDaoImpl.class,
+    VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, 
VMTemplateHostDaoImpl.class, VMTemplateZoneDaoImpl.class, 
VirtualMachineManagerImpl.class, VirtualRouterProviderDaoImpl.class,
     VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, 
VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeHostDaoImpl.class, 
VolumeJoinDaoImpl.class, VpcDaoImpl.class,
     VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, 
VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class,
-    VpcVirtualNetworkApplianceManagerImpl.class, VpnUserDaoImpl.class}, 
includeFilters = {@Filter(value = 
IntegrationTestConfiguration.ComponentFilter.class,
+    VpcVirtualNetworkApplianceManagerImpl.class, VpnUserDaoImpl.class, 
XenServerGuru.class}, includeFilters = {@Filter(value = 
IntegrationTestConfiguration.ComponentFilter.class,
                                                                                
                   type = FilterType.CUSTOM)}, useDefaultFilters = false)
 @Configuration
 public class IntegrationTestConfiguration {
@@ -711,5 +727,36 @@ public class IntegrationTestConfiguration {
     public VolumeOrchestrationService volumeOrchestrationService() {
         return Mockito.mock(VolumeOrchestrationService.class);
     }
-
+    @Bean
+    public FirewallServiceProvider firewallServiceProvider() {
+        return Mockito.mock(FirewallServiceProvider.class);
+    }
+    @Bean
+    public PortForwardingServiceProvider portForwardingServiceProvider() {
+        return Mockito.mock(PortForwardingServiceProvider.class);
+    }
+    @Bean
+    public NetworkACLServiceProvider networkACLServiceProvider() {
+        return Mockito.mock(NetworkACLServiceProvider.class);
+    }
+    @Bean
+    public VpcProvider vpcProvier() {
+        return Mockito.mock(VpcProvider.class);
+    }
+    @Bean
+    public VolumeService volumeService() {
+        return Mockito.mock(VolumeService.class);
+    }
+    @Bean
+    public PrimaryDataStoreProviderManager privateDataStoreProviderManager() {
+        return Mockito.mock(PrimaryDataStoreProviderManager.class);
+    }
+    @Bean
+    public ImageStoreProviderManager imageStoreProviderManager() {
+        return Mockito.mock(ImageStoreProviderManager.class);
+    }
+    @Bean
+    public DataStoreProvider dataStoreProvider() {
+        return Mockito.mock(DataStoreProvider.class);
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
 
b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
index 2f81688..fa7be58 100644
--- 
a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
+++ 
b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
@@ -34,7 +34,6 @@ import 
org.apache.cloudstack.api.command.admin.user.RegisterCmd;
 import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
 import org.apache.cloudstack.context.CallContext;
 
-import com.cloud.api.query.dao.AccountJoinDao;
 import com.cloud.api.query.vo.ControlledViewEntity;
 import com.cloud.configuration.ResourceLimit;
 import com.cloud.configuration.dao.ResourceCountDao;
@@ -69,8 +68,6 @@ public class MockAccountManager extends ManagerBase 
implements AccountManager {
     ResourceCountDao _resourceCountDao;
 
     @Inject
-    AccountJoinDao _accountJoinDao;
-    @Inject
     UserDao _userDao;
 
     UserVO _systemUser;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc981250/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml 
b/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
index eef908f..6f46f6d 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
+++ b/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
@@ -23,6 +23,7 @@
   <!-- <context:component-scan base-package="org.apache.cloudstack, com.cloud" 
/> -->
   <!-- @DB support -->
 
+  <bean id="componentContext" 
class="com.cloud.utils.component.ComponentContext"/>
   <bean id="transactionContextBuilder" 
class="com.cloud.utils.db.TransactionContextBuilder" />
   <bean id="actionEventInterceptor" 
class="com.cloud.event.ActionEventInterceptor" />
   <bean id="contrailEventInterceptor"
@@ -40,103 +41,52 @@
 
   <bean id="eventBus" 
class="org.apache.cloudstack.framework.messagebus.MessageBusBase" />
 
-  <bean id="eventDaoImpl" class="com.cloud.event.dao.EventDaoImpl" />
 
-  <bean id="actionEventUtils" class="com.cloud.event.ActionEventUtils" />
-  <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
-
-  <!--<bean id="eventUtils" class="com.cloud.event.EventUtils" /> -->
-
-  <bean id="accountDaoImpl" class="com.cloud.user.dao.AccountDaoImpl" />
-  <bean id="accountDetailsDaoImpl" 
class="com.cloud.user.AccountDetailsDaoImpl" />
-  <bean id="accountJoinDaoImpl" 
class="com.cloud.api.query.dao.AccountJoinDaoImpl" />
-  <bean id="accountVlanMapDaoImpl" 
class="com.cloud.dc.dao.AccountVlanMapDaoImpl" />
-  <bean id="launchPermissionDaoImpl" 
class="com.cloud.storage.dao.LaunchPermissionDaoImpl" />
-  <bean id="primaryDataStoreDaoImpl"
-    class="org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl" 
/>
-  <bean id="iPAddressDaoImpl" class="com.cloud.network.dao.IPAddressDaoImpl" />
-  <bean id="apiResponseHelper" class="com.cloud.api.ApiResponseHelper" />
-  <bean id="nicDaoImpl" class="com.cloud.vm.dao.NicDaoImpl" />
-
-  <bean id="componentContext" 
class="com.cloud.utils.component.ComponentContext" />
-
-  <bean id="IntegrationTestConfiguration"
-    
class="org.apache.cloudstack.network.contrail.management.IntegrationTestConfiguration"
 />
-
-  <bean id="HypervisorGuru" class="com.cloud.hypervisor.XenServerGuru" />
-
-  <!-- Management traffic -->
-  <bean id="PodBasedNetworkGuru" 
class="com.cloud.network.guru.PodBasedNetworkGuru" />
-
-  <bean id="ControlNetworkGuru" 
class="com.cloud.network.guru.ControlNetworkGuru" />
-
-  <bean id="PublicNetworkGuru" 
class="com.cloud.network.guru.PublicNetworkGuru" />
-
-  <bean id="StorageNetworkGuru" 
class="com.cloud.network.guru.StorageNetworkGuru" />
-
-  <bean id="DirectNetworkGuru" 
class="com.cloud.network.guru.DirectNetworkGuru" />
-
-  <bean id="VpcVirtualRouterElement" 
class="com.cloud.network.element.VpcVirtualRouterElement" />
-
-  <bean id="VirtualRouterElement" 
class="com.cloud.network.element.VirtualRouterElement" />
-
-  <!-- <bean id="Ipv6AddressManager" 
class="com.cloud.network.Ipv6AddressManagerImpl"/> -->
-
-
-  <bean id="com.cloud.network.security.SecurityGroupManager" 
class="com.cloud.network.security.SecurityGroupManagerImpl" />
-
-  <bean id="SecurityGroupElement" 
class="com.cloud.network.element.SecurityGroupElement" />
-
-  <bean id="InternalLbVm"
-    class="org.apache.cloudstack.network.element.InternalLoadBalancerElement">
-    <property name="name" value="InternalLbVm" />
+  <!-- registry definition -->
+  <bean id="networkGurusRegistry"
+        
class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+  </bean>
+  <bean id="networkElementsRegistry"
+        
class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
   </bean>
-  <!-- <bean id="UserAuthenticator" 
class="com.cloud.server.auth.PlainTextUserAuthenticator"/> 
-    <bean id="ManagementServer" 
class="com.cloud.server.ManagementServerImpl"/> <bean 
-    id="SecondaryStorageVmManager" 
class="com.cloud.storage.secondary.SecondaryStorageManagerImpl"/> 
-    <bean id="PodAllocator" 
class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator"/> -->
-  <bean id="com.cloud.vm.UserVmManager" class="com.cloud.vm.UserVmManagerImpl" 
/>
-
-  <bean id="com.cloud.vm.VirtualMachineManager" 
class="com.cloud.vm.VirtualMachineManagerImpl" />
-
-  <!-- <bean id="com.cloud.vm.dao.UserVmDao" 
class="com.cloud.vm.dao.UserVmDaoImpl"/> -->
-  <bean id="ContrailElement"
-    
class="org.apache.cloudstack.network.contrail.management.ContrailElementImpl" />
-
-  <bean id="ContrailGuru" 
class="org.apache.cloudstack.network.contrail.management.ContrailGuru" />
 
-  <bean id="networkElements" class="com.cloud.utils.component.AdapterList">
-    <property name="Adapters">
-      <list>
-        <ref bean="ContrailElement" />
-        <ref bean="VirtualRouterElement" />
-        <ref bean="SecurityGroupElement" />
-        <ref bean="VpcVirtualRouterElement" />
-        <ref bean="InternalLbVm" />
-      </list>
-    </property>
+  <bean id="ipDeployersRegistry"
+        
class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
   </bean>
 
-  <bean id="networkGurus" class="com.cloud.utils.component.AdapterList">
-    <property name="Adapters">
-      <list>
-        <ref bean="ContrailGuru" />
-        <ref bean="PublicNetworkGuru" />
-        <ref bean="PodBasedNetworkGuru" />
-        <ref bean="ControlNetworkGuru" />
-        <ref bean="StorageNetworkGuru" />
-      </list>
-    </property>
+  <bean id="dhcpProvidersRegistry"
+        
class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
   </bean>
 
+  <!-- registry -->
+  <bean 
class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
+    <property name="registry" ref="networkElementsRegistry" />
+    <property name="typeClass" 
value="com.cloud.network.element.NetworkElement" />
+  </bean>
 
-  <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
-    <property name="NetworkElements" value="#{networkElements.Adapters}" />
+  <bean 
class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
+    <property name="registry" ref="networkGurusRegistry" />
+    <property name="typeClass" value="com.cloud.network.guru.NetworkGuru" />
+   </bean>
+ 
+  <!-- registry users -->
+  <bean id="NetworkModel" class="com.cloud.network.NetworkModelImpl">
+    <property name="networkElements" 
value="#{networkElementsRegistry.registered}" />
   </bean>
 
-  <bean id="networkOrchestrator" 
class="org.apache.cloudstack.engine.orchestration.NetworkOrchestrator">
-    <property name="NetworkElements" value="#{networkElements.Adapters}" />
-    <property name="NetworkGurus" value="#{networkGurus.Adapters}" />
+  <bean id="networkServiceImpl" class="com.cloud.network.NetworkServiceImpl">
+    <property name="networkGurus" value="#{networkGurusRegistry.registered}" />
   </bean>
 
-</beans>
+  <bean id="networkOrchestrator"
+        class="org.apache.cloudstack.engine.orchestration.NetworkOrchestrator">
+    <property name="networkGurus" value="#{networkGurusRegistry.registered}" />
+    <property name="networkElements" 
value="#{networkElementsRegistry.registered}" />
+    <property name="ipDeployers" value="#{ipDeployersRegistry.registered}" />
+    <property name="dhcpProviders" value="#{dhcpProvidersRegistry.registered}" 
/>
+   </bean>
+
+  <bean id="IntegrationTestConfiguration"
+       
class="org.apache.cloudstack.network.contrail.management.IntegrationTestConfiguration"/>
+
+  </beans>

Reply via email to