) 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
5 |
6 |
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 |
2 |
3 |
4 |
5 |
28 |
29 |
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 |
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 (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
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 |
--------------------------------------------------------------------------------
/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 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 | "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 |
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 (NoMQ_APP) invokes a service over http proxy. Watch youtube video for details.
9 |
--------------------------------------------------------------------------------
/NoMQ_APP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NoMQ_APP/code2blog.wordpress.com/book.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | Everyday Italian
7 | Giada De Laurentiis
8 | 2005
9 | 30.00
10 |
11 |
--------------------------------------------------------------------------------
/NoMQ_APP/code2blog.wordpress.com/book.xsd:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/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 |
2 |
3 | Tove
4 | Jani
5 | Reminder
6 | Don't forget me this weekend!
7 |
--------------------------------------------------------------------------------
/NoMQ_APP/note.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/NodeFeatures_V1_IS.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/NodeFeatures_V1_IS_InlineSchema1.xsd:
--------------------------------------------------------------------------------
1 |
2 |
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 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/NodeFeatures_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 (NodeFeatures_V1_IS) shows you features of various iib nodes.
9 | 1) xsl transformation node
10 | 2) mapping node
11 |
12 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/_xmlDemoRequest_transform.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | title01 artist01
7 | title02 artist02
8 | title03 artist03
9 |
10 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/_xsltDemo_transform.xml:
--------------------------------------------------------------------------------
1 | title01 artist01 title02 artist02 title03 artist03
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/doc/mappingDemo-input.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Start of file TEST____TEST.000000000009995.20150520.1444
5 |
6 |
7 | 00000000009,995
8 | 000000
9 | 00
10 | 0000100
11 |
12 |
13 | 002K
14 | 000
15 | 21.01.2020
16 | 00000
17 | 1
18 | 98
19 |
20 |
21 | 002K
22 | 000
23 | 21.01.2020
24 | 00000
25 | 2
26 | 99
27 |
28 |
29 | 002K
30 | 000
31 | 21.01.2020
32 | 00000
33 | 3
34 | 100
35 |
36 |
37 | End of file
38 |
39 |
40 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/doc/mappingDemo-output-space_separated.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 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/doc/mappingDemo-soap-request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Start of file TEST____TEST.000000000009995.20150520.1444
8 |
9 |
10 | 00000000009,995
11 | 000000
12 | 00
13 | 0000100
14 |
15 |
16 | 002K
17 | 000
18 | 21.01.2020
19 | 00000
20 | 1
21 | 98
22 |
23 |
24 | 002K
25 | 000
26 | 21.01.2020
27 | 00000
28 | 2
29 | 99
30 |
31 |
32 | 002K
33 | 000
34 | 21.01.2020
35 | 00000
36 | 3
37 | 100
38 |
39 |
40 | End of file
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputCatchHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputFailureHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/gen/NodeFeatures_V1_ISInputHTTPTimeoutHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/gen/mappingDemo_Request_Response_Mapping.map:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/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 |
2 |
5 |
6 |
7 | title01
8 | artist01
9 |
10 |
11 | title02
12 | artist02
13 |
14 |
15 | title03
16 | artist03
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/xsltDemo.xsl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/NodeFeatures_V1_IS/xsltDemoResponse.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | output1
4 |
5 |
--------------------------------------------------------------------------------
/ParseZipFile_JP/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ParseZipFile_JP/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ParseZipFile_JP
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 |
--------------------------------------------------------------------------------
/ParseZipFile_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 (ParseZipFile_JP) reads a zip file and creates multiple xml files
9 |
10 |
--------------------------------------------------------------------------------
/ParseZipFile_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 (ParseZipFile_MFP) reads a zip file and creates multiple xml files
9 |
10 |
--------------------------------------------------------------------------------
/Person_V2_API/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | Refer this blog post for documentation: https://code2blog.wordpress.com/2020/04/05/iib-develop-rest-api-by-using-an-existing-swagger-json/
4 |
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
6 |
7 |
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 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
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 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 | }
--------------------------------------------------------------------------------
/ReadIIBFiles_APP/ListFiles_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 |
--------------------------------------------------------------------------------
/ReadIIBFiles_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 |
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 |
--------------------------------------------------------------------------------
/ReadIIBFiles_APP/ZipFolder_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 |
--------------------------------------------------------------------------------
/ReadIIBFiles_APP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ReadIIBFiles_APPJava/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ReadIIBFiles_APPJava/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ReadIIBFiles_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 |
--------------------------------------------------------------------------------
/ReadIIBFiles_APPJava/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 |
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 |
--------------------------------------------------------------------------------
/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 |
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 (RetryFailuresGeneratedInThisAPP) will create errors so that Retry_APP can repush them automatically
9 |
10 |
--------------------------------------------------------------------------------
/RetryFailuresGeneratedInThisAPP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
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 (Retry_APP) will automatically retry failures using timer nodes
9 |
10 |
--------------------------------------------------------------------------------
/Retry_APP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Retry_JP/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Retry_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 | com.ibm.etools.mft.jcn.jcnbuilder
25 |
26 |
27 |
28 |
29 |
30 | org.eclipse.jdt.core.javanature
31 | com.ibm.etools.mft.bar.ext.barnature
32 | com.ibm.etools.mft.jcn.jcnnature
33 |
34 |
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 |
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 (Retry_JP) will populate MbElement for retry feature implemented in Retry_APP
9 |
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 |
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 (SendEmail_V1_APP) sends email using smtp server and email output node
9 |
10 |
--------------------------------------------------------------------------------
/SendEmail_V1_APP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/WSSecurityDemo_V1_APP/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 |
--------------------------------------------------------------------------------
/WSSecurityDemo_V1_APP/HelloWorld.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/WSSecurityDemo_V1_APP/HelloWorld_InlineSchema1.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/WSSecurityDemo_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 (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.
9 |
--------------------------------------------------------------------------------
/WSSecurityDemo_V1_APP/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
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 (WindowsCommands_V1_IS) logs system events using java compute node
9 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/WindowsCommands_V1_IS.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/WindowsCommands_V1_IS_InlineSchema1.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/batchScriptDemo-response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | output1
4 |
5 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputCatchHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputFailureHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_IS/gen/WindowsCommands_V1_ISInputHTTPTimeoutHandler.subflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
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 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/WindowsCommands_V1_ISJava/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | WindowsCommands_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 |
--------------------------------------------------------------------------------
/WindowsCommands_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 (WindowsCommands_V1_ISJava) logs system events using java compute node
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 |
--------------------------------------------------------------------------------
/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 |
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 |
--------------------------------------------------------------------------------
/XmlToCsv_APP/test-data/input.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | abc
4 | maths
5 |
6 |
7 |
8 | def
9 | science
10 |
11 |
12 |
--------------------------------------------------------------------------------
/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 |
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 (code2blog_cobol_copybook_V1_SLIB) contains a dfdl schema file used to parse binary data. Data structure was imported from cobol copy book.
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 |
--------------------------------------------------------------------------------
/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 |
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 (code2blog_dfdl_v2_slib) contains a dfdl schema file used to parse fixed length data. Use input.txt file provided to test it.
9 |
--------------------------------------------------------------------------------
/code2blog_dfdl_v2_slib/library.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
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 (code2blog_node_collector_v1_app) will demo the use of collector node
9 |
10 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/application.descriptor:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/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 |
2 | 123
3 | Toaster
4 | 1
5 | 2 days
6 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/test-data/acquire_message_mf/input-mq01-invoice.xml:
--------------------------------------------------------------------------------
1 |
2 | 111
3 | Toaster
4 | 1
5 | 4.99
6 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/test-data/acquire_message_mf/input-mq02-packaging.xml:
--------------------------------------------------------------------------------
1 |
2 | 111
3 | 1.95
4 |
5 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/test-data/control_with_trigger_mf/input-mq01-invoice-123.xml:
--------------------------------------------------------------------------------
1 |
2 | 123
3 | Toaster
4 | 1
5 | 4.99
6 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/test-data/control_with_trigger_mf/input-mq01-invoice-124.xml:
--------------------------------------------------------------------------------
1 |
2 | 124
3 | Toaster
4 | 1
5 | 4.99
6 |
--------------------------------------------------------------------------------
/code2blog_node_collector_v1_app/test-data/input-file01-order.xml:
--------------------------------------------------------------------------------
1 |
2 | 111
3 | Toaster
4 | 1
5 | 2 days
6 |
--------------------------------------------------------------------------------
/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 |
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 folder jenkins will hold the pipeline scripts and any other jenkins artefacts that i demo in my youtube videos
9 |
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 |
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 |
--------------------------------------------------------------------------------