In a writable repository a node's primary type is first assigned upon node creation, while mixin types may be assigned on creation or during a node's lifetime. Repository implementations may vary as to how flexible they are in allowing changes to the primary or mixin node types assigned to a node. . Primary type ~= Class, Mixin Type ~= Interface . nt:base, jcr:primaryType, . nt:hierarchyNode => nt:file, nt:folder, nt:resource, nt:address, ... . mix:referenceable, mix:created, mix:mimeType, mix:language .
Xpath and JCR-SQL deprecated in JCR 2.0 . Nodes appear as rows in those tables that correspond to the node’s types - a node can appear as a row in multiple tables - often a complete picture of a node requires joining multiple tables - other joins are possible, such as ancestors, descendants, equivalent properties . JQOM = Java Query Object Model (mapping of AQM to Java API) javax.jcr.query.qom.* .
Search & Query: most implementations automatically indexes the content (Jackrabbit and ModeShape use Lucene)
eXo-JCR has been donated to the JBoss Community by eXo Platform
JDBC via JPA/Hibernate . Infinispan – data grid platform (CLOUD!!!) . E.g. transient or filesystem for light-weight apps (or development), Database (JPA) for production
ZIP (JAR, WAR, EAR): nt:file + nt:folder Java source/class: nt:unstructured for package – class name, annotations, constructors, methods, fields – class:* namespace MS Office: structure via POI library Image: jcr:mimeType, jcr:encoding, image:formatName, image:width, image:height, image:bitsPerPixel, image:progressive, image:numberOfImages, image:physicalWidthDpi, image:physicalHeightDpi, image:physicalWidthInches, image:physicalHeightInches Not sure about EXIF data TEIID sequencers (Teiid = data virtualization) Text sequencers (delimiter, fixed width)
RESTful service: JSON responses (HTML, XML planned), uses RESTEasy . WebDAV: mount repository as network share . JDBC driver – it has many limitations, not full JDBC – workspace in URL is optional, driver connects to the default workspace if missing . JOPR/RHQ – managment tool .
Imagine the situation: You have to develop search solution for your company data – partially in SQL databases, partially in SAP, some data on filesystem (MS Office docs), ... Then you can develop all parsers, connectors etc. on your own – or you will use JCR API in your “search engine” and ModeShape with its connectors, sequencers and federationm for accessing the data.
They fleed to GitHub but the rest of the infrastructure is on jboss.org
4.2.2 is considered experimental . Performance issues, to be solved in ModeShape 2.5 .
In SOA-Platform 5.1 to be released in few days . In BRMS 5.1.1 or 5.2 (5.1 to be released as ^^^) .
JCR and ModeShape
Content Repository API for Java ™ (JCR) & ModeShape Jozef Chocholáček @jchochol JBoss Community Team
D2 D3 A107 9:00-9:45 Perl packaging for developers – Marcela Mašláňová MythTV - User view – Lukáš Doktor 9:50-10:35 Java packaging for developers – Stanislav Ochotnicky Gnome 3.0 (r)evolution - Tomáš Bžatek 10:40-11:25 JCR + ModeShape - Jozef Chocholáček Plasma Workspaces 4 by KDE – Lukáš Tinkl, Jaroslav Řezník Power management – Jaroslav Škarvada, Jan Včelák 11:30-12:30 Lunch Lunch Lunch 12:30-13:15 Planning and Scheduling with Drools - Lukáš Petrovický Spice - Jonathan Blandford Introduction to Qt development – Jaroslav Řezník 13:20-14:05 Teiid - data virtualization system - Boris Belovic Beyond init: systemd - Lennart Poettering Remote Desktop – Adam Tkáč 14:10-14:55 PicketLink and PicketBox - Peter Škopek Discussion: Bootloader and Dracut Future Plans - Harald Hoyer (session ends 10 minutes sooner) Bug hunting & static analysis – Ondřej Vašík and Petr Muller 15:00-15:45 Web Services for Remote Portlets - Michal Vančo System vs. Session – David Zeuthen 15:50-16:35 Infinispan : The future of open source data grids – Radoslav Husár, Michal Linhard SysVinit, upstart and systemd in Fedora and RHEL – Petr Lautrbach 16:40-17:25 Deltacloud API – Michal Fojtik Modern Linux Desktop alphabet – Tomáš Bžatek, Jaroslav Řezník