SlideShare a Scribd company logo
1 of 57
October 24th, 2018
Warsaw Group
All contents © MuleSoft Inc.
Our Partners
2
All contents © MuleSoft Inc.
Share
3
• Share the Meetup
• Use Hashtags
– #MuleMeetup
– #WarsawMuleMeetup
Agenda
All contents © MuleSoft Inc.
Agenda
5
6:00 PM Introductions
6:15 PM Topic 1 - Introducing Mule 4
7:00 PM Break
7:15 PM Topic 2 – Encryption Demo
8:00 PM What’s next and Q&A
Introduction
All contents © MuleSoft Inc.
Organiser & Speaker
7
• Senior Integration Developer at PwC Poland
• MuleSoft Meetup Leader for Warsaw, Poland
• Recognized by MuleSoft as one of the top
contributors in the MuleSoft Community
• Doing Mule for over 7 years now
All contents © MuleSoft Inc.
Speaker
8
• Senior Integration Developer at PwC Poland
• 10 years professional experience as a
developer
• 8 years professional experience in integration
Introduction
Mule 4
All contents © MuleSoft Inc.
Mule Runtime Release Notes
10
Anypoint Studio 7
Mule 4
All contents © MuleSoft Inc.
Anypoint Studio 7
12
• Only Mule 4 Runtime's are supported
• All project are mavenized by default
Event-Driven Architecture
Mule 4
All contents © MuleSoft Inc.
Mule Event
Event-Driven Architecture
14
• Core information processed by the
runtime
• Immutable
• New structure
– Message payload
– Message attributes
– Variables
All contents © MuleSoft Inc.
Event Sources
Event-Driven Architecture
15
• First component that receives
triggering event
• Create Mule Event object
Event Processors
• Processes the Mule Event
• Returns new Mule Message
• Available are:
– Operations from connectors
– Core components like router
Mule message
Mule 4
All contents © MuleSoft Inc.
Mule 3 message
Mule message
17
Mule 4 message
All contents © MuleSoft Inc.
Attributes
Mule message
18
• New scope
• Replaces inbound and outbound properties
HTTP
FTP
JMS
All contents © MuleSoft Inc.
Mule 3
Mule message’s attributes
19
• Get query parameter ‚PIN’
#[message.inboudProperties.’http.query
.params’.PIN]
• Get header ‚X-User’
#[message.inboundProperties.’headers’.
’X-User’]
Mule 4
• Get query parameter ‚PIN’
#[attributes.queryParams.PIN]
• Get header ‚X-User’
#[attributes.headers.’X-User’]
All contents © MuleSoft Inc.
Outbound properties?
20
• Headers are set directly by developer
• No implicit get from attributes
• Dedicated forms in GUI
• Set using DataWeave
Data Weave 2.0
Mule 4
All contents © MuleSoft Inc.
Introduction
DataWeave
22
• Entirely replaces everything that MEL does
• Default language
• Syntax changes
• Modularization
• And many more …
MEL
MEL stands for Mule
Expression Language
All contents © MuleSoft Inc.
Subtle changes
DataWeave changes
23
• New version 2.0
• Every directive is written without %
sign
• Functions are now declares using fun
keyword
• Type names
– Without : char
– First upper case letter
• as String
• as Date
as :string
as String
All contents © MuleSoft Inc.
Operators
DataWeave
24
• All operators are functions now
sizeOf payload filter $.age > 30
sizeOf(filter(payload, (value) → value.age > 30)))
sizeOf(payload filter $.age > 30)
All contents © MuleSoft Inc.
Conditional logic
DataWeave changes
25
• If else and else if
WHEN
UNLESS
OTHERWISE
All contents © MuleSoft Inc.
Modules
DataWeave
26
• Functionality grouped within modules
• Similar concept like with Java packages
• Core functions are imported by default
• We may create are own modules
• Importing
– import dw::core::Arrays
– import * from dw::core::Arrays
– import countBy, sumBy from dw::core::Arrays
All contents © MuleSoft Inc.
Java Module
DataWeave
27
• Calling static Java methods
• Import with java! prefix
All contents © MuleSoft Inc.
External scripts
DataWeave
28
• Syntax ${file::filename}
• Send script in dwl file through any XML tag that expects an epxression
• When expression=”${file::extra-logic.dwl}”
Implicit transformations
Mule 4
All contents © MuleSoft Inc.
Mule 3 components
Transformation components
30
• Transform one type into
another
• Needed before DataWeave
transformation or routing
logic
• A lot !
Mule 4 components
• Greatly reduced
number of
transformation
components
• Implicit casting
All contents © MuleSoft Inc.
Not working example
Transformation in Mule 3
31
• Input
– Type: json
– Value:
• Flow
What will happen at
line 4?
All contents © MuleSoft Inc.
What will happen at line 4?
Transformation in Mule 3
32
1. An exception will be thrown
2. Payload.id will evalute to empty value
3. Payload.id will evaluate to value „a-k”
All contents © MuleSoft Inc.
What will happen at line 4?
Transformation in Mule 3
33
1. An exception will be thrown
2. Payload.id will evalute to empty value
3. Payload.id will evaluate to value „a-k”
All contents © MuleSoft Inc.
Working example
Transformation in Mule 3
34
• Inserted transformation at line 3
• Converts JSON byte input stream into an object
• MEL, at line 4, is able to evaluate expression
All contents © MuleSoft Inc.
Working example
Transformation in Mule 4
35
• Input
– Type: json
– Value
Error Handling
Mule 4
All contents © MuleSoft Inc.
Error object
37
• Accessible by using error keyword
• Error introduce abstraction layer
All contents © MuleSoft Inc.
On Error Propagate
Error Handling
38
• Re-throw the error
On Error Continue
• This strategy you can use when you
want to handle an error and process
further flow as if nothing has
happened
• Especially useful in Try-Catch scope
All contents © MuleSoft Inc.
Try-Catch scope
Error Handling
39
• Error handling strategy in the middle of the flow
• Encapsulate at least one event processor
• There is no longer need to create a flow for specific error
Modules
Mule 4
All contents © MuleSoft Inc.
Modularization
41
• Connectors are modularized
• Separated from Mule Server Runtime
• Packaged in deployable archive
• GUI support for adding modules
– Quick find in Mule Palette
– Adding by maven
Break
Networking time
New way of using Secure Property Placeholder
Security in Mule 4
All contents © MuleSoft Inc.
What new in secure placeholder
44
• New way to add secure placeholder into project using Exchange
• New tool responsible for encryption / decryption process
• New secure prefix required to use for secure placeholder
• Ability to share security placeholder via domain project
All contents © MuleSoft Inc.
Demo walkthrough
45
• Create new application and simple flow with http input and logger
• Create property file in yaml
• Generate security key:
– https://asecuritysite.com/encryption/keygen
• Download secure-properties-tool:
– https://docs.mulesoft.com/mule4-user-guide/v/4.1/secure-configuration-properties
• Encrypt property file:
– java -jar secure-properties-tool.jar file encrypt AES CBC key properties.yaml properties2.yaml
• Add secure placeholder from Exchane
• Configure secure placeholder and copy encrypted property file
• Change logger:
– DB Login: ${secure::database.login} Password: ${secure::database.password}
All contents © MuleSoft Inc.
Demo walkthrough
46
• Create new domain project
• Add domain to mule project
• Move secure placeholder dependency to domain pom.xml
• Add empty property configuration
• Move properties.yaml do domain project
All contents © MuleSoft Inc.
Tricky question
47
We would like to use secure property placeholder to read property that
is not encrypted. What is the correct sentence if we assume that the
key name is key1:
1. It is not possible to use secure property to read unencrypted data
2. We can do this using ${key1} syntax because of unencrypted value
3. We need to use 'secure' prefix to read unencrypted data,
${secure::key1}
4. Botha 2 and 3 are correct
All contents © MuleSoft Inc.
Tricky question’s answer
48
We would like to use secure property placeholder to read property that
is not encrypted. What is the correct sentence if we assume that the
key name is key1:
1. It is not possible to use secure property to read unencrypted data
2. We can do this using ${key1} syntax because of unencrypted value
3. We need to use 'secure' prefix to read unencrypted data,
${secure::key1}
4. Botha 2 and 3 are correct
All contents © MuleSoft Inc.
DataWeave question
49
We have a java class MuleMeetup in com.mulesoft.meetup package.
How can I import it within DataWeave
1. It is not possible to import java class in DataWeave
2. Import com::mulesoft::meetup::MuleMeetup
3. Import java!com.mule.mulesoft.meetup.MuleMeetup
4. Import java!com::mule::mulesoft::meetup::MuleMeetup
All contents © MuleSoft Inc.
DataWeave question
50
We have a java class MuleMeetup in com.mulesoft.meetup package.
How can I import it within DataWeave
1. It is not possible to import java class in DataWeave
2. Import com::mulesoft::meetup::MuleMeetup
3. Import java!com.mule.mulesoft.meetup.MuleMeetup
4. Import java!com::mule::mulesoft::meetup::MuleMeetup
All contents © MuleSoft Inc.
DataWeave question
51
We have a java class MuleMeetup with static function open(String
welcom). How we can invoke this function in DataWeave?
The class is import like below
Import java!com.mulesoft.MuleMeetup
1. MuleMeetup.open(„Welcome”)
2. MuleMeetup:open(„Welcome”)
3. MuleMeetup::open(„Welcome”)
4. MuleMeetup::open „Welcome”
All contents © MuleSoft Inc.
DataWeave question
52
We have a java class MuleMeetup with static function open(String
welcom). How we can invoke this function in DataWeave?
The class is import like below
Import java!com::mulesoft::MuleMeetup
1. MuleMeetup.open(„Welcome”)
2. MuleMeetup:open(„Welcome”)
3. MuleMeetup::open(„Welcome”)
4. MuleMeetup::open „Welcome”
What’s next
All contents © MuleSoft Inc.
What’s next
54
• Feedback:
– Contact your organizer Patryk Bandurski to suggest topics
– Contact MuleSoft at meetup@mulesoft.com for ways to improve the program
• Our next meetup:
– Date: January 2019
– Location: PwC Poland
– Topic: DataWeave 2.0
All contents © MuleSoft Inc.
What’s next
55
Invite your network to join
– https://meetups.mulesoft.com/warsaw/
See you next time
Please send topic suggestions to the organizer
Mule 4 Meetup Recap: Introducing Event-Driven Architecture and DataWeave 2.0

