Release Notes - ModeShape - Version 2.1.0.Final With version 2.1.0.Final, ModeShape introduces clustering support, shareable nodes, a technology preview of the JBoss AS deployment kit, a JDBC driver, and quite a few bug fixes and improvements. This means that ModeShape now implements all of the required JCR 2.0 features (repository acquisition, authentication, reading/navigating, query, export, node type discovery, and permissions and capability checking) and most of the optional JCR 2.0 features (writing, import, observation, workspace management versioning, locking, node type management, same-name siblings, shareable nodes, and orderable child nodes). The remaining optional features in JCR 2.0 (access control management, lifecycle management, retention and hold, and transactions) may be introduced in future versions. ModeShape supports the JCR-SQL2 and JCR-QOM query languages defined in JSR-283, plus the XPath and JCR-SQL languages defined in JSR-170 but deprecated in JSR-283. ModeShape also supports a simple search-engine-like language that is actually just the full-text search expression grammar used in the second parameter of the CONTAINS(...) function of the JCR-SQL2 language. As with previous releases, ModeShape 2.1.0.Final integrates with JAAS, web application security, or you can easily integrate it with other systems. ModeShape can use a variety of back-ends to store information (RDBMSes, Infinispan data grid, memory, JBoss Cache, JCR repositories), can access content in multiple systems (file systems, SVN repositories, JDBC metadata), can federate multiple stores and systems into a single JCR repository, or can access other systems using custom connectors. ModeShape is also able to automatically extract and store useful content from files you upload into the repository using its library of sequencers, making that information much more accessible and searchable than if it remains locked up inside the stored files. And ModeShape provides WebDAV and RESTful services to allow various clients to access the content. For details, see the Reference Guide. The 2.1.0.Final release has not yet been certified to be fully compliant with JCR 2.0. The ModeShape project plans to focus on attaining this certification in the very near future.

Accessing the Repository - JAAS Authentication - HTTP Authentication (for RESTful and WebDAV Services Only) - Custom Authentication Namespaces - Session Remapping - Permanent Addition/Deletion Reading Repository Content - Traversal Access - Direct Access - Same-Name Siblings - Multi-Value Properties - All Property Types Supported - Property Type Conversion Writing Repository Content - Create/Update/Delete Nodes - Create/Update/Delete Properties (Through Parent Nodes) - Moving, Copying, Cloning - Adding/Removing Mixins - Referential integrity enforcement Query / Search - XPath - JCR-SQL - JCR-SQL2 - JCR-QOM - Full-Text Search Importing/Exporting Repository Content - System View Import/Export - Document View Import/Export Node Types - Inheritance Among Node Types - Discovering available Node Types - Discovering the Node Types of a Node - Discovering the Definition of a Node Type - Property Constraints - Automatic Item Creation - Predefined standard Node Types - Custom Node Type Registration (CND-Based and and JCR 2.0 API Template-Based) Repository Metadata under System Node - Permanent Namespace Mappings - Node Types (Built-In and User-Registered) - Active Locks Other JCR Optional Features - Locking - Observation - Versioning - Shareable Nodes ModeShape-Specific Features --------------------------- Connectors - Federated Connector - JPA Connector (read-write/persistent storage) - In-Memory Connector (read-write) - JCR Connector (read-write) - Infinispan Connector (read-write/persistent storage) - JBoss Cache Connector (read-write/persistent storage) - File System Connector (read-write/persistent storage of files & folders) - Subversion Connector (read-write/persistent storage of files & folders) - JDBC Metadata Connector (read-only) Sequencers - Compact Node Definition (CND) Sequencer - DDL Sequencer - Image Sequencer - Java Source Sequencer - Java Class Sequencer - MP3 Sequencer - MS Office Sequencer - Text Sequencers (Delimited and Fixed Width) - XML Sequencer - Zip File Sequencer (also WARs, JARs, and EARs) Deployment/Access Models - Clustering - JNDI-Based Deployment - Embedded (in Server or JEE Archive) Deployment - OSGi-Compatible Archives - Access through RESTful Service - Access through WebDAV Service - Deploy as a service in JBoss Application Server Bug Fixes, Features, and other Issues ------------------------------------- ** Bug * [MODE-540] - Locking Implementation Needs To Be Clusterable * [MODE-786] - JCR implementation does not produce events when versioned storage content changes * [MODE-796] - A Node reference becomes unusable after the node is moved * [MODE-803] - Unable to bind JcrEngine, Repositories or a Repository to JNDI due not being serializable * [MODE-814] - When changing web.xml to look up the repositories via JNDI, JcrRepositoryFactory throws a NPE because it expects a JcrEngine * [MODE-815] - DDL Sequencer doesn't populate primary key correctly when constraint defined on a column * [MODE-816] - DDL Sequencer CND should mark columnReference child of tableConstraintDefinition as mandatory * [MODE-817] - DDL puts sequencer in infinite loop * [MODE-820] - DDL sequencer ignores length unit qualifiers of K, M, and G * [MODE-821] - Some links still point to JCR 1.0 * [MODE-822] - classpath: protocol not supported but reference from doc * [MODE-823] - JcrRepositoryFactory's config URL cannot contain query parameter * [MODE-825] - Empty string as parameter for setDefaultPrimaryTypeName() or setPrimaryItemName() causes IllegalArgumentException * [MODE-826] - Unable to register node type definition if its primary item name is only handled by a residual child/property definition * [MODE-828] - Failed while importing to a Graph an XML with 'same-name-sibling' elements * [MODE-829] - IllegalArgumentException: The columns argument may not be empty for JOIN query * [MODE-830] - Wrong method name in JackrabbitXmlNodeTypeReader class javadoc * [MODE-832] - Problems during CND import not reported to the user. * [MODE-834] - Path constraints in XPath do not treat SNS indexes correctly * [MODE-835] - CND for JDBC Metadata connector contains an error * [MODE-836] - AbstractJcrItem.getSession() throws RepositoryException if the session is not live * [MODE-837] - ModeShape should support CND file used by Jackrabbit prior to the official format defined in JCR 2.0 * [MODE-838] - XPathQueryResult class is adding columnNames "score" and "path", they also need to have corresponding columntypes * [MODE-840] - Unable to search and query repository content backed by the file system connector ** Feature Request * [MODE-677] - Support running multiple ModeShape processes in a cluster * [MODE-794] - Add Support for JCR2 Sharable Nodes * [MODE-806] - RESTful server should allow queries to be executed * [MODE-807] - Provide a RepositoryProvider Implementation that Uses RepositoryFactory * [MODE-827] - Support reading node types defined in the Jackrabbit XML format * [MODE-833] - XPath, JCR-SQL, and JCR-SQL2 queries should allow use of wildcards inside search terms ** Task * [MODE-808] - Remove the JSR-170 behavior in the JcrNamespaceRegistry * [MODE-809] - NamespaceRegistry should respond when stored namespaces are changed (in clustered environment) * [MODE-810] - RepositoryNodeTypeManager should respond when stored node types are changed (in clustered environment) * [MODE-813] - Enable deploying ModeShape as a service in JBossAS ** Sub-task * [MODE-737] - Create Modeshape Jopr SVN Project