Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-22 Thread Murtadha Hubail (Code Review)
Murtadha Hubail has submitted this change and it was merged.

Change subject: Replace Java serialization in checkpoints by Json
..


Replace Java serialization in checkpoints by Json

Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1457
Reviewed-by: Till Westmann 
Sonar-Qube: Jenkins 
Tested-by: Jenkins 
BAD: Jenkins 
Integration-Tests: Jenkins 
Reviewed-by: abdullah alamoudi 
---
M asterixdb/asterix-common/pom.xml
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
M 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
M asterixdb/pom.xml
4 files changed, 50 insertions(+), 22 deletions(-)

Approvals:
  abdullah alamoudi: Looks good to me, approved
  Till Westmann: Looks good to me, but someone else must approve
  Jenkins: Verified; No violations found; No violations found; Verified



diff --git a/asterixdb/asterix-common/pom.xml b/asterixdb/asterix-common/pom.xml
index cb5075a..7df1da6 100644
--- a/asterixdb/asterix-common/pom.xml
+++ b/asterixdb/asterix-common/pom.xml
@@ -311,6 +311,10 @@
   org.apache.hyracks
   hyracks-data-std
 
+
+  com.fasterxml.jackson.core
+  jackson-annotations
+
   
 
 
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
index 8bbdab7..a74898e 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
@@ -18,11 +18,16 @@
  */
 package org.apache.asterix.common.transactions;
 
-import java.io.Serializable;
+import java.io.IOException;
 
-public class Checkpoint implements Serializable, Comparable {
+import org.apache.hyracks.api.exceptions.HyracksDataException;
 
-private static final long serialVersionUID = 1L;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class Checkpoint implements Comparable {
 
 private final long checkpointLsn;
 private final long minMCTFirstLsn;
@@ -31,8 +36,11 @@
 private final boolean sharp;
 private final int storageVersion;
 
-public Checkpoint(long checkpointLsn, long minMCTFirstLsn, int maxJobId, 
long timeStamp, boolean sharp,
-int storageVersion) {
+@JsonCreator
+public Checkpoint(@JsonProperty("checkpointLsn") long checkpointLsn,
+@JsonProperty("minMCTFirstLsn") long minMCTFirstLsn, 
@JsonProperty("maxJobId") int maxJobId,
+@JsonProperty("timeStamp") long timeStamp, @JsonProperty("sharp") 
boolean sharp,
+@JsonProperty("storageVersion") int storageVersion) {
 this.checkpointLsn = checkpointLsn;
 this.minMCTFirstLsn = minMCTFirstLsn;
 this.maxJobId = maxJobId;
@@ -107,4 +115,20 @@
 result = prime * result + (int) (timeStamp ^ (timeStamp >>> 32));
 return result;
 }
-}
+
+public String asJson() throws HyracksDataException {
+try {
+return new ObjectMapper().writeValueAsString(this);
+} catch (JsonProcessingException e) {
+throw new HyracksDataException(e);
+}
+}
+
+public static Checkpoint fromJson(String json) throws HyracksDataException 
{
+try {
+return new ObjectMapper().readValue(json, Checkpoint.class);
+} catch (IOException e) {
+throw new HyracksDataException(e);
+}
+}
+}
\ No newline at end of file
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
index 0b86ea5..d2650e9 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
@@ -18,14 +18,14 @@
  */
 package org.apache.asterix.transaction.management.service.recovery;
 
+import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
-import 

Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-22 Thread abdullah alamoudi (Code Review)
abdullah alamoudi has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1679/ 
: SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3: BAD+1

BAD Compatibility Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/356/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3:

BAD Compatibility Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/356/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1679/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Till Westmann (Code Review)
Till Westmann has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 3: Code-Review+1

Looks good to me, hope Abdullah likes it :)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Till Westmann (Code Review)
Till Westmann has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

(1 comment)

https://asterix-gerrit.ics.uci.edu/#/c/1457/2/asterixdb/asterix-common/pom.xml
File asterixdb/asterix-common/pom.xml:

Line 317:   2.8.0
> Done (at least I think)
Looks good.


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Murtadha Hubail (Code Review)
Murtadha Hubail has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

(3 comments)

https://asterix-gerrit.ics.uci.edu/#/c/1457/2/asterixdb/asterix-common/pom.xml
File asterixdb/asterix-common/pom.xml:

Line 317:   2.8.0
> Add the version to dependency management in the root pom.
Done (at least I think)


https://asterix-gerrit.ics.uci.edu/#/c/1457/2/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
File 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java:

Line 120: final ObjectMapper mapper = new ObjectMapper();
> inline this variable?
Done


Line 129: final ObjectMapper mapper = new ObjectMapper();
> inline this variable?
Done


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Murtadha Hubail 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Murtadha Hubail (Code Review)
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

https://asterix-gerrit.ics.uci.edu/1457

