package org.rhq.plugins.byteman;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
public class BytemanScriptDiscoveryComponent implements ResourceDiscoveryComponent<BytemanAgentComponent> {
public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<BytemanAgentComponent> context)
throws Exception {
Set<DiscoveredResourceDetails> details = new HashSet<DiscoveredResourceDetails>();
Map<String, String> allScripts = context.getParentResourceComponent().getAllKnownScripts();
if (allScripts != null && !allScripts.isEmpty()) {
for (String scriptName : allScripts.keySet()) {
int startShortName = scriptName.lastIndexOf("\\");
if (startShortName == -1) {
startShortName = scriptName.lastIndexOf("/");
}
String shortScriptName = scriptName.substring(startShortName + 1); // script names never end with \ or /, so this is OK
details.add(new DiscoveredResourceDetails(context.getResourceType(), scriptName, shortScriptName,
"unversioned", "A script with Byteman rules", null, null));
}
}
return details;
}
}