SlideShare a Scribd company logo
1 of 19
What the heck is JCR Management? Sandro Böhme Architect, Developer, Project Manager at inovex GmbH, www.inovex.de Component lead of Eclipse JCRM http://www.eclipse.org/modeling/emft/?project=jcrm Contact: sandro.boehme@inovex.de
What is a JCR? JCR  =  Java Content Repository is a datastore that is compliant  to the Java Content Repository standard.  It is mainly driven by the  content management community.
What is JCR Management? JCR Management or short JCRM uses Java Content Repository implementations as a backend for EMF and provides tooling for maintaining this backend. It in its inception phase.  Has already produced some prototypes.
Intention of the talk  Explaining the goal of JCRM and the  JCR integration into EMF.  This way you can influence it in a direction  that matters for you.
The goal of JCRM  Creating synergies between strong and mature communities:  The Eclipse modeling community and the JCR implementation communities.
Advantages for the JCR implementation communities They do not have much tooling for editing the data  or the type system notations. Reusing the user interface of the EMF editor for a  JCR editor tool. Reusing the class diagram of the Ecore tools component Shows the inheritance and containment structure of the JCR types The JCR specifies a textual type system notation. Using oAW XText it was possible to build a text editor At the moment it provides validation and code completion Editor for a XML type system notation Again using EMF it was possible to configure the ECore model editor  to persist the data in this specific XML format. Provides copy/paste, undo/redo, drag/drop out of the box
Advantages for the Eclipse  modeling community,  part 1 A datastore The main JCRM feature is the JCR backend for EMF. The EMF API can be used. This way: It is easy to use for other EMF based projects. The generated EMF model editor and the standalone API work out  of the box with the JCR backend Multi user capability In JCRM a new EMF resource creates a new user session Maturity/Scalability JCRM could successfully create and store about 1.5 million EMF objects at once The three JCR implementation vendors base their commercial product on their implementation
Advantages for the Eclipse  modeling community,  part 2 Object grained versioning It would be highly non trivial to implement this on my own. Object grained locking The other features are not yet integrated into JCRM Full text search XML Import/Export Observation Transactions
How straight and easy is the  JCR integration into EMF?
Data structure mapping The JCR has a graph structure of node objects where  every node can have a list of properties. This graph is comparable to a graph of EMF model objects  with its properties. Difference:  A JCR node directly has a list of child nodes no matter what type it has EMF has a further indirection. I can have a list of containment features. Only there are the child objects JCRM resolves that difference That further indirection sounds more complicated  than it really is. In fact it was not hard to implement and its clear  which node corresponds to which object.
Type structure mapping The JCR type system is quite similar to the Java type system and thus to the EMF type system.  node types --> classes super type --> parent class mixin's --> interfaces properties --> properties String, Date, ... --> String, Date, ...
Type structure mapping / Differences JCR concept of residual nodes.  Comparable to an EMF containment feature without a specific name  JCRM generates a name for it that is based on the type name of this node. This way it is mappable to the EMF type system without problems. JCR concept of value contraints e.g. min 5 pages for a book list of valid strings in a string property
JCR Integration into EMF
EMF model
JCR data structure
JCRM model
JCRM model JCRM combines these two data structures. Each EMF object contains the corresponding JCR node. This has two major advantages. First: No copy of the data needed. It works by delegation. Second: lock(), checkout(),... can be simply delegated to the node.
JCRM runtime implementation How can JCRM make sure that every EMF object  has a node and how does the delegation work? Hooks of the EMF EStore get()/set() delegation Attaching the node ... The delegation needs the concrete type mapping.  This is specified in the ECore annotations that  JCRM generates.
Summary The communities benefit from each other. A quite straight JCR integration to EMF is possible. Easy use in existing EMF applications. Do you have any questions? What do you like or dislike about it? I'm looking forward to your feedback! You can reach me  by email or  of course personally here at the conference if there is interest, I can organize a BOF about JCRM

More Related Content

Similar to Eclipse Summit 2008 Jcrm Demo V1.4

EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012Istvan Rath
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkDave Steinberg
 
Development of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsDevelopment of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsMario Cervera
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE Jean-Sebastien Sottet
 
Discover models out of existing applications with Eclipse/MoDisco
Discover models out of existing applications with Eclipse/MoDiscoDiscover models out of existing applications with Eclipse/MoDisco
Discover models out of existing applications with Eclipse/MoDiscofmadiot
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?Kenn Hussey
 
MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009fmadiot
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)Jordi Cabot
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queriesIstvan Rath
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsHamza ED-DOUIBI
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!melbats
 
Transaction handling in com, ejb and .net
Transaction handling in com, ejb and .netTransaction handling in com, ejb and .net
Transaction handling in com, ejb and .netijseajournal
 
Data Models at Eclipse
Data Models at EclipseData Models at Eclipse
Data Models at EclipseKenn Hussey
 
Developing a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsDeveloping a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsÁlvaro Jiménez Rielo
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2ukdpe
 

