public String getXML() throws KettleException { // See PDI-15781 boolean sendResultXmlWithStatus = EnvUtil.getSystemProperty( "KETTLE_COMPATIBILITY_SEND_RESULT_XML_WITH_FULL_STATUS", "N" ).equalsIgnoreCase( "Y" ); return getXML( sendResultXmlWithStatus ); }
public String getXML() throws KettleException { StringBuilder xml = new StringBuilder(); xml.append( "<" + XML_TAG + ">" ).append( Const.CR ); xml.append( XMLHandler.addTagValue( "statusdesc", statusDescription ) ); xml.append( XMLHandler.addTagValue( "memory_free", memoryFree ) ); xml.append( XMLHandler.addTagValue( "memory_total", memoryTotal ) ); xml.append( XMLHandler.addTagValue( "cpu_cores", cpuCores ) ); xml.append( XMLHandler.addTagValue( "cpu_process_time", cpuProcessTime ) ); xml.append( XMLHandler.addTagValue( "uptime", uptime ) ); xml.append( XMLHandler.addTagValue( "thread_count", threadCount ) ); xml.append( XMLHandler.addTagValue( "load_avg", loadAvg ) ); xml.append( XMLHandler.addTagValue( "os_name", osName ) ); xml.append( XMLHandler.addTagValue( "os_version", osVersion ) ); xml.append( XMLHandler.addTagValue( "os_arch", osArchitecture ) ); xml.append( " <transstatuslist>" ).append( Const.CR ); for ( int i = 0; i < transStatusList.size(); i++ ) { SlaveServerTransStatus transStatus = transStatusList.get( i ); xml.append( " " ).append( transStatus.getXML() ).append( Const.CR ); } xml.append( " </transstatuslist>" ).append( Const.CR ); xml.append( " <jobstatuslist>" ).append( Const.CR ); for ( int i = 0; i < jobStatusList.size(); i++ ) { SlaveServerJobStatus jobStatus = jobStatusList.get( i ); xml.append( " " ).append( jobStatus.getXML() ).append( Const.CR ); } xml.append( " </jobstatuslist>" ).append( Const.CR ); xml.append( "</" + XML_TAG + ">" ).append( Const.CR ); return xml.toString(); }
@Test public void testGetXML() throws KettleException { SlaveServerTransStatus transStatus = new SlaveServerTransStatus(); RowMetaAndData rowMetaAndData = new RowMetaAndData(); String testData = "testData"; rowMetaAndData.addValue( new ValueMetaString(), testData ); List<RowMetaAndData> rows = new ArrayList<>(); rows.add( rowMetaAndData ); Result result = new Result(); result.setRows( rows ); transStatus.setResult( result ); //PDI-15781 Assert.assertFalse( transStatus.getXML().contains( testData ) ); //PDI-17061 Assert.assertTrue( transStatus.getXML( true ).contains( testData ) ); } }
String xml = transStatus.getXML( sendResultXmlWithStatus ); data = xml.getBytes( Charset.forName( Const.XML_ENCODING ) ); out = response.getOutputStream();
protected void testXmlRoundTrip() throws KettleException { SlaveServerTransStatus metaToSave = createMeta(); Map<String, FieldLoadSaveValidator<?>> validatorMap = createValidatorMapAndInvokeSetters( xmlAttributes, metaToSave ); String xml = metaToSave.getXML(); SlaveServerTransStatus metaLoaded = SlaveServerTransStatus.fromXML( xml ); validateLoadedMeta( xmlAttributes, validatorMap, metaToSave, metaLoaded ); } }
@Test public void testWithDate() throws KettleException { String transName = "testWithDate"; String id = UUID.randomUUID().toString(); String status = Trans.STRING_FINISHED; Date logDate = new Date(); SlaveServerTransStatus ts = new SlaveServerTransStatus( transName, id, status ); ts.setLogDate( logDate ); String resultXML = ts.getXML(); Node newTransStatus = XMLHandler.getSubNode( XMLHandler.loadXMLString( resultXML ), SlaveServerTransStatus.XML_TAG ); assertEquals( "The XML document should match after rebuilding from XML", resultXML, SlaveServerTransStatus.fromXML( resultXML ).getXML() ); assertEquals( "There should be one \"log_date\" node in the XML", 1, XMLHandler.countNodes( newTransStatus, "log_date" ) ); assertEquals( "The \"log_date\" node should match the original value", XMLHandler.date2string( logDate ), XMLHandler.getTagValue( newTransStatus, "log_date" ) ); }
@Test public void testNoDate() throws KettleException { String transName = "testNullDate"; String id = UUID.randomUUID().toString(); String status = Trans.STRING_FINISHED; SlaveServerTransStatus ts = new SlaveServerTransStatus( transName, id, status ); String resultXML = ts.getXML(); Node newTransStatus = XMLHandler.getSubNode( XMLHandler.loadXMLString( resultXML ), SlaveServerTransStatus.XML_TAG ); assertEquals( "The XML document should match after rebuilding from XML", resultXML, SlaveServerTransStatus.fromXML( resultXML ).getXML() ); assertEquals( "There should be one \"log_date\" node in the XML", 1, XMLHandler.countNodes( newTransStatus, "log_date" ) ); assertTrue( "The \"log_date\" node should have a null value", Utils.isEmpty( XMLHandler.getTagValue( newTransStatus, "log_date" ) ) ); }