Release Notes for JBoss DNA Version 0.4 JCR Support ----------- This version of JBoss DNA supports all JCR Level 1 features except XPath queries, and all JCR Level 2 features except authorization, referential integrity for reference properties, re-ordering of orderable child nodes, workspace cloning and corresponding nodes, workspace copying. Accessing the Repository - JAAS 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 (But Not Copying Yet) - Adding/Removing Mixins 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 in 0.5) Repository Metadata under System Node - Permanent Namespace Mappings - Node Types (Built-In and User-Registered) Bug Fixes, Features, and other Issues ------------------------------------- ** Bug * [DNA-219] - XML Sequencer should handle decoding names and values containing escape characters * [DNA-250] - Creating a path from a parent path and a segment is not fast * [DNA-254] - CreateNodeRequest does not allow passing in location of existing parent * [DNA-282] - Federation connector improperly handles root-level node with one projection of a non-root node from a single source * [DNA-283] - fileSystemPaths property value is ignored for FileSystemSources configured through XML * [DNA-287] - AbstractJcrNode.getAncestor Does Not Match JCR 1.0 Specification * [DNA-288] - JcrRepository.login Does Not Match JCR 1.0 Specification * [DNA-289] - AbstractJcrItem.isSame Does Not Match JCR 1.0 Specification * [DNA-290] - Getting child nodes or properties by pattern is not implemented * [DNA-291] - JCR property objects do not have PropertyDefinition * [DNA-292] - System View Creates Nodes With Primary Type That Is Not Defined in Type Load * [DNA-293] - JcrSession creates Property instances that use the PropertyType.UNDEFINED, which is not allowed * [DNA-295] - TCK Tests for Session.export* Methods Fail * [DNA-296] - JcrSession Sometimes Eschews Single-Valued Variants of PropertyDefinitions * [DNA-297] - JcrSession.exportDocumentView Does Not Export Carriage Returns, Line Feeds, and Tabs Correctly * [DNA-298] - SVNRepositoryTest Fails on Windows * [DNA-299] - Path.isNormalized() is incorrect if the path begins with parent reference(s) * [DNA-300] - The DNA PathNotFoundException message text does not include the lowest existing path that was found * [DNA-304] - SessionCache Uses Graph Layer Cardinality for Properties Instead of Cardinality from JCR Property Definition * [DNA-305] - JcrNodeType.canSetProperty Does Not Enforce Constraints * [DNA-333] - BasicName.getString Doesn't Use Provided TextEncoder When the Name Has No Namespace * [DNA-334] - Should not allow creating a Name from a string with multiple non-escaped colons * [DNA-335] - DNA's NodeTypeManager implementation does not allow multiple definitions with the same name * [DNA-336] - JcrValue.asType(int desiredPropertyType) skips a number of valid conversions and has duplicate logic * [DNA-337] - Namespace Registries Create Two Nodes at /jcr:system/dna:namespaces * [DNA-338] - Definitions That Allow SNS Are Not Used For Nodes Without SNS * [DNA-341] - Graph API behavior when removing all property values doesn't reflect that of JCR * [DNA-342] - Wrong Values is Cast When Setting Property with Castable Type * [DNA-343] - TCK Tests for Node Mixin Modification Methods Fail * [DNA-344] - JcrSession.getValueFactory.create(String, int) Does Not Fail Fast as per Specification * [DNA-345] - JcrMultiValueProperty.setValues(null) Doesn't Remove Property * [DNA-346] - JR TCK Tests for SetPropertyStringTest and SetPropertyValueTest Fail * [DNA-347] - JcrQuery.storeAsNode Is Not Implemented * [DNA-348] - AbstractJcrNode.checkin and .checkout Throws the Wrong Exception Type * [DNA-349] - AbstractJcrNode.addNode Does Not Add jcr:uuid Property if Primary Type Extends mix:referenceable * [DNA-350] - RepoistoryNodeTypeManager.findBest*Definition Returns Wrong Definition for Protected Items if skipProtected is True. * [DNA-352] - Version Tests in SerializationTest Fail Due to TCK Bug * [DNA-353] - JcrSession.exportSystemView Does Not Handle skipBinary = true Properly * [DNA-354] - JcrSession.hasPendingChanges Is Not Implemented * [DNA-355] - Wrong Exception Thrown When Creating Reference Value from Non-Referenceable Node * [DNA-356] - Need to Throw ItemExistsException if addNode Call Fails Due to SNS * [DNA-359] - Session.refresh and Node.refresh Methods Not Supported * [DNA-360] - JcrSession.importXml and getContentHandler Are Not Implemented * [DNA-361] - SessionCache Throws Wrong Exception Type For Invalid Item State * [DNA-362] - AbstractJcrItem.isNew and isModified Are Not Implemented * [DNA-364] - Session.move Is Not Implemented * [DNA-365] - Workspace.importXml and getContentHandler Are Not Implemented * [DNA-369] - Nodes Can Be Saved Without Mandatory Properties or Child Nodes Present * [DNA-374] - Multiplicity of some properties may change when saved and reloaded from the graph * [DNA-377] - AbstractJcrNode.addNode(String relPath) Throws Wrong Exception if relPath Has Form PropertyName/NodeName * [DNA-380] - The inflector is not lowercasing the first character in the 'camelCase(...)' method * [DNA-382] - Workspace.move Is Not Supported * [DNA-383] - dna-jcr-tck Project Keeps Getting Out Of Sync With dna-jcr Project * [DNA-384] - Trouble compiling Java sequencer using Eclipse JDT and its dependencies * [DNA-385] - Documentation Updates for 0.4 * [DNA-386] - AbstractJcrNode Javadoc Throws Clause Are Out Of Sync * [DNA-387] - Federation connector does not support updates, which are required when using with the JCR implementation ** Feature Request * [DNA-34] - Federate content stored on file system (read-only access) * [DNA-40] - Create connector to store any content in a relational database * [DNA-48] - Development and testing kit for connectors * [DNA-73] - Sequence CND files * [DNA-260] - Add factory method to create a Binary instance from a (local) File * [DNA-262] - JCR-Level 2: Support persistent namespace changes * [DNA-265] - Improve the Graph API's methods for returning blocks of children * [DNA-266] - Improve usability of graph API with additional methods * [DNA-268] - Add performance tests to the connector testing framework. * [DNA-276] - ExecutionContext story should be simplified by eliminating ExecutionContextFactory * [DNA-281] - Connector support for workspaces * [DNA-339] - JCR Type Registration and Unregistration * [DNA-340] - Projection of Node Types onto System View * [DNA-351] - Performance Test for JCR Access * [DNA-357] - Hide dna:nodeDefinition Property from Users * [DNA-366] - Allow child node to be reordered in the Graph API * [DNA-375] - Enhance MoveBranchRequest to take a new name, analogous to how CopyBranchRequest works * [DNA-378] - XML Graph Importer should support importing multi-valued properties * [DNA-381] - The Graph API should allow creating a node if it does not already exist ** Task * [DNA-58] - Create repository configuration and component * [DNA-114] - Create Microsoft Office file sequencer * [DNA-174] - Should ensure single versions required for 3rd-party dependencies within same classloader * [DNA-264] - Connectors may need to determine the MIME type for content * [DNA-267] - Change copyright year to 2009 * [DNA-270] - Simplify the ExecutionContext framework * [DNA-271] - Change mechanism to declare copyright, moving from source code into separate file included with distributions * [DNA-272] - Move the In-Memory connector into "dna-graph" * [DNA-273] - Define and document the official patch procedure * [DNA-275] - Change plural package names to be singular * [DNA-277] - Fix all text files in source code to have consistent line feeds * [DNA-278] - Create new utility class for determining validity of XML NCNames * [DNA-279] - Various improvements to the Graph API * [DNA-280] - Create optimized versions of Location * [DNA-294] - Define a custom node type for the root node in a repository * [DNA-301] - Most state managed within the Workspace should be shared among multiple Session instances * [DNA-306] - Add ability to run all TCK unit tests within Hudson, showing success and failure rate * [DNA-358] - Break the XmlHandler.Destination into an area where it can be reused by other importers ** Thirdparty Change * [DNA-253] - Add support in the JBoss Cache connector for JBoss Cache 3.0. ** Sub-task * [DNA-88] - Incorporate JCR TCK tests * [DNA-91] - Implement node type management * [DNA-137] - Using ANTLR, create grammar for CND file specification * [DNA-138] - Create unit tests for the generated lexer/parser classes * [DNA-140] - Create CND sequencer making use of the CND lexer/parser * [DNA-141] - Generated lexer/parser code should include suppress warnings annotation * [DNA-142] - Grammar should parse namespace mappings into a prefix and a URI * [DNA-143] - Create tests for child node definition counts and quoted strings in the grammar unit tests * [DNA-144] - Parser should throw exception if parsing of CND does not complete successfully * [DNA-153] - Add support for Microsoft Word document metadata * [DNA-194] - Implement update JCR capability * [DNA-233] - create a sub maven module project for svn connector * [DNA-286] - Implement namespace management * [DNA-302] - Make JcrNodeTypeManager not dependent on JcrSession * [DNA-303] - The workspace NamespaceRegistry implementation should be shared