├── .gitignore
├── mule4-batch-demo
├── src
│ ├── main
│ │ ├── resources
│ │ │ ├── mule-artifact.properties
│ │ │ └── log4j2.xml
│ │ └── mule
│ │ │ ├── application-types.xml
│ │ │ ├── mule4-batch-demo.xml
│ │ │ ├── mule4-batch-variables.xml
│ │ │ └── mule4-batch-aggregator-demo.xml
│ └── test
│ │ └── resources
│ │ └── log4j2-test.xml
├── mule-artifact.json
├── README.md
├── .project
├── .settings
│ └── org.eclipse.jdt.core.prefs
├── .classpath
└── pom.xml
├── mule4-dw2-avro-support
├── mule-artifact.json
├── src
│ ├── test
│ │ └── resources
│ │ │ ├── sample_data
│ │ │ ├── design-info.json
│ │ │ └── unknown.dwl
│ │ │ └── log4j2-test.xml
│ └── main
│ │ ├── resources
│ │ ├── employee.avro.json
│ │ └── log4j2.xml
│ │ └── mule
│ │ └── mule4-dw2-avro-support.xml
├── Readme.ad
├── .gitignore
└── pom.xml
├── say-hello-mule4-docker
├── buildAndRun.sh
├── Dockerfile
├── mule-artifact.json
├── src
│ ├── test
│ │ └── resources
│ │ │ └── log4j2-test.xml
│ └── main
│ │ ├── mule
│ │ └── say-hello-mule4-docker.xml
│ │ └── resources
│ │ └── log4j2.xml
├── README.md
├── .gitignore
└── pom.xml
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | **/target
3 | **/.mule
4 |
5 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/resources/mule-artifact.properties:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/mule4-batch-demo/mule-artifact.json:
--------------------------------------------------------------------------------
1 | {
2 | "minMuleVersion": "4.2.1"
3 | }
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/mule-artifact.json:
--------------------------------------------------------------------------------
1 | {
2 | "minMuleVersion": "4.2.0"
3 | }
--------------------------------------------------------------------------------
/mule4-batch-demo/README.md:
--------------------------------------------------------------------------------
1 | # Batch Processing in Mule 4
2 |
3 | This example demonstrates batch processing capabilities in Mule 4.
4 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/buildAndRun.sh:
--------------------------------------------------------------------------------
1 |
2 | mvn clean package
3 |
4 | docker build -t hellomule4 .
5 |
6 | docker run -it --rm -p 8081:8081 hellomule4
7 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM javastreets/mule:latest
2 |
3 | COPY ./target/say-hello-mule4-docker*.jar /opt/mule/apps/
4 |
5 | CMD [ "/opt/mule/bin/mule"]
6 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/mule/application-types.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/test/resources/sample_data/design-info.json:
--------------------------------------------------------------------------------
1 | {
2 | "sampleData": {
3 | "0c866aa5-41a1-483f-8598-5e182fab3659": {
4 | "payload": "sample_data/unknown.dwl"
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/Readme.ad:
--------------------------------------------------------------------------------
1 | = DataWeave 2.2 and Avro Format
2 | This is an example project for DataWeave 2.2 and Avro Format.For more details, see https://javastreets.com/blog/mule-dataweave-2-avro-format.html
3 |
4 | This requires Mule Runtime version 4.2.0 and beyond.
5 |
6 | Once deployed, you can access http://localhost:8081/write for triggering demo flows.
7 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/test/resources/sample_data/unknown.dwl:
--------------------------------------------------------------------------------
1 | {
2 | data: [
3 | {
4 | idx: 2 as Number {class: "java.lang.Integer"},
5 | firstname: "????" as String {class: "java.lang.String"},
6 | lastname: "????" as String {class: "java.lang.String"}
7 | } as Object {class: "java.util.LinkedHashMap"}
8 | ] as Array {class: "java.util.ArrayList"}
9 | } as Object {encoding: "UTF-8", mediaType: "*/*", mimeType: "*/*", class: "java.util.LinkedHashMap"}
--------------------------------------------------------------------------------
/say-hello-mule4-docker/mule-artifact.json:
--------------------------------------------------------------------------------
1 | {
2 | "configs": [
3 | "say-hello-mule4-docker.xml"
4 | ],
5 | "secureProperties": [],
6 | "redeploymentEnabled": true,
7 | "name": "say-hello-mule4-docker",
8 | "minMuleVersion": "4.1.0",
9 | "requiredProduct": "MULE",
10 | "classLoaderModelLoaderDescriptor": {
11 | "id": "mule",
12 | "attributes": {
13 | "exportedResources": []
14 | }
15 | },
16 | "bundleDescriptorLoader": {
17 | "id": "mule",
18 | "attributes": {}
19 | }
20 | }
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/main/resources/employee.avro.json:
--------------------------------------------------------------------------------
1 | {
2 | "namespace": "com.javastreets.avro",
3 | "name": "com.javastreets.avro.Employee",
4 | "type": "record",
5 | "fields": [
6 | {
7 | "name": "employeeId",
8 | "type": "int"
9 | },
10 | {
11 | "name": "firstname",
12 | "type": "string"
13 | },
14 | {
15 | "name": "lastname",
16 | "type": "string"
17 | },
18 | {
19 | "name": "address",
20 | "type": "string"
21 | },
22 | {
23 | "name": "notes",
24 | "type": "string"
25 | }
26 | ]
27 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Mule 4 Examples Repository
2 |
3 | This repository contains examples for Mule ESB 4.
4 |
5 | * **mule4-batch-demo**: Implements batch processing in mule 4. https://javastreets.com/blog/2017/10/mule-4-batch-processing.html
6 | * **say-hello-mule4-docker**: A Simple Mule 4 Application running inside Mule 4 Docker Image. https://javastreets.com/blog/run-mule4-in-docker-container.html
7 | * **mule4-dw2-avro-support**: This is an example project for DataWeave 2.2 and Avro Format.For more details, see https://javastreets.com/blog/mule-dataweave-2-avro-format.html
8 |
--------------------------------------------------------------------------------
/mule4-batch-demo/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | mule4-batch-demo
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.mule.tooling.core.muleStudioBuilder
15 |
16 |
17 |
18 |
19 |
20 | org.mule.tooling.core.muleStudioNature
21 | org.eclipse.jdt.core.javanature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/mule4-batch-demo/.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 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/test/resources/log4j2-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/src/test/resources/log4j2-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/test/resources/log4j2-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/README.md:
--------------------------------------------------------------------------------
1 | # Say Hello Mule 4 from Docker
2 |
3 | This example runs a simple hello from mule application inside Docker Container.
4 |
5 | To build and run the application - execute `sh buildAndRun.sh`.
6 |
7 | This file performs 3 steps -
8 |
9 | * Run Maven Build to package application.
10 | * Build Docker image named `hellomule4` and adds this application to Mule within docker.
11 | * Starts the docker container to run mule in foreground. (press CTRL+C to stop mule)
12 |
13 | To run application in background, you may also run below command -
14 |
15 | `docker run -d --name hellomule4 -p 8081:8081 hellomule4`
16 |
17 | This docker image exposes 8081 port and binds it to the 8081 of localhost.
18 |
19 | Once application is running, access below url to see Hello from Mule -
20 |
21 | http://localhost:8081/test/hello
22 |
23 | It should output -
24 |
25 | _Hello from Mule ESB (Version: 4.1.0). I am running inside docker image javastreets/mule:latest-4_
26 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/.gitignore:
--------------------------------------------------------------------------------
1 | # ------------------------------------------------------------------------------ #
2 | # Java defaults (https://github.com/github/gitignore/blob/master/Java.gitignore) #
3 | # ------------------------------------------------------------------------------ #
4 | *.class
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | # ------------------------------------------------------------------------------------------- #
12 | # Eclipse-specific (https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore) #
13 | # ------------------------------------------------------------------------------------------- #
14 | *.pydevproject
15 | .metadata
16 | bin/**
17 | tmp/**
18 | tmp/**/*
19 | *.tmp
20 | *.bak
21 | *.swp
22 | *~.nib
23 | local.properties
24 | .settings/
25 | .loadpath
26 | .project
27 | .classpath
28 |
29 | # External tool builders
30 | .externalToolBuilders/
31 |
32 | # Locally stored "Eclipse launch configurations"
33 | *.launch
34 |
35 | # CDT-specific
36 | .cproject
37 |
38 | # PDT-specific
39 | .buildpath
40 |
41 | # --------------- #
42 | # Studio-specific #
43 | # --------------- #
44 | target/
45 | .mule/**
46 | .mule/**/*
47 | .DS_Store
48 | velocity.log
--------------------------------------------------------------------------------
/say-hello-mule4-docker/.gitignore:
--------------------------------------------------------------------------------
1 | # ------------------------------------------------------------------------------ #
2 | # Java defaults (https://github.com/github/gitignore/blob/master/Java.gitignore) #
3 | # ------------------------------------------------------------------------------ #
4 | *.class
5 |
6 | # Package Files #
7 | *.jar
8 | *.war
9 | *.ear
10 |
11 | # ------------------------------------------------------------------------------------------- #
12 | # Eclipse-specific (https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore) #
13 | # ------------------------------------------------------------------------------------------- #
14 | *.pydevproject
15 | .metadata
16 | bin/**
17 | tmp/**
18 | tmp/**/*
19 | *.tmp
20 | *.bak
21 | *.swp
22 | *~.nib
23 | local.properties
24 | .settings/
25 | .loadpath
26 | .project
27 | .classpath
28 |
29 | # External tool builders
30 | .externalToolBuilders/
31 |
32 | # Locally stored "Eclipse launch configurations"
33 | *.launch
34 |
35 | # CDT-specific
36 | .cproject
37 |
38 | # PDT-specific
39 | .buildpath
40 |
41 | # --------------- #
42 | # Studio-specific #
43 | # --------------- #
44 | target/
45 | .mule/**
46 | .mule/**/*
47 | .DS_Store
48 | velocity.log
--------------------------------------------------------------------------------
/say-hello-mule4-docker/src/main/mule/say-hello-mule4-docker.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/mule4-batch-demo/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/say-hello-mule4-docker/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 | com.javastreets
6 | say-hello-mule4-docker
7 | 1.0.0-SNAPSHOT
8 | mule-application
9 |
10 | say-hello-mule4-docker-docker
11 |
12 |
13 | UTF-8
14 | UTF-8
15 |
16 | 4.2.0
17 | 3.2.7
18 |
19 |
20 |
21 |
22 |
23 | org.mule.tools.maven
24 | mule-maven-plugin
25 | ${mule.maven.plugin.version}
26 | true
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | org.mule.connectors
36 | mule-http-connector
37 | 1.5.3
38 | mule-plugin
39 |
40 |
41 | org.mule.connectors
42 | mule-sockets-connector
43 | 1.1.5
44 | mule-plugin
45 |
46 |
47 |
48 |
49 |
50 | anypoint-exchange
51 | Anypoint Exchange
52 | https://maven.anypoint.mulesoft.com/api/v1/maven
53 | default
54 |
55 |
56 | mulesoft-releases
57 | MuleSoft Releases Repository
58 | https://repository.mulesoft.org/releases/
59 | default
60 |
61 |
62 |
63 |
64 | mulesoft-releases
65 | mulesoft release repository
66 | default
67 | https://repository.mulesoft.org/releases/
68 |
69 | false
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 | com.javastreets
6 | mule4-dw2-avro-support
7 | 1.0.0-SNAPSHOT
8 | mule-application
9 |
10 | mule4-dw2-avro-support
11 |
12 |
13 | UTF-8
14 | UTF-8
15 |
16 | 4.2.0
17 | 3.2.7
18 |
19 |
20 |
21 |
22 |
23 | org.mule.tools.maven
24 | mule-maven-plugin
25 | ${mule.maven.plugin.version}
26 | true
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | org.mule.connectors
36 | mule-http-connector
37 | 1.5.3
38 | mule-plugin
39 |
40 |
41 | org.mule.connectors
42 | mule-sockets-connector
43 | 1.1.5
44 | mule-plugin
45 |
46 |
47 | org.mule.connectors
48 | mule-file-connector
49 | 1.2.2
50 | mule-plugin
51 |
52 |
53 |
54 |
55 |
56 | anypoint-exchange
57 | Anypoint Exchange
58 | https://maven.anypoint.mulesoft.com/api/v1/maven
59 | default
60 |
61 |
62 | mulesoft-releases
63 | MuleSoft Releases Repository
64 | https://repository.mulesoft.org/releases/
65 | default
66 |
67 |
68 |
69 |
70 | mulesoft-releases
71 | mulesoft release repository
72 | default
73 | https://repository.mulesoft.org/releases/
74 |
75 | false
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/mule4-dw2-avro-support/src/main/mule/mule4-dw2-avro-support.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/mule4-batch-demo/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 | com.mycompany
6 | mule4-batch-demo
7 | 1.0.0-SNAPSHOT
8 | mule-application
9 |
10 | mule4-batch-demo
11 |
12 |
13 | UTF-8
14 | UTF-8
15 |
16 | 4.2.1
17 | 3.2.7
18 |
19 |
20 |
21 |
22 |
23 | org.mule.tools.maven
24 | mule-maven-plugin
25 | ${mule.maven.plugin.version}
26 | true
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | org.mule.connectors
37 | mule-http-connector
38 | 1.5.10
39 | mule-plugin
40 |
41 |
42 | org.mule.modules
43 | mule-validation-module
44 | 1.4.0
45 | mule-plugin
46 |
47 |
48 | org.mule.connectors
49 | mule-file-connector
50 | 1.2.0
51 | mule-plugin
52 |
53 |
54 | org.mule.modules
55 | mule-module-file-extension-common
56 | 1.2.0
57 | mule-plugin
58 |
59 |
60 | org.mule.connectors
61 | mule-sockets-connector
62 | 1.1.5
63 | mule-plugin
64 |
65 |
66 | org.mule.modules
67 | mule-scripting-module
68 | 1.1.6
69 | mule-plugin
70 |
71 |
72 |
73 |
74 |
75 | anypoint-exchange
76 | Anypoint Exchange
77 | https://maven.anypoint.mulesoft.com/api/v1/maven
78 | default
79 |
80 |
81 | mulesoft-releases
82 | MuleSoft Releases Repository
83 | https://repository.mulesoft.org/releases/
84 | default
85 |
86 |
87 |
88 |
89 | mulesoft-releases
90 | mulesoft release repository
91 | default
92 | https://repository.mulesoft.org/releases/
93 |
94 | false
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/mule/mule4-batch-demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/mule/mule4-batch-variables.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
16 |
17 |
18 |
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 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/mule4-batch-demo/src/main/mule/mule4-batch-aggregator-demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 |
14 |
15 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | payload[0].status = 'Test'
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | payload.value.status = 'Test'
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------