SlideShare a Scribd company logo
OW2 UTILITIES
 The Swiss Army Knife Of OW2 Projects
           Guillaume Sauthier




OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris
                      www.ow2.org                                1
OW2 Utilities
       Because
 code
 should
 be
 written
 only
 once
             Because
 code
 should
 be
 well
 tested
                                                   Because
 code
 should
 be
 shared

OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris
                      www.ow2.org                                                                                                                                                                                                                  2
Genesis
                                              How

More Related Content

What's hot

Code generation for alternative languages
Code generation for alternative languagesCode generation for alternative languages
Code generation for alternative languages
Rafael Winterhalter
 
Java Annotation Processing: A Beginner Walkthrough
Java Annotation Processing: A Beginner WalkthroughJava Annotation Processing: A Beginner Walkthrough
Java Annotation Processing: A Beginner Walkthrough
Mahfuz Islam Bhuiyan
 
Garbage
GarbageGarbage
Garbage
minhngoc233
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
Christopher Frohoff
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java Programmers
Enno Runne
 
Java 10, Java 11 and beyond
Java 10, Java 11 and beyondJava 10, Java 11 and beyond
Java 10, Java 11 and beyond
Rafael Winterhalter
 
Invokedynamic / JSR-292
Invokedynamic / JSR-292Invokedynamic / JSR-292
Invokedynamic / JSR-292
ytoshima
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
Rafael Winterhalter
 
Getting started with Java 9 modules
Getting started with Java 9 modulesGetting started with Java 9 modules
Getting started with Java 9 modules
Rafael Winterhalter
 
iPhone dev intro
iPhone dev introiPhone dev intro
iPhone dev intro
Vonbo
 
Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code Examples
Naresh Chintalcheru
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
denis Udod
 

What's hot (12)

Code generation for alternative languages
Code generation for alternative languagesCode generation for alternative languages
Code generation for alternative languages
 
Java Annotation Processing: A Beginner Walkthrough
Java Annotation Processing: A Beginner WalkthroughJava Annotation Processing: A Beginner Walkthrough
Java Annotation Processing: A Beginner Walkthrough
 
Garbage
GarbageGarbage
Garbage
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java Programmers
 
Java 10, Java 11 and beyond
Java 10, Java 11 and beyondJava 10, Java 11 and beyond
Java 10, Java 11 and beyond
 
Invokedynamic / JSR-292
Invokedynamic / JSR-292Invokedynamic / JSR-292
Invokedynamic / JSR-292
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
 
Getting started with Java 9 modules
Getting started with Java 9 modulesGetting started with Java 9 modules
Getting started with Java 9 modules
 
iPhone dev intro
iPhone dev introiPhone dev intro
iPhone dev intro
 
Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code Examples
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
 

Viewers also liked

Leverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnASLeverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnAS
Guillaume Sauthier
 
OUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi UbiquityOUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi Ubiquity
Guillaume Sauthier
 
JO2nAS Collaboration
JO2nAS CollaborationJO2nAS Collaboration
JO2nAS Collaboration
Guillaume Sauthier
 
Peergreen Platform Overview
Peergreen Platform OverviewPeergreen Platform Overview
Peergreen Platform Overview
Guillaume Sauthier
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
Guillaume Sauthier
 
EclipseCon FR : Ignite talks, OSGi Resolver in action
EclipseCon FR : Ignite talks, OSGi Resolver in actionEclipseCon FR : Ignite talks, OSGi Resolver in action
EclipseCon FR : Ignite talks, OSGi Resolver in action
Guillaume Sauthier
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart Client
Guillaume Sauthier
 
#4 Applications Convergentes JavaEE/OSGi
#4 Applications Convergentes JavaEE/OSGi#4 Applications Convergentes JavaEE/OSGi
#4 Applications Convergentes JavaEE/OSGi
Guillaume Sauthier
 
OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
Guillaume Sauthier
 

Viewers also liked (9)

Leverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnASLeverage OSGi in business application with JOnAS
Leverage OSGi in business application with JOnAS
 
OUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi UbiquityOUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi Ubiquity
 
JO2nAS Collaboration
JO2nAS CollaborationJO2nAS Collaboration
JO2nAS Collaboration
 
Peergreen Platform Overview
Peergreen Platform OverviewPeergreen Platform Overview
Peergreen Platform Overview
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 
EclipseCon FR : Ignite talks, OSGi Resolver in action
EclipseCon FR : Ignite talks, OSGi Resolver in actionEclipseCon FR : Ignite talks, OSGi Resolver in action
EclipseCon FR : Ignite talks, OSGi Resolver in action
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart Client
 
#4 Applications Convergentes JavaEE/OSGi
#4 Applications Convergentes JavaEE/OSGi#4 Applications Convergentes JavaEE/OSGi
#4 Applications Convergentes JavaEE/OSGi
 
OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
 

Similar to Ow2 Utilities - The Swiss Army Knife Of Ow2 Projects

Ow2 Utilities, OW2con'12, Paris
Ow2 Utilities, OW2con'12, ParisOw2 Utilities, OW2con'12, Paris
Ow2 Utilities, OW2con'12, Paris
OW2
 
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
Jorge Hidalgo
 
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
Jorge Hidalgo
 
Write code that writes code!
Write code that writes code!Write code that writes code!
Write code that writes code!
Jason Feinstein
 
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
DroidConTLV
 
Annotations Processor Tools (APT)
Annotations Processor Tools (APT)Annotations Processor Tools (APT)
Annotations Processor Tools (APT)
Txus Ballesteros Martín
 
Aspect oriented programming_with_spring
Aspect oriented programming_with_springAspect oriented programming_with_spring
Aspect oriented programming_with_spring
Guo Albert
 
Scala Introduction
Scala IntroductionScala Introduction
Scala Introduction
Adrian Spender
 
20100730 phpstudy
20100730 phpstudy20100730 phpstudy
20100730 phpstudy
Yusuke Ando
 
XML SAX PARSING
XML SAX PARSING XML SAX PARSING
XML SAX PARSING
Eviatar Levy
 
What Makes Objective C Dynamic?
What Makes Objective C Dynamic?What Makes Objective C Dynamic?
What Makes Objective C Dynamic?
Kyle Oba
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
SIGHUP
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
Jarrod Overson
 
Code transformation With Spoon
Code transformation With SpoonCode transformation With Spoon
Code transformation With Spoon
Gérard Paligot
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
Manish Pandit
 
55 New Features in Java 7
55 New Features in Java 755 New Features in Java 7
55 New Features in Java 7
Boulder Java User's Group
 
Java Course 4: Exceptions & Collections
Java Course 4: Exceptions & CollectionsJava Course 4: Exceptions & Collections
Java Course 4: Exceptions & Collections
Anton Keks
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
ICSM 2011
 
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
Coen De Roover
 
2 P Seminar
2 P Seminar2 P Seminar
2 P Seminar
Linkiby Belarus
 

Similar to Ow2 Utilities - The Swiss Army Knife Of Ow2 Projects (20)

Ow2 Utilities, OW2con'12, Paris
Ow2 Utilities, OW2con'12, ParisOw2 Utilities, OW2con'12, Paris
Ow2 Utilities, OW2con'12, Paris
 
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
JavaOne 2014 - CON2013 - Code Generation in the Java Compiler: Annotation Pro...
 
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
JavaOne 2017 CON3282 - Code Generation with Annotation Processors: State of t...
 
Write code that writes code!
Write code that writes code!Write code that writes code!
Write code that writes code!
 
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...Write code that writes code! A beginner's guide to Annotation Processing - Ja...
Write code that writes code! A beginner's guide to Annotation Processing - Ja...
 
Annotations Processor Tools (APT)
Annotations Processor Tools (APT)Annotations Processor Tools (APT)
Annotations Processor Tools (APT)
 
