Release Notes for ModeShape 2.0.0.Final
JCR Support
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 (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
and
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 servers
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 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 2.0 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 and folders)
- Subversion Connector (read-write/persistent storage of files and 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
ModeShape 2.0.0.Final
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