open issues, features not yet implemented, improvements, etc. ------------------------------------------------------------- the following list is not yet categorized/prioritized, neither is it complete :( - search - versioning - locking - jta support - access control - current persistence model (nodes and properties are stored in separate files) leads to *very* slow performance in a normal filesystem; see next issue for a solution - provide clean abstraction for persistence grouping (nodes & properties that should be stored/loaded together in the persistence layer); (e.g. properties are stored within .node.xml) - need a more efficient way to persistently remove state of items in transient attic (nodes in transient attic are orphaned, i.e. they are disconnected from the hierarchy and can thus not be easily identified on Node#save): => need a hierarchical cache index for items in the transient attic (see TransientItemStateManager), sparse tree index?; this index needs to be maintained/updated on every transient & persistent hierarchy operation (move, remove, copy) - HierarchyManager: cache Path objects (key: ItemId, value: Path[]); update cache on hierarchy changes (move, hardlink, remove, etc) - inline @todo comments: resolve/implement - implement semantics of REFERENCE property type (i.e. referential integrity) - multiple parents & NodeDef of child node: - the child node adopts the NodeDef at creation time - when the child node is removed from this 'first' parent, it should adopt the NodeDef from another parent - use jdbc as an alternative to virtual filesystem persistence layer - use an alternative journaling filesystem as (transactional) persistence layer - gracefull repository shutdown: - close abstract file systems (e.g. flush dirty buffers, etc.) - close workspaces - shutdown repository - trap JVM shutdown in RepositoryFactory? (Runtime#addShutdownHook) - ItemState: hide STATUS_* flags, use set* and is* methods instead - javaDoc, javaDoc, javaDoc - logging: use commons logginh instead of log4j - logging: remove unnecessary output, check log categories/verbosity, use 'debug' whenever possible