Similar to Eclipse Summit 2008 Jcrm Demo V1.4 (20)

EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012
 
On The Shoulders Of Giants
On The Shoulders Of GiantsOn The Shoulders Of Giants
On The Shoulders Of Giants
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
 
Development of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsDevelopment of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodels
 
ALT
ALTALT
ALT
 
Ef overview
Ef overviewEf overview
Ef overview
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE
 
Discover models out of existing applications with Eclipse/MoDisco
Discover models out of existing applications with Eclipse/MoDiscoDiscover models out of existing applications with Eclipse/MoDisco
Discover models out of existing applications with Eclipse/MoDisco
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?
 
MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queries
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from Models
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Transaction handling in com, ejb and .net
Transaction handling in com, ejb and .netTransaction handling in com, ejb and .net
Transaction handling in com, ejb and .net
 
Data Models at Eclipse
Data Models at EclipseData Models at Eclipse
Data Models at Eclipse
 
Developing a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsDeveloping a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces models
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Eclipse Summit 2008 Jcrm Demo V1.4

  • 1. What the heck is JCR Management? Sandro Böhme Architect, Developer, Project Manager at inovex GmbH, www.inovex.de Component lead of Eclipse JCRM http://www.eclipse.org/modeling/emft/?project=jcrm Contact: sandro.boehme@inovex.de
  • 2. What is a JCR? JCR = Java Content Repository is a datastore that is compliant to the Java Content Repository standard. It is mainly driven by the content management community.
  • 3. What is JCR Management? JCR Management or short JCRM uses Java Content Repository implementations as a backend for EMF and provides tooling for maintaining this backend. It in its inception phase. Has already produced some prototypes.
  • 4. Intention of the talk Explaining the goal of JCRM and the JCR integration into EMF. This way you can influence it in a direction that matters for you.
  • 5. The goal of JCRM Creating synergies between strong and mature communities: The Eclipse modeling community and the JCR implementation communities.
  • 6. Advantages for the JCR implementation communities They do not have much tooling for editing the data or the type system notations. Reusing the user interface of the EMF editor for a JCR editor tool. Reusing the class diagram of the Ecore tools component Shows the inheritance and containment structure of the JCR types The JCR specifies a textual type system notation. Using oAW XText it was possible to build a text editor At the moment it provides validation and code completion Editor for a XML type system notation Again using EMF it was possible to configure the ECore model editor to persist the data in this specific XML format. Provides copy/paste, undo/redo, drag/drop out of the box
  • 7. Advantages for the Eclipse modeling community, part 1 A datastore The main JCRM feature is the JCR backend for EMF. The EMF API can be used. This way: It is easy to use for other EMF based projects. The generated EMF model editor and the standalone API work out of the box with the JCR backend Multi user capability In JCRM a new EMF resource creates a new user session Maturity/Scalability JCRM could successfully create and store about 1.5 million EMF objects at once The three JCR implementation vendors base their commercial product on their implementation
  • 8. Advantages for the Eclipse modeling community, part 2 Object grained versioning It would be highly non trivial to implement this on my own. Object grained locking The other features are not yet integrated into JCRM Full text search XML Import/Export Observation Transactions
  • 9. How straight and easy is the JCR integration into EMF?
  • 10. Data structure mapping The JCR has a graph structure of node objects where every node can have a list of properties. This graph is comparable to a graph of EMF model objects with its properties. Difference: A JCR node directly has a list of child nodes no matter what type it has EMF has a further indirection. I can have a list of containment features. Only there are the child objects JCRM resolves that difference That further indirection sounds more complicated than it really is. In fact it was not hard to implement and its clear which node corresponds to which object.
  • 11. Type structure mapping The JCR type system is quite similar to the Java type system and thus to the EMF type system. node types --> classes super type --> parent class mixin's --> interfaces properties --> properties String, Date, ... --> String, Date, ...
  • 12. Type structure mapping / Differences JCR concept of residual nodes. Comparable to an EMF containment feature without a specific name JCRM generates a name for it that is based on the type name of this node. This way it is mappable to the EMF type system without problems. JCR concept of value contraints e.g. min 5 pages for a book list of valid strings in a string property
  • 17. JCRM model JCRM combines these two data structures. Each EMF object contains the corresponding JCR node. This has two major advantages. First: No copy of the data needed. It works by delegation. Second: lock(), checkout(),... can be simply delegated to the node.
  • 18. JCRM runtime implementation How can JCRM make sure that every EMF object has a node and how does the delegation work? Hooks of the EMF EStore get()/set() delegation Attaching the node ... The delegation needs the concrete type mapping. This is specified in the ECore annotations that JCRM generates.
  • 19. Summary The communities benefit from each other. A quite straight JCR integration to EMF is possible. Easy use in existing EMF applications. Do you have any questions? What do you like or dislike about it? I'm looking forward to your feedback! You can reach me by email or of course personally here at the conference if there is interest, I can organize a BOF about JCRM