jTransfo lightning talk

Joachim Van der Auwera
Joachim Van der AuweraSoftware Developer / Architect at PROGS
Convert transfer ↔ domain objects

● Easy to use
● No dependencies

● Annotation based

● Many transfer objects – one domain object



●   Integration
    ● Spring Framework

    ● Joda-time
Easy conversion
JTransfo jTransfo = new JTransfoImpl();
SomeDomainClass domainObject = (SomeDomainClass) 
        jTransfo.convert(transferObject);

Or

SomeDomainClass domainObject = new    
        SomeDomainClass();
jTransfo.convert(transferObject, domainObject);

Or

jTransfo.convertTo(transferObject,   
    SomeDomainClass.class);
Annotations on transfer object
@Data
@DomainClass("pkg.Person")
public class PersonTo {

    private String name;

    @MappedBy(field = “country”, path = “addr”)
    private String addrCountry;

    @MappedBy(readOnly = true)
    private String gender;

    @NotMapped
    private String globaalNummer;
}
Type conversion, lists


@MappedBy(typeConverter = "filterToList")
private List<FilterTo> filters;

@MappedBy(typeConverter = "readOnlyDomain")
private LayerTo layer;
Type conversion, spring
<import resource= 
"classpath:org/jtransfo/spring/jTransfoContext.xml" />



<bean 
class="org.jtransfo.ReadOnlyDomainTypeConverter" />

<bean 
class="org.jtransfo.ReadOnlyDomainListTypeConverter"
>
    <constructor­arg value="filterToList" />
    <constructor­arg value="pkg.FilterTo" />
    <property name="sortList" value="true" />
</bean>
ORM link, Object finder


● Automatically build new / linked object
  ● Find in Hibernate maybe

● Always consistent



●   Use ReadOnlyDomain to either update links
    only or linked object contents as well
www.jtransfo.org

https://github.com/joachimvda/jtransfo

            @joachimvda
1 of 7

Recommended

Kotlin workshop 2018-06-11 by
Kotlin workshop 2018-06-11Kotlin workshop 2018-06-11
Kotlin workshop 2018-06-11Åsa Pehrsson
38 views18 slides
Memory management by
Memory managementMemory management
Memory managementKuban Dzhakipov
725 views27 slides
Javascript Execution Context Flow by
Javascript Execution Context FlowJavascript Execution Context Flow
Javascript Execution Context Flowkang taehun
113 views18 slides
Atmosphere 2014: Centralized log management based on Logstash and Kibana - ca... by
Atmosphere 2014: Centralized log management based on Logstash and Kibana - ca...Atmosphere 2014: Centralized log management based on Logstash and Kibana - ca...
Atmosphere 2014: Centralized log management based on Logstash and Kibana - ca...PROIDEA
1.7K views31 slides
Stream Processing in the Cloud - Athens Kubernetes Meetup 16.07.2019 by
Stream Processing in the Cloud - Athens Kubernetes Meetup 16.07.2019Stream Processing in the Cloud - Athens Kubernetes Meetup 16.07.2019
Stream Processing in the Cloud - Athens Kubernetes Meetup 16.07.2019Rafał Leszko
138 views62 slides
Log* with Cassandra by
Log* with CassandraLog* with Cassandra
Log* with CassandraNaveenkumar Muguda
237 views14 slides

More Related Content

Viewers also liked

Mapping Problem Domain Objects to Object-Persistence Formats(OOAD) by
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Meenakshi Devi
3.4K views21 slides
Modularity and Domain Driven Design; a killer combination? by
Modularity and Domain Driven Design; a killer combination?Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?ACA IT-Solutions
5.8K views41 slides
Applying Object Composition to Build Rich Domain Models by
Applying Object Composition to Build Rich Domain ModelsApplying Object Composition to Build Rich Domain Models
Applying Object Composition to Build Rich Domain ModelsPostSharp Technologies
780 views70 slides
ZendCon 2011 UnCon Domain-Driven Design by
ZendCon 2011 UnCon Domain-Driven DesignZendCon 2011 UnCon Domain-Driven Design
ZendCon 2011 UnCon Domain-Driven DesignBradley Holt
2.6K views63 slides
Success by Challenging Assumptions (Part I) by
Success by Challenging Assumptions (Part I)Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)LaDonna Coy
1.5K views56 slides
Domain driven design in a nutshell by
Domain driven design in a nutshellDomain driven design in a nutshell
Domain driven design in a nutshellToni Esteves
3.9K views29 slides

Viewers also liked(20)