Aspect oriented programming_with_spring
Aspect oriented programming_with_springAspect oriented programming_with_spring
Aspect oriented programming_with_spring
 
Scala Introduction
Scala IntroductionScala Introduction
Scala Introduction
 
20100730 phpstudy
20100730 phpstudy20100730 phpstudy
20100730 phpstudy
 
XML SAX PARSING
XML SAX PARSING XML SAX PARSING
XML SAX PARSING
 
What Makes Objective C Dynamic?
What Makes Objective C Dynamic?What Makes Objective C Dynamic?
What Makes Objective C Dynamic?
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
 
Code transformation With Spoon
Code transformation With SpoonCode transformation With Spoon
Code transformation With Spoon
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
 
55 New Features in Java 7
55 New Features in Java 755 New Features in Java 7
55 New Features in Java 7
 
Java Course 4: Exceptions & Collections
Java Course 4: Exceptions & CollectionsJava Course 4: Exceptions & Collections
Java Course 4: Exceptions & Collections
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
 
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
 
2 P Seminar
2 P Seminar2 P Seminar
2 P Seminar
 

More from Guillaume Sauthier

Data Privacy, reprenez le contrôle
Data Privacy, reprenez le contrôleData Privacy, reprenez le contrôle
Data Privacy, reprenez le contrôle
Guillaume Sauthier
 
La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0
Guillaume Sauthier
 
#7 Migration
#7 Migration#7 Migration
#7 Migration
Guillaume Sauthier
 
#6 Outils De Developpement
#6 Outils De Developpement#6 Outils De Developpement
#6 Outils De Developpement
Guillaume Sauthier
 
#3 Nouveautes Deploiement Demarrage
#3 Nouveautes Deploiement Demarrage#3 Nouveautes Deploiement Demarrage
#3 Nouveautes Deploiement Demarrage
Guillaume Sauthier
 
#0 Accueil
#0 Accueil#0 Accueil
#0 Accueil
Guillaume Sauthier
 
#2 Architecture OSGi
#2 Architecture OSGi#2 Architecture OSGi
#2 Architecture OSGi
Guillaume Sauthier
 
#11 Introduction JASMINe
#11 Introduction JASMINe#11 Introduction JASMINe
#11 Introduction JASMINe
Guillaume Sauthier
 
#8 Tour des Consoles d'Administration
#8 Tour des Consoles d'Administration#8 Tour des Consoles d'Administration
#8 Tour des Consoles d'Administration
Guillaume Sauthier
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
Guillaume Sauthier
 
#1 Introduction
#1 Introduction#1 Introduction
#1 Introduction
Guillaume Sauthier
 
#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT
Guillaume Sauthier
 
OW2 Shelbie TC Presentation
OW2 Shelbie TC PresentationOW2 Shelbie TC Presentation
OW2 Shelbie TC Presentation
Guillaume Sauthier
 
JOnAS 5.1 Application Server Profiles
JOnAS 5.1 Application Server ProfilesJOnAS 5.1 Application Server Profiles
JOnAS 5.1 Application Server Profiles
Guillaume Sauthier
 

More from Guillaume Sauthier (14)

Data Privacy, reprenez le contrôle
Data Privacy, reprenez le contrôleData Privacy, reprenez le contrôle
Data Privacy, reprenez le contrôle
 
La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0La Grande Famille OAuth 2.0
La Grande Famille OAuth 2.0
 
#7 Migration
#7 Migration#7 Migration
#7 Migration
 
#6 Outils De Developpement
#6 Outils De Developpement#6 Outils De Developpement
#6 Outils De Developpement
 
#3 Nouveautes Deploiement Demarrage
#3 Nouveautes Deploiement Demarrage#3 Nouveautes Deploiement Demarrage
#3 Nouveautes Deploiement Demarrage
 
#0 Accueil
#0 Accueil#0 Accueil
#0 Accueil
 
#2 Architecture OSGi
#2 Architecture OSGi#2 Architecture OSGi
#2 Architecture OSGi
 
