[dna-dev] New federation branch created

Randall Hauch rhauch at redhat.com
Thu May 15 18:01:11 EDT 2008


I've created a new 'federation' branch where the development of the  
federation engine, connector framework, caching system, and unified  
graph will be done.  If you have time, please check out the SPI for  
the connector and the graph API.  (This is still incomplete, but  
hopefully you see where it's going.)

The RepositoryConnector interface has a single "execute" method that  
takes a RepositoryCommand, and there are several types of commands.   
This makes it easy for us to add new functionality without breaking  
the API, and if we do it correctly, connectors can ignore commands  
they don't know about.  There are three existing commands  
(GetPropertiesCommand, GetChildrenCommand, and GetNodeCommand, which  
extends the first two), while others might include:  SearchCommand,  
CreateNodeCommand, DeleteNodeCommand, etc.  To make things easier for  
connector implementors, we'll probably want to have a visitor  
framework that makes it easy to implement behavior for different types  
of commands (and inherit no-op methods for behavior that a connector  
doesn't care about).

The graph SPI currently has definitions for qualified names, paths,  
property types, property values, and factories for some of these.   
We'll eventually add nodes, graphs, and some notion of versioning.   
The idea is that this SPI provides the different services with a basic  
graph language with versioning support.  One implementation of these  
interfaces will sit on top of the cached and integrated/federated  
graph, and will be used by the sequencing system, analyzer service,  
reporting service, and view service.  This implementation will also be  
used by our implementation of the JCR API and (potentially) an  
implementation of the UDDI API.

Caching should be for the most part transparent to the users of the  
SPI, but we'll start with using JBoss Cache.  Ideally, I'd like other  
caching systems to be pluggable (as people seem to have almost a  
religious preference for one caching library over the others).

As for connectors, for 0.2 we're currently planning a file system  
connector that exposes the contents of a directory as nt:file and  
nt:folder nodes (http://jira.jboss.org/jira/browse/DNA-34), a  
connector to another JCR repository (http://jira.jboss.org/jira/browse/DNA-39 
), and a connector to SVN or other SCM systems (http://jira.jboss.org/jira/browse/DNA-36 
).

Please log comments or suggestions for the connector API on http://jira.jboss.org/jira/browse/DNA-68 
  and the generic graph API on http://jira.jboss.org/jira/browse/DNA-67.

Regards,

Randall



More information about the dna-dev mailing list