More Related Content

What's hot

Meet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_finalMeet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_finalAkshata Sawant
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CDPatryk Bandurski
 
MuleSoft Manchester Meetup #2 slides 29th October 2019
MuleSoft Manchester Meetup #2 slides 29th October 2019MuleSoft Manchester Meetup #2 slides 29th October 2019
MuleSoft Manchester Meetup #2 slides 29th October 2019Ieva Navickaite
 
Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Rajesh Maheshwari
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thJordan Schuetz
 
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...Manish Kumar Yadav
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricPatryk Bandurski
 
Mulesoft Meetup Bangalore - 6th March 2021
Mulesoft Meetup Bangalore -  6th March 2021Mulesoft Meetup Bangalore -  6th March 2021
Mulesoft Meetup Bangalore - 6th March 2021Gaurav Sethi
 
Ahmedabad MuleSoft Meetup #1
Ahmedabad MuleSoft Meetup #1Ahmedabad MuleSoft Meetup #1
Ahmedabad MuleSoft Meetup #1Tejas Purohit
 
Mulesoft meetup slides mumbai_20113019_exception_handling
Mulesoft meetup slides mumbai_20113019_exception_handlingMulesoft meetup slides mumbai_20113019_exception_handling
Mulesoft meetup slides mumbai_20113019_exception_handlingManish Kumar Yadav
 