#11 Introduction JASMINe
#11 Introduction JASMINe#11 Introduction JASMINe
#11 Introduction JASMINe
 
#8 Tour des Consoles d'Administration
#8 Tour des Consoles d'Administration#8 Tour des Consoles d'Administration
#8 Tour des Consoles d'Administration
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
 
#1 Introduction
#1 Introduction#1 Introduction
#1 Introduction
 
#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT#12 et #13 Versioning et JaDOrT
#12 et #13 Versioning et JaDOrT
 
OW2 Shelbie TC Presentation
OW2 Shelbie TC PresentationOW2 Shelbie TC Presentation
OW2 Shelbie TC Presentation
 
JOnAS 5.1 Application Server Profiles
JOnAS 5.1 Application Server ProfilesJOnAS 5.1 Application Server Profiles
JOnAS 5.1 Application Server Profiles
 

Recently uploaded

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 

Recently uploaded (20)

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 

Ow2 Utilities - The Swiss Army Knife Of Ow2 Projects

  • 1. OW2 UTILITIES The Swiss Army Knife Of OW2 Projects Guillaume Sauthier OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 1
  • 2. OW2 Utilities Because
  • 8.  once Because
  • 11.  be
  • 13.  tested Because
  • 16.  be
  • 17.  shared OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 2
  • 18. Genesis How
  • 19.  did
  • 20.  we
  • 21.  get
  • 23.  ? OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 3
  • 24. A LITTLE BIT OF HISTORY • Was born in 2006 inside the OW2 EasyBeans project • Used in JOnAS, CAROL, CMI, EasyBeans, Shelbie, JASMINe for years • Extracted as a separate maven project in 2008 • More than 35 releases up to today ! • Proposed as top level OW2 project in 2012 • We’re here now :) OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 4
  • 25. Modules 15
  • 27.  is
  • 28.  so
  • 30.  and
  • 31.  we
  • 33.  so
  • 35.  modules OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 5
  • 37.  to
  • 38.  be
  • 39.  mentioned • I18n and Logger • Simple Java/Xml mapper (read your Xml configuration files) • Internationalized loggers, Java 5 style • Base64 • Xml parsing • Encode, decode • Obtain a DocumentParser, extract values from Elements (trimmed, • File/URL conversion Properties, default values, ...) • Classloader aware • Xml Config ObjectInputStream OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 6
  • 41.  a
  • 43.  way
  • 44.  to
  • 47.  of
  • 48.  an
  • 50.  ? • Traverse Class, Method and Field declaration • Support inheritance • Call interested AnnotationHandler(s) public class SampleAnnotationHandler extends AbstractAnnotationHandler { public boolean isSupported(Class? extends Annotation clazz) { return clazz.equals(Hello.class); } @Override IAnnotationProcessor processor = new DefaultAnnotationProcessor(); public void process(Annotation annotation, Class? clazz, Object target) processor.addAnnotationHandler(new SampleAnnotationHandler()); throws ProcessorException { processor.addAnnotationHandler(/* as many handler as you want */); System.out.printf(Type %s is annotated with @%s(%s), processor.process(/* some instance */); clazz, annotation.annotationType().getSimpleName() ((Hello) annotation).name()); } } OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 7
  • 51. Asynchronous EVENT SYSTEM Support • On steroid topic notification system // Simple asynchronous listener IEventListener listener = new IEventListener() { public void handle(IEvent event) { • Hierarchical, multi-threaded // Do your own casting here System.out.printf(Received Event %s, event); } public EventPriority getPriority() { • Dispatcher fires event on a topic return EventPriority.ASYNC_HIGH; } public boolean accept(IEvent event) { return true; } }; • Listeners receive events matching a topic pattern • Declares a priority (SYNC, ASYNC) OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 8
  • 52. // Create a Dispatcher EVENT SYSTEM Some
  • 53.  code EventDispatcher dispatcher = new EventDispatcher(); dispatcher.setNbWorkers(3); // Listen to all Event published in /result/** dispatcher.start(); eventService.registerListener(listener, /result/.*); // Topic registration eventService.registerDispatcher(/result/success, dispatcher); Dispatchers Loose Coupling Event Listeners Event Source(s) Asynchronous Consumer(s) /a/b /a /c Event Service // Dispatch an Event dispatcher.dispatch(new MyEvent(/result/.*)); OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 9
  • 54. Re-using POOL instances public static void main(String[] args) throws Exception { • Simple Pooling API PoolFactoryPooled, Long poolFactory = new PooledFactory(); JPoolPooled,Long pool = new JPoolPooled, Long(poolFactory); pool.start(); Pooled one = pool.get(); • Pool size, waiters, timeout Pooled two = pool.get(); Pooled three = pool.get(); Pooled four = pool.get(); // Will block until timeout or a release } • Thread-safe private static final class PooledFactory implements PoolFactoryPooled, Long { public Pooled create(Long clue) throws PoolException { return new Pooled(clue); } • Basic implementation public boolean isMatching(Pooled instance, Long clue) { } return instance.id == clue; public void remove(Pooled instance) { // Destroy instance } • public boolean validate(Pooled instance, PoolEntryStatistics stats) { Synchronous } return true; } • Advanced implementation @Pool(min = 1, max = 3) private static class Pooled { long id; public Pooled(Long clue) { id = clue; } • } Asynchronous, composable OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 10
  • 55. Variable SUBSTITUTION processing • Extract variables declaration from String • ‘Hello ${speaker.name} !’ DefaultSubstitutionEngine engine = new DefaultSubstitutionEngine(); ChainedResolver chain = new ChainedResolver(); chain.getResolvers().add(new SpeakerResolver()); • PropertyResolvers chain.getResolvers().add(new DateResolver());engine.setResolver(chain); engine.substitute(Hello ${speaker.name} ! -- ${date}); public class SpeakerResolver implements IPropertyResolver { public String resolve(String expression) { return speaker.name.equals(expression) ? Guillaume : null; • Provides value for expression } } public class DateResolver implements IPropertyResolver { public String resolve(String expression) { • Composable } } return date.equals(expression) ? (new Date()).toString() : null; • Support recursion (variables in variable) OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 11
  • 56. Resource ARCHIVE Abstraction • Uniform API for resource consumption • Supporting (out of the box) public interface IArchive { String getName(); URL getURL() throws ArchiveException; • Directory URL getResource(String resourceName) throws ArchiveException; IteratorURL getResources() throws ArchiveException; • Jar IteratorURL getResources(String resourceName) throws ArchiveException; IteratorString getEntries() throws ArchiveException; boolean close(); • OSGi Bundle IArchiveMetadata getMetadata(); } • Extensible OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 12
  • 57. BUNDLES, BUNDLES, BUNDLES • Around 20 common libraries wrapped as Bundles • commons-{collections, logging, modeler}, javassist, jaxb2-ri, jgroups, jsch, opencsv, weld, zookeeper, bouncycastle, ... • Correct exported packages version, verified imports • All other modules are OSGi Bundles • Versioned API, content exported OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 13
  • 60.  you
  • 61.  ? OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 14
  • 64.  to
  • 67.  are
  • 68.  the
  • 70.  ?’ http://gitorious.ow2.org/ow2-utilities ‘You
  • 72.  me,
  • 73.  let
  • 74.  me
  • 77.  documentation’ http://utilities.ow2.org ‘Wow,
  • 81.  a
  • 83.  for
  • 84.  CI’ http://bamboo.ow2.org/browse/UTIL ‘Do
  • 88.  a
  • 92.  so
  • 94.  !’ http://jira.ow2.org/browse/UTIL OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 15
  • 95. Questions OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 16
  • 96. utilities.ow2.org guillaume.sauthier@peergreen.com @sauthieg OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 17
  • 97. RESOURCES • http://www.flickr.com/photos/emagic/56206868/ OW2 Annual Conference 2012, 27-29 November, Orange Labs, Paris www.ow2.org 18