From 5a2cd68fa8570cd6a9e442bee1c88dcbd0f04501 Mon Sep 17 00:00:00 2001 From: Min Chen Date: Tue, 5 Feb 2013 21:55:11 -0800 Subject: [PATCH] Fix bug CLOUDSTACK-1171 due to spring injection. --- .../vmware/resource/VmwareContextFactory.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareContextFactory.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareContextFactory.java index ab10e5e5ef1..8324bcf0d30 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareContextFactory.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareContextFactory.java @@ -11,12 +11,16 @@ // 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 +// KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package com.cloud.hypervisor.vmware.resource; +import javax.annotation.PostConstruct; +import javax.inject.Inject; + import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; import com.cloud.hypervisor.vmware.manager.VmwareManager; import com.cloud.hypervisor.vmware.manager.VmwareManagerImpl; @@ -25,18 +29,25 @@ import com.cloud.utils.StringUtils; import com.cloud.utils.component.ComponentContext; import com.vmware.apputils.version.ExtendedAppUtil; - +@Component public class VmwareContextFactory { - + private static final Logger s_logger = Logger.getLogger(VmwareContextFactory.class); - + private static volatile int s_seq = 1; private static VmwareManager s_vmwareMgr; - + + @Inject VmwareManager _vmwareMgr; + static { // skip certificate check System.setProperty("axis.socketSecureFactory", "org.apache.axis.components.net.SunFakeTrustSocketFactory"); - s_vmwareMgr = ComponentContext.inject(VmwareManagerImpl.class); + //s_vmwareMgr = ComponentContext.inject(VmwareManagerImpl.class); + } + + @PostConstruct + void init() { + s_vmwareMgr = _vmwareMgr; } public static VmwareContext create(String vCenterAddress, String vCenterUserName, String vCenterPassword) throws Exception { @@ -49,13 +60,13 @@ public class VmwareContextFactory { if(s_logger.isDebugEnabled()) s_logger.debug("initialize VmwareContext. url: " + serviceUrl + ", username: " + vCenterUserName + ", password: " + StringUtils.getMaskedPasswordForDisplay(vCenterPassword)); - + ExtendedAppUtil appUtil = ExtendedAppUtil.initialize(vCenterAddress + "-" + s_seq++, params); - + appUtil.connect(); VmwareContext context = new VmwareContext(appUtil, vCenterAddress); context.registerStockObject(VmwareManager.CONTEXT_STOCK_NAME, s_vmwareMgr); - + context.registerStockObject("serviceconsole", s_vmwareMgr.getServiceConsolePortGroupName()); context.registerStockObject("manageportgroup", s_vmwareMgr.getManagementPortGroupName());