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

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
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...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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