mulesoft meetup @ bangalore
mulesoft meetup @ bangaloremulesoft meetup @ bangalore
mulesoft meetup @ bangaloreD.Rajesh Kumar
 
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Sravan Lingam
 
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Manish Kumar Yadav
 
Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Zubair Aslam
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019Subhash Patel
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleRoyston Lobo
 
Migrating to mule 4 - Are you ready for This.
Migrating to mule 4 - Are you ready for This.Migrating to mule 4 - Are you ready for This.
Migrating to mule 4 - Are you ready for This.Harish Kumar
 
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsMuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsManish Kumar Yadav
 
Virtual Meetup: Mule 4 Error Handling and Logging
Virtual Meetup: Mule 4 Error Handling and LoggingVirtual Meetup: Mule 4 Error Handling and Logging
Virtual Meetup: Mule 4 Error Handling and LoggingJimmy Attia
 

What's hot (20)

Meet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_finalMeet up slides_mumbai_05022020_final
Meet up slides_mumbai_05022020_final
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
MuleSoft Manchester Meetup #2 slides 29th October 2019
MuleSoft Manchester Meetup #2 slides 29th October 2019MuleSoft Manchester Meetup #2 slides 29th October 2019
MuleSoft Manchester Meetup #2 slides 29th October 2019
 
Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24th
 
