/** * */ package org.rhq.plugins.jbossas.util; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.jboss.on.common.jbossas.AbstractJBossASContentFacetDelegate; import org.jboss.on.common.jbossas.JBPMWorkflowManager; import org.rhq.core.domain.content.PackageType; import org.rhq.core.domain.content.transfer.ResourcePackageDetails; /** * Content facet delegate for JBoss AS 4. * * @author Lukas Krejci */ public class JBossASContentFacetDelegate extends AbstractJBossASContentFacetDelegate { private Map<PackageType, FileContentDelegate> contentDelegates = new HashMap<PackageType, FileContentDelegate>(); private File configurationPath; public JBossASContentFacetDelegate(JBPMWorkflowManager workflowManager, File configurationPath) { super(workflowManager); this.configurationPath = configurationPath; } @Override public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) { FileContentDelegate contentDelegate = getContentDelegate(type); Set<ResourcePackageDetails> details = null; if (contentDelegate != null) { details = contentDelegate.discoverDeployedPackages(); } return details; } private FileContentDelegate getContentDelegate(PackageType type) { FileContentDelegate contentDelegate = contentDelegates.get(type); if (contentDelegate == null) { if (type.getName().equals("library")) { File deployLib = new File(configurationPath, "lib"); contentDelegate = new JarContentDelegate(deployLib, type.getName()); } contentDelegates.put(type, contentDelegate); } return contentDelegate; } }