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
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
- [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