Mule meetup 25thjan
Mule meetup 25thjanMule meetup 25thjan
Mule meetup 25thjan
 
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
MuleSoft Integration with AWS Cognito Client Credentials and Mule JWT Validat...
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
 
Mulesoft Meetup Bangalore - 6th March 2021
Mulesoft Meetup Bangalore -  6th March 2021Mulesoft Meetup Bangalore -  6th March 2021
Mulesoft Meetup Bangalore - 6th March 2021
 
Ahmedabad MuleSoft Meetup #1
Ahmedabad MuleSoft Meetup #1Ahmedabad MuleSoft Meetup #1
Ahmedabad MuleSoft Meetup #1
 
Mulesoft meetup slides mumbai_20113019_exception_handling
Mulesoft meetup slides mumbai_20113019_exception_handlingMulesoft meetup slides mumbai_20113019_exception_handling
Mulesoft meetup slides mumbai_20113019_exception_handling
 
mulesoft meetup @ bangalore
mulesoft meetup @ bangaloremulesoft meetup @ bangalore
mulesoft meetup @ bangalore
 
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
Hyd MuleSoft-Meetup-May 29,2021 | Migrating Mule 3 Java related code to Mule 4
 
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
 
Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019Perth MuleSoft Meetup Feb 2019
Perth MuleSoft Meetup Feb 2019
 
MuleSoft Meetup Charlotte 2019
MuleSoft Meetup Charlotte  2019MuleSoft Meetup Charlotte  2019
MuleSoft Meetup Charlotte 2019
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker example
 
Migrating to mule 4 - Are you ready for This.
Migrating to mule 4 - Are you ready for This.Migrating to mule 4 - Are you ready for This.
Migrating to mule 4 - Are you ready for This.
 
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with JenkinsMuleSoft Clustring, Okta, CI/CD Integration with Jenkins
MuleSoft Clustring, Okta, CI/CD Integration with Jenkins
 
Virtual Meetup: Mule 4 Error Handling and Logging
Virtual Meetup: Mule 4 Error Handling and LoggingVirtual Meetup: Mule 4 Error Handling and Logging
Virtual Meetup: Mule 4 Error Handling and Logging
 

Similar to Mule 4 Meetup Recap: Introducing Event-Driven Architecture and DataWeave 2.0

Manila MuleSoft Meetup - September 2018
Manila MuleSoft Meetup - September 2018Manila MuleSoft Meetup - September 2018
Manila MuleSoft Meetup - September 2018Ryan Anthony Andal
 
Second Caracas MuleSoft Meetup Slides
Second Caracas MuleSoft Meetup SlidesSecond Caracas MuleSoft Meetup Slides
Second Caracas MuleSoft Meetup SlidesFernando Silva
 
Power of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EnginePower of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EngineManish Kumar Yadav
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019Subhash Patel
 
Meetup hyderabad mule-4.x
Meetup hyderabad mule-4.xMeetup hyderabad mule-4.x
Meetup hyderabad mule-4.xSantosh Ojha
 
MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020Ieva Navickaite
 
Connect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsConnect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsAaronLieberman5
 
Third Meetup Slides Mulesoft Mexico City
Third Meetup Slides Mulesoft Mexico CityThird Meetup Slides Mulesoft Mexico City
Third Meetup Slides Mulesoft Mexico CityAlan Muñoz Ochoa
 
MuleSoft Meetup Bangalore - March 6 2021
MuleSoft Meetup Bangalore - March 6 2021MuleSoft Meetup Bangalore - March 6 2021
MuleSoft Meetup Bangalore - March 6 2021Nagaraju K R
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsJulian Douch
 
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalMule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalSubhash Patel
 
Mulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay ThiruvananthapuramMulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay ThiruvananthapuramAnurag Dwivedi
 
