You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2015/03/08 04:47:16 UTC

svn commit: r1664942 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java

Author: chetanm
Date: Sun Mar  8 03:47:16 2015
New Revision: 1664942

URL: http://svn.apache.org/r1664942
Log:
OAK-2581 - Metatype info for SegmentNodeStoreService

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java?rev=1664942&r1=1664941&r2=1664942&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java Sun Mar  8 03:47:16 2015
@@ -88,50 +88,103 @@ import org.slf4j.LoggerFactory;
 /**
  * An OSGi wrapper for the segment node store.
  */
-@Component(policy = ConfigurationPolicy.REQUIRE)
+@Component(policy = ConfigurationPolicy.REQUIRE,
+        metatype = true,
+        label = "Apache Jackrabbit Oak Segment NodeStore Service",
+        description = "NodeStore implementation based on Document model. For configuration option refer " +
+                "to http://jackrabbit.apache.org/oak/docs/osgi_config.html#SegmentNodeStore. Note that for system " +
+                "stability purpose it is advisable to not change these settings at runtime. Instead the config change " +
+                "should be done via file system based config file and this view should ONLY be used to determine which " +
+                "options are supported"
+)
 @Property(name = "oak.nodestore.description", value = {"nodeStoreType=segment"}, propertyPrivate = true)
 public class SegmentNodeStoreService extends ProxyNodeStore
         implements Observable, SegmentStoreProvider {
 
-    @Property(description="The unique name of this instance")
     public static final String NAME = "name";
 
-    @Property(description="TarMK directory")
+    @Property(
+            label = "Directory",
+            description="Directory location used to store the segment tar files. If not specified then looks " +
+                    "for framework property 'repository.home' otherwise use a subdirectory with name 'tarmk'"
+    )
     public static final String DIRECTORY = "repository.home";
 
-    @Property(description="TarMK mode (64 for memory mapping, 32 for normal file access)")
+    @Property(
+            label = "Mode",
+            description="TarMK mode (64 for memory mapping, 32 for normal file access)"
+    )
     public static final String MODE = "tarmk.mode";
 
-    @Property(description="TarMK maximum file size (MB)", intValue=256)
+    @Property(
+            intValue = 256,
+            label = "Maximum Tar File Size (MB)",
+            description = "TarMK maximum file size (MB)"
+    )
     public static final String SIZE = "tarmk.size";
 
-    @Property(description="Cache size (MB)", intValue=256)
+    @Property(
+            intValue = 256,
+            label = "Cache size (MB)",
+            description = "Cache size for storing most recently used Segments"
+    )
     public static final String CACHE = "cache";
 
-    @Property(description = "TarMK compaction clone binaries flag", boolValue = CLONE_BINARIES_DEFAULT)
+    @Property(
+            boolValue = CLONE_BINARIES_DEFAULT,
+            label = "Clone Binaries",
+            description = "Clone the binary segments while performing compaction"
+    )
     public static final String COMPACTION_CLONE_BINARIES = "compaction.cloneBinaries";
 
     @Property(options = {
             @PropertyOption(name = "CLEAN_ALL", value = "CLEAN_ALL"),
             @PropertyOption(name = "CLEAN_NONE", value = "CLEAN_NONE"),
-            @PropertyOption(name = "CLEAN_OLD", value = "CLEAN_OLD") }, value = "CLEAN_OLD")
+            @PropertyOption(name = "CLEAN_OLD", value = "CLEAN_OLD") },
+            value = "CLEAN_OLD",
+            label = "Cleanup Strategy",
+            description = "Cleanup strategy used for live in memory segment references while performing cleanup. "+
+                    "1. CLEAN_NONE: All in memory references are considered valid, " +
+                    "2. CLEAN_OLD: Only in memory references older than a " +
+                    "certain age are considered valid (compaction.cleanup.timestamp), " +
+                    "3. CLEAN_ALL: None of the in memory references are considered valid"
+    )
     public static final String COMPACTION_CLEANUP = "compaction.cleanup";
 
-    @Property(description = "TarMK compaction strategy timestamp older (ms)", longValue = TIMESTAMP_DEFAULT)
+    @Property(
+            longValue = TIMESTAMP_DEFAULT,
+            label = "Reference expiry time (ms)",
+            description = "Time interval in ms beyond which in memory segment references would be ignored " +
+                    "while performing cleanup"
+    )
     public static final String COMPACTION_CLEANUP_TIMESTAMP = "compaction.cleanup.timestamp";
 
-    @Property(description = "TarMK compaction available memory multiplier needed to run compaction", byteValue = MEMORY_THRESHOLD_DEFAULT)
+    @Property(
+            byteValue = MEMORY_THRESHOLD_DEFAULT,
+            label = "Memory Multiplier",
+            description = "TarMK compaction available memory multiplier needed to run compaction"
+    )
     public static final String COMPACTION_MEMORY_THRESHOLD = "compaction.memoryThreshold";
 
-    @Property(description = "TarMK compaction paused flag", boolValue = PAUSE_DEFAULT)
+    @Property(
+            boolValue = PAUSE_DEFAULT,
+            label = "Pause Compaction",
+            description = "When enabled compaction would not be performed"
+    )
     public static final String PAUSE_COMPACTION = "pauseCompaction";
 
-    @Property(description = "Flag indicating that this component will not register as a NodeStore but just as a NodeStoreProvider", boolValue = false)
+    @Property(
+            boolValue = false,
+            label = "Standby Mode",
+            description = "Flag indicating that this component will not register as a NodeStore but just as a NodeStoreProvider"
+    )
     public static final String STANDBY = "standby";
 
-    /**
-     * Boolean value indicating a blobStore is to be used
-     */
+    @Property(boolValue = false,
+            label = "Custom BlobStore",
+            description = "Boolean value indicating that a custom BlobStore is to be used. " +
+                    "By default large binary content would be stored within segment tar files"
+    )
     public static final String CUSTOM_BLOB_STORE = "customBlobStore";
 
     private final Logger log = LoggerFactory.getLogger(getClass());