use of com.enonic.xp.repo.impl.dump.upgrade.obsoletemodel.pre4.Pre4NodeVersionJson in project xp by enonic.
the class IndexAccessSegmentsDumpUpgrader method upgradeVersionDumpEntry.
private Pre6VersionDumpEntryJson upgradeVersionDumpEntry(final RepositoryId repositoryId, final Pre4VersionDumpEntryJson versionDumpEntry) {
// Retrieves the existing node version
final Segment nodeDataSegment = RepositorySegmentUtils.toSegment(repositoryId, DumpConstants.DUMP_NODE_SEGMENT_LEVEL);
final BlobKey nodeBlobKey = BlobKey.from(versionDumpEntry.getBlobKey());
final DumpBlobRecord nodeBlobRecord = dumpReader.getDumpBlobStore().getRecord(nodeDataSegment, nodeBlobKey);
final Pre4NodeVersionJson nodeVersion = getNodeVersion(nodeBlobRecord);
// Serializes the new index config blob
final byte[] serializedIndexConfig = serialize(nodeVersion.getIndexConfigDocument());
final Segment indexConfigSegment = RepositorySegmentUtils.toSegment(repositoryId, DumpConstants.DUMP_INDEX_CONFIG_SEGMENT_LEVEL);
final BlobKey indexConfigBlobKey = addRecord(indexConfigSegment, serializedIndexConfig);
// Serializes the new access control blob
final byte[] serializedAccessControl = serializeAccessControl(nodeVersion);
final Segment accessControlSegment = RepositorySegmentUtils.toSegment(repositoryId, DumpConstants.DUMP_ACCESS_CONTROL_SEGMENT_LEVEL);
final BlobKey accessControlBlobKey = addRecord(accessControlSegment, serializedAccessControl);
// Return the new version dump entry
return Pre6VersionDumpEntryJson.create().nodePath(versionDumpEntry.getNodePath()).timestamp(versionDumpEntry.getTimestamp()).version(versionDumpEntry.getVersion()).nodeBlobKey(versionDumpEntry.getBlobKey()).indexConfigBlobKey(indexConfigBlobKey.toString()).accessControlBlobKey(accessControlBlobKey.toString()).nodeState(versionDumpEntry.getNodeState()).build();
}
Aggregations