Release Notes for ModeShape 1.2.0.Final
JCR Support
ModeShape 1.2.0.Final adds support for JCR-SQL, improvements to the existing connectors, and quite a few bug fixes and improvements.
Therefore, with this release ModeShape supports all JCR Level 1 and Level 2 features, and the optional versioning, locking, query, and observation features. ModeShape also supports the required
XPath query language,
a simple
search language,
the optional
JCR-SQL query language,
and the new
JCR-SQL2 query language.
ModeShape 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 1.2.0.Final release has not yet been certified to be fully compliant with JCR 1.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
- 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 Node Types (All But Version-Related Types)
- Custom Node Type Registration (CND-Based and Template-Based)
Repository Metadata under System Node
- Permanent Namespace Mappings
- Node Types (Built-In and User-Registered)
- Active Locks
JCR Optional Features
- Locking
- Observation
- Versioning
- Query
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 1.2.0.Final
Bug
- [MODE-701] - Autocreated Child Nodes and Properties Aren't Autocreated
- [MODE-703] - CndNodeTypeSource Has Package Visibility
- [MODE-704] - Attempting to Check Out a Newly Versionable Node Fails
- [MODE-708] - Session.move Performs Version Check on Wrong Node
- [MODE-709] - Workspace.copy Doesn't Recreate Version Storage Entries
- [MODE-710] - Errata in Reference Guide
- [MODE-712] - FileSystemSource Is Too Easy to Configure Incorrectly
- [MODE-713] - Recently Registered Namespace Mappings Aren't Respected by the Query Engine
- [MODE-714] - Storing nodes in Infinispan connector results in NotSerializableException
- [MODE-715] - Importing String Properties with Empty Values Chooses Wrong Property Definition
- [MODE-717] - DDL Generator Tool Doesn't Generate DDL for StoreOptionEntity
- [MODE-718] - XPath Queries Treat //* Differently from //element(*)
- [MODE-719] - Disjunction in XPath Property Constraint Is Not Being Translated Properly to JCR-SQL2
- [MODE-720] - Can't Set Reference Property to Unsaved Node if Constraint Exists on Property
- [MODE-721] - Side-by-side Residual Child Node Definitions Aren't Being Allowed
- [MODE-724] - REST Server Doesn't Work with Jersey
- [MODE-725] - LargeValueEntity fails in MySQL
- [MODE-726] - Node.checkout() Refreshes the Entire Subgraph under the Node
- [MODE-732] - GraphSession.findNodeRelativeTo Throws Different Exception for Deep Missing Node
- [MODE-736] - JndiRepositoryFactory Has a configFile Property That Points to a Resource - Not a File
- [MODE-746] - Enabling anonymous users does not accept default user roles
- [MODE-748] - Documentation Errors for SVN Connector
- [MODE-757] - InMemoryRepositorySource Can't Create Predefined Workspace Names
Feature Request
- [MODE-700] - Introduce new Repositories interface as a collection of named javax.jcr.Repository instances
- [MODE-705] - Make jcr:predecessors Property Populate in Same Order as Jackrabbit
- [MODE-706] - InMemoryRepositorySource Doesn't Support Predefined Workspace Names Property
- [MODE-711] - Allow InfinispanConnector(s) to create configurable Infinispan cachemanagers
- [MODE-727] - Allow FileSystemSource to set the CustomPropertyFactory class in configuration
- [MODE-728] - Add to FileSystemSource the ability to filter out files/directories
- [MODE-733] - Support JCR-SQL Optional Feature
- [MODE-738] - Add Support for NodeTypeManager.hasNodeType
- [MODE-739] - Add Support for Node.getProperties(String[]) and Node.getNodes(String[])
- [MODE-740] - Add Support for Session.hasPermission
- [MODE-741] - Add Support for Session.getNode(String), .getProperty(String), and .removeItem(String)
- [MODE-742] - Add Support for Session.hasCapability
- [MODE-743] - Add Support for Node.getReferences(String)
- [MODE-744] - Complete Support for JCR2 Node Type Features
- [MODE-752] - Enhance Repository Descriptors
Task
- [MODE-731] - Change build to use new JBoss Maven repository
- [MODE-734] - Alter port used for web project tests
- [MODE-749] - Convert JBoss Cache connector to use the new map-oriented base connector
- [MODE-750] - Create a path-oriented base connector, and convert the FileSystem, SVN, and JDBC Metadata connectors
Thirdparty Change
- [MODE-699] - Upgrade to Hibernate 3.5.0.Final
- [MODE-729] - Upgrade to SLF4J 1.5.11 (or the latest available version
- [MODE-735] - Upgrade to JBoss Cache 3.2.4.GA
Sub-task
- [MODE-584] - The Infinispan connector.execute(...) method is not 'all-or-nothing'
- [MODE-586] - The JBoss Cache connector.execute(...) method is not 'all-or-nothing'
- [MODE-587] - The FileSystem connector.execute(...) method is not 'all-or-nothing'
- [MODE-589] - The SVN connector.execute(...) method is not 'all-or-nothing'
- [MODE-754] - Convert JDBC Metadata Connector to new Connector Architecture
- [MODE-755] - Convert File System Connector to new Connector Architecture
- [MODE-756] - Convert SVN Connector to new Connector Architecture