jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jackrabbit Wiki] Update of "MicroKernelPrototype" by ThomasMueller
Date Mon, 15 Mar 2010 11:56:17 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jackrabbit Wiki" for change notification.

The "MicroKernelPrototype" page has been changed by ThomasMueller.
http://wiki.apache.org/jackrabbit/MicroKernelPrototype?action=diff&rev1=1&rev2=2

--------------------------------------------------

  == MicroKernelPrototype ==
  
+ {{http://wiki.apache.org/jackrabbit/MicroKernelPrototype?action=AttachFile&do=get&target=drawing.png}}
+ 
+ The Jackrabbit 3 !MicroKernel prototype consists of the following components:
+ 
+  * Test Application - use the JCR 2.0 API to talk to Jackrabbit.
+ 
+  * Package j3 contains the JCR API implementation and core classes.
+ 
+  * Package j3.mc contains the !MicroKernel implementation. 
+ 
+  * Packages j3.mc.jdbc and j3.mc.mem contains Storage engines implementations
+ 
+ === Core ===
+ 
+  * Each !RepositoryImpl has a read-only cache of !NodeData objects. It also references the
!MicroKernel Storage and keeps a list of open !SessionImpl
+ 
+  * Each !SessionImpl has a weak-reference map of !NodeState objects. It contains a reference
to the !StorageSession.
+ 
+  * A !NodeImpl object represents a node with a path. The object contains no data, but it
references a parent (for the path) and a !NodeState.
+ 
+  * A !NodeState is a wrapper for an unmodified or modified !NodeData object. If the data
gets modified, a new !NodeData object is created (read-only !NodeData objects are immutable).
For each shareable node, there is only one !NodeState and one !NodeData object.
+ 
+  * A !PropertyImpl contains the !NodeImpl reference and the property name. It does not contains
data.
+ 
+  * For each modification, a Change object is created. This Change is then added to the session,
and applied. A Change can be re-applied afterwards if storing the changes fails. A Change
object is also the base for event logging and observation.
+ 
+ === Micro Kernel ===
+ 
+  * There is one Storage object per repository.
+ 
+  * !NodeData objects contain the actual data in for of Val objects
+  
+  * A Val object represents a value and a property type. It is immutable.
+ 
+  * Each !StorageSession represents a session. A session may or may not have 'state'. For
example, a session in a JDBC storage may references a JDBC connection, but it doesn't have
to.
+ 
+  * A Bundle object contains the serialized form of one or multiple !NodeData objects.
+ 
+  * There are currently two Storage / !StorageSession implementations: an in-memory storage,
and a JDBC storage.
+ 

Mime
View raw message