Release Notes for ModeShape 2.7.0.Final
ModeShape 2.7.0.Final includes several new features, improvements, and bug fixes since 2.6.0.Final:
- improved memory usage during export and indexing
- fixed JPA connectors use of 2nd level cache for Hibernate 3.3 and later
- JPA connector's background garbage collection can be disabled
- JPA no longer caches large value entities
- fixed race condition in RepositoryConnectionPool
- added public API methods to register node types in CND files, eliminating need for depending upon implementation classes
- deprecated public API interfaces/methods that were redundant with JCR 2.0
- added support for setting values with custom javax.jcr.Binary implementations
- added public API methods to get the SHA-1 hash of binary values
- fixes to query processing
- fixes to enable building on Windows
- corrected Teiid sequencers generation of transformation queries
- upgraded to Tika 1.0
- upgraded versions of several Maven plugins
JCR Supported Features
ModeShape 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.
The 2.7.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
Connectors, Sequencers, and Other Features
As with previous releases, ModeShape 2.7.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, disk-storage 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.
Connectors
- Federated Connector
- JPA Connector (read-write/persistent storage)
- In-Memory Connector (read-write)
- Disk-based Storage 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
- XML Schema Document (XSD) Sequencer
- Web Service Definition Lanaguage (WSDL) 1.1 Sequencer
- Zip File Sequencer (also WARs, JARs, and EARs)
- Teiid Relational Model Sequencer
- Teiid VDB Sequencer
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 5.x and 6.x, with JOPR monitoring
- JDBC driver for accessing ModeShape content through JDBC API and JCR-SQL2 queries
Bug Fixes, Features, and other Issues
The following are the bugs, features and other issues that have been fixed in this Beta release:
Bug
- MODE-1041 - Modeshape unit test ZipSequencerTest fails when executed on Windows 2003
- MODE-1309 - Unstructured queries with inner joins do not work
- MODE-1306 - don't start jetty when -DskipTests
- MODE-1327 - JPA source does not properly adjust the capabilities
- MODE-1349 - JPA connection and 2nd level cache: LargeValueEntity should not be cacheable
- MODE-1348 - Exporting workspaces with large Binary values runs out of memory
- MODE-1347 - Modeshape stuck - race condition in RepositoryConnectionPool
- MODE-1322 - Error running performance tests: "could not create Vfs.Dir from url"
- MODE-1314 - JPA connector cannot properly configure 2nd level cache in Hibernate 3.3 and later
- MODE-1315 - NPE in Observation when listener restricted by node type and property deleted
- MODE-1313 - Calling Session.getNodeByIdentifier(String) with a bogus identifier results in a non-JCR exception
- MODE-1350 - Indexing workspace with large binary values results in OutOfMemoryError
- MODE-1359 - Join criteria that involves a null or nonexistent property on the left-hand side will result in NPE
- MODE-1296 - When sequencing of Teiid Virtual model, the transformation (transform_selectSql) is not being found in the [transform:withSql] table when using jdbc interface
Component Upgrade
Enhancement
- MODE-1308 - Enhance support for javax.jcr.Binary interface
- MODE-1324 - Expose the SHA-1 hash of each Binary value
- MODE-1345 - Allow JPA source to be configured without background garbage collection
- MODE-1328 - Add to the public API methods to register node types in CND files
Task
- MODE-1303 - Update Maven plugin versions
- MODE-1305 - Remove unused I18N classes method
- MODE-1287 - Deprecate JCR 2.0 redundant interfaces and remove overriden methods