MuleSoft Meetup 3 Charlotte Presentation Slides
MuleSoft Meetup 3 Charlotte Presentation SlidesMuleSoft Meetup 3 Charlotte Presentation Slides
MuleSoft Meetup 3 Charlotte Presentation SlidesSubhash Patel
 
West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6Francis Edwards
 
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter MuleSoft
 
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsHow to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsAaronLieberman5
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDKNavin Kare
 

Similar to Mule 4 Meetup Recap: Introducing Event-Driven Architecture and DataWeave 2.0 (20)

Manila MuleSoft Meetup - September 2018
Manila MuleSoft Meetup - September 2018Manila MuleSoft Meetup - September 2018
Manila MuleSoft Meetup - September 2018
 
Second Caracas MuleSoft Meetup Slides
Second Caracas MuleSoft Meetup SlidesSecond Caracas MuleSoft Meetup Slides
Second Caracas MuleSoft Meetup Slides
 
Power of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X EnginePower of Transformation with DataWeave 2.X Engine
Power of Transformation with DataWeave 2.X Engine
 
MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019MuleSoft Meetup Charlotte 2 - 2019
MuleSoft Meetup Charlotte 2 - 2019
 
Meetup hyderabad mule-4.x
Meetup hyderabad mule-4.xMeetup hyderabad mule-4.x
Meetup hyderabad mule-4.x
 
MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020MuleSoft Manchester Meetup #3 slides 31st March 2020
MuleSoft Manchester Meetup #3 slides 31st March 2020
 
Connect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom ConnectorsConnect the Dots: Logging and Custom Connectors
Connect the Dots: Logging and Custom Connectors
 
Third Meetup Slides Mulesoft Mexico City
Third Meetup Slides Mulesoft Mexico CityThird Meetup Slides Mulesoft Mexico City
Third Meetup Slides Mulesoft Mexico City
 
MuleSoft Meetup Bangalore - March 6 2021
MuleSoft Meetup Bangalore - March 6 2021MuleSoft Meetup Bangalore - March 6 2021
MuleSoft Meetup Bangalore - March 6 2021
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
 
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__finalMule soft meetup_virtual_ 3_charlotte_07july_2021__final
Mule soft meetup_virtual_ 3_charlotte_07july_2021__final
 
Mulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay ThiruvananthapuramMulesoft meetup 9thmay Thiruvananthapuram
Mulesoft meetup 9thmay Thiruvananthapuram
 
MuleSoft Meetup 3 Charlotte Presentation Slides
MuleSoft Meetup 3 Charlotte Presentation SlidesMuleSoft Meetup 3 Charlotte Presentation Slides
MuleSoft Meetup 3 Charlotte Presentation Slides
 
West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6West Yorkshire Mulesoft Meetup #6
West Yorkshire Mulesoft Meetup #6
 
MuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 JunMuleSoft São Paulo Meetup #3 - 18 Jun
MuleSoft São Paulo Meetup #3 - 18 Jun
 
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
Tips and Tricks for the Advanced Mule Developer with Tesla and Twitter
 
Mule soft dubai virtual meetup 27_apr
Mule soft dubai virtual meetup 27_aprMule soft dubai virtual meetup 27_apr
Mule soft dubai virtual meetup 27_apr
 
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom ConnectorsHow to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDK
 

More from Patryk Bandurski

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Warsaw MuleSoft Meetup #16 DF Tour.pptx
Warsaw MuleSoft Meetup #16 DF Tour.pptxWarsaw MuleSoft Meetup #16 DF Tour.pptx
Warsaw MuleSoft Meetup #16 DF Tour.pptxPatryk Bandurski
 
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101Patryk Bandurski
 
Marketing Cloud integration with MuleSoft
Marketing Cloud integration with MuleSoftMarketing Cloud integration with MuleSoft
Marketing Cloud integration with MuleSoftPatryk Bandurski
 
Warsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxWarsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxPatryk Bandurski
 
Warsaw MuleSoft Meetup #12 Effective Streaming
Warsaw MuleSoft Meetup #12 Effective StreamingWarsaw MuleSoft Meetup #12 Effective Streaming
Warsaw MuleSoft Meetup #12 Effective StreamingPatryk Bandurski
 
