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;