diff --git a/Server/src/main/java/org/openas2/app/partner/ViewPartnershipCommand.java b/Server/src/main/java/org/openas2/app/partner/ViewPartnershipCommand.java index 5223649b..76ca4cc7 100644 --- a/Server/src/main/java/org/openas2/app/partner/ViewPartnershipCommand.java +++ b/Server/src/main/java/org/openas2/app/partner/ViewPartnershipCommand.java @@ -4,8 +4,14 @@ import org.openas2.cmd.CommandResult; import org.openas2.partner.Partnership; import org.openas2.partner.PartnershipFactory; +import org.openas2.partner.XMLPartnershipFactory; +import org.openas2.util.XMLUtil; import java.util.Iterator; +import java.util.Map; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; /** * view the partnership in the partnership stores @@ -39,10 +45,39 @@ protected CommandResult execute(PartnershipFactory partFx, Object[] params) thro while (parts.hasNext()) { Partnership part = parts.next(); if (part.getName().equals(name)) { + // Try to extract and append pollerConfig from the partnerships XML if available + try { + XMLPartnershipFactory xpf = (XMLPartnershipFactory) partFx; + Document doc = xpf.getPartnershipsXml(); + if (doc != null) { + Node root = doc.getDocumentElement(); + NodeList nodes = root.getChildNodes(); + for (int i = 0; i < nodes.getLength(); i++) { + Node n = nodes.item(i); + if (!"partnership".equals(n.getNodeName())) { + continue; + } + Node nameAttr = n.getAttributes().getNamedItem("name"); + if (nameAttr != null && nameAttr.getNodeValue().equals(part.getName())) { + Node poller = XMLUtil.findChildNode(n, Partnership.PCFG_POLLER); + if (poller != null) { + Map pollerAttrs = XMLUtil.mapAttributes(poller); + // Append pollerConfig attributes to partnership attributes + pollerAttrs.forEach((key, value) -> { + part.getAttributes().put("pollerConfig." + key, value); + }); + } + break; + } + } + } + } catch (Exception e) { + // ignore extraction errors and proceed without pollerConfig + } return new CommandResult(CommandResult.TYPE_OK, part); } } - + return new CommandResult(CommandResult.TYPE_ERROR, "Unknown partnership name"); }