Author: frm
Date: Tue Dec  8 10:43:01 2015
New Revision: 1718552

URL: http://svn.apache.org/viewvc?rev=1718552&view=rev
Log:
OAK-3741 - Parameterize the name of the result type of AbstractCheckpointMBean

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/package-info.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java?rev=1718552&r1=1718551&r2=1718552&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentCheckpointMBean.java
 Tue Dec  8 10:43:01 2015
@@ -42,6 +42,11 @@ public class DocumentCheckpointMBean ext
     }
 
     @Override
+    protected String getTypeName() {
+        return DocumentCheckpointMBean.class.getName();
+    }
+
+    @Override
     protected void collectCheckpoints(TabularDataSupport tab) throws 
OpenDataException {
         Map<Revision, Info> checkpoints = 
store.getCheckpoints().getCheckpoints();
         if (checkpoints == null) {
@@ -53,8 +58,7 @@ public class DocumentCheckpointMBean ext
             Info info = checkpoint.getValue();
             Date created = new Date(checkpoint.getKey().getTimestamp());
             Date expires = new Date(info.getExpiryTime());
-            tab.put(id, toCompositeData(
-                    id, created.toString(), expires.toString(), info.get()));
+            tab.put(id, toCompositeData(getTypeName(), id, created.toString(), 
expires.toString(), info.get()));
         }
     }
 

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java?rev=1718552&r1=1718551&r2=1718552&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCheckpointMBean.java
 Tue Dec  8 10:43:01 2015
@@ -41,13 +41,18 @@ public class SegmentCheckpointMBean exte
     }
 
     @Override
+    protected String getTypeName() {
+        return SegmentCheckpointMBean.class.getName();
+    }
+
+    @Override
     protected void collectCheckpoints(TabularDataSupport tab) throws 
OpenDataException {
         for (ChildNodeEntry cne : 
store.getCheckpoints().getChildNodeEntries()) {
             String id = cne.getName();
             NodeState checkpoint = cne.getNodeState();
             String created = getDate(checkpoint, "created");
             String expires = getDate(checkpoint, "timestamp");
-            tab.put(id, toCompositeData(id, created, expires, 
store.checkpointInfo(id)));
+            tab.put(id, toCompositeData(getTypeName(), id, created, expires, 
store.checkpointInfo(id)));
         }
     }
 

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java?rev=1718552&r1=1718551&r2=1718552&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/AbstractCheckpointMBean.java
 Tue Dec  8 10:43:01 2015
@@ -34,7 +34,6 @@ import javax.management.openmbean.Tabula
 import javax.management.openmbean.TabularType;
 
 import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean;
-import org.apache.jackrabbit.oak.plugins.segment.SegmentCheckpointMBean;
 
 /**
  * Abstract base class for {@code CheckpointMBean} implementations.
@@ -49,8 +48,6 @@ public abstract class AbstractCheckpoint
     private static final OpenType[] FIELD_TYPES = new OpenType[] {
             STRING, STRING, STRING, createStringArrayType()};
 
-    private static final CompositeType TYPE = createCompositeType();
-
     private static ArrayType<String> createStringArrayType() {
         try {
             return new ArrayType<String>(STRING, false);
@@ -59,10 +56,9 @@ public abstract class AbstractCheckpoint
         }
     }
 
-    private static CompositeType createCompositeType() {
+    private static CompositeType createCompositeType(String name) {
         try {
-            return new CompositeType(SegmentCheckpointMBean.class.getName(),
-                    "Checkpoints", FIELD_NAMES, FIELD_DESCRIPTIONS, 
FIELD_TYPES);
+            return new CompositeType(name, "Checkpoints", FIELD_NAMES, 
FIELD_DESCRIPTIONS, FIELD_TYPES);
         } catch (OpenDataException e) {
             throw new IllegalStateException(e);
         }
@@ -80,12 +76,19 @@ public abstract class AbstractCheckpoint
      */
     protected abstract void collectCheckpoints(TabularDataSupport tab) throws 
OpenDataException;
 
+    /**
+     * Provides the name of the result type.
+     *
+     * @return A {@code String} representing the name of the result type.
+     */
+    protected abstract String getTypeName();
+
     @Override
     public TabularData listCheckpoints() {
         try {
             TabularDataSupport tab = new TabularDataSupport(
-                    new TabularType(SegmentCheckpointMBean.class.getName(),
-                            "Checkpoints", TYPE, new String[] { "id" }));
+                    new TabularType(getTypeName(),
+                            "Checkpoints", createCompositeType(getTypeName()), 
new String[] { "id" }));
 
             collectCheckpoints(tab);
             return tab;
@@ -107,8 +110,25 @@ public abstract class AbstractCheckpoint
      */
     protected static CompositeDataSupport toCompositeData(String id, String 
created, String expires,
             Map<String, String> properties) throws OpenDataException {
-        return new CompositeDataSupport(TYPE, FIELD_NAMES, new Object[] {
-            id, created, expires, toArray(properties) });
+        return toCompositeData(CheckpointMBean.class.getName(), id, created, 
expires, properties);
+    }
+
+    /**
+     * Utility method for converting the fields associated with a checkpoint to
+     * the composite data format.
+     *
+     * @param type    name of the result type
+     * @param id      id of the checkpoint
+     * @param created creation data of the checkpoint
+     * @param expires expiry data of the checkpoint
+     * @return composite data representation of the fields associated with the
+     * checkpoint
+     * @throws OpenDataException
+     */
+    protected static CompositeDataSupport toCompositeData(String type, String 
id, String created, String expires,
+                                                          Map<String, String> 
properties) throws OpenDataException {
+        return new CompositeDataSupport(createCompositeType(type), 
FIELD_NAMES, new Object[] {
+                id, created, expires, toArray(properties) });
     }
 
     private static String[] toArray(Map<String, String> properties) {

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/package-info.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/package-info.java?rev=1718552&r1=1718551&r2=1718552&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/package-info.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/package-info.java
 Tue Dec  8 10:43:01 2015
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.3.1")
+@Version("1.4.0")
 @Export(optional = "provide:=true")
 package org.apache.jackrabbit.oak.util;
 


Reply via email to