in deployer/service/src/main/java/org/apache/karaf/cave/deployer/service/DeployerServiceImpl.java [754:784]
public List<org.apache.karaf.cave.deployer.Feature> features(String connectionName) throws Exception {
Connection connection = getConnection(connectionName);
JMXConnector jmxConnector = connect(connection.getJmxUrl(),
connection.getKarafName(),
connection.getUser(),
connection.getPassword());
try {
MBeanServerConnection mBeanServerConnection = jmxConnector.getMBeanServerConnection();
ObjectName name = new ObjectName("org.apache.karaf:type=feature,name=" + connection.getKarafName());
TabularData tabularData = (TabularData) mBeanServerConnection.getAttribute(name, "Features");
List<org.apache.karaf.cave.deployer.Feature> result = new ArrayList<>();
for (Object value : tabularData.values()) {
CompositeData compositeData = (CompositeData) value;
String featureName = (String) compositeData.get("Name");
String featureVersion = (String) compositeData.get("Version");
boolean featureInstalled = (Boolean) compositeData.get("Installed");
org.apache.karaf.cave.deployer.Feature feature = new org.apache.karaf.cave.deployer.Feature();
feature.setName(featureName);
feature.setVersion(featureVersion);
if (featureInstalled)
feature.setState("Installed");
else feature.setState("Uninstalled");
result.add(feature);
}
return result;
} finally {
if (jmxConnector != null) {
jmxConnector.close();
}
}
}