public void updateField( ObjectName oname, String name, Object value ) { if( loading ) return; // nothing by default //log.info( "XXX UpdateField " + oname + " " + name + " " + value); Node n=(Node)object2Node.get( oname ); if( n == null ) { log.info( "Node not found " + oname ); return; } Node attNode=DomUtil.findChildWithAtt(n, "attribute", "name", name); if( attNode == null ) { // found no existing attribute with this name attNode=n.getOwnerDocument().createElement("attribute"); DomUtil.setAttribute(attNode, "name", name); n.appendChild(attNode); } String oldValue=DomUtil.getAttribute(attNode, "value"); if( oldValue != null ) { // we'll convert all values to text content DomUtil.removeAttribute( attNode, "value"); } DomUtil.setText(attNode, value.toString()); //store(); }
private void processArg(Node mbeanN) { Node firstArgN=DomUtil.getChild(mbeanN, "arg" ); // process all args for (Node argN = firstArgN; argN != null; argN = DomUtil.getNext( argN )) { DomUtil.getAttribute(argN, "type"); String value=DomUtil.getAttribute(argN, "value"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(argN); } } } }
/** Find the first direct child with a given attribute. * @param parent * @param elemName name of the element, or null for any * @param attName attribute we're looking for * @param attVal attribute value or null if we just want any */ public static Node findChildWithAtt(Node parent, String elemName, String attName, String attVal) { Node child=DomUtil.getChild(parent, Node.ELEMENT_NODE); if( attVal== null ) { while( child!= null && ( elemName==null || elemName.equals( child.getNodeName())) && DomUtil.getAttribute(child, attName) != null ) { child=getNext(child, elemName, Node.ELEMENT_NODE ); } } else { while( child!= null && ( elemName==null || elemName.equals( child.getNodeName())) && ! attVal.equals( DomUtil.getAttribute(child, attName)) ) { child=getNext(child, elemName, Node.ELEMENT_NODE ); } } return child; }
InputStream stream=getInputStream(); long t1=System.currentTimeMillis(); document = DomUtil.readXml(stream); Node firstMbeanN=DomUtil.getChild(descriptorsN, null); mbeanN= DomUtil.getNext(mbeanN, null, Node.ELEMENT_NODE)) String code=DomUtil.getAttribute( mbeanN, "code" ); String objectName=DomUtil.getAttribute( mbeanN, "objectName" ); if( objectName==null ) { objectName=DomUtil.getAttribute( mbeanN, "name" ); Node constructorN=DomUtil.getChild(mbeanN, "constructor"); if( constructorN == null ) constructorN=mbeanN; Node firstAttN=DomUtil.getChild(mbeanN, "attribute"); for (Node descN = firstAttN; descN != null; descN = DomUtil.getNext( descN )) String name=DomUtil.getAttribute(mbeanN, "objectName"); if( name==null ) name=DomUtil.getAttribute(mbeanN, "name"); String operation=DomUtil.getAttribute(mbeanN, "operation"); DomUtil.setAttributes(managed, mbeanN); Node firstN;
InputStream stream=(InputStream)source; long t1=System.currentTimeMillis(); Document doc=DomUtil.readXml(stream); firstMbeanN=descriptorsN; } else { firstMbeanN=DomUtil.getChild(descriptorsN, "mbean"); mbeanN= DomUtil.getNext(mbeanN)) DomUtil.setAttributes(managed, mbeanN); Node firstN; firstN=DomUtil.getChild( mbeanN, "attribute"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ai, descN); firstN=DomUtil.getChild( mbeanN, "notification"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ni, descN); Node firstParamN=DomUtil.getChild( descN, "notification-type"); for (Node paramN = firstParamN; paramN != null; paramN = DomUtil.getNext(paramN))
private void processAttribute(MBeanServer server, Node descN, String objectName ) { String attName=DomUtil.getAttribute(descN, "name"); String value=DomUtil.getAttribute(descN, "value"); String type=null; // DomUtil.getAttribute(descN, "type"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(descN); } try { if( log.isDebugEnabled()) log.debug("Set attribute " + objectName + " " + attName + " " + value); ObjectName oname=new ObjectName(objectName); // find the type if( type==null ) type=registry.getType( oname, attName ); if( type==null ) { log.info("Can't find attribute " + objectName + " " + attName ); } else { Object valueO=registry.convertValue( type, value); server.setAttribute(oname, new Attribute(attName, valueO)); } } catch( Exception ex) { log.error("Error processing attribute " + objectName + " " + attName + " " + value, ex); } }
/** Get the trimed text content of a node or null if there is no text */ public static String getContent(Node n ) { if( n==null ) return null; Node n1=DomUtil.getChild(n, Node.TEXT_NODE); if( n1==null ) return null; String s1=n1.getNodeValue(); return s1.trim(); }
/** Get the next sibling with the same name and type */ public static Node getNext( Node current ) { String name=current.getNodeName(); int type=current.getNodeType(); return getNext( current, name, type); }
/** Get the first child's content ( ie it's included TEXT node ). */ public static String getChildContent( Node parent, String name ) { Node first=parent.getFirstChild(); if( first==null ) return null; for (Node node = first; node != null; node = node.getNextSibling()) { //System.out.println("getNode: " + name + " " + node.getNodeName()); if( name.equals( node.getNodeName() ) ) { return getContent( node ); } } return null; }
InputStream stream=getInputStream(); long t1=System.currentTimeMillis(); document = DomUtil.readXml(stream); Node firstMbeanN=DomUtil.getChild(descriptorsN, null); mbeanN= DomUtil.getNext(mbeanN, null, Node.ELEMENT_NODE)) String code=DomUtil.getAttribute( mbeanN, "code" ); String objectName=DomUtil.getAttribute( mbeanN, "objectName" ); if( objectName==null ) { objectName=DomUtil.getAttribute( mbeanN, "name" ); Node constructorN=DomUtil.getChild(mbeanN, "constructor"); if( constructorN == null ) constructorN=mbeanN; Node firstAttN=DomUtil.getChild(mbeanN, "attribute"); for (Node descN = firstAttN; descN != null; descN = DomUtil.getNext( descN )) String name=DomUtil.getAttribute(mbeanN, "objectName"); if( name==null ) name=DomUtil.getAttribute(mbeanN, "name"); String operation=DomUtil.getAttribute(mbeanN, "operation"); DomUtil.setAttributes(managed, mbeanN); Node firstN;
InputStream stream=(InputStream)source; long t1=System.currentTimeMillis(); Document doc=DomUtil.readXml(stream); firstMbeanN=descriptorsN; } else { firstMbeanN=DomUtil.getChild(descriptorsN, "mbean"); mbeanN= DomUtil.getNext(mbeanN)) DomUtil.setAttributes(managed, mbeanN); Node firstN; firstN=DomUtil.getChild( mbeanN, "attribute"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ai, descN); firstN=DomUtil.getChild( mbeanN, "notification"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ni, descN); Node firstParamN=DomUtil.getChild( descN, "notification-type"); for (Node paramN = firstParamN; paramN != null; paramN = DomUtil.getNext(paramN))
/** Find the first direct child with a given attribute. * @param parent * @param elemName name of the element, or null for any * @param attName attribute we're looking for * @param attVal attribute value or null if we just want any */ public static Node findChildWithAtt(Node parent, String elemName, String attName, String attVal) { Node child=DomUtil.getChild(parent, Node.ELEMENT_NODE); if( attVal== null ) { while( child!= null && ( elemName==null || elemName.equals( child.getNodeName())) && DomUtil.getAttribute(child, attName) != null ) { child=getNext(child, elemName, Node.ELEMENT_NODE ); } } else { while( child!= null && ( elemName==null || elemName.equals( child.getNodeName())) && ! attVal.equals( DomUtil.getAttribute(child, attName)) ) { child=getNext(child, elemName, Node.ELEMENT_NODE ); } } return child; }
private void processAttribute(MBeanServer server, Node descN, String objectName ) { String attName=DomUtil.getAttribute(descN, "name"); String value=DomUtil.getAttribute(descN, "value"); String type=null; // DomUtil.getAttribute(descN, "type"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(descN); } try { if( CoyoteLogger.MODELER_LOGGER.isDebugEnabled()) CoyoteLogger.MODELER_LOGGER.debug("Set attribute " + objectName + " " + attName + " " + value); ObjectName oname=new ObjectName(objectName); // find the type if( type==null ) type=registry.getType( oname, attName ); if( type==null ) { CoyoteLogger.MODELER_LOGGER.attributeNotFound(attName, objectName); } else { Object valueO=registry.convertValue( type, value); server.setAttribute(oname, new Attribute(attName, valueO)); } } catch( Exception ex) { CoyoteLogger.MODELER_LOGGER.errorProcessingAttribute(attName, value, objectName, ex); } }
/** Get the trimmed text content of a node or null if there is no text */ public static String getContent(Node n ) { if( n==null ) return null; Node n1=DomUtil.getChild(n, Node.TEXT_NODE); if( n1==null ) return null; String s1=n1.getNodeValue(); return s1.trim(); }
/** Get the next sibling with the same name and type */ public static Node getNext( Node current ) { String name=current.getNodeName(); int type=current.getNodeType(); return getNext( current, name, type); }
/** Get the first child's content ( ie it's included TEXT node ). */ public static String getChildContent( Node parent, String name ) { Node first=parent.getFirstChild(); if( first==null ) return null; for (Node node = first; node != null; node = node.getNextSibling()) { //System.out.println("getNode: " + name + " " + node.getNodeName()); if( name.equals( node.getNodeName() ) ) { return getContent( node ); } } return null; }
public void updateField( ObjectName oname, String name, Object value ) { if( loading ) return; // nothing by default //log.info( "XXX UpdateField " + oname + " " + name + " " + value); Node n=(Node)object2Node.get( oname ); if( n == null ) { CoyoteLogger.MODELER_LOGGER.nodeNotFound(oname); return; } Node attNode=DomUtil.findChildWithAtt(n, "attribute", "name", name); if( attNode == null ) { // found no existing attribute with this name attNode=n.getOwnerDocument().createElement("attribute"); DomUtil.setAttribute(attNode, "name", name); n.appendChild(attNode); } String oldValue=DomUtil.getAttribute(attNode, "value"); if( oldValue != null ) { // we'll convert all values to text content DomUtil.removeAttribute( attNode, "value"); } DomUtil.setText(attNode, value.toString()); //store(); }
InputStream stream=getInputStream(); long t1=System.currentTimeMillis(); document = DomUtil.readXml(stream); Node firstMbeanN=DomUtil.getChild(descriptorsN, null); mbeanN= DomUtil.getNext(mbeanN, null, Node.ELEMENT_NODE)) String code=DomUtil.getAttribute( mbeanN, "code" ); String objectName=DomUtil.getAttribute( mbeanN, "objectName" ); if( objectName==null ) { objectName=DomUtil.getAttribute( mbeanN, "name" ); Node constructorN=DomUtil.getChild(mbeanN, "constructor"); if( constructorN == null ) constructorN=mbeanN; Node firstAttN=DomUtil.getChild(mbeanN, "attribute"); for (Node descN = firstAttN; descN != null; descN = DomUtil.getNext( descN )) String name=DomUtil.getAttribute(mbeanN, "objectName"); if( name==null ) name=DomUtil.getAttribute(mbeanN, "name"); String operation=DomUtil.getAttribute(mbeanN, "operation"); DomUtil.setAttributes(managed, mbeanN); Node firstN;
InputStream stream=(InputStream)source; long t1=System.currentTimeMillis(); Document doc=DomUtil.readXml(stream); firstMbeanN=descriptorsN; } else { firstMbeanN=DomUtil.getChild(descriptorsN, "mbean"); mbeanN= DomUtil.getNext(mbeanN)) DomUtil.setAttributes(managed, mbeanN); Node firstN; firstN=DomUtil.getChild( mbeanN, "attribute"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ai, descN); firstN=DomUtil.getChild( mbeanN, "notification"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) DomUtil.setAttributes(ni, descN); Node firstParamN=DomUtil.getChild( descN, "notification-type"); for (Node paramN = firstParamN; paramN != null; paramN = DomUtil.getNext(paramN))
private void processArg(Node mbeanN) { Node firstArgN=DomUtil.getChild(mbeanN, "arg" ); // process all args for (Node argN = firstArgN; argN != null; argN = DomUtil.getNext( argN )) { String type=DomUtil.getAttribute(argN, "type"); String value=DomUtil.getAttribute(argN, "value"); if( value==null ) { // The value may be specified as CDATA value=DomUtil.getContent(argN); } } } }