Warsaw muleSoft meetup #11 MuleSoft OData
Warsaw muleSoft meetup #11 MuleSoft ODataWarsaw muleSoft meetup #11 MuleSoft OData
Warsaw muleSoft meetup #11 MuleSoft ODataPatryk Bandurski
 
MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningPatryk Bandurski
 
Warsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforceWarsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforcePatryk Bandurski
 
MuleSoft Meetup Warsaw Group DataWeave 2.0
MuleSoft Meetup Warsaw Group DataWeave 2.0MuleSoft Meetup Warsaw Group DataWeave 2.0
MuleSoft Meetup Warsaw Group DataWeave 2.0Patryk Bandurski
 

More from Patryk Bandurski (11)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Warsaw MuleSoft Meetup #16 DF Tour.pptx
Warsaw MuleSoft Meetup #16 DF Tour.pptxWarsaw MuleSoft Meetup #16 DF Tour.pptx
Warsaw MuleSoft Meetup #16 DF Tour.pptx
 
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
Warsaw MuleSoft Meetup #15 - Hyperautomation with MuleSoft - Composer 101
 
Marketing Cloud integration with MuleSoft
Marketing Cloud integration with MuleSoftMarketing Cloud integration with MuleSoft
Marketing Cloud integration with MuleSoft
 
Warsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptxWarsaw MuleSoft Meetup #13.pptx
Warsaw MuleSoft Meetup #13.pptx
 
Warsaw MuleSoft Meetup #12 Effective Streaming
Warsaw MuleSoft Meetup #12 Effective StreamingWarsaw MuleSoft Meetup #12 Effective Streaming
Warsaw MuleSoft Meetup #12 Effective Streaming
 
Warsaw muleSoft meetup #11 MuleSoft OData
Warsaw muleSoft meetup #11 MuleSoft ODataWarsaw muleSoft meetup #11 MuleSoft OData
Warsaw muleSoft meetup #11 MuleSoft OData
 
MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API Versioning
 
Warsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforceWarsaw mulesoft meetup #9 mastering integration with salesforce
Warsaw mulesoft meetup #9 mastering integration with salesforce
 
MuleSoft JWT Demystified
MuleSoft JWT DemystifiedMuleSoft JWT Demystified
MuleSoft JWT Demystified
 
