Release Notes for ModeShape 2.3.0.Final
JCR Support
ModeShape 2.3.0.Final includes an improved JBoss AS deployment kit with JOPR monitoring plugin,
an improved JDBC driver for accessing content in ModeShape through JDBC (including JDBC metadata),
new sequencers for Teiid relational models and VDBs, an enhanced JCR-SQL2 grammar, and a lot of
improvements and bug fixes.
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 (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.3.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
- 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 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)
- 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, with JOPR monitoring
- JDBC driver for accessing ModeShape content through JDBC API and JCR-SQL2 queries
ModeShape 2.3.0.Final
Bug
- [MODE-849] - Unit Test JsonRestClientTest.shouldGetWorkspaces fails when pointed to a jbossas rest ware deployment
- [MODE-850] - Checksum error when pulling ModeShape-2.1.0.Final jars from JBoss into corporate repository
- [MODE-865] - Using 'jcr:contains' with a hyphen and wildcard in the full-text expression doesn't always work
- [MODE-866] - Using FileSystemSource, problem setting invalid property names: [jcr:createdBy] during session.save() when creating JCR nt:file or nt:folder nodes
- [MODE-867] - IncompatibleClassChangeError when running examples
- [MODE-870] - When executing -P assembly, modeshape-jdbc wasn't performing resource property substitution
- [MODE-871] - Failing org.modeshape.example.sequencer.SequencingClientTest.txt
- [MODE-873] - JOPR discovery indicates its discovering 2 JcrEngines
- [MODE-874] - JBoss AS deployment of the Java File Sequencer is missing eclipse jdt dependency
- [MODE-875] - The JBoss AS deployment is missing the lucene_misc.jar
- [MODE-876] - The Teiid.cnd should be added to the jboss as deployment configuration
- [MODE-877] - Referential Integrity Check order
- [MODE-878] - The tables and columns returned for the database metadata, when using the http protocol jdbc driver url, is not complete, not all columns based on nodetype dependencies is populated
- [MODE-879] - ItemNotFound, after versioning a shared Node and cloning it
- [MODE-882] - Constraint Violation Exception during import
- [MODE-883] - ItemExistsException on removing a shared node
- [MODE-885] - Third party webdav-servlet library contains resource hungry log4j.xml configuration file
- [MODE-886] - JsonRestClient does not accept properly build SQL queries
- [MODE-889] - RESTful Service mishandles same-name-siblings
- [MODE-890] - WebDAV Service mishandles same-name-siblings
- [MODE-891] - Importing metadata using JDBC driver contains tables with no columns
- [MODE-892] - CndNodeTypeReader.read(String) does not indicate any errors if the resource is not found on the classpath
- [MODE-893] - Base connector for map-oriented connectors is not always applying the changes to the latest version of the nodes
- [MODE-894] - Reference Guide incorrectly uses the SYSTEM_WORKSPACE_NAME property
- [MODE-895] - The node types returned by the Rest Client is not complete, not all dependencies were being included and some types needed to be exclueded
- [MODE-896] - Modeshape REST client documentation needs update, URL patterns does not invoke proposed operations
- [MODE-897] - Incorrectly configured Modeshape repositories should be detected and reported
- [MODE-900] - Repository engine call hangs when getting federated repository
- [MODE-901] - It is not possible to use JpaSource using JCR API inside container
- [MODE-902] - NotSerializableException in the JpaRepository when using HSQL as the repository
- [MODE-903] - Performance problems adding large numbers of nodes
- [MODE-904] - JpaSource has hardcoded dependency on c3p0
- [MODE-905] - Problem using full-text search
- [MODE-906] - When using the Filesystem Source on Windows with UNC Path for rootPath, access is EXTREMELY SLOW
- [MODE-907] - Lucene Indexing using the F/S source seems to over-flow memory no matter how configured (maybe???)
- [MODE-910] - Filesystem source projection into federated source causes RepositoryException" There is no repository named "xyz"
- [MODE-911] - JDBC metadata getColumns() is exposing column jcr:primaryType for some tables in which its not queryable on the server
- [MODE-913] - ResultSet methods should throw SQLFeatureNotSupportedException, instead of returning false when feature is not supported
- [MODE-914] - Certain DatabaseMetaData methods should throw SQLFeatureNotSupportedException
- [MODE-915] - JcrStatement should throw SQLFeatureNotSupported for certain methods
- [MODE-917] - JcrRepositoryFactory documentation error
- [MODE-918] - Maven pom elementnames in documentation are incorrect
- [MODE-920] - RepositorySourceException thrown when creating file using WebDav client and FileSystem connector
- [MODE-921] - modeshape-jdbc-2.2.1-http-jar-with-dependencies and modeshape-jpa-ddl-gen-2.2.1-jar-with-dependencies contains multiple files with the same name
- [MODE-924] - Ddl-gen utility, as an example, says to use Basic as the -model argument, but this is not valid, it should be Simple
- [MODE-926] - Change the jdbc metadata method getIdentifierQuoteString() to return double quote, rather than a single tic.
- [MODE-927] - Unable to delete file through REST interface
- [MODE-928] - When using jpa-ddl-gen tool and the -out <dir> argument is passed in, if the <dir> does not exist, it should create it and not fail.
- [MODE-931] - Offset projection in federation connector does not work for non-root source paths
- [MODE-942] - WebDAV service is not returning correct creationdate property
- [MODE-944] - FileSystemConnector does not process rename node properly between commits
- [MODE-945] - Exception at startup
- [MODE-946] - Failure to import binary data
- [MODE-950] - Text sequencer does not sequence CSV file correctly
- [MODE-952] - Zip sequencer does not work correctly
- [MODE-954] - Executing query against ModeShape.vdb produces ArrayIndexOutOfBoundsException
- [MODE-957] - JcrResultSet doesn't support getTimeStamp
- [MODE-958] - Publishing files into ModeShape engine causes errors if running multiple repositories and sequencers are configured w/o repository/workspace names
- [MODE-959] - Event listener that uses node type name filter gets NPE when root node is change
- [MODE-962] - Hibernate dialect is not set by the JPA connector when using a JDBC DataSource in JNDI
- [MODE-963] - UUID uniqueness check failure
- [MODE-965] - Workspace Management Cannot be Disabled
- [MODE-966] - JPA connector attempts to compress a Binary value using GZIPInputStream (which can only read already-compressed data)
- [MODE-969] - Importing metadata via Teiid Designer using ModeShape jdbc driver shows column jcr_name in the tables, but it is not queryable
- [MODE-970] - Importing metadata via Teiid Designer using ModeShape jdbc driver contains a table called: mmcore_tags which doesn't exist when queried directly to modeshape
- [MODE-971] - Sequence process does not work correctly for VDB files when using other than default repository and workspace names.
- [MODE-972] - CND sequencer doesn't work correctly
- [MODE-973] - FileSystemConnector behaves strangely on NFS
- [MODE-974] - Importing metadata via Teiid Designer using ModeShape jdbc driver contains a table called: ddl_operation which doesn't exist when queried directly to modeshape
- [MODE-976] - ModeShape_LARGEVALUE_USAGES table does not contain primary key
- [MODE-980] - ModeShape cannot be built on multi-user machine
Feature Request
- [MODE-747] - FileSystem connector should support additional properties on nt:file and nt:folder
- [MODE-758] - Add support for Infinispan Remote Cache Manager
- [MODE-775] - Add workspace name to RequestException message
- [MODE-860] - Add Methods to Search for Resource File Paths and Retrieval
- [MODE-869] - Support subqueries in place of static operands (in criteria) in JCR-SQL2 queries
- [MODE-884] - Add support for variables in the RESTful API method for executing queries
- [MODE-908] - Create the JDBC Driver documentation
- [MODE-932] - Add Active Sessions Metric on Connector Resource in Jopr
- [MODE-933] - JDBC driver should expose path, name, local name, depth and score
- [MODE-934] - Add support for path, name, local name, depth, and score pseudo-column in JCR-SQL2
- [MODE-937] - Expose primary and unique keys in the JDBC driver's Database MetaData
- [MODE-948] - Add WebDav support for accessing multiple repositories, currently only one can be accessed at a time.
- [MODE-975] - Pseudo-columns should be included when expanding SELECT *
Task
- [MODE-824] - Added more monitoring hooks and connect ManagedComponent implementations
- [MODE-842] - Refactor the pom assembly of the jbossas project so that the kit can be built only when needed
- [MODE-916] - When using cargo in unit tests, its temporary files need to be cleaned up
- [MODE-925] - Unbundle the jpa ddl-gen utility jar into the individual dependency jars because duplicate license files exist
- [MODE-936] - Create a sample Log4J configuration file for the JBoss AS kit
- [MODE-938] - Document the QUERY_INDEX_DIRECTORY repository option (where the Lucene indexes are stored)
- [MODE-939] - System workspace should not be visible to JCR repository
- [MODE-960] - Use 'nt:resource' instead of 'mode:resource' when used with 'nt:file'
Thirdparty Change
- [MODE-881] - Upgrade to Infinispan 4.1.0.Final
- [MODE-929] - Upgrade to jgroups 2.10