Skip to content

Commit

Permalink
Fix incremental persistence to work on Windows Environment
Browse files Browse the repository at this point in the history
The persistence filename is fixed to support windows.
  • Loading branch information
suhothayan committed Jul 26, 2019
1 parent c0b954b commit 9c37b0d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ public final class SiddhiConstants {
public static final String EXTENSION_SEPARATOR = ":";

public static final String KEY_DELIMITER = ":-:";
public static final String KEY_DELIMITER_FILE = "-_-";
public static final String TRANSPORT_CHANNEL_CREATION_IDENTIFIER = "transportChannelCreationEnabled";

public static final String NAMESPACE_PURGE = "purge";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

package io.siddhi.core.util.persistence.util;

import io.siddhi.core.util.SiddhiConstants;

/**
* Struct to store information about Incremental Snapshot
*/
Expand All @@ -42,17 +44,19 @@ public IncrementalSnapshotInfo(String siddhiAppId, String partitionId, String qu
this.time = time;
this.type = type;
this.partitionGroupByKey = partitionGroupByKey;
this.id = siddhiAppId +
this.id = (siddhiAppId +
PersistenceConstants.REVISION_SEPARATOR + partitionId +
PersistenceConstants.REVISION_SEPARATOR + partitionGroupByKey +
PersistenceConstants.REVISION_SEPARATOR + queryName +
PersistenceConstants.REVISION_SEPARATOR + elementId;
this.revision = time + PersistenceConstants.REVISION_SEPARATOR + siddhiAppId +
PersistenceConstants.REVISION_SEPARATOR + elementId).
replaceAll(SiddhiConstants.KEY_DELIMITER, SiddhiConstants.KEY_DELIMITER_FILE);
this.revision = (time + PersistenceConstants.REVISION_SEPARATOR + siddhiAppId +
PersistenceConstants.REVISION_SEPARATOR + partitionId +
PersistenceConstants.REVISION_SEPARATOR + partitionGroupByKey +
PersistenceConstants.REVISION_SEPARATOR + queryName +
PersistenceConstants.REVISION_SEPARATOR + elementId +
PersistenceConstants.REVISION_SEPARATOR + type;
PersistenceConstants.REVISION_SEPARATOR + type).
replaceAll(SiddhiConstants.KEY_DELIMITER, SiddhiConstants.KEY_DELIMITER_FILE);
}

public String getSiddhiAppId() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import io.siddhi.core.config.SiddhiAppContext;
import io.siddhi.core.exception.PersistenceStoreException;
import io.siddhi.core.util.SiddhiConstants;
import io.siddhi.core.util.snapshot.AsyncIncrementalSnapshotPersistor;
import io.siddhi.core.util.snapshot.AsyncSnapshotPersistor;
import io.siddhi.core.util.snapshot.IncrementalSnapshot;
Expand All @@ -36,7 +37,8 @@
public final class PersistenceHelper {

public static IncrementalSnapshotInfo convertRevision(String revision) {
String[] items = revision.split(PersistenceConstants.REVISION_SEPARATOR);
String[] items = revision.replaceAll(SiddhiConstants.KEY_DELIMITER_FILE, SiddhiConstants.KEY_DELIMITER).
split(PersistenceConstants.REVISION_SEPARATOR);
//Note: Here we discard the (items.length == 2) scenario which is handled by the full snapshot handling
if (items.length == 7) {
return new IncrementalSnapshotInfo(items[1], items[2], items[4], items[5],
Expand Down

0 comments on commit 9c37b0d

Please sign in to comment.