Release Notes for ModeShape 2.5.0.Final
ModeShape 2.5.0.Final includes several minor features, improvements, and bug fixes since 2.4.0.Final, including:
- new sequencers for XSD and WSDL files
- RESTful service exposes repository capabilities and metadata
- JPA connector can now specify the database schema that should be used
- JARs for most ModeShape modules are now OSGi bundles
- upgrades of several third-party dependencies
- smaller JAR files (no longer dependent upon Google Collections or the JCIP libraries)
- versioning-related fixes and performance improvements
- new javax.jcr.Credentials classes for anonymous and HTTP servlet authentication
- a built-in profiling framework enabling use of Byteman runtime bytecode injection
- refactored the build process, which now uses Maven 3
- switch to PicketBox for the JAAS implementation used in unit tests
- performance improvements
- four dozen bug fixes
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.5.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.5.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.
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
- 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, 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 release (since the 2.4.0.Final release):
Bug
- MODE-1171 - Exported workspace.xml not correctly imported in case of sv:multiple holds only single value
- MODE-1168 - RepositoryService Doesn't Handle Overloaded Setters on RepositorySources
- MODE-1167 - Misspelling in SystemPropertyFactory
- MODE-1165 - Guvnor import fails due to constraint exceptions
- MODE-1101 - The SVN connector does not work properly with "svn://" URL format
- MODE-702 - JPA Connector Doesn't Support Apache Derby
- MODE-947 - ModeShape documentation for sequencers needs update
- MODE-1097 - ModeShape JPA repository in JBoss AS takes a long time to initialize when number of nodes are large
- MODE-1094 - Hibernate exception when querying ModeShape repositories with Oracle DB backend
- MODE-1174 - Web Configuration Examples in Reference Guide Use Bad JCR Config URL
- MODE-1175 - JSONException: JSONObject["metadata"] not found when connecting with a 2.5.0.Beta2 client jar to a SOA-P 5.1 server
- MODE-1176 - ModeShapeUnitTest is resulting in failures when starting engine in BeforeClass method using configuration file on classpath
- MODE-1050 - NPE in NodeTypeManager when validating a recursive node definition
- MODE-986 - FileSystemConnector should perform validation on filenamefilter
- MODE-1172 - Incorrect OnParentVersion behavior
- MODE-1015 - ModeShape unit tests are failing with DB2 9.7
- MODE-1089 - PathNotFoundException when trying to checkin a node.
- MODE-1144 - RepositoryException: Table 'nodeSet2' does not exist
- MODE-1145 - JCR-SQL2 Query is returning an error for properties referenced that are not in the NodeTypeDefinition
- MODE-1146 - REST Servlet Ignores Servlet Mappings Other Than /*
- MODE-1141 - VersionManager.checkin(...) descends below any versionable nodes within that subgraph
- MODE-1140 - Maven build is not running older JUnit 3 unit tests (e.g., the TCK unit tests)
- MODE-1137 - Importing and/or exporting Unicode characters results in exceptions
- MODE-1130 - Unable To Use Versioning When Publishing Files Using REST Client
- MODE-1131 - Exception Querying For Workspace Areas Using IRestClient
- MODE-1154 - RepositoryNodeTypeManager allows NodeTypes to be updated, but JcrNodeTypeManager does not pass through allowUpdate
- MODE-1152 - Repositories example requires HSQLDB
- MODE-1136 - Lock and unlock requests are not being batched correctly
- MODE-1139 - javax.jcr.nodetype.ConstraintViolationException is wrapped by org.modeshape.jcr.JcrContentHandler.EnclosingSAXException
- MODE-1088 - When using Designer to import from ModeShape, the table ntchildNodeDefinition, is exposing 2 columns (jcrname and jcr_name1) pointing to the same underlying sourced column of jcr:name
- MODE-1083 - A call to Property#getDefinition returns null for new property nodes which are based on a replicated PropertyDefinition.
- MODE-1078 - NPE when LockManager attempts to process a change from cluster.
- MODE-1048 - If initialContent file is not a valid location, then "java.lang.IllegalArgumentException: The stream argument may not be null" is seen when accessing REST via browser
- MODE-1109 - Remote Infinispan tests fail if running on computer with IPv6 networking
- MODE-1127 - Unable to extract parsed namespaces via CndNodeTypeReader
- MODE-1103 - ModeShape should close the supplied input streams when importing XML
- MODE-1102 - Should not require setting the "autoGenerateSchema" property on the JpaSource
- MODE-1105 - Cannot read modeshape-initial-content.xml when deployed as service
- MODE-1093 - Search indexes were not always updated to reflect all changes
- MODE-1092 - WEAKREFERENCE is converted to a REFERENCE property when retrieved
- MODE-1099 - IRestClient Does Not Provide A Way To Allow Versioning To Occur When A Resource Is Published
- MODE-841 - File content is not being extracted and included in the search indexes
- MODE-1077 - First file uploaded for publishing is missing intermediary folder in query results
- MODE-1119 - Checking ModeShape status in the JBoss AS console results in an exception
- MODE-1070 - Enabling clustering in Reference Guide
- MODE-1073 - Sequencing multiple files occasionally results in extra intermediate nodes being generated with other same-name-sibling indexes appended
- MODE-1113 - Node type are missing after restarting ModeShape
- MODE-1110 - Query with multiple inner joins results in NullPointerException
- MODE-1117 - The "jcr:predecessors" property for "mix:versionable" nodes is set incorrectly
- MODE-1114 - Importing and reimporting (replacing) same XML with versioned content results in corrupted version history
Component Upgrade
- MODE-1143 - Upgrade to Lucene 3.1
- MODE-880 - Change from using JBoss IDTrust to PicketBox
Enhancement
- MODE-1169 - Reference Guide Documentation for Some Sequencers Doesn't Mention mode:derived
- MODE-1153 - Move examples to its own git repository
- MODE-1151 - Examples should use Logback for logging
- MODE-1124 - Use org.hibernate.cfg.Environment constants when specifying hibernate parameters
- MODE-1112 - Pushing changes upstream that enable ModeShape to be built in Mead
Feature Request
- MODE-32 - Sequence XSD files
- MODE-1162 - RESTful service and API should expose capabilities
- MODE-33 - Sequence WSDL 1.1 files
- MODE-1091 - JPA connector: Extension of JPA connector's configuration with default DB schema
- MODE-1098 - When reading the configuration file, enable the reader to perform property substitution so that locations can be dynamically set
- MODE-1116 - Modeshape in OSGI
- MODE-1034 - WebDAV service should support customizing the node types that are treated as files
- MODE-1147 - Add support in CND parser for vendor extensions
- MODE-1122 - Option to allow sessions to use anonymous privileges when JAAS authentication fails
- MODE-1135 - Add ability to define and call functions in Requests in the graph/connector framework
- MODE-1138 - Value constraint violation message
- MODE-1121 - Create a javax.jcr.Credentials implementation for anonymous users and for HTTP servlet authentication
- MODE-1111 - InitialContextFactory for modeshape
Task
- MODE-1177 - Configure tests to be run in consistent order
- MODE-1155 - Add unit test to check that all JpaSource property label, descriptions, and categories I18n messages exist
- MODE-1156 - Rename 'with-dependencies' JAR file in the 'modeshape-jdbc' module
- MODE-1076 - Change all 'JOPR' references in documentation and code to 'RHQ'
- MODE-1108 - Add compilation support in for JDK 1.5 for downstream projects
- MODE-1128 - Remove dependency on JCIP
- MODE-1125 - Ignore .classpath and .project and remove it from projects
- MODE-1142 - Clean up inconsistent @Override annotations
- MODE-999 - Fix pom.xml in modeshape-jbossas-web-webdav-war
- MODE-1100 - Update Reference Guide to reflect use of Git and Maven 3
- MODE-1104 - Build all ModeShape artifacts in one step
- MODE-1106 - Break out parent POM into separate module
- MODE-1014 - ModeShape JDBC driver requires too many dependencies when using local JCR
- MODE-1096 - Move to Maven 3
- MODE-1074 - Fix the Java and JavaDoc compiler warnings that appear when using Eclipse 3.6.1
- MODE-1079 - Correct COPYRIGHT year
Sub-task
- MODE-1134 - Versioning operations use system graph inefficiently
- MODE-1085 - Create system to easily profile/record commands and activity of sessions