Release Notes - ModeShape - Version 1.2.0.Final With version 2.0.0.Final, ModeShape introduces support for the JCR 2.0 API, improvements to existing connectors and sequencers, 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. ModeShape also implements most of the optional JCR 2.0 features: writing, import, observation, workspace management, versioning, locking, node type management, same-name siblings, and orderable child nodes. The remaining optional features in JCR 2.0 (shareable nodes, 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.0.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.0.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 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 - JNDI-Based Deployment - Embedded (in Server or JEE Archive) Deployment - OSGi-Compatible Archives - Access through RESTful Service - Access through WebDAV Service Bug Fixes, Features, and other Issues ------------------------------------- ** Bug * [MODE-563] - Connectors Are Not Generating Events For Children Of Nodes Being Added Or Removed * [MODE-762] - SessionCache in JcrNode allows use invalid JcrSession * [MODE-772] - Running JDBC driver integration test, ClastCastException occured in the JoinComponent * [MODE-773] - JcrSqlQueryResult class is adding columnNames "score" and "path", they also need to have corresponding columntypes * [MODE-782] - JCR Observation fires events in another workspace * [MODE-784] - Sequencing JCR file structures doesn't use the filename for MIME type detection * [MODE-785] - RestClient has the context hardcoded to "resources" which is problem when the war is not deployed as named resources.war * [MODE-788] - Error when creating and then destroying a newly created node all within one Session.save() * [MODE-790] - XPath Query with Compound Predicate Not Translated Correctly * [MODE-791] - JCR-SQL Query involving TIMESTAMP criteria does not execute * [MODE-792] - Checking Out an Already Checked-Out Node Resets Changes on That Node * [MODE-793] - Version Storage Does Not Preserve Cardinality of Properties * [MODE-797] - Session.getWorkspace().getAvailableWorkspaceNames() does not match those available in the underlying source * [MODE-802] - Some valid non-identity joins will produce an error upon execution ** Feature Request * [MODE-48] - Support JCR 2.0 (JSR-283) API * [MODE-157] - Sequence Java source files * [MODE-745] - Create a request type for the various Request subclasses, allowing use in switch statements * [MODE-753] - Add Immediate Validation to Node Type Management Classes * [MODE-763] - Add support for JCR2 identifiers * [MODE-764] - Use Constant for Default Value of rootNodeUuid Property in InfinispanSource * [MODE-765] - Add Support for JCR2 Locking * [MODE-766] - Add Support for JCR2 Versioning * [MODE-767] - Add Support for JCR2 Observation * [MODE-768] - Add Support for JCR2 queries and QOM * [MODE-769] - Add Support for JCR2 Primitive Types * [MODE-770] - Add Support for JCR2 RepositoryFactory * [MODE-771] - Remove Sequencer Dependency on Namespace Mappings * [MODE-774] - Add Support for JCR2 WeakReferences * [MODE-779] - Add support for JCR2 Binary values * [MODE-780] - Add support for JCR2 BigDecimal values * [MODE-781] - Add support for JCR2 namespace registration feature * [MODE-795] - Creating and modifying nodes with 'mix:created' or 'mix:lastModified' should set protected properties * [MODE-798] - Add Support for JCR2 workspace management methods * [MODE-799] - Add support for JCR2 Entity Tags (the 'mix:etag' mixin with its autocreated property) * [MODE-801] - Java sequencer default config should generate graph compatible with Java class file sequencer ** Task * [MODE-777] - Remove deprecations * [MODE-778] - Change versions of ModeShape modules to 2.0 * [MODE-789] - Update Documentation ** Thirdparty Change * [MODE-761] - Upgrade to version 1.6.1 of the JCR TCK unit tests * [MODE-776] - Upgrade to JCR 2.0 API ** Sub-task * [MODE-158] - Create the CND for java source (closed to the java specification) * [MODE-161] - Write Unit Test for the JavaMetadata * [MODE-162] - Write Unit Test for the JavaMetadataSequencer