package org.rhq.plugins.mobicents.servlet.sip.jboss5; import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jboss.managed.api.ManagedDeployment; import org.mc4j.ems.connection.bean.EmsBean; import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext; public class ConvergedSipEmbeddedDiscoveryComponent extends EmbeddedManagedDeploymentDiscoveryComponent { private final Log log = LogFactory.getLog(this.getClass()); @Override protected boolean accept( ManagedDeployment managedDeployment, ResourceDiscoveryContext<ApplicationServerComponent> resourceDiscoveryContext) { boolean isEmbedded = super.accept(managedDeployment, resourceDiscoveryContext); if(!isEmbedded) { return false; } String applicationName = managedDeployment.getSimpleName().substring(0,managedDeployment.getSimpleName().indexOf(".war")); List<EmsBean> mBeans = resourceDiscoveryContext.getParentResourceComponent().getConvergedSipApplicationEmsBeans(applicationName); List<EmsBean> parentMBeans = new ArrayList<EmsBean>(); if(managedDeployment.getParent().getSimpleName().indexOf(".ear") != -1) { String parentApplicationName = managedDeployment.getParent().getSimpleName().substring(0,managedDeployment.getParent().getSimpleName().indexOf(".ear")); parentMBeans = resourceDiscoveryContext.getParentResourceComponent().getConvergedSipApplicationEmsBeans(parentApplicationName); } List<EmsBean> allBeans = new ArrayList<EmsBean>(); allBeans.addAll(mBeans); allBeans.addAll(parentMBeans); if(allBeans.size() > 0) { return true; } else { return false; } } }