to look at the new patch set (#3).

Change subject: Replace Java serialization in checkpoints by Json
..

Replace Java serialization in checkpoints by Json

Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
---
M asterixdb/asterix-common/pom.xml
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
M 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
M asterixdb/pom.xml
4 files changed, 50 insertions(+), 22 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/57/1457/3
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-21 Thread Till Westmann (Code Review)
Till Westmann has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

(3 comments)

https://asterix-gerrit.ics.uci.edu/#/c/1457/2/asterixdb/asterix-common/pom.xml
File asterixdb/asterix-common/pom.xml:

Line 317:   2.8.0
Add the version to dependency management in the root pom.


https://asterix-gerrit.ics.uci.edu/#/c/1457/2/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
File 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java:

Line 120: final ObjectMapper mapper = new ObjectMapper();
inline this variable?


Line 129: final ObjectMapper mapper = new ObjectMapper();
inline this variable?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1668/ 
: SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2: BAD+1

BAD Compatibility Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/348/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1668/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

BAD Compatibility Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/348/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/4002/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Murtadha Hubail (Code Review)
Murtadha Hubail has uploaded a new patch set (#2).

Change subject: Replace Java serialization in checkpoints by Json
..

Replace Java serialization in checkpoints by Json

Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
---
M asterixdb/asterix-common/pom.xml
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
M 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
3 files changed, 48 insertions(+), 22 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/57/1457/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Replace Java serialization in checkpoints by Json
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/4001/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1457
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Replace Java serialization in checkpoints by Json

2017-01-20 Thread Murtadha Hubail (Code Review)
Murtadha Hubail has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1457

Change subject: Replace Java serialization in checkpoints by Json
..

Replace Java serialization in checkpoints by Json

Change-Id: Id4353716267d45ce21580ac2856b6a552d05d1f7
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
M asterixdb/asterix-common/pom.xml
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
M 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java
4 files changed, 49 insertions(+), 23 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/57/1457/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
index bdce0ca..1df94d9 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
@@ -30,8 +30,8 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.asterix.common.config.PropertiesAccessor;
 import org.apache.asterix.common.config.GlobalConfig;
+import org.apache.asterix.common.config.PropertiesAccessor;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.hyracks.bootstrap.CCApplicationEntryPoint;
 import org.apache.asterix.hyracks.bootstrap.NCApplicationEntryPoint;
diff --git a/asterixdb/asterix-common/pom.xml b/asterixdb/asterix-common/pom.xml
index cb5075a..f13f64d 100644
--- a/asterixdb/asterix-common/pom.xml
+++ b/asterixdb/asterix-common/pom.xml
@@ -311,6 +311,11 @@
   org.apache.hyracks
   hyracks-data-std
 
+
+  com.fasterxml.jackson.core
+  jackson-annotations
+  2.8.0
+
   
 
 
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
index 8bbdab7..dc38392 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/transactions/Checkpoint.java
@@ -18,11 +18,16 @@
  */
 package org.apache.asterix.common.transactions;
 
-import java.io.Serializable;
+import java.io.IOException;
 
-public class Checkpoint implements Serializable, Comparable {
+import org.apache.hyracks.api.exceptions.HyracksDataException;
 
-private static final long serialVersionUID = 1L;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class Checkpoint implements Comparable {
 
 private final long checkpointLsn;
 private final long minMCTFirstLsn;
@@ -31,8 +36,11 @@
 private final boolean sharp;
 private final int storageVersion;
 
-public Checkpoint(long checkpointLsn, long minMCTFirstLsn, int maxJobId, 
long timeStamp, boolean sharp,
-int storageVersion) {
+@JsonCreator
+public Checkpoint(@JsonProperty("checkpointLsn") long checkpointLsn,
+@JsonProperty("minMCTFirstLsn") long minMCTFirstLsn, 
@JsonProperty("maxJobId") int maxJobId,
+@JsonProperty("timeStamp") long timeStamp, @JsonProperty("sharp") 
boolean sharp,
+@JsonProperty("storageVersion") int storageVersion) {
 this.checkpointLsn = checkpointLsn;
 this.minMCTFirstLsn = minMCTFirstLsn;
 this.maxJobId = maxJobId;
@@ -107,4 +115,22 @@
 result = prime * result + (int) (timeStamp ^ (timeStamp >>> 32));
 return result;
 }
-}
+
+public String asJson() throws HyracksDataException {
+final ObjectMapper mapper = new ObjectMapper();
+try {
+return mapper.writeValueAsString(this);
+} catch (JsonProcessingException e) {
+throw new HyracksDataException(e);
+}
+}
+
+public static Checkpoint fromJson(String json) throws HyracksDataException 
{
+final ObjectMapper mapper = new ObjectMapper();
+try {
+return mapper.readValue(json, Checkpoint.class);
+} catch (IOException e) {
+throw new HyracksDataException(e);
+}
+}
+}
\ No newline at end of file
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/AbstractCheckpointManager.java