From: Dave B. <bla...@us...> - 2013-03-09 12:29:58
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3004/src/org/sblim/cimclient/internal/cimxml Modified Files: CIMXMLParserImpl.java CIMXMLBuilderImpl.java CIMClientXML_HelperImpl.java Log Message: 2616 Add new API WBEMClientSBLIM.sendIndication() Index: CIMXMLBuilderImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLBuilderImpl.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- CIMXMLBuilderImpl.java 11 Dec 2012 15:59:49 -0000 1.35 +++ CIMXMLBuilderImpl.java 9 Mar 2013 12:29:56 -0000 1.36 @@ -1,7 +1,7 @@ /** * CIMXMLBuilderImpl.java * - * (C) Copyright IBM Corp. 2005, 2012 + * (C) Copyright IBM Corp. 2005, 2013 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -49,6 +49,7 @@ * 3001333 2010-05-19 blaschke-oss CIMMethod class ignores propagated parameter * 3304058 2011-05-20 blaschke-oss Use same date format in change history * 3588558 2012-11-26 blaschke-oss An enhancement on Java CIM Client logging + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2221,4 +2222,55 @@ return localnamespacepathE; } + + /** + * createSIMPLEEXPREQ + * + * @param pDoc + * @return Element + */ + public static Element createSIMPLEEXPREQ(Document pDoc) { + // <!ELEMENT SIMPLEEXPREQ (EXPMETHODCALL)> + Element e = pDoc.createElement("SIMPLEEXPREQ"); + return e; + } + + /** + * createEXPMETHODCALL + * + * @param pDoc + * @param pParentE + * @param pName + * @return Element + */ + public static Element createEXPMETHODCALL(Document pDoc, Element pParentE, String pName) { + // <!ELEMENT EXPMETHODCALL (EXPPARAMVALUE*)> + // <!ATTLIST EXPMETHODCALL %NAME> + Element e = pDoc.createElement("EXPMETHODCALL"); + if (pName != null) { + e.setAttribute("NAME", pName); + } + pParentE.appendChild(e); + return e; + } + + /** + * createEXPPARAMVALUE + * + * @param pDoc + * @param pParentE + * @param pName + * @return Element + */ + public static Element createEXPPARAMVALUE(Document pDoc, Element pParentE, String pName) { + // <!ELEMENT EXPPARAMVALUE (INSTANCE? | VALUE? | METHODRESPONSE? | + // IMETHODRESPONSE?)> + // <!ATTLIST EXPPARAMVALUE %NAME> + Element e = pDoc.createElement("EXPPARAMVALUE"); + if (pName != null) { + e.setAttribute("NAME", pName); + } + pParentE.appendChild(e); + return e; + } } Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- CIMXMLParserImpl.java 6 Feb 2013 14:05:05 -0000 1.50 +++ CIMXMLParserImpl.java 9 Mar 2013 12:29:56 -0000 1.51 @@ -57,6 +57,7 @@ * 3526679 2012-05-14 blaschke-oss DOM parser ignores ERROR node CODE * 3572993 2012-10-01 blaschke-oss parseDouble("2.2250738585072012e-308") DoS vulnerability * 3598613 2013-01-11 blaschke-oss different data type in cim instance and cim object path + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2109,6 +2110,13 @@ return request; } // SIMPLEEXPRSP + Element simpleexprspE = (Element) searchFirstNode(pMessageE, "SIMPLEEXPRSP"); + if (simpleexprspE != null) { + CIMResponse response = parseSIMPLEEXPRSP(simpleexprspE); + response.setMethod("SIMPLEEXPRSP"); + response.setId(id); + return response; + } // MULTIEXPRSP // SIMPLEREQ @@ -3091,4 +3099,56 @@ } } + /** + * parseSIMPLEEXPRSP + * + * @param pSimpleExpRspE + * @return CIMResponse + * @throws CIMXMLParseException + */ + public static CIMResponse parseSIMPLEEXPRSP(Element pSimpleExpRspE) throws CIMXMLParseException { + // <!ELEMENT SIMPLEEXPRSP (EXPMETHODRESPONSE)> + + // EXPMETHODRESPONSE + Element expmethodresponseE = (Element) searchFirstNode(pSimpleExpRspE, "EXPMETHODRESPONSE"); + if (expmethodresponseE != null) { return parseEXPMETHODRESPONSE(expmethodresponseE); } + + throw new CIMXMLParseException("EXPMETHODRESPONSE node not found!"); + } + + /** + * parseEXPMETHODRESPONSE + * + * @param pExpMethodResponseE + * @return CIMResponse + * @throws CIMXMLParseException + */ + public static CIMResponse parseEXPMETHODRESPONSE(Element pExpMethodResponseE) + throws CIMXMLParseException { + // <!ELEMENT EXPMETHODRESPONSE (ERROR | IRETURNVALUE?)> + + CIMResponse response = new CIMResponse(); + + // ERROR + Element errorE = (Element) searchFirstNode(pExpMethodResponseE, "ERROR"); + if (errorE != null) { + WBEMException exception = parseERROR(errorE); + response.setError(exception); + return response; + } + + // RETURNVALUE + Element[] retValElementA = searchNodes(pExpMethodResponseE, "IRETURNVALUE"); + if (retValElementA != null && retValElementA.length > 0) { + Vector<Object> v = new Vector<Object>(); + for (int i = 0; i < retValElementA.length; i++) { + Element returnvalueE = retValElementA[i]; + v.add(parseIRETURNVALUE(returnvalueE)); + } + response.setReturnValue(v); + } + + return response; + } + } Index: CIMClientXML_HelperImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMClientXML_HelperImpl.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- CIMClientXML_HelperImpl.java 6 Feb 2013 15:01:05 -0000 1.44 +++ CIMClientXML_HelperImpl.java 9 Mar 2013 12:29:56 -0000 1.45 @@ -49,6 +49,7 @@ * 3521119 2012-04-24 blaschke-oss JSR48 1.0.0: remove CIMObjectPath 2/3/4-parm ctors * 3527580 2012-05-17 blaschke-oss WBEMClient should not throw IllegalArgumentException * 3601894 2013-01-23 blaschke-oss Enhance HTTP and CIM-XML tracing + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2589,4 +2590,24 @@ return simplereqE; } + /** + * sendIndication_request + * + * @param pDoc + * @param pIndication + * @return Element sendIndication_request + * @throws WBEMException + */ + public Element sendIndication_request(Document pDoc, CIMInstance pIndication) + throws WBEMException { + Element simpleexpreqE = CIMXMLBuilderImpl.createSIMPLEEXPREQ(pDoc); + Element expmethodcallE = CIMXMLBuilderImpl.createEXPMETHODCALL(pDoc, simpleexpreqE, + "ExportIndication"); + Element expparamvalueE = CIMXMLBuilderImpl.createEXPPARAMVALUE(pDoc, expmethodcallE, + "NewIndication"); + + CIMXMLBuilderImpl.createINSTANCE(pDoc, expparamvalueE, pIndication); + + return simpleexpreqE; + } } |