public List getDestinationList(RenderRequest request,
RenderResponse response) {
Kernel kernel = KernelRegistry.getSingleKernel();
Set destinations = kernel.listGBeans(new AbstractNameQuery(Destination.class.getName()));
List destinationInfos = new ArrayList(destinations.size());
DependencyManager dm = kernel.getDependencyManager();
for (Iterator iterator = destinations.iterator(); iterator.hasNext();) {
AbstractName destinationName = (AbstractName) iterator.next();
try {
Class type;
try {
type = Class.forName((String) kernel.getAttribute(
destinationName, "adminObjectInterface"));
} catch (ClassCastException cce) {
type = (Class) kernel.getAttribute(destinationName,
"adminObjectInterface");
}
Set parents = dm.getParents(destinationName);
Iterator i = parents.iterator();
// If no parents this is a configuration we don't need those
// here.
if (!i.hasNext()) {
continue;
}
ObjectName parent = (ObjectName) i.next();
String adminObjectName = (String) destinationName.getName().get(NameFactory.J2EE_NAME);
if (adminObjectName.equals("MDBTransferBeanOutQueue")
|| adminObjectName.equals("SendReceiveQueue")) {
continue;
}
String configURI = parent.getKeyProperty("name");
if (configURI.startsWith("\"")) {
configURI = configURI.substring(1);
}
if (configURI.endsWith("\"")) {
configURI = configURI.substring(0, configURI.length() - 1);
}
DestinationInfo info = new DestinationInfo(adminObjectName,
(String) kernel.getAttribute(destinationName, "PhysicalName"),
type,
(String) destinationName.getName().get(NameFactory.J2EE_APPLICATION),
(String) destinationName.getName().get(NameFactory.JCA_RESOURCE),
configURI);
destinationInfos.add(info);
} catch (Exception e) {
log.error("Failed to get destinations list", e);
}
}
Collections.sort(destinationInfos);
return destinationInfos;
}
|