Search in sources :

Example 6 with JXPathException

use of org.apache.commons.jxpath.JXPathException in project opennms by OpenNMS.

the class AbstractJsonCollectionHandler method fillCollectionSet.

/**
     * Fill collection set.
     *
     * @param agent the agent
     * @param collectionSet the collection set
     * @param source the source
     * @param json the JSON Object
     * @throws ParseException the parse exception
     */
@SuppressWarnings("unchecked")
protected void fillCollectionSet(CollectionAgent agent, CollectionSetBuilder builder, XmlSource source, JSONObject json) throws ParseException {
    JXPathContext context = JXPathContext.newContext(json);
    for (XmlGroup group : source.getXmlGroups()) {
        LOG.debug("fillCollectionSet: getting resources for XML group {} using XPATH {}", group.getName(), group.getResourceXpath());
        Date timestamp = getTimeStamp(context, group);
        Iterator<Pointer> itr = context.iteratePointers(group.getResourceXpath());
        while (itr.hasNext()) {
            JXPathContext relativeContext = context.getRelativeContext(itr.next());
            String resourceName = getResourceName(relativeContext, group);
            LOG.debug("fillCollectionSet: processing XML resource {} of type {}", resourceName, group.getResourceType());
            final Resource collectionResource = getCollectionResource(agent, resourceName, group.getResourceType(), timestamp);
            LOG.debug("fillCollectionSet: processing resource {}", collectionResource);
            for (XmlObject object : group.getXmlObjects()) {
                try {
                    Object obj = relativeContext.getValue(object.getXpath());
                    if (obj != null) {
                        builder.withAttribute(collectionResource, group.getName(), object.getName(), obj.toString(), object.getDataType());
                    }
                } catch (JXPathException ex) {
                    LOG.warn("Unable to get value for {}: {}", object.getXpath(), ex.getMessage());
                }
            }
            processXmlResource(builder, collectionResource, resourceName, group.getName());
        }
    }
}
Also used : XmlGroup(org.opennms.protocols.xml.config.XmlGroup) JXPathContext(org.apache.commons.jxpath.JXPathContext) Resource(org.opennms.netmgt.collection.support.builder.Resource) JXPathException(org.apache.commons.jxpath.JXPathException) Pointer(org.apache.commons.jxpath.Pointer) XmlObject(org.opennms.protocols.xml.config.XmlObject) XmlObject(org.opennms.protocols.xml.config.XmlObject) JSONObject(net.sf.json.JSONObject) Date(java.util.Date)

Aggregations

JXPathContext (org.apache.commons.jxpath.JXPathContext)6 JXPathException (org.apache.commons.jxpath.JXPathException)6 Element (org.jdom.Element)4 ArrayList (java.util.ArrayList)1 Collections.emptyList (java.util.Collections.emptyList)1 Date (java.util.Date)1 List (java.util.List)1 JSONObject (net.sf.json.JSONObject)1 ExpressionEvaluationException (org.apache.camel.ExpressionEvaluationException)1 Pointer (org.apache.commons.jxpath.Pointer)1 ImportDeclaration (org.freud.analysed.javasource.ImportDeclaration)1 JavaSourceTokenType (org.freud.analysed.javasource.parser.JavaSourceTokenType)1 JdomTreeAdaptor.documentToString (org.freud.core.parser.JdomTreeAdaptor.documentToString)1 Resource (org.opennms.netmgt.collection.support.builder.Resource)1 XmlGroup (org.opennms.protocols.xml.config.XmlGroup)1 XmlObject (org.opennms.protocols.xml.config.XmlObject)1