diff and merge with ease: emf compare
DESCRIPTION
TRANSCRIPT
E M F C O M PA R ED I F F A N D M E R G E W I T H E A S E
Mikaël Barbero Obeo
October 30th, 2013 Eclipse Con Europe
© Csilla Zelko http://500px.com/photo/37091940
E M F C O M PA R ED I F F A N D M E R G E W I T H E A S E
Mikaël Barbero Obeo
October 30th, 2013 Eclipse Con Europe
© Csilla Zelko http://500px.com/photo/37091940
E M F C O M PA R ED I F F A N D M E R G E W I T H E A S E
Mikaël Barbero Obeo
October 30th, 2013 Eclipse Con Europe
E M F C O M PA R ED I F F A N D M E R G E W I T H E A S E
Mikaël Barbero Obeo
October 30th, 2013 Eclipse Con Europe
© David Cornejo http://500px.com/photo/1683454
I T I S P R E C I S E LY W H AT W E W I L L N O T TA L K A B O U T
Who know what is EMF?
© David Cornejo http://500px.com/photo/1683454
D I F F E R E N C E S
I T I S A L L A B O U T
© Adrian Limani http://500px.com/photo/18438151
B I R D V I E WE M F C O M PA R E
E M F M O D E L 1
E M F M O D E L 2
B I R D V I E WE M F C O M PA R E
E M F M O D E L 1
E M F M O D E L 2
B I R D V I E WE M F C O M PA R E
E M F M O D E L 1
E M F M O D E L 2
C O M PA R I S O N
B I R D V I E WE M F C O M PA R E
E M F M O D E L 1
E M F M O D E L 2
C O M PA R I S O N M E R G E D M O D E L
B I R D V I E WE M F C O M PA R E
E M F M O D E L 1
E M F M O D E L 2 C O M PA R I S O N M E R G E D
M O D E L
E M F M O D E L 3
E C L I P S E T E A M P R O V I D E R S
I N T E G R A T E D W I T H
TA G L I N E
If you can inject your data within EMF, !
EMF Compare will diff and merge it for free
I N D E X
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
<? XML ?>
< ? T R O U B L E ? >
<? XML ?>
D O M M O D E L
<?xml version="1.0"?> <project name="guice"> <target name="jar" depends="manifest"> <jar jarfile="guice-${version}.jar"> <zipfileset src="${build.dir}/deps.jar"/> </jar> </target> </project>
D O M M O D E L
<?xml version="1.0"?> <project name="guice"> <target name="jar" depends="manifest"> <jar jarfile="guice-${version}.jar"> <zipfileset src="${build.dir}/deps.jar"/> </jar> </target> </project>
D O C U M E N T
E L E M E N T N A M E
AT T R I B U T E N A M E VA L U E
S H O W T I M E3 … 2 … 1 …
© Christoph Ruhland http://500px.com/photo/1145370
<?xml version="1.0"?> <project name="guice"> <target name="jar" depends="manifest"> <jar jarfile="guice-${version}.jar"> <zipfileset src="${build.dir}/deps.jar"/> </jar> </target> </project>
A N T M O D E L
<?xml version="1.0"?> <project name="guice"> <target name="jar" depends="manifest"> <jar jarfile="guice-${version}.jar"> <zipfileset src="${build.dir}/deps.jar"/> </jar> </target> </project>
A N T M O D E L
P R O J E C T
TA R G E T N A M E
J A R D I R E C T I V E
D E P E N D S
<?xml version="1.0"?> <project name="guice"> <target name="jar" depends="manifest"> <jar jarfile="guice-${version}.jar"> <zipfileset src="${build.dir}/deps.jar"/> </jar> </target> </project>
A N T M O D E L
P R O J E C T
TA R G E T N A M E
J A R D I R E C T I V E
D E P E N D S
…
S H O W T I M E3 … 2 … 1 …
© Christoph Ruhland http://500px.com/photo/1145370
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Condehttp://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Condehttp://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
C H A N G E R E S T R I C T I O N I M PA C T
A D D A P I M E T H O D
I F N O T I M P L E M E N T E D B Y C L I E N T
B I N A R Y C O M PAT I B L E
I F I M P L E M E N T E D B Y C L I E N T
B R E A K S C O M PAT I B I L I T Y
D E L E T E A P I M E T H O D — B R E A K S C O M PAT I B I L I T Y
M O V E A P I M E T H O D U P T Y P E H I E R A R C H Y
I F M E T H O D I N S U P E R T Y P E N E E D N O T B E I M P L E M E N T E D B Y
C L I E N TB I N A R Y C O M PAT I B L E
I F M E T H O D I N S U P E R T Y P E M U S T B E I M P L E M E N T E D B Y C L I E N T B R E A K S C O M PAT I B I L I T Y
http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs
E V O LV I N G A P I I N T E R FA C E SR U L E S F O R
T E A R D O W NC O M PA R I S O N M O D E L
C O M PA R I S O N
T E A R D O W NC O M PA R I S O N M O D E L
C O M PA R I S O N
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
C O M PA R I S O N
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
E R E F E R E N C E ( F R O M E C O R E )
C O M PA R I S O N
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
E R E F E R E N C E ( F R O M E C O R E )
E O B J E C T ( F R O M E C O R E )
C O M PA R I S O N
AT T R I B U T E C H A N G E
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
E R E F E R E N C E ( F R O M E C O R E )
E O B J E C T ( F R O M E C O R E )
C O M PA R I S O N
AT T R I B U T E C H A N G E
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
E AT T R I B U T E ( F R O M E C O R E )
E R E F E R E N C E ( F R O M E C O R E )
E O B J E C T ( F R O M E C O R E )
C O M PA R I S O N
AT T R I B U T E C H A N G E
R E F E R E N C E C H A N G E
T E A R D O W NC O M PA R I S O N M O D E L
E AT T R I B U T E ( F R O M E C O R E )
E R E F E R E N C E ( F R O M E C O R E )
E J AVA O B J E C T ( F R O M E C O R E )
E O B J E C T ( F R O M E C O R E )
S H O W T I M E3 … 2 … 1 …
© Christoph Ruhland http://500px.com/photo/1145370
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
Incremental Transformation
© Ryan Photographyhttp://500px.com/photo/33582547
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L A 1
M O D E L B 0
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L A 1
M O D E L B 0
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L A 1
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L A 1
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L A 1
C O M PA R I S O N
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0
M O D E L B 0
M O D E L A 1
C O M PA R I S O N
S H O W T I M E3 … 2 … 1 …
© Christoph Ruhland http://500px.com/photo/1145370
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
I N C R E M E N TA L T R A N S F O R M AT I O N
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
E M F C O M PA R E
I N C R E M E N TA L T R A N S F O R M AT I O NP R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
I N C R E M E N TA L T R A N S F O R M AT I O N
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
I N C R E M E N TA L T R A N S F O R M AT I O N
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
I N C R E M E N TA L T R A N S F O R M AT I O N
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
I N C R E M E N TA L T R A N S F O R M AT I O N
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
M O D E L B 3
I N C R E M E N TA L T R A N S F O R M AT I O N
E M F C O M PA R E
P R I N C I P L E S O F
M O D E L A 0 M O D E L B 0
M O D E L A 1 M O D E L B 1
M O D E L B 2
M O D E L B 3
I N C R E M E N TA L T R A N S F O R M AT I O N
S H O W T I M E3 … 2 … 1 …
© Christoph Ruhland http://500px.com/photo/1145370
I N D E X
Structured Data Comparison
© Joe @Plasmaticohttp://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Condehttp://500px.com/photo/42703584
Incremental Transformation
© Ryan Photographyhttp://500px.com/photo/33582547
I N D E X
Structured Data Comparison
© Joe @Plasmatico http://500px.com/photo/38068154
Java API Evolution
© Guille Massagué Conde http://500px.com/photo/42703584
Incremental Transformation
© Ryan Photography http://500px.com/photo/33582547
G R A P H I C A L C O M PA R I S O N
« One more thing! »
• Infinite potential for delta computation
• EMF Compare will diff and merge any EMF data for free
• Default UI with tremendous extension capabilities
W H AT Y O U S H O U L D R E M E M B E R
© Braeden Petruk http://500px.com/photo/23711467
H T T P : / / W W W. E C L I P S E . O R G / E M F / C O M PA R E /
EMF Compare
L E AV E F E E D B A C KP L E A S E
S I G N I N W W W. E C L I P S E C O N . O R G
S E L E C T S E S S I O N E VA L U AT E
V O T E + 1 , 0 , O R - 1
© Denis Dervisevic http://www.flickr.com/photos/denisdervisevic/4745520501/
MIKAËL BARBERO [email protected] +Mikaël Barbero @mikbarbero
OBEO http://www.obeo.fr