├── .gitignore ├── CSV_MFP ├── .project ├── README.md ├── XmlToCsv_MF.msgflow └── XmlToCsv_MF_Compute.esql ├── CSV_MSET ├── .project ├── MS_CSV │ ├── messageSet.mset │ └── model-space_separated.mxsd ├── README.md ├── log │ └── model-space_separated.xsd.report.txt ├── model-space_separated.xml └── model-space_separated.xsd ├── ComplexXml_IS ├── .project ├── ComplexXml_IS.wsdl ├── ComplexXml_IS.xsd ├── ComplexXml_IS_InlineSchema1.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── adobe.xsd ├── gen │ ├── ComplexXml_IS.msgflow │ ├── ComplexXml_ISInputCatchHandler.subflow │ ├── ComplexXml_ISInputFailureHandler.subflow │ ├── ComplexXml_ISInputHTTPTimeoutHandler.subflow │ ├── operation1_Request_Response.subflow │ ├── operation1_Request_Response_Compute.esql │ ├── validate_Request_Response.subflow │ └── validate_Request_Response_Compute.esql ├── log │ └── complexxmlis │ │ └── ComplexXml_IS.wsdl.report.txt ├── schema1.xsd ├── service.descriptor └── validate.xsd ├── DemoMappingNode_IS ├── .project ├── CustomerInfoService.wsdl ├── CustomerInfoService.xsd ├── CustomerService-pi-with-namespace-issues.zip ├── Customer_Infomsd.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── gen │ ├── DemoMappingNode_IS.msgflow │ ├── DemoMappingNode_ISInputCatchHandler.subflow │ ├── DemoMappingNode_ISInputFailureHandler.subflow │ ├── DemoMappingNode_ISInputHTTPTimeoutHandler.subflow │ ├── Operation1_Request_Response.subflow │ └── Operation1_Request_Response_Mapping.map ├── log │ └── org │ │ └── tempuri │ │ └── customerinfo │ │ └── CustomerInfoService.wsdl.report.txt ├── org │ └── tempuri │ │ └── customerinfo │ │ └── Customer_Infomsd_WSDLGenWrapper.xsd ├── sample-input.xml └── service.descriptor ├── EDIFACT-Common ├── .project ├── EDIFACT-Service-Segments-4.1.xsd ├── IBM_EDI_Format.xsd ├── library.descriptor └── readme.txt ├── EDIFACT-D03B ├── .project ├── EDIFACT-SupplyChain-Messages-D.03B.xsd ├── EDIFACT-SupplyChain-Segments-D.03B.xsd ├── Flight-ticket-availability.txt ├── INVOIC_D.03B_Interchange_with_UNA.txt ├── ORDERS_D.03B_Interchange.txt ├── library.descriptor └── sample-from-stylus-studio.txt ├── EmailAttachmentsToFile_APP ├── .project ├── README.md ├── application.descriptor └── com │ └── wordpress │ └── code2blog │ └── emailattachmentstofile_app │ ├── AcquireEmail.msgflow │ └── AcquireEmail_CheckForAttachments.esql ├── Encryption_APP ├── .project ├── application.descriptor └── triple_des_mf.msgflow ├── Encryption_APPJava ├── .classpath ├── .project └── com │ └── wordpress │ └── code2blog │ └── encryption_app │ ├── TripleDESTest.java │ └── Triple_des_mf_JavaCompute.java ├── EsqlFunctions_V1_IS ├── .project ├── EsqlFunctions_V1_IS.wsdl ├── EsqlFunctions_V1_IS.xsd ├── EsqlFunctions_V1_IS_InlineSchema1.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── README.md ├── docs │ ├── request-structure-splitString.xml │ └── response-structure-splitString.xml ├── gen │ ├── EsqlFunctions_V1_IS.msgflow │ ├── EsqlFunctions_V1_ISInputCatchHandler.subflow │ ├── EsqlFunctions_V1_ISInputFailureHandler.subflow │ ├── EsqlFunctions_V1_ISInputHTTPTimeoutHandler.subflow │ ├── Split.esql │ ├── countryCodeCheck_Request_Response.subflow │ ├── countryCodeCheck_Request_Response_Compute.esql │ ├── findEmail_Request_Response.subflow │ ├── findEmail_Request_Response_Compute.esql │ ├── splitString_Request_Response.subflow │ └── splitString_Request_Response_Compute.esql ├── log │ └── esqlfunctionsv1is │ │ └── EsqlFunctions_V1_IS.wsdl.report.txt └── service.descriptor ├── EsqlFunctions_V1_ISJava ├── .classpath ├── .project ├── README.md └── com │ └── wordpress │ └── code2blog │ └── esqlfunctions_v1_isjava │ └── RegExUtility.java ├── GlobalCacheDemo_V1_APP ├── .project ├── Employee.xml ├── Employee.xsd ├── README.md ├── application.descriptor └── com │ └── wordpress │ └── code2blog │ └── globalcachedemo_v1_app │ ├── GetValueFromCache.esql │ ├── PutJAXB2CACHE.esql │ ├── getValueFromCache_MF.msgflow │ ├── getValueFromCache_MF_Compute.esql │ ├── loadCache_MF.msgflow │ ├── loadCache_MF_Compute.esql │ ├── updateCache_MF.msgflow │ └── updateCache_MF_Compute.esql ├── GlobalCacheDemo_V1_JP ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── README.md └── src │ └── com │ └── wordpress │ └── code2blog │ ├── EMPLOYEE.java │ ├── ObjectFactory.java │ └── esql_interface │ ├── GetEmployeeFromCache.java │ └── PutEmployee2Cache.java ├── HelloWorld_V1_APP ├── .project ├── EsqlFunctions_V1_IS.wsdl ├── EsqlFunctions_V1_IS.xsd ├── EsqlFunctions_V1_IS_InlineSchema1.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── Person_V2_API.swagger.json ├── README.md ├── application.descriptor ├── code2blog │ └── helloworld_v1_app │ │ ├── DatabaseRetrieve_MF.msgflow │ │ ├── DatabaseRetrieve_MF_Build_Response.esql │ │ ├── HelloWorld_V1_APP.esql │ │ ├── InvokeRestService_MF.msgflow │ │ ├── InvokeRestService_MF_BuildRequest.esql │ │ ├── InvokeRestService_MF_BuildResponse.esql │ │ ├── MQGetDemo_MF.msgflow │ │ ├── MQGetDemo_MF_RemoveMQHeaders.esql │ │ ├── MergeGroups_MF.msgflow │ │ ├── MergeGroups_MF_Compute.esql │ │ ├── ProcessLargeDataset_MF.msgflow │ │ ├── ProcessLargeDataset_MF_Compute.esql │ │ ├── SayHello_MF.msgflow │ │ ├── SayHello_MF_Compute.esql │ │ ├── SoapRequestValidation_MF.msgflow │ │ ├── SoapRequestValidation_MF_BuildRequest.esql │ │ ├── SoapRequestValidation_MF_CheckResponse.esql │ │ ├── SortArary_MF_Compute.esql │ │ └── SortArray_MF.msgflow ├── log │ └── esqlfunctionsv1is │ │ └── EsqlFunctions_V1_IS.wsdl.report.txt └── test-data │ ├── merge-groups-input.xml │ ├── merge-groups-output-lg.xml │ └── merge-groups-output-samsung.xml ├── HelloWorld_V1_IS ├── .project ├── HelloWorld.wsdl ├── HelloWorld.xsd ├── HelloWorld_InlineSchema1.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── README.md ├── gen │ ├── HelloWorld_V1_IS.msgflow │ ├── HelloWorld_V1_ISInputCatchHandler.subflow │ ├── HelloWorld_V1_ISInputFailureHandler.subflow │ ├── HelloWorld_V1_ISInputHTTPTimeoutHandler.subflow │ ├── SayHello_Request_Response.subflow │ └── SayHello_Request_Response_BuildResponse.esql ├── log │ └── org │ │ └── example │ │ └── www │ │ └── helloworld │ │ └── HelloWorld.wsdl.report.txt ├── sample-HelloWorld.xml └── service.descriptor ├── ImageInCdata_APP ├── .project ├── README.md ├── application.descriptor ├── com │ └── wordpress │ │ └── code2blog │ │ └── imageincdata_app │ │ ├── FileInFileOut_MF.msgflow │ │ └── QueueToFolder_MF_Compute.esql └── test-data │ ├── input │ ├── input.png │ └── input.xml │ └── output │ └── output.png ├── JdbcConnectionTester_V1_API ├── .project ├── README.md ├── gen │ └── JdbcConnectionTester_V1_API.msgflow ├── getConfigservice.subflow ├── getMyPathParameter.subflow ├── getMyPathParameter_Compute.esql ├── restapi.descriptor └── swagger.json ├── JdbcConnectionTester_V1_APIJava ├── .classpath ├── .project ├── README.md └── com │ └── wordpress │ └── code2blog │ └── jdbcconnectiontester_v1_apijava │ └── GetConfigservice_JavaCompute.java ├── JdbcConnectionTester_V1_POLICY ├── .project ├── oracle_local_dsn.policyxml └── policy.descriptor ├── KafkaDemo_V1_APP ├── .project ├── README.md ├── application.descriptor └── com │ └── wordpress │ └── code2blog │ └── kafkademo_v1_app │ ├── CatchHandler_SF.subflow │ ├── TemperatureConvertor_MF.msgflow │ └── TemperatureConvertor_MF_Transform.esql ├── LargeMessages ├── .project ├── LargeMessages.msgflow ├── README.md ├── application.descriptor └── inputSalesList.xml ├── LargeMessagesJava ├── .classpath ├── .project └── LargeMessages.java ├── MessageParsing_V1_APP ├── .project ├── IBMdefined │ └── RecordSeparatedFieldFormat.xsd ├── README.md ├── application.descriptor ├── com │ └── wordpress │ │ └── code2blog │ │ └── messageparsing_v1_app │ │ ├── ImmediateParsing_MF.msgflow │ │ ├── OnDemandParsing_MF.msgflow │ │ ├── OnDemandParsing_MF_Compute.esql │ │ └── OnDemandParsing_MF_inputMessage.xml ├── contains_choice_type.xsd └── test-results │ └── 01-dfdl generated by tool tested in toolkit.PNG ├── MockService_APP ├── .project ├── MockJsonResponse.xsl ├── MockJsonResponse_MF.msgflow ├── MockJsonResponse_MF_BuildXmlForXslt.esql ├── README.md ├── _MockJsonResponse_transform.json └── application.descriptor ├── NoMQ_APP ├── .project ├── Interact-with-PERSON-database-table.json ├── README.md ├── application.descriptor ├── code2blog.wordpress.com │ ├── book.xml │ └── book.xsd ├── code2blog │ └── nomq_app │ │ ├── InvokeHttpServiceOverProxy_MF.msgflow │ │ ├── InvokeHttpServiceOverProxy_MF_AvoidRedirects.esql │ │ ├── InvokeHttpServiceOverProxy_MF_Compute.esql │ │ ├── InvokeRestApi_MF.msgflow │ │ ├── InvokeRestApi_MF_BuildRequest.esql │ │ └── ValidateXml_MF.msgflow ├── note.xml └── note.xsd ├── NodeFeatures_V1_IS ├── .project ├── IBMdefined │ ├── CommaSeparatedFormat.xsd │ ├── RecordFixLengthFieldFormat.xsd │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── NodeFeatures_V1_IS.wsdl ├── NodeFeatures_V1_IS.xsd ├── NodeFeatures_V1_IS_InlineSchema1.xsd ├── README.md ├── _xmlDemoRequest_transform.xml ├── _xsltDemo_transform.xml ├── doc │ ├── mappingDemo-input.xml │ ├── mappingDemo-input.xsd │ ├── mappingDemo-output-space_separated.xsd │ └── mappingDemo-soap-request.xml ├── gen │ ├── NodeFeatures_V1_IS.msgflow │ ├── NodeFeatures_V1_ISInputCatchHandler.subflow │ ├── NodeFeatures_V1_ISInputFailureHandler.subflow │ ├── NodeFeatures_V1_ISInputHTTPTimeoutHandler.subflow │ ├── mappingDemo_Request_Response.subflow │ ├── mappingDemo_Request_Response_Mapping.map │ └── xsltDemo_Request_Response.subflow ├── log │ └── nodefeaturesv1is │ │ └── NodeFeatures_V1_IS.wsdl.report.txt ├── service.descriptor ├── xmlDemoRequest.xml ├── xsltDemo.xsl └── xsltDemoResponse.xml ├── ParseZipFile_JP ├── .classpath ├── .project ├── README.md └── ZipFileToXml_ParseZip.java ├── ParseZipFile_MFP ├── .project ├── README.md └── ZipFileToXml.msgflow ├── Person_V2_API ├── .project ├── README.md ├── createEmployee.subflow ├── createEmployee_Compute.esql ├── createEmployee_ComputeXML.esql ├── gen │ └── Person_V2_API.msgflow ├── getEmployees.subflow ├── getEmployees_Compute.esql ├── restapi.descriptor └── swagger.json ├── README.md ├── ReadIIBFiles_APP ├── .project ├── ListFiles_MF.msgflow ├── README.md ├── ZipFolder_MF.msgflow └── application.descriptor ├── ReadIIBFiles_APPJava ├── .classpath ├── .project ├── README.md └── code2blog_readiibfiles_app │ ├── ListFiles_MF_JavaCompute.java │ ├── Utility.java │ └── ZipFolder_MF_JavaCompute.java ├── RetryFailuresGeneratedInThisAPP ├── .project ├── README.md ├── application.descriptor └── com │ └── wordpress │ └── code2blog │ ├── myappfailswitherror │ ├── catch_handler_sf.subflow │ └── catch_handler_sf_Compute.esql │ └── retryfailuresgeneratedinthisapp │ └── http_error_mf.msgflow ├── Retry_APP ├── .project ├── README.md ├── application.descriptor └── com │ └── wordpress │ └── code2blog │ └── retry_app │ ├── scheduled_retry_mf.msgflow │ ├── trigger_based_mf.msgflow │ ├── trigger_based_mf_Compute.esql │ └── udp.esql ├── Retry_JP ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── README.md └── src │ └── com │ └── wordpress │ └── code2blog │ └── retry_jp │ └── PrepareTimeoutRequest.java ├── SendEmail_V1_APP ├── .project ├── CreateMime_MF.msgflow ├── CreateMime_MF_Compute.esql ├── CreateMime_MF_FileRead_NoMatch.esql ├── README.md ├── SendExcelFile_MF.msgflow ├── SendExcelFile_MF_Compute.esql └── application.descriptor ├── WSSecurityDemo_V1_APP ├── .project ├── HelloWorld.wsdl ├── HelloWorld.xsd ├── HelloWorld_InlineSchema1.xsd ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── README.md ├── application.descriptor ├── com │ └── wordpress │ │ └── code2blog │ │ ├── InvokeSoapService_MF.msgflow │ │ └── InvokeSoapService_MF_Compute.esql └── gen │ └── com │ └── wordpress │ └── code2blog │ └── SayHello_HelloWorld_InvokeSoapService_MF.subflow ├── WindowsCommands_V1_IS ├── .project ├── IBMdefined │ ├── org │ │ ├── w3 │ │ │ └── www │ │ │ │ └── xml │ │ │ │ └── _1998 │ │ │ │ └── namespace │ │ │ │ └── xml.xsd │ │ └── xmlsoap │ │ │ └── schemas │ │ │ └── soap │ │ │ └── envelope │ │ │ └── soapenv11.xsd │ └── soap.xsd ├── README.md ├── WindowsCommands_V1_IS.wsdl ├── WindowsCommands_V1_IS.xsd ├── WindowsCommands_V1_IS_InlineSchema1.xsd ├── batchScriptDemo-response.xml ├── gen │ ├── WindowsCommands_V1_IS.msgflow │ ├── WindowsCommands_V1_ISInputCatchHandler.subflow │ ├── WindowsCommands_V1_ISInputFailureHandler.subflow │ ├── WindowsCommands_V1_ISInputHTTPTimeoutHandler.subflow │ ├── batchScriptDemo_Request_Response.subflow │ └── syslogDemo_Request_Response.subflow ├── log │ └── windowscommandsv1is │ │ └── WindowsCommands_V1_IS.wsdl.report.txt └── service.descriptor ├── WindowsCommands_V1_ISJava ├── .classpath ├── .project ├── README.md ├── gen │ ├── BatchScriptDemo_Request_Response_JavaCompute.java │ ├── LogHandlingMessages.java │ ├── RuntimeExec.java │ └── SyslogDemo_Request_Response_JavaCompute.java └── test │ ├── LDAPTest.java │ └── Snippet.java ├── XmlToCsv_APP ├── .project ├── IBMdefined │ └── CommaSeparatedFormat.xsd ├── application.descriptor ├── file_in_mf.msgflow ├── file_in_mf_Compute.esql ├── log │ └── IBMdefined │ │ └── RecordSeparatedFieldFormat.xsd.report.txt ├── school.xsd └── test-data │ ├── input.xml │ └── output.csv ├── code2blog_cobol_copybook_V1_SLIB ├── .project ├── IBMdefined │ └── CobolDataDefinitionFormat.xsd ├── PurchaseData-input-binary-data.txt ├── PurchaseData.cpy ├── PurchaseData.xsd ├── README.md ├── importFiles │ └── PurchaseData.cpy ├── library.descriptor └── log │ └── PurchaseData.cobol.report.txt ├── code2blog_dfdl_v2_slib ├── .project ├── IBMdefined │ └── RecordFixLengthFieldFormat.xsd ├── README.md ├── fixed_length_with_trailer.xsd ├── library.descriptor └── test-data │ └── input.txt ├── code2blog_node_collector_v1_app ├── .project ├── README.md ├── application.descriptor ├── com │ └── wordpress │ │ └── code2blog │ │ └── code2blog_node_collector_v1_app │ │ ├── acquire_messages_mf.msgflow │ │ ├── catch_handler_sf.subflow │ │ ├── control_with_trigger_mf.msgflow │ │ └── control_with_trigger_mf_Compute.esql └── test-data │ ├── acquire_message_mf │ ├── 111.order.xml │ ├── input-mq01-invoice.xml │ └── input-mq02-packaging.xml │ ├── control_with_trigger_mf │ ├── input-mq01-invoice-123.xml │ └── input-mq01-invoice-124.xml │ └── input-file01-order.xml ├── jenkins ├── HelloWorld_V1_APP.groovy └── README.md ├── notes-commit_tags.txt └── standards ├── README.md └── naming.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.tar.gz 19 | *.rar 20 | 21 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 22 | hs_err_pid* 23 | target 24 | /MockService_APP/vishnu-local-rest-api-response.xsl 25 | -------------------------------------------------------------------------------- /CSV_MFP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (CSV_MFP) converts xml message to csv format
9 | -------------------------------------------------------------------------------- /CSV_MFP/XmlToCsv_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | CREATE COMPUTE MODULE XmlToCsv_MF_Compute 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot = InputRoot; 7 | SET OutputRoot.Properties.MessageFormat = 'Text1'; 8 | RETURN TRUE; 9 | END; 10 | END MODULE; 11 | -------------------------------------------------------------------------------- /CSV_MSET/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | CSV_MSET 4 | 5 | 6 | 7 | 8 | 9 | com.ibm.etools.mft.builder.xsi.MSetProjectBuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.flow.adapters.adapterbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.flow.sca.scabuilder 20 | 21 | 22 | 23 | 24 | com.ibm.etools.msg.validation.dfdl.dfdlqnamevalidator 25 | 26 | 27 | 28 | 29 | com.ibm.etools.msg.validation.mft.builder.msetbuilder 30 | 31 | 32 | 33 | 34 | com.ibm.etools.mft.bar.ext.barbuilder 35 | 36 | 37 | 38 | 39 | 40 | com.ibm.etools.msg.validation.msetnature 41 | com.ibm.etools.mft.postV8Projects 42 | com.ibm.etools.mft.bar.ext.barnature 43 | 44 | 45 | -------------------------------------------------------------------------------- /CSV_MSET/MS_CSV/messageSet.mset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CSV_MSET/MS_CSV/model-space_separated.mxsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /CSV_MSET/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (CSV_MSET) converts xml message to csv format
9 | -------------------------------------------------------------------------------- /CSV_MSET/log/model-space_separated.xsd.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\workspaceOnly\iib-welcome2\MS_CSV\model-space_separated.xsd 4 | 5 | BIP0224W The message set has no XML Wire Format layer defined. Only the logical information will appear in the model. 6 | 7 | Elapsed time processing this message definition file: 0.412 seconds 8 | Number of warnings for this message definition file: 1 9 | 10 | 11 | Number of files processed: 1 12 | 13 | 14 | -------------------------------------------------------------------------------- /CSV_MSET/model-space_separated.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | hello 4 | world 5 | 6 | 7 | hi 8 | vishnu 9 | 10 | -------------------------------------------------------------------------------- /CSV_MSET/model-space_separated.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ComplexXml_IS/ComplexXml_IS.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ComplexXml_IS/gen/ComplexXml_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ComplexXml_IS/gen/ComplexXml_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ComplexXml_IS/gen/ComplexXml_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ComplexXml_IS/gen/operation1_Request_Response_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA gen 2 | DECLARE ns NAMESPACE 'http://ComplexXml_IS'; 3 | 4 | CREATE COMPUTE MODULE operation1_Request_Response_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.XMLNSC.ns:operation1Response.output1 = 'was this complex enough'; 8 | RETURN TRUE; 9 | END; 10 | END MODULE; 11 | -------------------------------------------------------------------------------- /ComplexXml_IS/gen/validate_Request_Response_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA gen 2 | 3 | 4 | CREATE COMPUTE MODULE validate_Request_Response_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.XMLNSC.ns:operation2OutputParameter1 = 'references used in xsd'; 8 | RETURN TRUE; 9 | END; 10 | 11 | END MODULE; 12 | -------------------------------------------------------------------------------- /ComplexXml_IS/log/complexxmlis/ComplexXml_IS.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\app_group\repository\github_code2blog\tool-iib\ComplexXml_IS\ComplexXml_IS.wsdl 4 | 5 | The WSDL import will proceed with bindings ComplexXml_ISHttpBinding. 6 | Creating wsdl schema document for platform:/resource/ComplexXml_IS/ComplexXml_IS.wsdl. 7 | Parsing wsdl binding {http://ComplexXml_IS}ComplexXml_ISHttpBinding. 8 | Parsing wsdl binding input operation1. 9 | Parsing wsdl binding output operation1. 10 | Parsing wsdl binding input validate. 11 | Parsing wsdl binding output validate. 12 | Processing doc style for operation operation1. 13 | Processing doc style for operation validate. 14 | Populating WSDL schema ComplexXml_IS.xsd. 15 | Creating file ComplexXml_IS.xsd in the workspace. 16 | Creating file ComplexXml_IS_InlineSchema1.xsd in the workspace. 17 | Copying source WSDL ComplexXml_IS.wsdl to ComplexXml_IS.wsdl. 18 | -------------------------------------------------------------------------------- /ComplexXml_IS/schema1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /ComplexXml_IS/validate.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/CustomerInfoService.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/CustomerService-pi-with-namespace-issues.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/DemoMappingNode_IS/CustomerService-pi-with-namespace-issues.zip -------------------------------------------------------------------------------- /DemoMappingNode_IS/gen/DemoMappingNode_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/gen/DemoMappingNode_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/gen/DemoMappingNode_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/log/org/tempuri/customerinfo/CustomerInfoService.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\workspace\iib-welcome4\CustomService\CustomerInfoService.wsdl 4 | 5 | Copying source WSDL CustomerInfoService.wsdl to CustomerInfoService.wsdl. 6 | The WSDL import will proceed with bindings CustomerInfoSOAP_HTTP_Binding. 7 | Creating wsdl schema document for file:///C:/vishnu/workspace/iib-welcome4/CustomService/CustomerInfoService.wsdl. 8 | Parsing wsdl binding {http://tempuri.org/CustomerInfo}CustomerInfoSOAP_HTTP_Binding. 9 | Parsing wsdl binding input Operation1. 10 | Parsing wsdl binding output Operation1. 11 | Parsing wsdl binding fault Operation1_Fault. 12 | Processing doc style for operation Operation1. 13 | Populating WSDL schema CustomerInfoService.xsd. 14 | Creating file CustomerInfoService.xsd in the workspace. 15 | Creating file /DemoMappingNode_IS/Customer_Infomsd_WSDLGenWrapper.xsd in the workspace. 16 | Creating file /DemoMappingNode_IS/Customer_Infomsd.xsd in the workspace. 17 | 18 | Elapsed time processing this message definition file: 1.408 seconds 19 | Number of warnings for this message definition file: 0 20 | 21 | 22 | Number of files processed: 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/org/tempuri/customerinfo/Customer_Infomsd_WSDLGenWrapper.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /DemoMappingNode_IS/sample-input.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 8 | ? 9 | ? 10 | Regular 11 | ? 12 | 13 | 14 | 123 15 | ? 16 | ? 17 | 123 18 | 123 19 | 20 | 2019-05-03 21 | 2019-05-03 22 | 123 23 | ? 24 | 25 | 26 | -------------------------------------------------------------------------------- /EDIFACT-Common/library.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /EDIFACT-Common/readme.txt: -------------------------------------------------------------------------------- 1 | this project was copied from https://github.com/ot4i/dfdl-edifact-tutorial/ -------------------------------------------------------------------------------- /EDIFACT-D03B/Flight-ticket-availability.txt: -------------------------------------------------------------------------------- 1 | UNA:+.? ' 2 | UNB+IATB:1+6XPPC:ZZ+LHPPC:ZZ+940101:0950+1' 3 | UNH+1+PAORES:93:1:IA' 4 | MSG+1:45' 5 | IFT+3+XYZCOMPANY AVAILABILITY' 6 | ERC+A7V:1:AMD' 7 | IFT+3+NO MORE FLIGHTS' 8 | ODI' 9 | TVL+240493:1000::1220+FRA+JFK+DL+400+C' 10 | PDI++C:3+Y::3+F::1' 11 | APD+74C:0:::6++++++6X' 12 | TVL+240493:1740::2030+JFK+MIA+DL+081+C' 13 | PDI++C:4' 14 | APD+EM2:0:1630::6+++++++DA' 15 | UNT+13+1' 16 | UNZ+1+1' -------------------------------------------------------------------------------- /EDIFACT-D03B/INVOIC_D.03B_Interchange_with_UNA.txt: -------------------------------------------------------------------------------- 1 | UNA:+.?*' 2 | UNB+UNOC:4+5790000274017:14+5708601000836:14+990420:1137+17++INVOIC++++1' 3 | UNH+30+INVOIC:D:03B:UN' 4 | BGM+380+539602' 5 | DTM+137:19990420:102' 6 | RFF+CO:01671727' 7 | NAD+BY+5708601000836::9' 8 | RFF+VA:UK37499919' 9 | NAD+SU++IBM UK' 10 | RFF+VA:UK19430839' 11 | RFF+ADE:00000767' 12 | NAD+DP+++MyCompany+MyStreet+MyTown++1234+UK' 13 | CUX+2:GBP:9' 14 | LIN+1++V0370246:IN' 15 | IMD+F++:::Collectors edition of The Hobbit with Tolkien?'s original colours on sleeve' 16 | QTY+47:5:PCE' 17 | MOA+66:49.15:GBP' 18 | PRI+AAA:9.83:CT::1:PCE' 19 | RFF+CO:01671727:1' 20 | ALC+C' 21 | MOA+23:13.6:GBP' 22 | LIN+2++:IN' 23 | IMD+F++:::Packaging' 24 | QTY+47:2:PCE' 25 | MOA+106:50:GBP' 26 | PRI+AAA:25:CT::1:PCE' 27 | PAC+++:::Box' 28 | UNS+S' 29 | MOA+64:100.95:GBP' 30 | MOA+67:50.50:GBP' 31 | MOA+86:362.00:GBP' 32 | MOA+136:0.19:GBP' 33 | MOA+286:25.25:GBP' 34 | TAX+7+VAT' 35 | MOA+124:72.36:GBP' 36 | TAX+7+VAT' 37 | MOA+124:539.82:UK::9' 38 | UNT+36+30' 39 | UNZ+1+17' -------------------------------------------------------------------------------- /EDIFACT-D03B/ORDERS_D.03B_Interchange.txt: -------------------------------------------------------------------------------- 1 | UNB+UNOA:4+APPLICATION:1+COMPANY:1+20051107:1159+6002' 2 | UNH+SSDD1+ORDERS:D:03B:UN:EAN008' 3 | BGM+220+BKOD99+9' 4 | DTM+137:20051107:102' 5 | NAD+BY+5412345000176::9' 6 | NAD+SU+4012345000094::9' 7 | CTA+AA' 8 | COM+s11:AA*s21:AA*s31:AA' 9 | LIN+1+1+0764569104:IB' 10 | QTY+1:25' 11 | FTX+AFM+1++Lord of the Rings' 12 | LIN+2+1+0764569090:IB' 13 | QTY+1:25' 14 | FTX+AFM+1++The Hobbit' 15 | LIN+3+1+1861004656:IB' 16 | QTY+1:16' 17 | FTX+AFM+1++The Silmarillion' 18 | LIN+4+1+0596006756:IB' 19 | QTY+1:10' 20 | FTX+AFM+1++The Children of Hurin' 21 | UNS+S' 22 | CNT+2:4' 23 | UNT+22+SSDD1' 24 | UNZ+1+6002' -------------------------------------------------------------------------------- /EDIFACT-D03B/library.descriptor: -------------------------------------------------------------------------------- 1 | EDIFACT-Common -------------------------------------------------------------------------------- /EDIFACT-D03B/sample-from-stylus-studio.txt: -------------------------------------------------------------------------------- 1 | UNA:+.? ' 2 | UNB+UNOA:3+STYLUSSTUDIO:1+DATADIRECT:1+20051107:1159+6002' 3 | UNH+SSDD1+ORDERS:D:03B:UN:EAN008' 4 | BGM+220+BKOD99+9' 5 | DTM+137:20051107:102' 6 | NAD+BY+5412345000176::9' 7 | NAD+SU+4012345000094::9' 8 | LIN+1+1+0764569104:IB' 9 | QTY+1:25' 10 | FTX+AFM+1++XPath 2.0 Programmer?'s Reference' 11 | LIN+2+1+0764569090:IB' 12 | QTY+1:25' 13 | FTX+AFM+1++XSLT 2.0 Programmer?'s Reference' 14 | LIN+3+1+1861004656:IB' 15 | QTY+1:16' 16 | FTX+AFM+1++Java Server Programming' 17 | LIN+4+1+0596006756:IB' 18 | QTY+1:10' 19 | FTX+AFM+1++Enterprise Service Bus' 20 | UNS+S' 21 | CNT+2:4' 22 | UNT+22+SSDD1' 23 | UNZ+1+6002' -------------------------------------------------------------------------------- /EmailAttachmentsToFile_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (EmailAttachmentsToFile_APP) shows you how to to acquire data from email which contains attachments and write the attachments to a folder.
9 | -------------------------------------------------------------------------------- /EmailAttachmentsToFile_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /EmailAttachmentsToFile_APP/com/wordpress/code2blog/emailattachmentstofile_app/AcquireEmail_CheckForAttachments.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.emailattachmentstofile_app 4 | 5 | CREATE COMPUTE MODULE AcquireEmail_CheckForAttachments 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | FOR pPartIn AS InputRoot.MIME.Parts.Part[] DO 9 | DECLARE sContentDisposition CHAR COALESCE(pPartIn."Content-Dispostion", pPartIn."Content-Disposition", ''); 10 | IF sContentDisposition <> '' THEN 11 | SET OutputRoot.Properties = InputRoot.Properties; 12 | SET OutputRoot.BLOB = pPartIn.Data.BLOB; 13 | SET OutputLocalEnvironment.Destination.File.Name = TRANSLATE(SUBSTRING(sContentDisposition AFTER 'filename='), '";'); 14 | PROPAGATE TO TERMINAL 'out'; 15 | END IF; 16 | END FOR; 17 | RETURN FALSE; 18 | END; 19 | 20 | END MODULE; -------------------------------------------------------------------------------- /Encryption_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Encryption_APP/triple_des_mf.msgflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Encryption_APPJava/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Encryption_APPJava/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Encryption_APPJava 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.jcn.jcnbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.bar.ext.barbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.etools.mft.jcn.jcnnature 27 | com.ibm.etools.mft.bar.ext.barnature 28 | 29 | 30 | -------------------------------------------------------------------------------- /Encryption_APPJava/com/wordpress/code2blog/encryption_app/Triple_des_mf_JavaCompute.java: -------------------------------------------------------------------------------- 1 | package com.wordpress.code2blog.encryption_app; 2 | 3 | import com.ibm.broker.javacompute.MbJavaComputeNode; 4 | import com.ibm.broker.plugin.MbElement; 5 | import com.ibm.broker.plugin.MbException; 6 | import com.ibm.broker.plugin.MbMessage; 7 | import com.ibm.broker.plugin.MbMessageAssembly; 8 | import com.ibm.broker.plugin.MbOutputTerminal; 9 | import com.ibm.broker.plugin.MbUserException; 10 | import com.ibm.broker.plugin.MbXMLNSC; 11 | import com.ibm.misc.BASE64Encoder; 12 | 13 | public class Triple_des_mf_JavaCompute extends MbJavaComputeNode { 14 | 15 | public void evaluate(MbMessageAssembly inAssembly) throws MbException { 16 | MbOutputTerminal out = getOutputTerminal("out"); 17 | MbOutputTerminal alt = getOutputTerminal("alternate"); 18 | 19 | MbMessage inMessage = inAssembly.getMessage(); 20 | MbMessageAssembly outAssembly = null; 21 | try { 22 | String text = new String(inMessage.getBuffer()); 23 | 24 | byte[] codedtext = new TripleDESTest().encrypt(text); 25 | 26 | // create new message as a copy of the input 27 | MbMessage outMessage = new MbMessage(); 28 | MbElement xmlnsc = outMessage.getRootElement().createElementAsLastChild(MbXMLNSC.PARSER_NAME); 29 | xmlnsc.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "encoded", new BASE64Encoder().encode(codedtext)); 30 | outAssembly = new MbMessageAssembly(inAssembly, outMessage); 31 | 32 | } catch (MbException e) { 33 | // Re-throw to allow Broker handling of MbException 34 | throw e; 35 | } catch (RuntimeException e) { 36 | // Re-throw to allow Broker handling of RuntimeException 37 | throw e; 38 | } catch (Exception e) { 39 | // Consider replacing Exception with type(s) thrown by user code 40 | // Example handling ensures all exceptions are re-thrown to be handled in the flow 41 | throw new MbUserException(this, "evaluate()", "", "", e.toString(), null); 42 | } 43 | // The following should only be changed 44 | // if not propagating message to the 'out' terminal 45 | out.propagate(outAssembly); 46 | 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/EsqlFunctions_V1_IS.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/EsqlFunctions_V1_IS_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (EsqlFunctions_V1_IS) shows you how to program in esql. String splitter is the function used for demonstration
9 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/docs/request-structure-splitString.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | input1 4 | delimter 5 | 6 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/docs/response-structure-splitString.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | output1 4 | 5 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/EsqlFunctions_V1_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/EsqlFunctions_V1_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/EsqlFunctions_V1_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/Split.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA gen 4 | 5 | /* 6 | ======================================================================================== 7 | PROCEDURE Split 8 | ======================================================================================== 9 | Splits S on Delim into an array in Env (Environment.Split.Array[]) 10 | Removes Environment.Split before refilling it 11 | */ 12 | CREATE PROCEDURE Split (IN S CHARACTER, IN Env REFERENCE, IN Delim CHARACTER) 13 | BEGIN 14 | DECLARE P INTEGER; 15 | DECLARE Idx INTEGER 1; 16 | SET Env.Split = NULL; 17 | -- 18 | IF S IS NULL THEN 19 | RETURN; 20 | END IF; 21 | -- 22 | REPEAT 23 | SET P = POSITION(Delim IN S); 24 | IF P = 0 THEN 25 | SET Env.Split.Array[Idx] = S; 26 | ELSE 27 | SET Env.Split.Array[Idx] = LEFT(S, P - 1); 28 | SET S = SUBSTRING(S FROM P + LENGTH(Delim)); 29 | SET Idx = Idx + 1; 30 | END IF; 31 | UNTIL P = 0 32 | END REPEAT; 33 | END; -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/countryCodeCheck_Request_Response_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA gen 4 | DECLARE ns NAMESPACE 'http://EsqlFunctions_V1_IS'; 5 | 6 | CREATE COMPUTE MODULE countryCodeCheck_Request_Response_Compute 7 | CREATE FUNCTION Main() RETURNS BOOLEAN 8 | BEGIN 9 | SET OutputRoot.Properties = InputRoot.Properties; 10 | DECLARE sFirstTwoCharacters CHAR SUBSTRING(InputRoot.XMLNSC.ns:countryCodeCheck.sourceString FROM 1 FOR 2); 11 | IF LENGTH(TRANSLATE(sFirstTwoCharacters, '0123456789','')) = LENGTH(sFirstTwoCharacters)-2 THEN 12 | SET OutputRoot.XMLNSC.ns:countryCodeCheckResponse.responseMessage = 'input starts with two digit country code'; 13 | ELSE 14 | SET OutputRoot.XMLNSC.ns:countryCodeCheckResponse.responseMessage = 'input does not start with two digit country code'; 15 | END IF; 16 | -- 17 | SET OutputRoot.XMLNSC.ns:countryCodeCheckResponse.sizeOfInputSoapMessage = 18 | LENGTH( 19 | ASBITSTREAM( 20 | InputBody CCSID InputRoot.Properties.CodedCharSetId ENCODING InputRoot.Properties.Encoding)); 21 | 22 | RETURN TRUE; 23 | END; 24 | END MODULE; -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/findEmail_Request_Response_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA gen 2 | 3 | CREATE PROCEDURE findEmailWithRegEx(IN sourceString CHAR, IN regEx CHAR) RETURNS CHAR 4 | LANGUAGE JAVA EXTERNAL NAME "com.wordpress.code2blog.esqlfunctions_v1_isjava.RegExUtility.findEmail"; 5 | 6 | CREATE COMPUTE MODULE findEmail_Request_Response_Compute 7 | CREATE FUNCTION Main() RETURNS BOOLEAN 8 | BEGIN 9 | SET OutputRoot.XMLNSC.ns:findEmailResponse.responseMessage = 10 | findEmailWithRegEx(InputBody.ns:findEmail.inputString, '(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3})'); 11 | 12 | SET OutputRoot.XMLNSC.ns:findEmailResponse.additional_field_not_part_of_wsdl = 'will this cause validation errors'; 13 | RETURN TRUE; 14 | END; 15 | 16 | END MODULE; 17 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/gen/splitString_Request_Response_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA gen 4 | 5 | CREATE COMPUTE MODULE splitString_Request_Response_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | -- pass input arguments to Split function and it will return an array output under OutputLocalEnvironment.Variables.Split 9 | CREATE FIELD OutputLocalEnvironment.Variables; 10 | CALL Split(InputRoot.XMLNSC.*:splitString.input1, OutputLocalEnvironment.Variables, InputRoot.XMLNSC.*:splitString.delimiter); 11 | -- create output structure and reply to invoker 12 | SET OutputRoot.Properties = InputRoot.Properties; 13 | CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC'; 14 | DECLARE tns NAMESPACE 'http://EsqlFunctions_V1_IS'; 15 | SET OutputRoot.XMLNSC.tns:splitStringResponse.(XMLNSC.NamespaceDecl)xmlns:tns = tns; 16 | SET OutputRoot.XMLNSC.tns:splitStringResponse.output1 = OutputLocalEnvironment.Variables.Split; 17 | RETURN TRUE; 18 | END; 19 | END MODULE; 20 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_IS/log/esqlfunctionsv1is/EsqlFunctions_V1_IS.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\app_group\repository\github_code2blog\tool-iib\EsqlFunctions_V1_IS\EsqlFunctions_V1_IS.wsdl 4 | 5 | The WSDL import will proceed with bindings EsqlFunctions_V1_ISHttpBinding. 6 | Creating wsdl schema document for platform:/resource/EsqlFunctions_V1_IS/EsqlFunctions_V1_IS.wsdl. 7 | Parsing wsdl binding {http://EsqlFunctions_V1_IS}EsqlFunctions_V1_ISHttpBinding. 8 | Parsing wsdl binding input splitString. 9 | Parsing wsdl binding output splitString. 10 | Parsing wsdl binding input countryCodeCheck. 11 | Parsing wsdl binding output countryCodeCheck. 12 | Parsing wsdl binding input findEmail. 13 | Parsing wsdl binding output findEmail. 14 | Processing doc style for operation splitString. 15 | Processing doc style for operation countryCodeCheck. 16 | Processing doc style for operation findEmail. 17 | Populating WSDL schema EsqlFunctions_V1_IS.xsd. 18 | Creating file EsqlFunctions_V1_IS.xsd in the workspace. 19 | Creating file EsqlFunctions_V1_IS_InlineSchema1.xsd in the workspace. 20 | Copying source WSDL EsqlFunctions_V1_IS.wsdl to EsqlFunctions_V1_IS.wsdl. 21 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_ISJava/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_ISJava/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | EsqlFunctions_V1_ISJava 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.jcn.jcnbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.bar.ext.barbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.etools.mft.jcn.jcnnature 27 | com.ibm.etools.mft.bar.ext.barnature 28 | 29 | 30 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_ISJava/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (EsqlFunctions_V1_ISJava) holds java code used in EsqlFunctions_V1_IS project. Example - how to evaluate regular expressions and find email address from a string
9 | -------------------------------------------------------------------------------- /EsqlFunctions_V1_ISJava/com/wordpress/code2blog/esqlfunctions_v1_isjava/RegExUtility.java: -------------------------------------------------------------------------------- 1 | package com.wordpress.code2blog.esqlfunctions_v1_isjava; 2 | 3 | import java.util.regex.Matcher; 4 | import java.util.regex.Pattern; 5 | 6 | public class RegExUtility { 7 | 8 | public static String findEmail(String source, String regex){ 9 | Pattern pattern = Pattern.compile(regex); 10 | Matcher matcher = pattern.matcher(source); 11 | matcher.find(); 12 | return matcher.group(1); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/Employee.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | vishnu prasad 5 | suresh kumar 6 | 2020-05-24 19:00:00 7 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/Employee.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project loads records from database to iib global cache
9 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/com/wordpress/code2blog/globalcachedemo_v1_app/GetValueFromCache.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.globalcachedemo_v1_app 4 | 5 | CREATE PROCEDURE GetValueFromCache(IN key CHAR) RETURNS CHAR 6 | LANGUAGE JAVA EXTERNAL NAME "com.wordpress.code2blog.esql_interface.GetEmployeeFromCache.retrieve"; 7 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/com/wordpress/code2blog/globalcachedemo_v1_app/PutJAXB2CACHE.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.globalcachedemo_v1_app 4 | 5 | CREATE PROCEDURE PutJAXB2CACHE(IN dBRow REFERENCE) 6 | LANGUAGE JAVA EXTERNAL NAME "com.wordpress.code2blog.esql_interface.PutEmployee2Cache.loadDbRow"; 7 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/com/wordpress/code2blog/globalcachedemo_v1_app/getValueFromCache_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.globalcachedemo_v1_app 4 | 5 | CREATE COMPUTE MODULE getValueFromCache_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties = InputRoot.Properties; 9 | DECLARE sPrimaryKey CHAR CAST(InputRoot.BLOB.BLOB AS CHAR CCSID InputRoot.Properties.CodedCharSetId); 10 | CREATE LASTCHILD OF OutputRoot DOMAIN 'BLOB'; 11 | SET OutputRoot.BLOB.BLOB = CAST(GetValueFromCache(sPrimaryKey) AS BLOB CCSID InputRoot.Properties.CodedCharSetId); 12 | RETURN TRUE; 13 | END; 14 | END MODULE; 15 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/com/wordpress/code2blog/globalcachedemo_v1_app/loadCache_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.globalcachedemo_v1_app 4 | 5 | CREATE COMPUTE MODULE loadCache_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties = InputRoot.Properties; 9 | 10 | SET Environment.DB.EMPLOYEE[] = SELECT 11 | p.EMPNO, p.FIRSTNAME, p.LASTNAME, CURRENT_TIMESTAMP AS CACHE_UPDATED_AT 12 | FROM Database.WMBOWNER.EMPLOYEE AS p; 13 | 14 | DECLARE iRecords INTEGER 0; 15 | FOR dbRow AS Environment.DB.EMPLOYEE[] DO 16 | CALL PutJAXB2CACHE(dbRow); 17 | SET iRecords = iRecords + 1; 18 | END FOR; 19 | 20 | CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC'; 21 | SET OutputRoot.XMLNSC.employee.records_loaded = iRecords; 22 | RETURN TRUE; 23 | END; 24 | END MODULE; 25 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_APP/com/wordpress/code2blog/globalcachedemo_v1_app/updateCache_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.globalcachedemo_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE updateCache_MF_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properites; 8 | DECLARE sPrimaryKey CHAR CAST(InputRoot.BLOB.BLOB AS CHAR CCSID InputRoot.Properties.CodedCharSetId); 9 | -- get value from global cache 10 | CREATE LASTCHILD OF Environment.cache DOMAIN 'XMLNSC' PARSE( 11 | CAST(GetValueFromCache(sPrimaryKey) AS BLOB CCSID InputRoot.Properties.CodedCharSetId) 12 | , InputProperties.Encoding, InputProperties.CodedCharSetId); 13 | -- update values 14 | SET Environment.cache.XMLNSC.EMPLOYEE.LASTNAME = UPPER(Environment.cache.XMLNSC.EMPLOYEE.LASTNAME); 15 | SET Environment.cache.XMLNSC.EMPLOYEE.CACHE_UPDATED_AT = CURRENT_TIMESTAMP; 16 | -- push to cache 17 | CALL PutJAXB2CACHE(Environment.cache.XMLNSC.EMPLOYEE); 18 | -- respond to caller 19 | CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC'; 20 | SET OutputRoot.XMLNSC.employee.updated_record_for_employee_number = sPrimaryKey; 21 | RETURN TRUE; 22 | END; 23 | END MODULE; 24 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | GlobalCacheDemo_V1_JP 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.java.builder.javabuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.bar.ext.barbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.etools.mft.bar.ext.barnature 27 | 28 | 29 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.8 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.8 12 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project loads records from database to iib global cache
9 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/src/com/wordpress/code2blog/esql_interface/GetEmployeeFromCache.java: -------------------------------------------------------------------------------- 1 | package com.wordpress.code2blog.esql_interface; 2 | 3 | import com.ibm.broker.plugin.MbGlobalMap; 4 | 5 | public class GetEmployeeFromCache { 6 | public static String retrieve(String key) { 7 | try { 8 | int primaryKey = Integer.valueOf(key); 9 | // Establish connection with Map called "DemoMap" 10 | MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("DemoMap"); 11 | String xmlString = (String) globalMap.get(primaryKey); 12 | return xmlString; 13 | } catch (Exception e) { 14 | // let this error be handled by message flow 15 | throw new RuntimeException(e); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /GlobalCacheDemo_V1_JP/src/com/wordpress/code2blog/esql_interface/PutEmployee2Cache.java: -------------------------------------------------------------------------------- 1 | package com.wordpress.code2blog.esql_interface; 2 | 3 | import java.io.StringWriter; 4 | 5 | import javax.xml.bind.JAXBContext; 6 | import javax.xml.bind.JAXBElement; 7 | import javax.xml.transform.OutputKeys; 8 | import javax.xml.transform.Transformer; 9 | import javax.xml.transform.TransformerFactory; 10 | import javax.xml.transform.dom.DOMSource; 11 | import javax.xml.transform.stream.StreamResult; 12 | 13 | import org.w3c.dom.Node; 14 | 15 | import com.ibm.broker.plugin.MbElement; 16 | import com.ibm.broker.plugin.MbGlobalMap; 17 | import com.wordpress.code2blog.EMPLOYEE; 18 | 19 | public class PutEmployee2Cache { 20 | public static void loadDbRow(MbElement dbRow) { 21 | try { 22 | Node domNode = dbRow.getDOMNode(); 23 | String xmlString = domToString(domNode); 24 | xmlString.length();// stop debug here 25 | 26 | JAXBContext jaxbContext = JAXBContext.newInstance("com.wordpress.code2blog"); 27 | EMPLOYEE dBEmployee = ((JAXBElement) jaxbContext.createUnmarshaller() // 28 | .unmarshal(domNode, EMPLOYEE.class)).getValue(); // xsd validation built-in 29 | int primaryKey = dBEmployee.getEMPNO(); 30 | 31 | // Establish connection with Map called "DemoMap" 32 | MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("DemoMap"); 33 | // don't save java objects to map. Save string or bytes 34 | if (globalMap.get(primaryKey) == null) { 35 | globalMap.put(primaryKey, xmlString); 36 | } else { 37 | globalMap.update(primaryKey, xmlString); 38 | } 39 | return; 40 | } catch (Exception e) { 41 | // let this error be handled by message flow 42 | throw new RuntimeException(e); 43 | } 44 | } 45 | 46 | public static String domToString(Node domNode) throws Exception { 47 | DOMSource domSource = new DOMSource(domNode); 48 | StringWriter writer = new StringWriter(); 49 | StreamResult result = new StreamResult(writer); 50 | TransformerFactory tf = TransformerFactory.newInstance(); 51 | Transformer transformer = tf.newTransformer(); 52 | transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 53 | transformer.transform(domSource, result); 54 | String xmlString = writer.toString(); 55 | return xmlString; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/EsqlFunctions_V1_IS.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/EsqlFunctions_V1_IS_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/Person_V2_API.swagger.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger" : "2.0", 3 | "info" : { 4 | "title" : "Interact with PERSON database table", 5 | "description" : "Interact with PERSON database table.", 6 | "version" : "1.0.0" 7 | }, 8 | "basePath" : "/someapi/v2", 9 | "tags" : [ { 10 | "name" : "employees", 11 | "description" : "Lists all of the employees at ACME" 12 | } ], 13 | "paths" : { 14 | "/employees" : { 15 | "get" : { 16 | "tags" : [ "employees" ], 17 | "summary" : "Retrieve a list of the employees", 18 | "description" : "Retrieve a list of the employees", 19 | "operationId" : "getEmployees", 20 | "produces" : [ "application/json" ], 21 | "responses" : { 22 | "200" : { 23 | "description" : "OK" 24 | }, 25 | "500" : { 26 | "description" : "Something wrong in Server" 27 | } 28 | } 29 | }, 30 | "post" : { 31 | "tags" : [ "employees" ], 32 | "summary" : "Creates a new employee", 33 | "description" : "Creates a new employee in the database. The EMPNO that you specify must be unique. The employee will not have a department assigned.", 34 | "operationId" : "createEmployee", 35 | "consumes" : [ "application/json" ], 36 | "produces" : [ "application/json" ], 37 | "parameters" : [ { 38 | "in" : "body", 39 | "name" : "body", 40 | "description" : "", 41 | "required" : false, 42 | "schema" : { 43 | "type" : "string" 44 | } 45 | } ], 46 | "responses" : { 47 | "200" : { 48 | "description" : "successful operation", 49 | "schema" : { } 50 | }, 51 | "201" : { 52 | "description" : "Created" 53 | }, 54 | "500" : { 55 | "description" : "A problem occurred creating the employee" 56 | } 57 | } 58 | } 59 | } 60 | }, 61 | "definitions" : { }, 62 | "schemes" : [ "http" ], 63 | "host" : "localhost:7800" 64 | } -------------------------------------------------------------------------------- /HelloWorld_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (HelloWorld_V1_APP) exposes a http endpoint. Http get method returns a static response in xml format
9 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/DatabaseRetrieve_MF_Build_Response.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA code2blog.helloworld_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE DatabaseRetrieve_MF_Build_Response 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.XMLNSC.root.databaseRetrieve = Environment.databaseRetrieve; 8 | RETURN TRUE; 9 | END; 10 | END MODULE; 11 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/HelloWorld_V1_APP.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | DECLARE SHARED_ROW SHARED ROW; 6 | 7 | 8 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/InvokeRestService_MF_BuildRequest.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE InvokeRestService_MF_BuildRequest 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | DECLARE pArrayOut2 REFERENCE TO Environment; 9 | DECLARE pArrayOut REFERENCE TO Environment.ignore_please_ignore_this_assignment; 10 | DECLARE integerVALUE INTEGER; 11 | 12 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 13 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 14 | 15 | SET OutputLocalEnvironment.Destination.HTTP.QueryString.param1 = 'value1'; 16 | SET OutputLocalEnvironment.Destination.HTTP.QueryString.param2 = 'value2'; 17 | -- This Person api doesnot require any header values or query parameters, 18 | -- i have added them to show you how we used to pass values with http request node. Observe the use of Destination.HTTP 19 | 20 | CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON'; 21 | -- developer you can ignore this assignment, but declartion is important 22 | CREATE FIELD OutputRoot.JSON.Data.rootArrayField IDENTITY (JSON.Array); 23 | 24 | CREATE LASTCHILD OF OutputRoot.JSON.Data.rootArrayField AS pArrayOut NAME 'Item'; 25 | SET pArrayOut.childOne.childTwo = 'hello'; 26 | SET pArrayOut.siblingOne = 'abc'; 27 | 28 | CREATE LASTCHILD OF OutputRoot.JSON.Data.rootArrayField AS pArrayOut NAME 'Item'; 29 | SET pArrayOut.childOne.childTwo = 'code2blog'; 30 | SET pArrayOut.siblingOne = 'def'; 31 | 32 | SET OutputLocalEnvironment.Destination.REST.Request.BaseURL = 'http://localhost:7800/mockservice_app/mockjsonresponse_mf/test-rest-api-override'; 33 | 34 | RETURN TRUE; 35 | END; 36 | 37 | END MODULE; -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/InvokeRestService_MF_BuildResponse.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE InvokeRestService_MF_BuildResponse 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 9 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 10 | 11 | SET OutputRoot.XMLNSC.person.name = InputRoot.JSON.Data.person.USERNAME; 12 | RETURN TRUE; 13 | END; 14 | END MODULE; 15 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/MQGetDemo_MF_RemoveMQHeaders.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE MQGetDemo_MF_RemoveMQHeaders 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 9 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 10 | SET OutputRoot.Properties.ContentType = 'text/plain'; 11 | 12 | -- SET OutputRoot.BLOB = InputRoot.BLOB; 13 | 14 | SET SHARED_ROW.flow01.value = CURRENT_TIME; 15 | SET OutputRoot.XMLNSC.root.SHARED_ROW = SHARED_ROW; 16 | SET OutputRoot.XMLNSC.root.BLOB = InputRoot.BLOB; 17 | END; 18 | END MODULE; 19 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/MergeGroups_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA code2blog.helloworld_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE MergeGroups_MF_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | FOR pProductIn AS InputRoot.XMLNSC.electronics.product[] DO 9 | CREATE LASTCHILD OF Environment.brands.{pProductIn.brand} NAME 'product'; 10 | SET Environment.brands.{pProductIn.brand}.product[<] = pProductIn; 11 | END FOR; 12 | FOR pBrand AS Environment.brands.*[] DO 13 | SET OutputRoot.XMLNSC.electronics = pBrand; 14 | SET OutputLocalEnvironment.Destination.MQ.DestinationData.queueName = FIELDNAME(pBrand) || '.OUT'; 15 | PROPAGATE TO TERMINAL 'out'; 16 | END FOR; 17 | RETURN FALSE; 18 | END; 19 | END MODULE; 20 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/ProcessLargeDataset_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA code2blog.helloworld_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE ProcessLargeDataset_MF_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | SET OutputRoot.MQMD = InputRoot.MQMD; 9 | SET OutputRoot.MQMD.Persistence = MQPER_NOT_PERSISTENT; 10 | SET OutputRoot.XMLNSC.pagination.minValue = CAST(COALESCE(InputRoot.XMLNSC.pagination.maxValue, '0') AS INTEGER) + 1; 11 | SET OutputRoot.XMLNSC.pagination.maxValue = CAST(COALESCE(InputRoot.XMLNSC.pagination.maxValue, '0') AS INTEGER) + 100; 12 | -- beyond this threshold you dont have loop any more 13 | IF OutputRoot.XMLNSC.pagination.maxValue > 3000 THEN 14 | RETURN FALSE; 15 | END IF; 16 | -- sleep to introduce delay and for user to read values off queue 17 | CALL SLEEP(1000) INTO Environment.ignore; 18 | RETURN TRUE; 19 | END; 20 | 21 | END MODULE; 22 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/SayHello_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE SayHello_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties = InputRoot.Properties; 9 | CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC'; 10 | SET OutputRoot.XMLNSC.root.hello_user = 'from_iib'; 11 | 12 | SET OutputRoot.XMLNSC.root.previous_value = SHARED_ROW.flow02.previous_value; 13 | SET SHARED_ROW.flow02.previous_value = CURRENT_TIME; 14 | SET OutputRoot.XMLNSC.root.current_value = SHARED_ROW.flow02.previous_value; 15 | 16 | RETURN TRUE; 17 | END; 18 | END MODULE; 19 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/SoapRequestValidation_MF_BuildRequest.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | DECLARE ns NAMESPACE 'http://EsqlFunctions_V1_IS'; 5 | 6 | CREATE COMPUTE MODULE SoapRequestValidation_MF_BuildRequest 7 | CREATE FUNCTION Main() RETURNS BOOLEAN 8 | BEGIN 9 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 10 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 11 | 12 | SET OutputRoot.XMLNSC.ns:findEmail.inputString = 'find email address vishnu31122013@gmail.com from this input string field'; 13 | RETURN TRUE; 14 | END; 15 | 16 | END MODULE; 17 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/SoapRequestValidation_MF_CheckResponse.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE SoapRequestValidation_MF_CheckResponse 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 9 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 10 | 11 | SET OutputRoot.XMLNSC.response.message = 'take the flow into debug mode to study the xsd validation behavior'; 12 | RETURN TRUE; 13 | END; 14 | END MODULE; 15 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/code2blog/helloworld_v1_app/SortArary_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.helloworld_v1_app 4 | 5 | CREATE COMPUTE MODULE SortArary_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | -- intention of this program is to teach you select keyword in esql. 9 | -- this is not an efficient solution for sorting 10 | DECLARE sMinCost CHAR ''; 11 | DECLARE pProductOut REFERENCE TO Environment.ignore; 12 | FOR pIterateOverArray AS InputRoot.XMLNSC.electronics.product[] DO 13 | -- find one product from input array 14 | SET sMinCost = SELECT MIN(r.cost) FROM InputRoot.XMLNSC.electronics.product[] AS r WHERE r.cost > sMinCost; 15 | -- save one product to outputRoot 16 | CREATE LASTCHILD OF OutputRoot.XMLNSC.electronics As pProductOut NAME 'product'; 17 | SET pProductOut = THE(SELECT p.brand, p.type, p.cost FROM InputRoot.XMLNSC.electronics.product[] AS p WHERE p.cost = sMinCost); 18 | END FOR; 19 | -- read http://www.mqseries.net/phpBB2/viewtopic.php?p=273722&highlight=#273722 for quickSort implementation in esql 20 | RETURN TRUE; 21 | END; 22 | 23 | END MODULE; 24 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/log/esqlfunctionsv1is/EsqlFunctions_V1_IS.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\app_group\repository\github_code2blog\tool-iib\EsqlFunctions_V1_IS\EsqlFunctions_V1_IS.wsdl 4 | 5 | The WSDL import will proceed with bindings EsqlFunctions_V1_ISHttpBinding. 6 | Creating wsdl schema document for file:///C:/vishnu/app_group/repository/github_code2blog/tool-iib/EsqlFunctions_V1_IS/EsqlFunctions_V1_IS.wsdl. 7 | Parsing wsdl binding {http://EsqlFunctions_V1_IS}EsqlFunctions_V1_ISHttpBinding. 8 | Parsing wsdl binding input splitString. 9 | Parsing wsdl binding output splitString. 10 | Parsing wsdl binding input countryCodeCheck. 11 | Parsing wsdl binding output countryCodeCheck. 12 | Parsing wsdl binding input findEmail. 13 | Parsing wsdl binding output findEmail. 14 | Processing doc style for operation splitString. 15 | Processing doc style for operation countryCodeCheck. 16 | Processing doc style for operation findEmail. 17 | Populating WSDL schema EsqlFunctions_V1_IS.xsd. 18 | Creating file EsqlFunctions_V1_IS.xsd in the workspace. 19 | Creating file /HelloWorld_V1_APP/EsqlFunctions_V1_IS_InlineSchema1.xsd in the workspace. 20 | Copying source WSDL EsqlFunctions_V1_IS.wsdl to EsqlFunctions_V1_IS.wsdl. 21 | 22 | Elapsed time processing this message definition file: 1.121 seconds 23 | Number of warnings for this message definition file: 0 24 | 25 | 26 | Number of files processed: 1 27 | 28 | 29 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/test-data/merge-groups-input.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LG 5 | mobile 6 | 123 7 | 8 | 9 | SAMSUNG 10 | mobile 11 | 102 12 | 13 | 14 | LG 15 | refrigerator 16 | 223 17 | 18 | 19 | SAMSUNG 20 | refrigerator 21 | 143 22 | 23 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/test-data/merge-groups-output-lg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LG 5 | mobile 6 | 123 7 | 8 | 9 | LG 10 | refrigerator 11 | 223 12 | 13 | -------------------------------------------------------------------------------- /HelloWorld_V1_APP/test-data/merge-groups-output-samsung.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SAMSUNG 5 | mobile 6 | 124 7 | 8 | 9 | SAMSUNG 10 | refrigerator 11 | 443 12 | 13 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/HelloWorld.wsdl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/HelloWorld.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/HelloWorld_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (HelloWorld_V1_IS) exposes a soap webservice.
9 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/gen/HelloWorld_V1_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/gen/HelloWorld_V1_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/gen/HelloWorld_V1_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/gen/SayHello_Request_Response_BuildResponse.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA gen 2 | 3 | CREATE COMPUTE MODULE SayHello_Request_Response_BuildResponse 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties = InputRoot.Properties; 7 | CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC'; 8 | DECLARE tns NAMESPACE 'http://www.example.org/HelloWorld/'; 9 | DECLARE hel NAMESPACE 'http://www.example.org/HelloWorld/'; 10 | SET OutputRoot.XMLNSC.tns:SayHelloResponse.(XMLNSC.NamespaceDecl)xmlns:tns = tns; 11 | SET OutputRoot.XMLNSC.tns:SayHelloResponse.out = 'hello ' || InputRoot.XMLNSC.hel:SayHello.in; 12 | RETURN TRUE; 13 | END; 14 | END MODULE; 15 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/log/org/example/www/helloworld/HelloWorld.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\Users\Vishnu\IBM\IIBT10\workspace\java_proj_01\HelloWorld.wsdl 4 | 5 | Copying source WSDL HelloWorld.wsdl to HelloWorld.wsdl. 6 | The WSDL import will proceed with bindings HelloWorldSOAP. 7 | Creating wsdl schema document for file:///C:/Users/Vishnu/IBM/IIBT10/workspace/java_proj_01/HelloWorld.wsdl. 8 | Parsing wsdl binding {http://www.example.org/HelloWorld/}HelloWorldSOAP. 9 | Parsing wsdl binding input SayHello. 10 | Parsing wsdl binding output SayHello. 11 | Processing doc style for operation SayHello. 12 | Populating WSDL schema HelloWorld.xsd. 13 | Creating file HelloWorld.xsd in the workspace. 14 | Creating file HelloWorld_InlineSchema1.xsd in the workspace. 15 | 16 | Elapsed time processing this message definition file: 2.134 seconds 17 | Number of warnings for this message definition file: 0 18 | 19 | 20 | Number of files processed: 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /HelloWorld_V1_IS/sample-HelloWorld.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | out 4 | 5 | -------------------------------------------------------------------------------- /ImageInCdata_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
 8 | 	This iib project (ImageInCdata_APP) will show you how to extract image file from xml
 9 | 
10 | -------------------------------------------------------------------------------- /ImageInCdata_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ImageInCdata_APP/com/wordpress/code2blog/imageincdata_app/QueueToFolder_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.imageincdata_app 2 | 3 | 4 | CREATE COMPUTE MODULE QueueToFolder_MF_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | CREATE LASTCHILD OF OutputRoot DOMAIN 'BLOB'; 9 | SET OutputRoot.BLOB.BLOB = BASE64DECODE(InputRoot.XMLNSC.InputFile); 10 | RETURN TRUE; 11 | END; 12 | END MODULE; 13 | -------------------------------------------------------------------------------- /ImageInCdata_APP/test-data/input/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/ImageInCdata_APP/test-data/input/input.png -------------------------------------------------------------------------------- /ImageInCdata_APP/test-data/output/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/ImageInCdata_APP/test-data/output/output.png -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_API/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
 8 | 	This iib project (JdbcConnectionTester_V1_APP) will accept jdbc configurable service name as input and connect to that database to ensure credentials and other connection parameters are valid
 9 | 
10 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_API/getMyPathParameter.subflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_API/getMyPathParameter_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | 3 | CREATE COMPUTE MODULE getMyPathParameter_Compute 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties = InputRoot.Properties; 7 | CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON'; 8 | SET OutputRoot.JSON.Data.message = 'i received path parameter - ' 9 | || InputLocalEnvironment.REST.Input.Parameters.myPathParameter; 10 | -- 11 | CREATE FIELD OutputRoot.JSON.Data.dummyArray IDENTITY (JSON.Array); 12 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'happy'; 13 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'to'; 14 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'see'; 15 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'an'; 16 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'array'; 17 | CREATE LASTCHILD OF OutputRoot.JSON.Data.dummyArray NAME 'Item' VALUE 'here'; 18 | RETURN TRUE; 19 | END; 20 | END MODULE; 21 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_API/restapi.descriptor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_API/swagger.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger" : "2.0", 3 | "info" : { 4 | "title" : "JdbcConnectionTester_V1_API", 5 | "version" : "1.0.0", 6 | "description" : "JdbcConnectionTester_V1_API" 7 | }, 8 | "paths" : { 9 | "/configservice" : { 10 | "get" : { 11 | "operationId" : "getConfigservice", 12 | "responses" : { 13 | "200" : { 14 | "description" : "The connection was established.", 15 | "schema" : { 16 | "$ref" : "#/definitions/configServiceTestResult" 17 | } 18 | }, 19 | "500" : { 20 | "description" : "The connection failed to establish.", 21 | "schema" : { 22 | "$ref" : "#/definitions/configServiceTestResult" 23 | } 24 | } 25 | }, 26 | "produces" : [ "application/json" ], 27 | "description" : "Retrieve configservice", 28 | "parameters" : [ { 29 | "name" : "jdbc", 30 | "in" : "query", 31 | "type" : "string" 32 | } ] 33 | } 34 | }, 35 | "/test/{myPathParameter}" : { 36 | "get" : { 37 | "operationId" : "getMyPathParameter", 38 | "responses" : { 39 | "200" : { 40 | "description" : "The operation was successful.", 41 | "schema" : { 42 | "$ref" : "#/definitions/configServiceTestResult" 43 | } 44 | } 45 | }, 46 | "produces" : [ "application/json" ], 47 | "description" : "Retrieve myPathParameter", 48 | "parameters" : [ { 49 | "required" : true, 50 | "name" : "myPathParameter", 51 | "in" : "path", 52 | "type" : "string", 53 | "description" : "use this field to study the syntax of path parameter in iib" 54 | } ] 55 | } 56 | } 57 | }, 58 | "basePath" : "/jdbcconnectiontester/v1", 59 | "definitions" : { 60 | "configServiceTestResult" : { 61 | "type" : "object", 62 | "properties" : { 63 | "message" : { 64 | "type" : "string" 65 | } 66 | }, 67 | "required" : [ "message" ] 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_APIJava/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_APIJava/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | JdbcConnectionTester_V1_APIJava 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.jcn.jcnbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.bar.ext.barbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.etools.mft.jcn.jcnnature 27 | com.ibm.etools.mft.bar.ext.barnature 28 | 29 | 30 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_APIJava/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
 8 | 	This iib project (JdbcConnectionTester_V1_APP) will accept jdbc configurable service name as input and connect to that database to ensure credentials and other connection parameters are valid
 9 | 
10 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_POLICY/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | JdbcConnectionTester_V1_POLICY 4 | 5 | 6 | 7 | 8 | 9 | com.ibm.etools.mft.policy.ui.builder.PolicyBuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.policy.ui.policybuilder 15 | 16 | 17 | 18 | 19 | 20 | com.ibm.etools.mft.policy.ui.Nature 21 | 22 | 23 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_POLICY/oracle_local_dsn.policyxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JDBC_ORACLE 5 | Oracle 6 | 7 | oracle.jdbc.OracleDriver 8 | oracle.jdbc.xa.client.OracleXADataSource 9 | jdbc:oracle:thin:@[serverName]:[portNumber]:[connectionUrlFormatAttr1] 10 | XE 11 | 12 | 13 | 14 | 15 | localhost 16 | 1521 17 | C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ 18 | useProvidedSchemaNames 19 | 20 | 0 21 | secJDBC_ORACLE 22 | 23 | true 24 | false 25 | 26 | 27 | -------------------------------------------------------------------------------- /JdbcConnectionTester_V1_POLICY/policy.descriptor: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /KafkaDemo_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (KafkaDemo_V1_APP) will read a xml message from one kafka topic and publish json response to another kafka topic
9 | -------------------------------------------------------------------------------- /KafkaDemo_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /KafkaDemo_V1_APP/com/wordpress/code2blog/kafkademo_v1_app/TemperatureConvertor_MF_Transform.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.kafkademo_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE TemperatureConvertor_MF_Transform 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON'; 9 | SET OutputRoot.JSON.Data.temperature = 123; -- (0°C × 9/5) + 32 = 32°F 10 | RETURN TRUE; 11 | END; 12 | 13 | END MODULE; 14 | -------------------------------------------------------------------------------- /LargeMessages/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
8 | This iib project (LargeMessages) will read a large xml and split it into smaller xmls using jcn
9 | -------------------------------------------------------------------------------- /LargeMessages/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LargeMessagesJava/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /LargeMessagesJava/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | LargeMessagesJava 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.etools.mft.jcn.jcnbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.etools.mft.bar.ext.barbuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.etools.mft.jcn.jcnnature 27 | com.ibm.etools.mft.bar.ext.barnature 28 | 29 | 30 | -------------------------------------------------------------------------------- /LargeMessagesJava/LargeMessages.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/LargeMessagesJava/LargeMessages.java -------------------------------------------------------------------------------- /MessageParsing_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | Refer these links for more details on this project
4 | https://code2blog.wordpress.com/
5 | https://youtube.com/results?search_query=code2blog
6 | 7 |
 8 | 	This iib project (MessageParsing_V1_APP) will demo the different parsing options available in iib such as OnDemand parsing, etc
 9 | 
10 | -------------------------------------------------------------------------------- /MessageParsing_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MessageParsing_V1_APP/com/wordpress/code2blog/messageparsing_v1_app/ImmediateParsing_MF.msgflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/MessageParsing_V1_APP/com/wordpress/code2blog/messageparsing_v1_app/ImmediateParsing_MF.msgflow -------------------------------------------------------------------------------- /MessageParsing_V1_APP/com/wordpress/code2blog/messageparsing_v1_app/OnDemandParsing_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.messageparsing_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE OnDemandParsing_MF_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | SET OutputRoot.XMLNSC.onDemandRootElement.childElement = InputRoot.XMLNSC.root.child; 9 | RETURN TRUE; 10 | END; 11 | END MODULE; 12 | -------------------------------------------------------------------------------- /MessageParsing_V1_APP/com/wordpress/code2blog/messageparsing_v1_app/OnDemandParsing_MF_inputMessage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %3Croot%3E%3Cchild%3Ecode2blog%3C%2Fchild%3E%3C%2Froot%3E</plainText> 5 | </InputMessage> 6 | </MessagePool> 7 | -------------------------------------------------------------------------------- /MessageParsing_V1_APP/test-results/01-dfdl generated by tool tested in toolkit.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code2blog/tool-iib/9048e7a1d7d698834e5ab4c0aeb13132949e0d1e/MessageParsing_V1_APP/test-results/01-dfdl generated by tool tested in toolkit.PNG -------------------------------------------------------------------------------- /MockService_APP/MockJsonResponse.xsl: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 | <xsl:output method="text" indent="yes"/> 4 | <xsl:template match="*"> 5 | <xsl:text><![CDATA[{ 6 | "glossary": { 7 | "title": "example glossary", 8 | "GlossDiv": { 9 | "title": "S-test123-code2blog", 10 | "GlossList": { 11 | "GlossEntry": { 12 | "ID": "SGML", 13 | "SortAs": "SGML", 14 | "GlossTerm": "Standard Generalized Markup Language", 15 | "Acronym": "SGML", 16 | "Abbrev": "ISO 8879:1986", 17 | "GlossDef": { 18 | "para": "A meta-markup language, used to create markup languages such as DocBook.", 19 | "GlossSeeAlso": ["GML", "XML"] 20 | }, 21 | "GlossSee": "markup" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | ]]></xsl:text> 28 | </xsl:template> 29 | </xsl:stylesheet> 30 | -------------------------------------------------------------------------------- /MockService_APP/MockJsonResponse_MF_BuildXmlForXslt.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | CREATE COMPUTE MODULE MockJsonResponse_MF_BuildXmlForXslt 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 7 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 8 | 9 | SET OutputRoot.XMLNSC.root.child = 'value'; 10 | RETURN TRUE; 11 | END; 12 | END MODULE; 13 | -------------------------------------------------------------------------------- /MockService_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (MockService_APP) exposes a http endpoint. Http get method returns a json response generated from xsl file. This application mimics a working of any rest api <br> 9 | -------------------------------------------------------------------------------- /MockService_APP/_MockJsonResponse_transform.json: -------------------------------------------------------------------------------- 1 | { 2 | "glossary": { 3 | "title": "example glossary", 4 | "GlossDiv": { 5 | "title": "S", 6 | "GlossList": { 7 | "GlossEntry": { 8 | "ID": "SGML", 9 | "SortAs": "SGML", 10 | "GlossTerm": "Standard Generalized Markup Language", 11 | "Acronym": "SGML", 12 | "Abbrev": "ISO 8879:1986", 13 | "GlossDef": { 14 | "para": "A meta-markup language, used to create markup languages such as DocBook.", 15 | "GlossSeeAlso": ["GML", "XML"] 16 | }, 17 | "GlossSee": "markup" 18 | } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MockService_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /NoMQ_APP/Interact-with-PERSON-database-table.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger" : "2.0", 3 | "info" : { 4 | "title" : "Interact with PERSON database table", 5 | "description" : "Interact with PERSON database table.", 6 | "version" : "1.0.0" 7 | }, 8 | "basePath" : "/someapi/v2", 9 | "tags" : [ { 10 | "name" : "employees", 11 | "description" : "Lists all of the employees at ACME" 12 | } ], 13 | "paths" : { 14 | "/employees" : { 15 | "get" : { 16 | "tags" : [ "employees" ], 17 | "summary" : "Retrieve a list of the employees", 18 | "description" : "Retrieve a list of the employees", 19 | "operationId" : "getEmployees", 20 | "produces" : [ "application/json" ], 21 | "responses" : { 22 | "200" : { 23 | "description" : "OK" 24 | }, 25 | "500" : { 26 | "description" : "Something wrong in Server" 27 | } 28 | } 29 | }, 30 | "post" : { 31 | "tags" : [ "employees" ], 32 | "summary" : "Creates a new employee", 33 | "description" : "Creates a new employee in the database. The <b>EMPNO</b> that you specify must be unique. The employee will not have a department assigned.", 34 | "operationId" : "createEmployee", 35 | "consumes" : [ "application/json" ], 36 | "produces" : [ "application/json" ], 37 | "parameters" : [ { 38 | "in" : "body", 39 | "name" : "body", 40 | "description" : "", 41 | "required" : false, 42 | "schema" : { 43 | "type" : "string" 44 | } 45 | }, { 46 | "name" : "max", 47 | "in" : "query", 48 | "type" : "integer" 49 | }, { 50 | "name" : "filter", 51 | "in" : "query", 52 | "type" : "string" 53 | } ], 54 | "responses" : { 55 | "200" : { 56 | "description" : "successful operation", 57 | "schema" : { } 58 | }, 59 | "201" : { 60 | "description" : "Created" 61 | }, 62 | "500" : { 63 | "description" : "A problem occurred creating the employee" 64 | } 65 | } 66 | } 67 | } 68 | }, 69 | "definitions" : { }, 70 | "schemes" : [ "http" ], 71 | "host" : "localhost:7800" 72 | } -------------------------------------------------------------------------------- /NoMQ_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (NoMQ_APP) invokes a service over http proxy. Watch youtube video for details. <br> 9 | -------------------------------------------------------------------------------- /NoMQ_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /NoMQ_APP/code2blog.wordpress.com/book.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0"?> 2 | <book category="cooking" 3 | xmlns="code2blog.wordpress.com" 4 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 | xsi:schemaLocation="code2blog.wordpress.com book.xsd"> 6 | <title lang="en">Everyday Italian</title> 7 | <author>Giada De Laurentiis</author> 8 | <year>2005</year> 9 | <price>30.00</price> 10 | </book> 11 | -------------------------------------------------------------------------------- /NoMQ_APP/code2blog.wordpress.com/book.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <xsd:schema xmlns="code2blog.wordpress.com" 3 | targetNamespace="code2blog.wordpress.com" 4 | xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 5 | <xsd:element name="year" type="xsd:int"/> 6 | <xsd:element name="author" type="xsd:string"/> 7 | <xsd:element name="price" type="xsd:decimal"/> 8 | <xsd:element name="book"> 9 | <xsd:complexType> 10 | <xsd:sequence> 11 | <xsd:element ref="title"/> 12 | <xsd:element ref="author"/> 13 | <xsd:element ref="year"/> 14 | <xsd:element ref="price"/> 15 | </xsd:sequence> 16 | <xsd:attribute name="category" type="xsd:string"/> 17 | </xsd:complexType> 18 | </xsd:element> 19 | <xsd:element name="title"> 20 | <xsd:complexType mixed="true"> 21 | <xsd:attribute name="lang" type="xsd:string"/> 22 | </xsd:complexType> 23 | </xsd:element> 24 | </xsd:schema> -------------------------------------------------------------------------------- /NoMQ_APP/code2blog/nomq_app/InvokeHttpServiceOverProxy_MF_AvoidRedirects.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.nomq_app 4 | 5 | CREATE COMPUTE MODULE InvokeHttpServiceOverProxy_MF_AvoidRedirects 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 9 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 10 | 11 | SET OutputRoot.XMLNSC.response.string = CAST(InputRoot.BLOB.BLOB AS CHAR CCSID InputRoot.Properties.CodedCharSetId); 12 | SET OutputRoot.XMLNSC.response.payload = InputBody; 13 | RETURN TRUE; 14 | END; 15 | END MODULE; -------------------------------------------------------------------------------- /NoMQ_APP/code2blog/nomq_app/InvokeHttpServiceOverProxy_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.nomq_app 4 | 5 | CREATE COMPUTE MODULE InvokeHttpServiceOverProxy_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 9 | SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding; 10 | RETURN TRUE; 11 | END; 12 | END MODULE; -------------------------------------------------------------------------------- /NoMQ_APP/code2blog/nomq_app/InvokeRestApi_MF_BuildRequest.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA code2blog.nomq_app 4 | 5 | CREATE COMPUTE MODULE InvokeRestApi_MF_BuildRequest 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | SET OutputRoot.XMLNSC.root.child = 123; 9 | 10 | SET OutputLocalEnvironment.Destination.REST.Request.Parameters.max = 10; 11 | SET OutputLocalEnvironment.Destination.REST.Request.Parameters.filter = 'Fred Bloggs'; 12 | SET OutputLocalEnvironment.Destination.REST.Request.ContentType = 'application/x-www-form-urlencoded'; 13 | SET OutputLocalEnvironment.Destination.REST.Request.BaseURL = 'http://localhost:7800/mockservice_app/mockjsonresponse_mf'; 14 | RETURN TRUE; 15 | END; 16 | 17 | END MODULE; -------------------------------------------------------------------------------- /NoMQ_APP/note.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <note> 3 | <to>Tove</to> 4 | <from>Jani</from> 5 | <heading>Reminder</heading> 6 | <body>Don't forget me this weekend!</body> 7 | </note> -------------------------------------------------------------------------------- /NoMQ_APP/note.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 2 | <xsd:element name="note"> 3 | <xsd:complexType> 4 | <xsd:sequence> 5 | <xsd:element ref="to"/> 6 | <xsd:element ref="from"/> 7 | <xsd:element ref="heading"/> 8 | <xsd:element ref="body"/> 9 | </xsd:sequence> 10 | </xsd:complexType> 11 | </xsd:element> 12 | <xsd:element name="heading" type="xsd:string"/> 13 | <xsd:element name="from" type="xsd:string"/> 14 | <xsd:element name="to" type="xsd:string"/> 15 | <xsd:element name="body" type="xsd:string"/> 16 | </xsd:schema> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/NodeFeatures_V1_IS.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://NodeFeatures_V1_IS"> 2 | <xsd:include schemaLocation="NodeFeatures_V1_IS_InlineSchema1.xsd"/> 3 | 4 | <!-- BEGIN Global group petaining to all wsdl:message definitions --> 5 | <!-- END Global group --> 6 | 7 | 8 | <!-- BEGIN Message Definitions for the wsdl:operations --> 9 | <!-- END Message Definitions --> 10 | 11 | 12 | </xsd:schema> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/NodeFeatures_V1_IS_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://NodeFeatures_V1_IS" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://NodeFeatures_V1_IS" 3 | xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 4 | <xsd:include schemaLocation="doc/mappingDemo-input.xsd"></xsd:include> 5 | <xsd:include schemaLocation="doc/mappingDemo-output-space_separated.xsd"></xsd:include> 6 | 7 | <xsd:element ibmSchExtn:docRoot="true" name="xsltDemo"> 8 | <xsd:complexType> 9 | <xsd:sequence> 10 | <xsd:element name="input1" nillable="true"> 11 | <xsd:complexType> 12 | <xsd:sequence> 13 | <xsd:element maxOccurs="10" minOccurs="1" name="cd"> 14 | <xsd:complexType> 15 | <xsd:sequence> 16 | <xsd:element name="title" type="xsd:string"> 17 | </xsd:element> 18 | <xsd:element name="artist" type="xsd:string"> 19 | </xsd:element> 20 | </xsd:sequence> 21 | </xsd:complexType> 22 | </xsd:element> 23 | </xsd:sequence> 24 | </xsd:complexType> 25 | </xsd:element> 26 | </xsd:sequence> 27 | </xsd:complexType> 28 | </xsd:element> 29 | <xsd:element ibmSchExtn:docRoot="true" name="xsltDemoResponse"> 30 | <xsd:complexType> 31 | <xsd:sequence> 32 | <xsd:element name="output1" nillable="true" type="xsd:string" /> 33 | </xsd:sequence> 34 | </xsd:complexType> 35 | </xsd:element> 36 | <xsd:element ibmSchExtn:docRoot="true" name="mappingDemoRequest" nillable="true"> 37 | <xsd:complexType> 38 | <xsd:sequence> 39 | <xsd:element ref="tns:mappingDemoInput"></xsd:element> 40 | </xsd:sequence> 41 | </xsd:complexType> 42 | </xsd:element> 43 | <xsd:element ibmSchExtn:docRoot="true" name="mappingDemoResponse" nillable="true"> <xsd:complexType> 44 | <xsd:sequence> 45 | <xsd:element ref="tns:mappingDemoOutput"></xsd:element> 46 | </xsd:sequence> 47 | </xsd:complexType> 48 | </xsd:element> 49 | </xsd:schema> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (NodeFeatures_V1_IS) shows you features of various iib nodes. 9 | 1) xsl transformation node 10 | 2) mapping node 11 | </pre> 12 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/_xmlDemoRequest_transform.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <tns:xsltDemoResponse xmlns:tns="http://NodeFeatures_V1_IS" 3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 | xsi:schemaLocation="http://NodeFeatures_V1_IS NodeFeatures_V1_IS_InlineSchema1.xsd "> 5 | <output1> 6 | <tr><td>title01</td><td>artist01</td></tr> 7 | <tr><td>title02</td><td>artist02</td></tr> 8 | <tr><td>title03</td><td>artist03</td></tr> 9 | </output1> 10 | </tns:xsltDemoResponse> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/_xsltDemo_transform.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><tns:xsltDemoResponse xmlns:tns="http://NodeFeatures_V1_IS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://NodeFeatures_V1_IS NodeFeatures_V1_IS_InlineSchema1.xsd "><output1><tr><td>title01</td><td>artist01</td></tr><tr><td>title02</td><td>artist02</td></tr><tr><td>title03</td><td>artist03</td></tr></output1></tns:xsltDemoResponse> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/doc/mappingDemo-input.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <mappingDemoInput xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 3 | <Header1> 4 | <StartOfFile xsi:type="xs:string">Start of file TEST____TEST.000000000009995.20150520.1444</StartOfFile> 5 | </Header1> 6 | <Header2> 7 | <OrderID xsi:type="xs:string">00000000009,995</OrderID> 8 | <PackagesCount xsi:type="xs:string">000000</PackagesCount> 9 | <VouchersPerpackage xsi:type="xs:string">00</VouchersPerpackage> 10 | <VouchersCount xsi:type="xs:string">0000100</VouchersCount> 11 | </Header2> 12 | <Details> 13 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 14 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 15 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 16 | <Null xsi:type="xs:string">00000</Null> 17 | <PINNumber xsi:type="xs:string">1</PINNumber> 18 | <SerialNumber xsi:type="xs:string"> 98</SerialNumber> 19 | </Details> 20 | <Details> 21 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 22 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 23 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 24 | <Null xsi:type="xs:string">00000</Null> 25 | <PINNumber xsi:type="xs:string">2</PINNumber> 26 | <SerialNumber xsi:type="xs:string"> 99</SerialNumber> 27 | </Details> 28 | <Details> 29 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 30 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 31 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 32 | <Null xsi:type="xs:string">00000</Null> 33 | <PINNumber xsi:type="xs:string">3</PINNumber> 34 | <SerialNumber xsi:type="xs:string"> 100</SerialNumber> 35 | </Details> 36 | <trailer> 37 | <EndOfFile xsi:type="xs:string">End of file</EndOfFile> 38 | </trailer> 39 | </mappingDemoInput> 40 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/doc/mappingDemo-output-space_separated.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://NodeFeatures_V1_IS" xmlns:csv="http://www.ibm.com/dfdl/CommaSeparatedFormat" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions"> 2 | 3 | 4 | <xsd:import namespace="http://www.ibm.com/dfdl/CommaSeparatedFormat" schemaLocation="../IBMdefined/CommaSeparatedFormat.xsd"/> 5 | <xsd:annotation> 6 | <xsd:appinfo source="http://www.ogf.org/dfdl/"> 7 | <dfdl:format documentFinalTerminatorCanBeMissing="yes" encoding="{$dfdl:encoding}" escapeSchemeRef="csv:CSVEscapeScheme" ref="csv:CommaSeparatedFormat"/> 8 | </xsd:appinfo> 9 | </xsd:annotation> 10 | 11 | 12 | <xsd:element ibmSchExtn:docRoot="true" name="mappingDemoOutput"> 13 | <xsd:complexType> 14 | <xsd:sequence dfdl:separator=""> 15 | <xsd:element dfdl:occursCountKind="implicit" dfdl:terminator="%CR;%LF;%WSP*;" maxOccurs="unbounded" minOccurs="0" name="record"> 16 | <xsd:complexType> 17 | <xsd:sequence dfdl:separatorSuppressionPolicy="trailingEmpty"> 18 | <xsd:element ibmDfdlExtn:sampleValue="value1" maxOccurs="unbounded" minOccurs="0" name="field1" type="xsd:string"/> 19 | <xsd:element ibmDfdlExtn:sampleValue="value2" maxOccurs="unbounded" minOccurs="0" name="field2" type="xsd:string"/> 20 | <xsd:element ibmDfdlExtn:sampleValue="value3" maxOccurs="unbounded" minOccurs="0" name="field3" type="xsd:string"/> 21 | <xsd:element ibmDfdlExtn:sampleValue="value4" maxOccurs="unbounded" minOccurs="0" name="field4" type="xsd:string"/> 22 | </xsd:sequence> 23 | </xsd:complexType> 24 | </xsd:element> 25 | </xsd:sequence> 26 | </xsd:complexType> 27 | </xsd:element> 28 | 29 | 30 | </xsd:schema> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/doc/mappingDemo-soap-request.xml: -------------------------------------------------------------------------------- 1 | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:nod="http://NodeFeatures_V1_IS"> 2 | <soapenv:Header/> 3 | <soapenv:Body> 4 | <nod:mappingDemoRequest> 5 | <mappingDemoInput xmlns="http://NodeFeatures_V1_IS" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 6 | <Header1> 7 | <StartOfFile xsi:type="xs:string">Start of file TEST____TEST.000000000009995.20150520.1444</StartOfFile> 8 | </Header1> 9 | <Header2> 10 | <OrderID xsi:type="xs:string">00000000009,995</OrderID> 11 | <PackagesCount xsi:type="xs:string">000000</PackagesCount> 12 | <VouchersPerpackage xsi:type="xs:string">00</VouchersPerpackage> 13 | <VouchersCount xsi:type="xs:string">0000100</VouchersCount> 14 | </Header2> 15 | <Details> 16 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 17 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 18 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 19 | <Null xsi:type="xs:string">00000</Null> 20 | <PINNumber xsi:type="xs:string">1</PINNumber> 21 | <SerialNumber xsi:type="xs:string"> 98</SerialNumber> 22 | </Details> 23 | <Details> 24 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 25 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 26 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 27 | <Null xsi:type="xs:string">00000</Null> 28 | <PINNumber xsi:type="xs:string">2</PINNumber> 29 | <SerialNumber xsi:type="xs:string"> 99</SerialNumber> 30 | </Details> 31 | <Details> 32 | <RechargeValue xsi:type="xs:string">002K</RechargeValue> 33 | <Rechargeperiod xsi:type="xs:string">000</Rechargeperiod> 34 | <Expirydate xsi:type="xs:string">21.01.2020</Expirydate> 35 | <Null xsi:type="xs:string">00000</Null> 36 | <PINNumber xsi:type="xs:string">3</PINNumber> 37 | <SerialNumber xsi:type="xs:string"> 100</SerialNumber> 38 | </Details> 39 | <trailer> 40 | <EndOfFile xsi:type="xs:string">End of file</EndOfFile> 41 | </trailer> 42 | </mappingDemoInput> 43 | </nod:mappingDemoRequest> 44 | </soapenv:Body> 45 | </soapenv:Envelope> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/NodeFeatures_V1_ISInputCatchHandler.subflow" nsPrefix="gen_NodeFeatures_V1_ISInputCatchHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="NodeFeatures_V1_ISInputCatchHandler" bundleName="gen/NodeFeatures_V1_ISInputCatchHandler" pluginId="NodeFeatures_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj16/NodeFeatures_V1_ISInputCatchHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj30/NodeFeatures_V1_ISInputCatchHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/NodeFeatures_V1_ISInputCatchHandler" pluginId="NodeFeatures_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/NodeFeatures_V1_ISInputCatchHandler" pluginId="NodeFeatures_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/NodeFeatures_V1_ISInputFailureHandler.subflow" nsPrefix="gen_NodeFeatures_V1_ISInputFailureHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="NodeFeatures_V1_ISInputFailureHandler" bundleName="gen/NodeFeatures_V1_ISInputFailureHandler" pluginId="NodeFeatures_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj16/NodeFeatures_V1_ISInputFailureHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj30/NodeFeatures_V1_ISInputFailureHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/NodeFeatures_V1_ISInputFailureHandler" pluginId="NodeFeatures_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/NodeFeatures_V1_ISInputFailureHandler" pluginId="NodeFeatures_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler.subflow" nsPrefix="gen_NodeFeatures_V1_ISInputHTTPTimeoutHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="NodeFeatures_V1_ISInputHTTPTimeoutHandler" bundleName="gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler" pluginId="NodeFeatures_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj16/NodeFeatures_V1_ISInputHTTPTimeoutHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/NodeFeatures_V1_IS/icons/full/obj30/NodeFeatures_V1_ISInputHTTPTimeoutHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler" pluginId="NodeFeatures_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler" pluginId="NodeFeatures_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/gen/mappingDemo_Request_Response_Mapping.map: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><mappingRoot xmlns="http://www.ibm.com/2008/ccl/Mapping" domainID="com.ibm.msl.mapping.xml" domainIDExtension="mb" mainMap="true" targetNamespace="gen" version="8.0.5.0" xmlns:map="gen"> 2 | <input path="/NodeFeatures_V1_IS_InlineSchema1.xsd"/> 3 | <output path="/NodeFeatures_V1_IS_InlineSchema1.xsd"/> 4 | <namespaces> 5 | <namespace kind="supplement" prefix="io" uri="http://NodeFeatures_V1_IS"/> 6 | </namespaces> 7 | <generation engine="xquery"/> 8 | <mappingDeclaration name="mappingDemo_Request_Response_Mapping"> 9 | <input namespace="http://NodeFeatures_V1_IS" path="mb:msg(mappingDemoRequest,assembly,XMLNSC,Properties)" var="MessageAssembly"/> 10 | <output namespace="http://NodeFeatures_V1_IS" path="mb:msg(mappingDemoResponse,assembly,XMLNSC,Properties)" var="MessageAssembly2"/> 11 | <move> 12 | <input path="$MessageAssembly/Properties"/> 13 | <output path="$MessageAssembly2/Properties"/> 14 | </move> 15 | <foreach> 16 | <input path="$MessageAssembly/mappingDemoRequest/mappingDemoInput/Details"/> 17 | <output path="$MessageAssembly2/mappingDemoResponse/mappingDemoOutput/record"/> 18 | <move> 19 | <input path="RechargeValue"/> 20 | <output path="field1"/> 21 | </move> 22 | <move> 23 | <input path="SerialNumber"/> 24 | <output path="field4"/> 25 | </move> 26 | <move> 27 | <input path="PINNumber"/> 28 | <output path="field3"/> 29 | </move> 30 | <move> 31 | <input path="Rechargeperiod"/> 32 | <output path="field2"/> 33 | </move> 34 | </foreach> 35 | </mappingDeclaration> 36 | </mappingRoot> -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/log/nodefeaturesv1is/NodeFeatures_V1_IS.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\app_group\repository\github_code2blog\tool-iib\NodeFeatures_V1_IS\NodeFeatures_V1_IS.wsdl 4 | 5 | The WSDL import will proceed with bindings NodeFeatures_V1_ISHttpBinding. 6 | Creating wsdl schema document for platform:/resource/NodeFeatures_V1_IS/NodeFeatures_V1_IS.wsdl. 7 | Parsing wsdl binding {http://NodeFeatures_V1_IS}NodeFeatures_V1_ISHttpBinding. 8 | Parsing wsdl binding input xsltDemo. 9 | Parsing wsdl binding output xsltDemo. 10 | Parsing wsdl binding input mappingDemo. 11 | Parsing wsdl binding output mappingDemo. 12 | Processing doc style for operation xsltDemo. 13 | Processing doc style for operation mappingDemo. 14 | Populating WSDL schema NodeFeatures_V1_IS.xsd. 15 | Creating file NodeFeatures_V1_IS.xsd in the workspace. 16 | Copying source WSDL NodeFeatures_V1_IS.wsdl to NodeFeatures_V1_IS.wsdl. 17 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/xmlDemoRequest.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <tns:xsltDemo xmlns:tns="http://NodeFeatures_V1_IS" 3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 | xsi:schemaLocation="http://NodeFeatures_V1_IS NodeFeatures_V1_IS_InlineSchema1.xsd "> 5 | <input1> 6 | <cd> 7 | <title>title01</title> 8 | <artist>artist01</artist> 9 | </cd> 10 | <cd> 11 | <title>title02</title> 12 | <artist>artist02</artist> 13 | </cd> 14 | <cd> 15 | <title>title03</title> 16 | <artist>artist03</artist> 17 | </cd> 18 | </input1> 19 | </tns:xsltDemo> 20 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/xsltDemo.xsl: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 | 4 | <xsl:template match="/"> 5 | <tns:xsltDemoResponse xmlns:tns="http://NodeFeatures_V1_IS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://NodeFeatures_V1_IS NodeFeatures_V1_IS_InlineSchema1.xsd "> 6 | <output1> 7 | <xsl:for-each select="tns:xsltDemo/input1/cd"> 8 | <tr> 9 | <td><xsl:value-of select="title"/></td> 10 | <td><xsl:value-of select="artist"/></td> 11 | </tr> 12 | </xsl:for-each> 13 | </output1> 14 | </tns:xsltDemoResponse> 15 | </xsl:template> 16 | 17 | </xsl:stylesheet> 18 | -------------------------------------------------------------------------------- /NodeFeatures_V1_IS/xsltDemoResponse.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <tns:xsltDemoResponse xmlns:tns="http://NodeFeatures_V1_IS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://NodeFeatures_V1_IS NodeFeatures_V1_IS_InlineSchema1.xsd "> 3 | <output1>output1</output1> 4 | </tns:xsltDemoResponse> 5 | -------------------------------------------------------------------------------- /ParseZipFile_JP/.classpath: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <classpath> 3 | <classpathentry kind="src" path=""/> 4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 5 | <classpathentry kind="var" path="JCN_HOME/javacompute.jar"/> 6 | <classpathentry kind="var" path="JCN_HOME/jplugin2.jar"/> 7 | <classpathentry kind="con" path="com.ibm.etools.mft.uri.classpath.MBProjectReference"/> 8 | <classpathentry kind="output" path=""/> 9 | </classpath> 10 | -------------------------------------------------------------------------------- /ParseZipFile_JP/.project: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <projectDescription> 3 | <name>ParseZipFile_JP</name> 4 | <comment></comment> 5 | <projects> 6 | </projects> 7 | <buildSpec> 8 | <buildCommand> 9 | <name>org.eclipse.jdt.core.javabuilder</name> 10 | <arguments> 11 | </arguments> 12 | </buildCommand> 13 | <buildCommand> 14 | <name>com.ibm.etools.mft.jcn.jcnbuilder</name> 15 | <arguments> 16 | </arguments> 17 | </buildCommand> 18 | <buildCommand> 19 | <name>com.ibm.etools.mft.bar.ext.barbuilder</name> 20 | <arguments> 21 | </arguments> 22 | </buildCommand> 23 | </buildSpec> 24 | <natures> 25 | <nature>org.eclipse.jdt.core.javanature</nature> 26 | <nature>com.ibm.etools.mft.jcn.jcnnature</nature> 27 | <nature>com.ibm.etools.mft.bar.ext.barnature</nature> 28 | </natures> 29 | </projectDescription> 30 | -------------------------------------------------------------------------------- /ParseZipFile_JP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (ParseZipFile_JP) reads a zip file and creates multiple xml files 9 | </pre> 10 | -------------------------------------------------------------------------------- /ParseZipFile_MFP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (ParseZipFile_MFP) reads a zip file and creates multiple xml files 9 | </pre> 10 | -------------------------------------------------------------------------------- /Person_V2_API/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer this blog post for documentation: https://code2blog.wordpress.com/2020/04/05/iib-develop-rest-api-by-using-an-existing-swagger-json/ <br> 4 | <br> 5 | This iib project (Person_V2_API) exposes a rest service and connects to oracle database. Http get method invokes select statement on a table <br> 6 | 7 | <pre> 8 | I am reusing this existing project to create an endpoint that can handle both xml and json data 9 | I will create a video regarding this project and upload it to my youtube channel 10 | Link https://www.youtube.com/results?search_query=code2blog 11 | 12 | 13 | 14 | </pre> -------------------------------------------------------------------------------- /Person_V2_API/createEmployee_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | CREATE COMPUTE MODULE createEmployee_Compute 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId; 7 | SET OutputRoot.JSON.Data.message = 'i got a input message of Content-Type=' || InputRoot.Properties.ContentType; 8 | SET OutputRoot.JSON.Data.input_domain = FIELDNAME(InputBody); 9 | RETURN TRUE; 10 | END; 11 | END MODULE; 12 | -------------------------------------------------------------------------------- /Person_V2_API/createEmployee_ComputeXML.esql: -------------------------------------------------------------------------------- 1 | 2 | 3 | CREATE COMPUTE MODULE createEmployee_ComputeXML 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties = InputRoot.Propertie; 7 | SET OutputRoot.XMLNSC.root.message = 'i received input message of ContentType=application/xml 8 | and InputRoot.XMLNSC.employee.name=' || InputRoot.XMLNSC.employee.name; 9 | SET OutputRoot.XMLNSC.root.input_domain = FIELDNAME(InputBody); 10 | 11 | RETURN TRUE; 12 | END; 13 | END MODULE; 14 | -------------------------------------------------------------------------------- /Person_V2_API/getEmployees.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ComIbmCompute.msgnode="ComIbmCompute.msgnode" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="getEmployees.subflow" nsPrefix="getEmployees.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="getEmployees" bundleName="getEmployees" pluginId="Person_V2_API"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/Person_V2_API/icons/full/obj16/getEmployees.gif"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/Person_V2_API/icons/full/obj30/getEmployees.gif"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input_1" location="10,20"> 10 | <translation xmi:type="utility:TranslatableString" key="Input" bundleName="getEmployees" pluginId="Person_V2_API"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output_1" location="187,20"> 13 | <translation xmi:type="utility:TranslatableString" key="Output" bundleName="getEmployees" pluginId="Person_V2_API"/> 14 | </nodes> 15 | <nodes xmi:type="ComIbmCompute.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_1" location="93,20" dataSource="DSNLOCAL" computeExpression="esql://routine/#getEmployees_Compute.Main"> 16 | <translation xmi:type="utility:ConstantString" string="Compute"/> 17 | </nodes> 18 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_1" targetNode="FCMComposite_1_1" sourceNode="InTerminal.Input_1" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 19 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_2" targetNode="OutTerminal.Output_1" sourceNode="FCMComposite_1_1" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 20 | </composition> 21 | <propertyOrganizer/> 22 | <stickyBoard/> 23 | </eClassifiers> 24 | </ecore:EPackage> 25 | -------------------------------------------------------------------------------- /Person_V2_API/getEmployees_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | CREATE COMPUTE MODULE getEmployees_Compute 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties = InputRoot.Properties; 7 | SET Environment.Variables.DBRESP.person[] = PASSTHRU('select * from wmbowner.person'); 8 | CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON'; 9 | SET OutputRoot.JSON.Data = Environment.Variables.DBRESP; 10 | RETURN TRUE; 11 | END; 12 | END MODULE; 13 | -------------------------------------------------------------------------------- /Person_V2_API/restapi.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2 | <ns2:restapiDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.restapi" definitionType="swagger_20" definitionFile="swagger.json" implementation="gen/Person_V2_API.msgflow" https="false"> 3 | <ns2:operations> 4 | <ns2:operation name="createEmployee" implementation="createEmployee.subflow"/> 5 | <ns2:operation name="getEmployees" implementation="getEmployees.subflow"/> 6 | </ns2:operations> 7 | <ns2:errorHandlers/> 8 | </ns2:restapiDescriptor> 9 | -------------------------------------------------------------------------------- /Person_V2_API/swagger.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger" : "2.0", 3 | "info" : { 4 | "title" : "Interact with PERSON database table", 5 | "description" : "Interact with PERSON database table.", 6 | "version" : "1.0.0" 7 | }, 8 | "basePath" : "/someapi/v2", 9 | "tags" : [ { 10 | "name" : "employees", 11 | "description" : "Lists all of the employees at ACME" 12 | } ], 13 | "paths" : { 14 | "/employees" : { 15 | "get" : { 16 | "tags" : [ "employees" ], 17 | "summary" : "Retrieve a list of the employees", 18 | "description" : "Retrieve a list of the employees", 19 | "operationId" : "getEmployees", 20 | "produces" : [ "application/json" ], 21 | "responses" : { 22 | "200" : { 23 | "description" : "OK" 24 | }, 25 | "500" : { 26 | "description" : "Something wrong in Server" 27 | } 28 | } 29 | }, 30 | "post" : { 31 | "tags" : [ "employees" ], 32 | "summary" : "Creates a new employee", 33 | "description" : "Creates a new employee in the database. The <b>EMPNO</b> that you specify must be unique. The employee will not have a department assigned.", 34 | "operationId" : "createEmployee", 35 | "consumes" : [ "application/json" ], 36 | "produces" : [ "application/json" ], 37 | "parameters" : [ { 38 | "in" : "body", 39 | "name" : "body", 40 | "description" : "", 41 | "required" : false, 42 | "schema" : { 43 | "type" : "string" 44 | } 45 | } ], 46 | "responses" : { 47 | "200" : { 48 | "description" : "successful operation", 49 | "schema" : { } 50 | }, 51 | "201" : { 52 | "description" : "Created" 53 | }, 54 | "500" : { 55 | "description" : "A problem occurred creating the employee" 56 | } 57 | } 58 | } 59 | } 60 | }, 61 | "definitions" : { }, 62 | "schemes" : [ "http" ], 63 | "host" : "localhost:7800" 64 | } -------------------------------------------------------------------------------- /ReadIIBFiles_APP/ListFiles_MF.msgflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ComIbmJavaCompute.msgnode="ComIbmJavaCompute.msgnode" xmlns:ComIbmWSInput.msgnode="ComIbmWSInput.msgnode" xmlns:ComIbmWSReply.msgnode="ComIbmWSReply.msgnode" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="ListFiles_MF.msgflow" nsPrefix="ListFiles_MF.msgflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="ListFiles_MF" bundleName="ListFiles_MF" pluginId="ReadIIBFiles_APP"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/ReadIIBFiles_APP/icons/full/obj16/ListFiles_MF.gif"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/ReadIIBFiles_APP/icons/full/obj30/ListFiles_MF.gif"/> 8 | <composition> 9 | <nodes xmi:type="ComIbmWSInput.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_1" location="10,20" URLSpecifier="/readiibfiles_app/listfiles_mf" messageDomainProperty="BLOB"> 10 | <translation xmi:type="utility:ConstantString" string="HTTP Input"/> 11 | </nodes> 12 | <nodes xmi:type="ComIbmJavaCompute.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_2" location="111,20" javaClass="code2blog_readiibfiles_app.ListFiles_MF_JavaCompute"> 13 | <translation xmi:type="utility:ConstantString" string="Java Compute"/> 14 | </nodes> 15 | <nodes xmi:type="ComIbmWSReply.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_3" location="226,20"> 16 | <translation xmi:type="utility:ConstantString" string="HTTP Reply"/> 17 | </nodes> 18 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_1" targetNode="FCMComposite_1_2" sourceNode="FCMComposite_1_1" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 19 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_2" targetNode="FCMComposite_1_3" sourceNode="FCMComposite_1_2" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 20 | </composition> 21 | <propertyOrganizer/> 22 | <stickyBoard/> 23 | </eClassifiers> 24 | </ecore:EPackage> 25 | -------------------------------------------------------------------------------- /ReadIIBFiles_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | 9 | ReadIIBFiles_APP 10 | rf-1 : create a file explorer tool in iib, that can list folder contents and export directories as zip files 11 | 12 | </pre> -------------------------------------------------------------------------------- /ReadIIBFiles_APP/ZipFolder_MF.msgflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ComIbmJavaCompute.msgnode="ComIbmJavaCompute.msgnode" xmlns:ComIbmWSInput.msgnode="ComIbmWSInput.msgnode" xmlns:ComIbmWSReply.msgnode="ComIbmWSReply.msgnode" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="ZipFolder_MF.msgflow" nsPrefix="ZipFolder_MF.msgflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="ZipFolder_MF" bundleName="ZipFolder_MF" pluginId="ReadIIBFiles_APP"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/ReadIIBFiles_APP/icons/full/obj16/ZipFolder_MF.gif"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/ReadIIBFiles_APP/icons/full/obj30/ZipFolder_MF.gif"/> 8 | <composition> 9 | <nodes xmi:type="ComIbmWSInput.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_1" location="10,20" URLSpecifier="/readiibfiles_app/zipfolder_mf" messageDomainProperty="BLOB"> 10 | <translation xmi:type="utility:ConstantString" string="HTTP Input"/> 11 | </nodes> 12 | <nodes xmi:type="ComIbmJavaCompute.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_2" location="111,20" javaClass="code2blog_readiibfiles_app.ZipFolder_MF_JavaCompute"> 13 | <translation xmi:type="utility:ConstantString" string="Java Compute"/> 14 | </nodes> 15 | <nodes xmi:type="ComIbmWSReply.msgnode:FCMComposite_1" xmi:id="FCMComposite_1_3" location="226,20"> 16 | <translation xmi:type="utility:ConstantString" string="HTTP Reply"/> 17 | </nodes> 18 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_1" targetNode="FCMComposite_1_2" sourceNode="FCMComposite_1_1" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 19 | <connections xmi:type="eflow:FCMConnection" xmi:id="FCMConnection_2" targetNode="FCMComposite_1_3" sourceNode="FCMComposite_1_2" sourceTerminalName="OutTerminal.out" targetTerminalName="InTerminal.in"/> 20 | </composition> 21 | <propertyOrganizer/> 22 | <stickyBoard/> 23 | </eClassifiers> 24 | </ecore:EPackage> 25 | -------------------------------------------------------------------------------- /ReadIIBFiles_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /ReadIIBFiles_APPJava/.classpath: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <classpath> 3 | <classpathentry kind="src" path=""/> 4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 5 | <classpathentry kind="var" path="JCN_HOME/javacompute.jar"/> 6 | <classpathentry kind="var" path="JCN_HOME/jplugin2.jar"/> 7 | <classpathentry kind="var" path="COMMON_CLASSES_HOME/IntegrationAPI.jar"/> 8 | <classpathentry kind="output" path=""/> 9 | </classpath> 10 | -------------------------------------------------------------------------------- /ReadIIBFiles_APPJava/.project: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <projectDescription> 3 | <name>ReadIIBFiles_APPJava</name> 4 | <comment></comment> 5 | <projects> 6 | </projects> 7 | <buildSpec> 8 | <buildCommand> 9 | <name>org.eclipse.jdt.core.javabuilder</name> 10 | <arguments> 11 | </arguments> 12 | </buildCommand> 13 | <buildCommand> 14 | <name>com.ibm.etools.mft.jcn.jcnbuilder</name> 15 | <arguments> 16 | </arguments> 17 | </buildCommand> 18 | <buildCommand> 19 | <name>com.ibm.etools.mft.bar.ext.barbuilder</name> 20 | <arguments> 21 | </arguments> 22 | </buildCommand> 23 | </buildSpec> 24 | <natures> 25 | <nature>org.eclipse.jdt.core.javanature</nature> 26 | <nature>com.ibm.etools.mft.jcn.jcnnature</nature> 27 | <nature>com.ibm.etools.mft.bar.ext.barnature</nature> 28 | </natures> 29 | </projectDescription> 30 | -------------------------------------------------------------------------------- /ReadIIBFiles_APPJava/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | 9 | ReadIIBFiles_APP 10 | rf-1 : create a file explorer tool in iib, that can list folder contents and export directories as zip files 11 | 12 | </pre> -------------------------------------------------------------------------------- /ReadIIBFiles_APPJava/code2blog_readiibfiles_app/Utility.java: -------------------------------------------------------------------------------- 1 | package code2blog_readiibfiles_app; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.util.zip.ZipEntry; 6 | import java.util.zip.ZipOutputStream; 7 | 8 | public class Utility { 9 | 10 | public static void nullCheck(Object element, String message) { 11 | if (element == null) { 12 | throw new RuntimeException(message); 13 | } 14 | } 15 | 16 | // author: https://stackoverflow.com/users/1310482/bane 17 | // source: https://stackoverflow.com/questions/3961087/zipping-a-folder-which-contains-subfolders 18 | public static void addDirToZipArchive(ZipOutputStream zos, File fileToZip, String parrentDirectoryName) throws Exception { 19 | if (fileToZip == null || !fileToZip.exists()) { 20 | return; 21 | } 22 | 23 | String zipEntryName = fileToZip.getName(); 24 | if (parrentDirectoryName != null && !parrentDirectoryName.isEmpty()) { 25 | zipEntryName = parrentDirectoryName + "/" + fileToZip.getName(); 26 | } 27 | 28 | if (fileToZip.isDirectory()) { 29 | System.out.println("+" + zipEntryName); 30 | for (File file : fileToZip.listFiles()) { 31 | addDirToZipArchive(zos, file, zipEntryName); 32 | } 33 | } else { 34 | System.out.println(" " + zipEntryName); 35 | byte[] buffer = new byte[1024]; 36 | FileInputStream fis = new FileInputStream(fileToZip); 37 | zos.putNextEntry(new ZipEntry(zipEntryName)); 38 | int length; 39 | while ((length = fis.read(buffer)) > 0) { 40 | zos.write(buffer, 0, length); 41 | } 42 | zos.closeEntry(); 43 | fis.close(); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /RetryFailuresGeneratedInThisAPP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (RetryFailuresGeneratedInThisAPP) will create errors so that Retry_APP can repush them automatically 9 | </pre> 10 | -------------------------------------------------------------------------------- /RetryFailuresGeneratedInThisAPP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /RetryFailuresGeneratedInThisAPP/com/wordpress/code2blog/myappfailswitherror/catch_handler_sf_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.myappfailswitherror 2 | 3 | 4 | CREATE COMPUTE MODULE catch_handler_sf_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | SET OutputRoot.MQMD = InputRoot.MQMD; 9 | CREATE LASTCHILD OF OutputRoot DOMAIN 'MQRFH2'; 10 | SET OutputRoot.MQRFH2.usr.retry.inputQueue = InputRoot.MQMD.SourceQueue; 11 | SET OutputRoot.MQRFH2.usr.retry.threshold = 3; 12 | SET OutputRoot.[<+1] = InputBody; 13 | RETURN TRUE; 14 | END; 15 | END MODULE; 16 | -------------------------------------------------------------------------------- /Retry_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (Retry_APP) will automatically retry failures using timer nodes 9 | </pre> 10 | -------------------------------------------------------------------------------- /Retry_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /Retry_APP/com/wordpress/code2blog/retry_app/trigger_based_mf_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.retry_app 2 | 3 | 4 | CREATE COMPUTE MODULE trigger_based_mf_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot = InputRoot; 8 | IF InputRoot.MQRFH2.usr.retry.current_iteration < InputRoot.MQRFH2.usr.retry.threshold THEN 9 | SET OutputRoot.MQRFH2.usr.retry.current_iteration = OutputRoot.MQRFH2.usr.retry.current_iteration + 1; 10 | SET OutputLocalEnvironment.Destination.MQ.DestinationData.queueName = InputRoot.MQRFH2.usr.retry.inputQueue; 11 | RETURN TRUE; 12 | END IF; 13 | RETURN FALSE; 14 | END; 15 | END MODULE; 16 | -------------------------------------------------------------------------------- /Retry_APP/com/wordpress/code2blog/retry_app/udp.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog.retry_app 4 | 5 | DECLARE RETRY_AT_THIS_HOUR EXTERNAL INTEGER 20; 6 | 7 | -------------------------------------------------------------------------------- /Retry_JP/.classpath: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <classpath> 3 | <classpathentry kind="src" path="src"/> 4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 5 | <classpathentry exported="true" kind="var" path="JCN_HOME/javacompute.jar"/> 6 | <classpathentry exported="true" kind="var" path="JCN_HOME/jplugin2.jar"/> 7 | <classpathentry kind="con" path="com.ibm.etools.mft.uri.classpath.MBProjectReference"/> 8 | <classpathentry kind="output" path="bin"/> 9 | </classpath> 10 | -------------------------------------------------------------------------------- /Retry_JP/.project: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <projectDescription> 3 | <name>Retry_JP</name> 4 | <comment></comment> 5 | <projects> 6 | </projects> 7 | <buildSpec> 8 | <buildCommand> 9 | <name>org.eclipse.jdt.core.javabuilder</name> 10 | <arguments> 11 | </arguments> 12 | </buildCommand> 13 | <buildCommand> 14 | <name>com.ibm.etools.mft.java.builder.javabuilder</name> 15 | <arguments> 16 | </arguments> 17 | </buildCommand> 18 | <buildCommand> 19 | <name>com.ibm.etools.mft.bar.ext.barbuilder</name> 20 | <arguments> 21 | </arguments> 22 | </buildCommand> 23 | <buildCommand> 24 | <name>com.ibm.etools.mft.jcn.jcnbuilder</name> 25 | <arguments> 26 | </arguments> 27 | </buildCommand> 28 | </buildSpec> 29 | <natures> 30 | <nature>org.eclipse.jdt.core.javanature</nature> 31 | <nature>com.ibm.etools.mft.bar.ext.barnature</nature> 32 | <nature>com.ibm.etools.mft.jcn.jcnnature</nature> 33 | </natures> 34 | </projectDescription> 35 | -------------------------------------------------------------------------------- /Retry_JP/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.8 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.8 12 | -------------------------------------------------------------------------------- /Retry_JP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (Retry_JP) will populate MbElement for retry feature implemented in Retry_APP 9 | </pre> 10 | -------------------------------------------------------------------------------- /SendEmail_V1_APP/CreateMime_MF_FileRead_NoMatch.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | CREATE COMPUTE MODULE CreateMime_MF_FileRead_NoMatch 4 | CREATE FUNCTION Main() RETURNS BOOLEAN 5 | BEGIN 6 | SET OutputRoot.Properties = InputRoot.Properties; 7 | SET OutputRoot.XMLNSC.error.description = 'excel file not found on disk'; 8 | RETURN TRUE; 9 | END; 10 | 11 | END MODULE; 12 | -------------------------------------------------------------------------------- /SendEmail_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (SendEmail_V1_APP) sends email using smtp server and email output node 9 | </pre> 10 | -------------------------------------------------------------------------------- /SendEmail_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/HelloWorld.wsdl: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="HelloWorld" targetNamespace="http://www.example.org/HelloWorld/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/HelloWorld/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 2 | <wsdl:documentation> 3 | <wsdl:appinfo source="WMQI_APPINFO"> 4 | <MRWSDLAppInfo imported="true"> 5 | <generatedXSD location="HelloWorld_InlineSchema1.xsd"/> 6 | <binding hasEncoding="false" imported="true" name="HelloWorldSOAP" originalBindingStyle="document"/> 7 | </MRWSDLAppInfo> 8 | </wsdl:appinfo> 9 | </wsdl:documentation> 10 | <wsdl:types> 11 | <xsd:schema targetNamespace="http://www.example.org/HelloWorld/"> 12 | <xsd:include schemaLocation="HelloWorld_InlineSchema1.xsd"/> 13 | </xsd:schema> 14 | </wsdl:types> 15 | <wsdl:message name="SayHelloRequest"> 16 | <wsdl:part element="tns:SayHello" name="parameters"/> 17 | </wsdl:message> 18 | <wsdl:message name="SayHelloResponse"> 19 | <wsdl:part element="tns:SayHelloResponse" name="parameters"/> 20 | </wsdl:message> 21 | <wsdl:portType name="HelloWorld"> 22 | <wsdl:operation name="SayHello"> 23 | <wsdl:input message="tns:SayHelloRequest"/> 24 | <wsdl:output message="tns:SayHelloResponse"/> 25 | </wsdl:operation> 26 | </wsdl:portType> 27 | <wsdl:binding name="HelloWorldSOAP" type="tns:HelloWorld"> 28 | <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 29 | <wsdl:operation name="SayHello"> 30 | <soap:operation soapAction="http://www.example.org/HelloWorld/SayHello"/> 31 | <wsdl:input> 32 | <soap:body use="literal"/> 33 | </wsdl:input> 34 | <wsdl:output> 35 | <soap:body use="literal"/> 36 | </wsdl:output> 37 | </wsdl:operation> 38 | </wsdl:binding> 39 | <wsdl:service name="HelloWorld"> 40 | <wsdl:port binding="tns:HelloWorldSOAP" name="HelloWorldSOAP"> 41 | <soap:address location="http://localhost/hello"/> 42 | </wsdl:port> 43 | </wsdl:service> 44 | </wsdl:definitions> -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/HelloWorld.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/HelloWorld/" xmlns:tns="http://www.example.org/HelloWorld/"> 2 | <xsd:include schemaLocation="HelloWorld_InlineSchema1.xsd"/> 3 | 4 | <!-- BEGIN Global group petaining to all wsdl:message definitions --> 5 | <!-- END Global group --> 6 | 7 | 8 | <!-- BEGIN Message Definitions for the wsdl:operations --> 9 | <!-- END Message Definitions --> 10 | 11 | 12 | </xsd:schema> -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/HelloWorld_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/HelloWorld/" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/HelloWorld/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 2 | <xsd:element ibmSchExtn:docRoot="true" name="SayHello"> 3 | <xsd:complexType> 4 | <xsd:sequence> 5 | <xsd:element name="in" type="xsd:string"/> 6 | </xsd:sequence> 7 | </xsd:complexType> 8 | </xsd:element> 9 | <xsd:element ibmSchExtn:docRoot="true" name="SayHelloResponse"> 10 | <xsd:complexType> 11 | <xsd:sequence> 12 | <xsd:element name="out" type="xsd:string"/> 13 | </xsd:sequence> 14 | </xsd:complexType> 15 | </xsd:element> 16 | </xsd:schema> -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (WSSecurityDemo_V1_APP) invokes a soap service. Credentials from broker registry is populated in soap headers by Security profile configurable serive. Watch youtube video for details. <br> 9 | -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /WSSecurityDemo_V1_APP/com/wordpress/code2blog/InvokeSoapService_MF_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | BROKER SCHEMA com.wordpress.code2blog 4 | 5 | CREATE COMPUTE MODULE InvokeSoapService_MF_Compute 6 | CREATE FUNCTION Main() RETURNS BOOLEAN 7 | BEGIN 8 | DECLARE soapenv NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/'; 9 | DECLARE hel NAMESPACE 'http://www.example.org/HelloWorld/'; 10 | -- Body Elements 11 | SET OutputRoot.SOAP.Body.hel:SayHello.in = 'Vishnu'; 12 | 13 | -- SET OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = 'http://localhost:8888/hello'; 14 | -- SET OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = 'http://localhost:7800/hello'; 15 | SET OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = 'https://localhost:8081/https_webservice'; 16 | RETURN TRUE; 17 | END; 18 | END MODULE; -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (WindowsCommands_V1_IS) logs system events using java compute node <br> 9 | -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/WindowsCommands_V1_IS.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://WindowsCommands_V1_IS"> 2 | <xsd:include schemaLocation="WindowsCommands_V1_IS_InlineSchema1.xsd"/> 3 | 4 | <!-- BEGIN Global group petaining to all wsdl:message definitions --> 5 | <!-- END Global group --> 6 | 7 | 8 | <!-- BEGIN Message Definitions for the wsdl:operations --> 9 | <!-- END Message Definitions --> 10 | 11 | 12 | </xsd:schema> -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/WindowsCommands_V1_IS_InlineSchema1.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://WindowsCommands_V1_IS" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://WindowsCommands_V1_IS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 2 | <xsd:element ibmSchExtn:docRoot="true" name="batchScriptDemo"> 3 | <xsd:complexType> 4 | <xsd:sequence> 5 | <xsd:element name="command" nillable="true" type="xsd:string"/> 6 | </xsd:sequence> 7 | </xsd:complexType> 8 | </xsd:element> 9 | <xsd:element ibmSchExtn:docRoot="true" name="batchScriptDemoResponse"> 10 | <xsd:complexType> 11 | <xsd:sequence> 12 | <xsd:element name="result" nillable="true" type="xsd:string"/> 13 | </xsd:sequence> 14 | </xsd:complexType> 15 | </xsd:element> 16 | <xsd:element ibmSchExtn:docRoot="true" name="syslogDemo"> 17 | <xsd:complexType> 18 | <xsd:sequence> 19 | <xsd:element name="className" nillable="true" 20 | type="xsd:string" /> 21 | <xsd:element name="method" type="xsd:string"></xsd:element> 22 | <xsd:element name="level" type="xsd:int"></xsd:element> 23 | <xsd:element name="key" type="xsd:string"></xsd:element> 24 | <xsd:element name="insert" type="xsd:string"></xsd:element> 25 | </xsd:sequence> 26 | </xsd:complexType> 27 | </xsd:element> 28 | <xsd:element ibmSchExtn:docRoot="true" name="syslogDemoResponse"> 29 | <xsd:complexType> 30 | <xsd:sequence> 31 | <xsd:element name="output" nillable="true" type="xsd:string"/> 32 | </xsd:sequence> 33 | </xsd:complexType> 34 | </xsd:element> 35 | </xsd:schema> -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/batchScriptDemo-response.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <tns:batchScriptDemoResponse xmlns:tns="http://WindowsCommands_V1_IS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://WindowsCommands_V1_IS WindowsCommands_V1_IS_InlineSchema1.xsd "> 3 | <result>output1</result> 4 | </tns:batchScriptDemoResponse> 5 | -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputCatchHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/WindowsCommands_V1_ISInputCatchHandler.subflow" nsPrefix="gen_WindowsCommands_V1_ISInputCatchHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="WindowsCommands_V1_ISInputCatchHandler" bundleName="gen/WindowsCommands_V1_ISInputCatchHandler" pluginId="WindowsCommands_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj16/WindowsCommands_V1_ISInputCatchHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj30/WindowsCommands_V1_ISInputCatchHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/WindowsCommands_V1_ISInputCatchHandler" pluginId="WindowsCommands_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/WindowsCommands_V1_ISInputCatchHandler" pluginId="WindowsCommands_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputFailureHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/WindowsCommands_V1_ISInputFailureHandler.subflow" nsPrefix="gen_WindowsCommands_V1_ISInputFailureHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="WindowsCommands_V1_ISInputFailureHandler" bundleName="gen/WindowsCommands_V1_ISInputFailureHandler" pluginId="WindowsCommands_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj16/WindowsCommands_V1_ISInputFailureHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj30/WindowsCommands_V1_ISInputFailureHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/WindowsCommands_V1_ISInputFailureHandler" pluginId="WindowsCommands_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/WindowsCommands_V1_ISInputFailureHandler" pluginId="WindowsCommands_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler.subflow: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:eflow="http://www.ibm.com/wbi/2005/eflow" xmlns:utility="http://www.ibm.com/wbi/2005/eflow_utility" nsURI="gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler.subflow" nsPrefix="gen_WindowsCommands_V1_ISInputHTTPTimeoutHandler.subflow"> 3 | <eClassifiers xmi:type="eflow:FCMComposite" name="FCMComposite_1" useDefaults="true" udpSupport="true"> 4 | <eSuperTypes href="http://www.ibm.com/wbi/2005/eflow#//FCMBlock"/> 5 | <translation xmi:type="utility:TranslatableString" key="WindowsCommands_V1_ISInputHTTPTimeoutHandler" bundleName="gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler" pluginId="WindowsCommands_V1_IS"/> 6 | <colorGraphic16 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj16/WindowsCommands_V1_ISInputHTTPTimeoutHandler"/> 7 | <colorGraphic32 xmi:type="utility:GIFFileGraphic" resourceName="platform:/plugin/WindowsCommands_V1_IS/icons/full/obj30/WindowsCommands_V1_ISInputHTTPTimeoutHandler"/> 8 | <composition> 9 | <nodes xmi:type="eflow:FCMSource" xmi:id="InTerminal.Input" location="20,20"> 10 | <translation xmi:type="utility:TranslatableString" key="InTerminal.Input" bundleName="gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler" pluginId="WindowsCommands_V1_IS"/> 11 | </nodes> 12 | <nodes xmi:type="eflow:FCMSink" xmi:id="OutTerminal.Output" location="320,20"> 13 | <translation xmi:type="utility:TranslatableString" key="OutTerminal.Output" bundleName="gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler" pluginId="WindowsCommands_V1_IS"/> 14 | </nodes> 15 | </composition> 16 | <propertyOrganizer/> 17 | </eClassifiers> 18 | </ecore:EPackage> 19 | -------------------------------------------------------------------------------- /WindowsCommands_V1_IS/log/windowscommandsv1is/WindowsCommands_V1_IS.wsdl.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\workspace\iib-welcome2\WindowsCommands_V1_IS\WindowsCommands_V1_IS.wsdl 4 | 5 | The WSDL import will proceed with bindings WindowsCommands_V1_ISHttpBinding. 6 | Creating wsdl schema document for platform:/resource/WindowsCommands_V1_IS/WindowsCommands_V1_IS.wsdl. 7 | Parsing wsdl binding {http://WindowsCommands_V1_IS}WindowsCommands_V1_ISHttpBinding. 8 | Parsing wsdl binding input batchScriptDemo. 9 | Parsing wsdl binding output batchScriptDemo. 10 | Parsing wsdl binding input syslogDemo. 11 | Parsing wsdl binding output syslogDemo. 12 | Processing doc style for operation batchScriptDemo. 13 | Processing doc style for operation syslogDemo. 14 | Populating WSDL schema WindowsCommands_V1_IS.xsd. 15 | Creating file WindowsCommands_V1_IS.xsd in the workspace. 16 | Creating file WindowsCommands_V1_IS_InlineSchema1.xsd in the workspace. 17 | Copying source WSDL WindowsCommands_V1_IS.wsdl to WindowsCommands_V1_IS.wsdl. 18 | -------------------------------------------------------------------------------- /WindowsCommands_V1_ISJava/.classpath: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <classpath> 3 | <classpathentry kind="src" path=""/> 4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 5 | <classpathentry kind="var" path="JCN_HOME/javacompute.jar"/> 6 | <classpathentry kind="var" path="JCN_HOME/jplugin2.jar"/> 7 | <classpathentry kind="output" path=""/> 8 | </classpath> 9 | -------------------------------------------------------------------------------- /WindowsCommands_V1_ISJava/.project: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <projectDescription> 3 | <name>WindowsCommands_V1_ISJava</name> 4 | <comment></comment> 5 | <projects> 6 | </projects> 7 | <buildSpec> 8 | <buildCommand> 9 | <name>org.eclipse.jdt.core.javabuilder</name> 10 | <arguments> 11 | </arguments> 12 | </buildCommand> 13 | <buildCommand> 14 | <name>com.ibm.etools.mft.jcn.jcnbuilder</name> 15 | <arguments> 16 | </arguments> 17 | </buildCommand> 18 | <buildCommand> 19 | <name>com.ibm.etools.mft.bar.ext.barbuilder</name> 20 | <arguments> 21 | </arguments> 22 | </buildCommand> 23 | </buildSpec> 24 | <natures> 25 | <nature>org.eclipse.jdt.core.javanature</nature> 26 | <nature>com.ibm.etools.mft.jcn.jcnnature</nature> 27 | <nature>com.ibm.etools.mft.bar.ext.barnature</nature> 28 | </natures> 29 | </projectDescription> 30 | -------------------------------------------------------------------------------- /WindowsCommands_V1_ISJava/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (WindowsCommands_V1_ISJava) logs system events using java compute node <br> 9 | -------------------------------------------------------------------------------- /WindowsCommands_V1_ISJava/gen/LogHandlingMessages.java: -------------------------------------------------------------------------------- 1 | package gen; 2 | 3 | import java.util.ListResourceBundle; 4 | 5 | public class LogHandlingMessages extends ListResourceBundle { 6 | 7 | public static final String MESSAGE_SOURCE = LogHandlingMessages.class.getName(); 8 | public static final String sysLogDemo01 = "sysLogDemo01"; 9 | public static final String sysLogDemo02 = "sysLogDemo02"; 10 | 11 | private Object[][] messages = { { sysLogDemo01, "sysLogDemo03" }, 12 | { sysLogDemo02, "sysLogDemo04 {1}, sysLogDemo {2}, sysLogDemo {3}" } }; 13 | 14 | @Override 15 | protected Object[][] getContents() { 16 | return messages; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /WindowsCommands_V1_ISJava/gen/RuntimeExec.java: -------------------------------------------------------------------------------- 1 | package gen; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.IOException; 5 | import java.io.InputStream; 6 | import java.io.InputStreamReader; 7 | 8 | public class RuntimeExec { 9 | 10 | public static String exec(String command, String parameter) throws IOException, InterruptedException { 11 | // Execute the command 12 | Process executed; 13 | executed = Runtime.getRuntime().exec("cmd /c " + command + " " + parameter); 14 | 15 | InputStream error = null; 16 | InputStream output = null; 17 | BufferedReader in = null; 18 | BufferedReader errorStream = null; 19 | // check the result 20 | output = executed.getInputStream(); 21 | in = new BufferedReader(new InputStreamReader(output)); 22 | 23 | String result = ""; 24 | String execLine; 25 | while ((execLine = in.readLine()) != null) { 26 | result += execLine; 27 | } 28 | error = executed.getErrorStream(); 29 | errorStream = new BufferedReader(new InputStreamReader(error)); 30 | String errorLine; 31 | while ((errorLine = errorStream.readLine()) != null) { 32 | result += errorLine; 33 | } 34 | 35 | // return result 36 | int returnCode = executed.waitFor(); 37 | if (returnCode != 0) { 38 | throw new RuntimeException("Return code = " + returnCode + " Error message = " + result); 39 | } 40 | error.close(); 41 | output.close(); 42 | in.close(); 43 | errorStream.close(); 44 | return "Command executed successfully. " + result; 45 | } 46 | 47 | public static void main(String[] args) throws IOException, InterruptedException { 48 | // RuntimeExec.exec("notepad", ""); 49 | RuntimeExec.exec("copy C:\\vishnu\\workspace\\data\\iib-WindowsCommands\\input.png C:\\vishnu\\workspace\\data\\iib-WindowsCommands\\output.png ",""); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /XmlToCsv_APP/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /XmlToCsv_APP/file_in_mf_Compute.esql: -------------------------------------------------------------------------------- 1 | 2 | 3 | -- 4 | CREATE COMPUTE MODULE file_in_mf_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | SET OutputRoot.Properties.MessageType = '{}:school'; 9 | SET OutputRoot.Properties.MessageFormat = ''; 10 | SET OutputRoot.Properties.MessageSet = ''; 11 | 12 | CREATE LASTCHILD OF OutputRoot DOMAIN 'DFDL'; 13 | CREATE FIELD OutputRoot.DFDL.school; 14 | DECLARE pTeacherOut REFERENCE TO Environment.ignore; 15 | FOR pTeacherIn AS InputRoot.XMLNSC.school.teacher[] DO 16 | CREATE LASTCHILD OF OutputRoot.DFDL.school AS pTeacherOut NAME 'teacher'; 17 | SET pTeacherOut.name = pTeacherIn.name; 18 | SET pTeacherOut.subject = pTeacherIn.subject; 19 | END FOR; 20 | RETURN TRUE; 21 | END; 22 | END MODULE; -------------------------------------------------------------------------------- /XmlToCsv_APP/log/IBMdefined/RecordSeparatedFieldFormat.xsd.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\Users\Vishnu\AppData\Local\IBM\IIBT10-config\10.0.0.20\configuration\org.eclipse.osgi\195\0\.cp\formats\ibm\RecordSeparatedFieldFormat.xsd 4 | 5 | 6 | Elapsed time processing this message definition file: 0.417 seconds 7 | Number of warnings for this message definition file: 0 8 | 9 | 10 | Number of files processed: 1 11 | 12 | 13 | -------------------------------------------------------------------------------- /XmlToCsv_APP/school.xsd: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:csv="http://www.ibm.com/dfdl/CommaSeparatedFormat" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions"> 2 | 3 | 4 | <xsd:import namespace="http://www.ibm.com/dfdl/CommaSeparatedFormat" schemaLocation="IBMdefined/CommaSeparatedFormat.xsd"/> 5 | <xsd:annotation> 6 | <xsd:appinfo source="http://www.ogf.org/dfdl/"> 7 | <dfdl:format documentFinalTerminatorCanBeMissing="yes" encoding="{$dfdl:encoding}" escapeSchemeRef="csv:CSVEscapeScheme" ref="csv:CommaSeparatedFormat"/> 8 | </xsd:appinfo> 9 | </xsd:annotation> 10 | 11 | 12 | <xsd:element ibmSchExtn:docRoot="true" name="school"> 13 | <xsd:complexType> 14 | <xsd:sequence dfdl:separator=""> 15 | <xsd:element dfdl:occursCountKind="implicit" dfdl:terminator="%CR;%LF;%WSP*;" maxOccurs="unbounded" name="teacher"> 16 | <xsd:complexType> 17 | <xsd:sequence dfdl:separatorSuppressionPolicy="trailingEmpty"> 18 | <xsd:element ibmDfdlExtn:sampleValue="abc" name="name" type="xsd:string"/> 19 | <xsd:element ibmDfdlExtn:sampleValue="maths" name="subject" type="xsd:string"/> 20 | </xsd:sequence> 21 | </xsd:complexType> 22 | </xsd:element> 23 | </xsd:sequence> 24 | </xsd:complexType> 25 | </xsd:element> 26 | 27 | 28 | </xsd:schema> -------------------------------------------------------------------------------- /XmlToCsv_APP/test-data/input.xml: -------------------------------------------------------------------------------- 1 | <school> 2 | <teacher> 3 | <name>abc</name> 4 | <subject>maths</subject> 5 | </teacher> 6 | 7 | <teacher> 8 | <name>def</name> 9 | <subject>science</subject> 10 | </teacher> 11 | 12 | </school> -------------------------------------------------------------------------------- /XmlToCsv_APP/test-data/output.csv: -------------------------------------------------------------------------------- 1 | abc,maths 2 | zyz,science -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/PurchaseData-input-binary-data.txt: -------------------------------------------------------------------------------- 1 | �ALWalters G002FUL6763London Pride 00019920160101000004G002MAR0078Owd Rodger 00025920170101000002N997SON6789Blu-Ray Player 019900Black 000001G012RBU0002Winged Bovine Power Drink 00008920150731000006N733CAM1214Sound Base 018920Black 000001 -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/PurchaseData.cpy: -------------------------------------------------------------------------------- 1 | 01 PurchaseData. 2 | 05 ItemCount PIC 99 COMP. 3 | 05 CustomerInitial PIC X OCCURS 2 TIMES. 4 | 05 CustomerSurname PIC X(20). 5 | 05 Invoice. 6 | 10 Item OCCURS 1 TO 50 TIMES 7 | DEPENDING ON ItemCount. 8 | 15 ItemType PIC X. 9 | 88 Grocery VALUE "G". 10 | 88 NonGrocery VALUE "N". 11 | 15 ItemGrocery. 12 | 20 ItemCode PIC X(10). 13 | 20 Description PIC X(30). 14 | 20 Price PIC 9999V99. 15 | 20 SellByDate PIC 9(8). 16 | 20 Quantity PIC 9(6). 17 | 15 ItemNonGrocery REDEFINES ItemGrocery. 18 | 20 ItemCode PIC X(10). 19 | 20 Description PIC X(30). 20 | 20 Price PIC 9999V99. 21 | 20 Colour PIC X(8). 22 | 20 Quantity PIC 9(6). 23 | -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (code2blog_cobol_copybook_V1_SLIB) contains a dfdl schema file used to parse binary data. Data structure was imported from cobol copy book. <br> 9 | -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/importFiles/PurchaseData.cpy: -------------------------------------------------------------------------------- 1 | 01 PurchaseData. 2 | 05 ItemCount PIC 99 COMP. 3 | 05 CustomerInitial PIC X OCCURS 2 TIMES. 4 | 05 CustomerSurname PIC X(20). 5 | 05 Invoice. 6 | 10 Item OCCURS 1 TO 50 TIMES 7 | DEPENDING ON ItemCount. 8 | 15 ItemType PIC X. 9 | 88 Grocery VALUE "G". 10 | 88 NonGrocery VALUE "N". 11 | 15 ItemGrocery. 12 | 20 ItemCode PIC X(10). 13 | 20 Description PIC X(30). 14 | 20 Price PIC 9999V99. 15 | 20 SellByDate PIC 9(8). 16 | 20 Quantity PIC 9(6). 17 | 15 ItemNonGrocery REDEFINES ItemGrocery. 18 | 20 ItemCode PIC X(10). 19 | 20 Description PIC X(30). 20 | 20 Price PIC 9999V99. 21 | 20 Colour PIC X(8). 22 | 20 Quantity PIC 9(6). 23 | -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/library.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:libDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.lib" type="com.ibm.etools.msgbroker.tooling.sharedLibraryNature"><references/></ns2:libDescriptor> -------------------------------------------------------------------------------- /code2blog_cobol_copybook_V1_SLIB/log/PurchaseData.cobol.report.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Importing file: C:\vishnu\workspace\iib-welcome4\code2blog_cobol_copybook_V1_SLIB\PurchaseData.cpy 4 | 5 | Import options for COBOL: 6 | CODEPAGE=ISO-8859-1 7 | ENDIAN=Little 8 | EXTENSION_CBL=FP 9 | EXTENSION_CCP=FP 10 | EXTENSION_COB=FP 11 | EXTENSION_CPY=DS 12 | EXT_DECIMAL_SIGN=ASCII 13 | FLOATING_POINT_FORMAT=0 14 | NSYMBOL=NATIONAL 15 | NUMPROC=PFD 16 | PLATFORM_SELECTION=0 17 | QUOTE=DOUBLE 18 | REMOTE_ENDIAN=Little 19 | TRUNC=STD 20 | SCHEMA_TARGET_NAMESPACE_URI=null 21 | CREATE_DEFAULT_VALUES_FROM_INITIAL_VALUES=true 22 | CREATE_FACETS_FROM_LEVEL_88_VALUE_CLAUSES=false 23 | PRESERVE_CASE_IN_VARIABLE_NAMES=true 24 | CREATE_NULL_VALUES_FOR_FIELDS=false 25 | NULL_CHARACTER_FOR_STRING=%SP; 26 | NULL_CHARACTER_FOR_NUMBER=%#r00; 27 | STRING_PADDING_CHARACTER=%SP; 28 | NUMBER_PADDING_CHARACTER=0 29 | DEFAULT_FOR_STRING= 30 | DEFAULT_FOR_NUMBER=0 31 | 32 | Creating global element for COBOL structure "PurchaseData" 33 | Creating global element "PurchaseData" from type "PurchaseData" 34 | Creating message "PurchaseData" from global element "PurchaseData" 35 | Setting default value for elements of type Number "0" 36 | Setting default value for elements of type Number "0" 37 | Setting default value for elements of type Number "0" 38 | Setting default value for elements of type Number "0" 39 | Setting default value for elements of type String " " 40 | Setting default value for elements of type String " " 41 | Setting default value for elements of type Number "0" 42 | Setting default value for elements of type String " " 43 | Setting default value for elements of type Number "0" 44 | Setting Padding Character for elements of type String "%SP;" 45 | Setting Padding Character for elements of type Number "0" 46 | Resolved: //PurchaseData;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/ItemCount;XSDElementDeclaration 47 | BIP0239W Byte alignment for elements referenced in the complex type "PurchaseData" may not be correct. Byte alignment should be fixed by editing the file through the message definition editor. 48 | Probable cause: Element in the COBOL copy book has OCCURS DEPENDING ON clause. 49 | 50 | Elapsed time processing this DFDL schema file: 1.201 seconds 51 | Number of warnings for this DFDL schema file: 1 52 | 53 | 54 | Number of files processed: 1 55 | 56 | 57 | -------------------------------------------------------------------------------- /code2blog_dfdl_v2_slib/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <br> 8 | This iib project (code2blog_dfdl_v2_slib) contains a dfdl schema file used to parse fixed length data. Use input.txt file provided to test it. <br> 9 | -------------------------------------------------------------------------------- /code2blog_dfdl_v2_slib/library.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:libDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.lib" type="com.ibm.etools.msgbroker.tooling.sharedLibraryNature"><references/></ns2:libDescriptor> -------------------------------------------------------------------------------- /code2blog_dfdl_v2_slib/test-data/input.txt: -------------------------------------------------------------------------------- 1 | head_val10chars 2 | body_val10chars 3 | body_val10chars 4 | trail_value_13chars -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This iib project (code2blog_node_collector_v1_app) will demo the use of collector node 9 | </pre> 10 | -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/application.descriptor: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:appDescriptor xmlns="http://com.ibm.etools.mft.descriptor.base" xmlns:ns2="http://com.ibm.etools.mft.descriptor.app"><references/></ns2:appDescriptor> -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/com/wordpress/code2blog/code2blog_node_collector_v1_app/control_with_trigger_mf_Compute.esql: -------------------------------------------------------------------------------- 1 | BROKER SCHEMA com.wordpress.code2blog.code2blog_node_collector_v1_app 2 | 3 | 4 | CREATE COMPUTE MODULE control_with_trigger_mf_Compute 5 | CREATE FUNCTION Main() RETURNS BOOLEAN 6 | BEGIN 7 | SET OutputRoot.Properties = InputRoot.Properties; 8 | SET OutputRoot.XMLNSC.Collection = InputBody; 9 | RETURN TRUE; 10 | END; 11 | END MODULE; 12 | -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/acquire_message_mf/111.order.xml: -------------------------------------------------------------------------------- 1 | <Order> 2 | <OrderNumber>123</OrderNumber> 3 | <Product>Toaster</Product> 4 | <Quantity>1</Quantity> 5 | <Delivery>2 days</Delivery> 6 | </Order> -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/acquire_message_mf/input-mq01-invoice.xml: -------------------------------------------------------------------------------- 1 | <Invoice> 2 | <CustomerNumber>111</CustomerNumber> 3 | <Product>Toaster</Product> 4 | <Quantity>1</Quantity> 5 | <UnitPrice>4.99</UnitPrice> 6 | </Invoice> -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/acquire_message_mf/input-mq02-packaging.xml: -------------------------------------------------------------------------------- 1 | <Packaging> 2 | <CustomerNumber>111</CustomerNumber> 3 | <Postage>1.95</Postage> 4 | </Packaging> 5 | -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/control_with_trigger_mf/input-mq01-invoice-123.xml: -------------------------------------------------------------------------------- 1 | <Invoice> 2 | <CustomerNumber>123</CustomerNumber> 3 | <Product>Toaster</Product> 4 | <Quantity>1</Quantity> 5 | <UnitPrice>4.99</UnitPrice> 6 | </Invoice> -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/control_with_trigger_mf/input-mq01-invoice-124.xml: -------------------------------------------------------------------------------- 1 | <Invoice> 2 | <CustomerNumber>124</CustomerNumber> 3 | <Product>Toaster</Product> 4 | <Quantity>1</Quantity> 5 | <UnitPrice>4.99</UnitPrice> 6 | </Invoice> -------------------------------------------------------------------------------- /code2blog_node_collector_v1_app/test-data/input-file01-order.xml: -------------------------------------------------------------------------------- 1 | <Order> 2 | <OrderNumber>111</OrderNumber> 3 | <Product>Toaster</Product> 4 | <Quantity>1</Quantity> 5 | <Delivery>2 days</Delivery> 6 | </Order> -------------------------------------------------------------------------------- /jenkins/HelloWorld_V1_APP.groovy: -------------------------------------------------------------------------------- 1 | pipeline { 2 | agent any 3 | 4 | stages { 5 | stage('checkout code') { 6 | steps { 7 | deleteDir() 8 | git 'https://github.com/code2blog/tool-iib.git' 9 | } 10 | } 11 | stage('build bar') { 12 | steps { 13 | bat label: '', script: ''' 14 | echo off 15 | set projectName=HelloWorld_V1_APP 16 | "C:\\Program Files\\IBM\\IIB\\10.0.0.0\\tools\\mqsicreatebar.exe" -data . -b %projectName%.bar -a %projectName% -cleanBuild 17 | ''' 18 | } 19 | } 20 | stage('deploy bar') { 21 | steps { 22 | bat label: '', script: ''' 23 | echo off 24 | set workspace=%cd% 25 | cd C:\\Program Files\\IBM\\IIB\\10.0.0.0\\server\\bin\\ 26 | call .\\mqsiprofile.cmd 27 | cd %workspace% 28 | mqsideploy TESTNODE_VISHNU -e default -a HelloWorld_V1_APP.bar 29 | ''' 30 | 31 | archiveArtifacts 'HelloWorld_V1_APP.bar' 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /jenkins/README.md: -------------------------------------------------------------------------------- 1 | 2 | <br> 3 | Refer these links for more details on this project <br> 4 | https://code2blog.wordpress.com/ <br> 5 | https://youtube.com/results?search_query=code2blog <br> 6 | 7 | <pre> 8 | This folder jenkins will hold the pipeline scripts and any other jenkins artefacts that i demo in my youtube videos 9 | </pre> 10 | -------------------------------------------------------------------------------- /notes-commit_tags.txt: -------------------------------------------------------------------------------- 1 | I will use tags to identify a unit of work. 2 | 3 | To avoid duplication, i have saved commit tags to Readme.md 4 | 5 | Why do I use commit tags ? 6 | Here JIRA-123. JIRA-124 are the sample commit tags. 7 | We frequently commit our changes. Each commit provides meaningful information to the developer as shown below. But you would not release every code commit to next higher environment. We commit our code changes when we want to switch to some other task ( coffee break ). You can safely resume your coding if you do frequent commits. But release and rollback actions occur on higher abstraction level such as a task in hpqc or jira. See two jira tickets given below. 8 | 9 | 2019-Nov-24 Vishnu JIRA-123 added new field abc 10 | 2019-Nov-26 Vishnu JIRA-123 comments corrected for esql module def 11 | 2019-Nov-26 Vishnu JIRA-123 formatted esql 12 | 2019-Nov-29 Vishnu JIRA-124 changed input queue name 13 | 2019-Nov-29 Bala JIRA-124 additional instances added 14 | 2019-Nov-30 Vishnu JIRA-124 moved node locations by using format option 15 | 16 | JIRA-123 was raised to add abc field to target system 17 | JIRA-124 was raised to change source system queue. 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /standards/README.md: -------------------------------------------------------------------------------- 1 | # standards 2 | Naming conventions and similar standards evolve with time just like code. Using this folder to version them. Having a timeline of standards in git would help me explain or remember why i chose to code a particular way in 2018. And gradually those coding practices changed in 2020. -------------------------------------------------------------------------------- /standards/naming.md: -------------------------------------------------------------------------------- 1 | 2 | <pre> 3 | Variable naming standards 4 | char type / string type starts with s -> sCustomerName 5 | integer type starts with i -> iCustomerId 6 | blob type starts with b -> bPayload 7 | boolean types / true false types starts with t -> tValid 8 | row variables start with r -> rCache 9 | pointers / references start with p -> pChildEnv 10 | if pointers end with Env, it indicates they are pointing to Environment tree 11 | if pointers end with In, it indicates they are pointing to InputRoot tree 12 | if pointers end with Out, it indicates they are pointing to OutputRoot tree 13 | if pointers end with ILE, it indicates they are pointing to InputLocalEnvironment tree 14 | if pointers end with OLE, it indicates they are pointing to OutputLocalEnvironment tree 15 | 16 | Rest API base path should contain version number. This way you can deploy multiple versions of the api into same integration server without conflict. 17 | Example: http://localhost:7800/someapi/v2/employees/ 18 | base path -> /someapi/v2 19 | resource path -> /employees 20 | 21 | Project naming should follow this template 22 | Application -> _{version}_APP 23 | Integration Service -> {functionality}_{version}_IS 24 | Rest api -> {resource}_{version}_API 25 | Shared library -> _{version}_SLIB 26 | Static library -> _{version}_LIB 27 | Message flow project -> _MFP 28 | Message set project -> _MSP 29 | 30 | Naming Message Set or other project types 31 | Project Type indicator can be placed at end of the name such as MyAmazingProject_MSET or it can be placed at the start such as MSET_MyAmazingProject. 32 | Former is preferred as different project types for one business functionality such as PurchaseOrder will appear in close proxity. Sample: 33 | PurchaseOrder_APP 34 | PurchaseOrder_JP 35 | PurchaseOrder_MSET 36 | You would not want to see project types in close proximity as shown below 37 | MSET_Warranty 38 | MSET_PurchaseOrder 39 | MSET_Insurance 40 | </pre> --------------------------------------------------------------------------------