From: <cl...@hy...> - 2008-08-29 06:07:37
|
Author: clee Date: 2008-08-28 23:07:22 -0700 (Thu, 28 Aug 2008) New Revision: 10924 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=10924 Modified: trunk/src/org/hyperic/hq/bizapp/server/session/MetricSessionEJB.java Log: [HQ-1394] Need to deal with application auto-groups differently because they're not in the edge table Modified: trunk/src/org/hyperic/hq/bizapp/server/session/MetricSessionEJB.java =================================================================== --- trunk/src/org/hyperic/hq/bizapp/server/session/MetricSessionEJB.java 2008-08-28 23:28:04 UTC (rev 10923) +++ trunk/src/org/hyperic/hq/bizapp/server/session/MetricSessionEJB.java 2008-08-29 06:07:22 UTC (rev 10924) @@ -315,17 +315,27 @@ new CritterTranslationContext(subject); for (int i = 0; i < aids.length; i++) { - Resource r = rman.findResource(aids[i]); - List critters = new ArrayList(1); - critters.add(descType.newInstance(r, proto)); - CritterList cList = new CritterList(critters, false); - - List children = trans.translate(ctx, cList).list(); - for (Iterator j=children.iterator(); j.hasNext(); ) { - Resource child = (Resource)j.next(); - - res.add(new AppdefEntityID(child)); + if (aids[i].isApplication()) { + AppdefEntityValue rv = new AppdefEntityValue(aids[i], subject); + Collection services = rv.getAssociatedServices(ctype.getId(), + PageControl.PAGE_ALL); + for (Iterator it = services.iterator(); it.hasNext();) { + AppdefResourceValue r = (AppdefResourceValue) it.next(); + res.add(r.getEntityId()); + } } + else { + Resource r = rman.findResource(aids[i]); + List critters = new ArrayList(1); + critters.add(descType.newInstance(r, proto)); + CritterList cList = new CritterList(critters, false); + + List children = trans.translate(ctx, cList).list(); + for (Iterator j=children.iterator(); j.hasNext(); ) { + Resource child = (Resource)j.next(); + res.add(new AppdefEntityID(child)); + } + } } return res; } |