MuleSoft Meetup Warsaw Group DataWeave 2.0
MuleSoft Meetup Warsaw Group DataWeave 2.0MuleSoft Meetup Warsaw Group DataWeave 2.0
MuleSoft Meetup Warsaw Group DataWeave 2.0
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Mule 4 Meetup Recap: Introducing Event-Driven Architecture and DataWeave 2.0

  • 2. All contents © MuleSoft Inc. Our Partners 2
  • 3. All contents © MuleSoft Inc. Share 3 • Share the Meetup • Use Hashtags – #MuleMeetup – #WarsawMuleMeetup
  • 5. All contents © MuleSoft Inc. Agenda 5 6:00 PM Introductions 6:15 PM Topic 1 - Introducing Mule 4 7:00 PM Break 7:15 PM Topic 2 – Encryption Demo 8:00 PM What’s next and Q&A
  • 7. All contents © MuleSoft Inc. Organiser & Speaker 7 • Senior Integration Developer at PwC Poland • MuleSoft Meetup Leader for Warsaw, Poland • Recognized by MuleSoft as one of the top contributors in the MuleSoft Community • Doing Mule for over 7 years now
  • 8. All contents © MuleSoft Inc. Speaker 8 • Senior Integration Developer at PwC Poland • 10 years professional experience as a developer • 8 years professional experience in integration
  • 10. All contents © MuleSoft Inc. Mule Runtime Release Notes 10
  • 12. All contents © MuleSoft Inc. Anypoint Studio 7 12 • Only Mule 4 Runtime's are supported • All project are mavenized by default
  • 14. All contents © MuleSoft Inc. Mule Event Event-Driven Architecture 14 • Core information processed by the runtime • Immutable • New structure – Message payload – Message attributes – Variables
  • 15. All contents © MuleSoft Inc. Event Sources Event-Driven Architecture 15 • First component that receives triggering event • Create Mule Event object Event Processors • Processes the Mule Event • Returns new Mule Message • Available are: – Operations from connectors – Core components like router
  • 17. All contents © MuleSoft Inc. Mule 3 message Mule message 17 Mule 4 message
  • 18. All contents © MuleSoft Inc. Attributes Mule message 18 • New scope • Replaces inbound and outbound properties HTTP FTP JMS
  • 19. All contents © MuleSoft Inc. Mule 3 Mule message’s attributes 19 • Get query parameter ‚PIN’ #[message.inboudProperties.’http.query .params’.PIN] • Get header ‚X-User’ #[message.inboundProperties.’headers’. ’X-User’] Mule 4 • Get query parameter ‚PIN’ #[attributes.queryParams.PIN] • Get header ‚X-User’ #[attributes.headers.’X-User’]
  • 20. All contents © MuleSoft Inc. Outbound properties? 20 • Headers are set directly by developer • No implicit get from attributes • Dedicated forms in GUI • Set using DataWeave
  • 22. All contents © MuleSoft Inc. Introduction DataWeave 22 • Entirely replaces everything that MEL does • Default language • Syntax changes • Modularization • And many more … MEL MEL stands for Mule Expression Language
  • 23. All contents © MuleSoft Inc. Subtle changes DataWeave changes 23 • New version 2.0 • Every directive is written without % sign • Functions are now declares using fun keyword • Type names – Without : char – First upper case letter • as String • as Date as :string as String
  • 24. All contents © MuleSoft Inc. Operators DataWeave 24 • All operators are functions now sizeOf payload filter $.age > 30 sizeOf(filter(payload, (value) → value.age > 30))) sizeOf(payload filter $.age > 30)
  • 25. All contents © MuleSoft Inc. Conditional logic DataWeave changes 25 • If else and else if WHEN UNLESS OTHERWISE
  • 26. All contents © MuleSoft Inc. Modules DataWeave 26 • Functionality grouped within modules • Similar concept like with Java packages • Core functions are imported by default • We may create are own modules • Importing – import dw::core::Arrays – import * from dw::core::Arrays – import countBy, sumBy from dw::core::Arrays
  • 27. All contents © MuleSoft Inc. Java Module DataWeave 27 • Calling static Java methods • Import with java! prefix
  • 28. All contents © MuleSoft Inc. External scripts DataWeave 28 • Syntax ${file::filename} • Send script in dwl file through any XML tag that expects an epxression • When expression=”${file::extra-logic.dwl}”
  • 30. All contents © MuleSoft Inc. Mule 3 components Transformation components 30 • Transform one type into another • Needed before DataWeave transformation or routing logic • A lot ! Mule 4 components • Greatly reduced number of transformation components • Implicit casting
  • 31. All contents © MuleSoft Inc. Not working example Transformation in Mule 3 31 • Input – Type: json – Value: • Flow What will happen at line 4?
  • 32. All contents © MuleSoft Inc. What will happen at line 4? Transformation in Mule 3 32 1. An exception will be thrown 2. Payload.id will evalute to empty value 3. Payload.id will evaluate to value „a-k”
  • 33. All contents © MuleSoft Inc. What will happen at line 4? Transformation in Mule 3 33 1. An exception will be thrown 2. Payload.id will evalute to empty value 3. Payload.id will evaluate to value „a-k”
  • 34. All contents © MuleSoft Inc. Working example Transformation in Mule 3 34 • Inserted transformation at line 3 • Converts JSON byte input stream into an object • MEL, at line 4, is able to evaluate expression
  • 35. All contents © MuleSoft Inc. Working example Transformation in Mule 4 35 • Input – Type: json – Value
  • 37. All contents © MuleSoft Inc. Error object 37 • Accessible by using error keyword • Error introduce abstraction layer
  • 38. All contents © MuleSoft Inc. On Error Propagate Error Handling 38 • Re-throw the error On Error Continue • This strategy you can use when you want to handle an error and process further flow as if nothing has happened • Especially useful in Try-Catch scope
  • 39. All contents © MuleSoft Inc. Try-Catch scope Error Handling 39 • Error handling strategy in the middle of the flow • Encapsulate at least one event processor • There is no longer need to create a flow for specific error
  • 41. All contents © MuleSoft Inc. Modularization 41 • Connectors are modularized • Separated from Mule Server Runtime • Packaged in deployable archive • GUI support for adding modules – Quick find in Mule Palette – Adding by maven
  • 43. New way of using Secure Property Placeholder Security in Mule 4
  • 44. All contents © MuleSoft Inc. What new in secure placeholder 44 • New way to add secure placeholder into project using Exchange • New tool responsible for encryption / decryption process • New secure prefix required to use for secure placeholder • Ability to share security placeholder via domain project
  • 45. All contents © MuleSoft Inc. Demo walkthrough 45 • Create new application and simple flow with http input and logger • Create property file in yaml • Generate security key: – https://asecuritysite.com/encryption/keygen • Download secure-properties-tool: – https://docs.mulesoft.com/mule4-user-guide/v/4.1/secure-configuration-properties • Encrypt property file: – java -jar secure-properties-tool.jar file encrypt AES CBC key properties.yaml properties2.yaml • Add secure placeholder from Exchane • Configure secure placeholder and copy encrypted property file • Change logger: – DB Login: ${secure::database.login} Password: ${secure::database.password}
  • 46. All contents © MuleSoft Inc. Demo walkthrough 46 • Create new domain project • Add domain to mule project • Move secure placeholder dependency to domain pom.xml • Add empty property configuration • Move properties.yaml do domain project
  • 47. All contents © MuleSoft Inc. Tricky question 47 We would like to use secure property placeholder to read property that is not encrypted. What is the correct sentence if we assume that the key name is key1: 1. It is not possible to use secure property to read unencrypted data 2. We can do this using ${key1} syntax because of unencrypted value 3. We need to use 'secure' prefix to read unencrypted data, ${secure::key1} 4. Botha 2 and 3 are correct
  • 48. All contents © MuleSoft Inc. Tricky question’s answer 48 We would like to use secure property placeholder to read property that is not encrypted. What is the correct sentence if we assume that the key name is key1: 1. It is not possible to use secure property to read unencrypted data 2. We can do this using ${key1} syntax because of unencrypted value 3. We need to use 'secure' prefix to read unencrypted data, ${secure::key1} 4. Botha 2 and 3 are correct
  • 49. All contents © MuleSoft Inc. DataWeave question 49 We have a java class MuleMeetup in com.mulesoft.meetup package. How can I import it within DataWeave 1. It is not possible to import java class in DataWeave 2. Import com::mulesoft::meetup::MuleMeetup 3. Import java!com.mule.mulesoft.meetup.MuleMeetup 4. Import java!com::mule::mulesoft::meetup::MuleMeetup
  • 50. All contents © MuleSoft Inc. DataWeave question 50 We have a java class MuleMeetup in com.mulesoft.meetup package. How can I import it within DataWeave 1. It is not possible to import java class in DataWeave 2. Import com::mulesoft::meetup::MuleMeetup 3. Import java!com.mule.mulesoft.meetup.MuleMeetup 4. Import java!com::mule::mulesoft::meetup::MuleMeetup
  • 51. All contents © MuleSoft Inc. DataWeave question 51 We have a java class MuleMeetup with static function open(String welcom). How we can invoke this function in DataWeave? The class is import like below Import java!com.mulesoft.MuleMeetup 1. MuleMeetup.open(„Welcome”) 2. MuleMeetup:open(„Welcome”) 3. MuleMeetup::open(„Welcome”) 4. MuleMeetup::open „Welcome”
  • 52. All contents © MuleSoft Inc. DataWeave question 52 We have a java class MuleMeetup with static function open(String welcom). How we can invoke this function in DataWeave? The class is import like below Import java!com::mulesoft::MuleMeetup 1. MuleMeetup.open(„Welcome”) 2. MuleMeetup:open(„Welcome”) 3. MuleMeetup::open(„Welcome”) 4. MuleMeetup::open „Welcome”
  • 54. All contents © MuleSoft Inc. What’s next 54 • Feedback: – Contact your organizer Patryk Bandurski to suggest topics – Contact MuleSoft at meetup@mulesoft.com for ways to improve the program • Our next meetup: – Date: January 2019 – Location: PwC Poland – Topic: DataWeave 2.0
  • 55. All contents © MuleSoft Inc. What’s next 55 Invite your network to join – https://meetups.mulesoft.com/warsaw/
  • 56. See you next time Please send topic suggestions to the organizer