Mapping Problem Domain Objects to Object-Persistence Formats(OOAD) by Meenakshi Devi
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Meenakshi Devi3.4K views
Modularity and Domain Driven Design; a killer combination? by ACA IT-Solutions
Modularity and Domain Driven Design; a killer combination?Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?
ACA IT-Solutions5.8K views
ZendCon 2011 UnCon Domain-Driven Design by Bradley Holt
ZendCon 2011 UnCon Domain-Driven DesignZendCon 2011 UnCon Domain-Driven Design
ZendCon 2011 UnCon Domain-Driven Design
Bradley Holt2.6K views
Success by Challenging Assumptions (Part I) by LaDonna Coy
Success by Challenging Assumptions (Part I)Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)
LaDonna Coy1.5K views
Domain driven design in a nutshell by Toni Esteves
Domain driven design in a nutshellDomain driven design in a nutshell
Domain driven design in a nutshell
Toni Esteves3.9K views
Domain State model OOAD by Raghu Kumar
Domain State model  OOADDomain State model  OOAD
Domain State model OOAD
Raghu Kumar10.5K views
Domain Driven Design by Ryan Riley
Domain Driven DesignDomain Driven Design
Domain Driven Design
Ryan Riley9.8K views
Domain Driven Design and Hexagonal Architecture with Rails by Declan Whelan
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with Rails
Declan Whelan8.7K views
Refactoring for Domain Driven Design by David Berliner
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
David Berliner9.1K views
Why Domain-Driven Design Matters by Mathias Verraes
Why Domain-Driven Design MattersWhy Domain-Driven Design Matters
Why Domain-Driven Design Matters
Mathias Verraes10.6K views
Domain-Driven Design with ASP.NET MVC by Steven Smith
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
Steven Smith20.6K views
Domain Driven Design (DDD) by Tom Kocjan
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
Tom Kocjan13.3K views
Implementing DDD with C# by Pascal Laurin
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin36.3K views
A Practical Guide to Domain Driven Design: Presentation Slides by thinkddd
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd11.4K views

Similar to jTransfo lightning talk

Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions" by
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"LogeekNightUkraine
77 views23 slides
FluentDom by
FluentDomFluentDom
FluentDomThomas Weinert
734 views18 slides
RealmDB for Android by
RealmDB for AndroidRealmDB for Android
RealmDB for AndroidGlobalLogic Ukraine
2K views53 slides
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET... by
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...Cloudera, Inc.
1K views29 slides
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication by
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationIQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationTed Leung
796 views115 slides
Let's talk about NoSQL Standard by
Let's talk about NoSQL StandardLet's talk about NoSQL Standard
Let's talk about NoSQL StandardOtávio Santana
2.6K views42 slides

Similar to jTransfo lightning talk(10)

Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions" by LogeekNightUkraine
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET... by Cloudera, Inc.
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...
Cloudera Sessions - Clinic 3 - Advanced Steps - Fast-track Development for ET...
Cloudera, Inc.1K views
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication by Ted Leung
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic CommunicationIQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
IQPC Canada XML 2001: How to Use XML Parsing to Enhance Electronic Communication
Ted Leung796 views
Let's talk about NoSQL Standard by Otávio Santana
Let's talk about NoSQL StandardLet's talk about NoSQL Standard
Let's talk about NoSQL Standard
Otávio Santana2.6K views
Let's talk about NoSQL Standard by Otavio Santana
Let's talk about NoSQL StandardLet's talk about NoSQL Standard
Let's talk about NoSQL Standard
Otavio Santana74 views
Dn d clipboard by pinnamur
Dn d clipboardDn d clipboard
Dn d clipboard
pinnamur1 view
Dn d clipboard by pinnamur
Dn d clipboardDn d clipboard
Dn d clipboard
pinnamur451 views
Dn d clipboard by pinnamur
Dn d clipboardDn d clipboard
Dn d clipboard
pinnamur803 views

More from Joachim Van der Auwera

Java zone ASVS 2015 by
Java zone ASVS 2015Java zone ASVS 2015
Java zone ASVS 2015Joachim Van der Auwera
752 views22 slides
jTransfo quickie at JavaZone 2015 by
jTransfo quickie at JavaZone 2015jTransfo quickie at JavaZone 2015
jTransfo quickie at JavaZone 2015Joachim Van der Auwera
514 views18 slides
Simple run-time profiling quickie devoxx14 by
Simple run-time profiling quickie devoxx14Simple run-time profiling quickie devoxx14
Simple run-time profiling quickie devoxx14Joachim Van der Auwera
877 views17 slides
Overview of Geomajas plug-ins and faces by
Overview of Geomajas plug-ins and facesOverview of Geomajas plug-ins and faces
Overview of Geomajas plug-ins and facesJoachim Van der Auwera
1.7K views34 slides
Geomajas introduction, BeJUG, March 2012 by
Geomajas introduction, BeJUG, March 2012Geomajas introduction, BeJUG, March 2012
Geomajas introduction, BeJUG, March 2012Joachim Van der Auwera
777 views10 slides
Mapping, GIS and geolocating data in Java @ JAX London by
Mapping, GIS and geolocating data in Java @ JAX LondonMapping, GIS and geolocating data in Java @ JAX London
Mapping, GIS and geolocating data in Java @ JAX LondonJoachim Van der Auwera
1K views61 slides

Recently uploaded

ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
35 views49 slides
State of the Union - Rohit Yadav - Apache CloudStack by
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStackShapeBlue
303 views53 slides
The Power of Heat Decarbonisation Plans in the Built Environment by
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built EnvironmentIES VE
84 views20 slides
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
265 views23 slides
Qualifying SaaS, IaaS.pptx by
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1.1K views8 slides
Cencora Executive Symposium by
Cencora Executive SymposiumCencora Executive Symposium
Cencora Executive Symposiummarketingcommunicati21
160 views14 slides

Recently uploaded(20)

ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue303 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue162 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue196 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 views
LLMs in Production: Tooling, Process, and Team Structure by Aggregage
LLMs in Production: Tooling, Process, and Team StructureLLMs in Production: Tooling, Process, and Team Structure
LLMs in Production: Tooling, Process, and Team Structure
Aggregage57 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue152 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays36 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue139 views
Transcript: Redefining the book supply chain: A glimpse into the future - Tec... by BookNet Canada
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
BookNet Canada41 views

jTransfo lightning talk