public class FileSyncService extends AbstractOfflineDetectorService implements IFileSyncService, INodeCommunicationService.INodeCommunicationExecutor
extensionServicelog, parameterService, platform, sqlTemplate, sqlTemplateDirty, symmetricDialect, tablePrefix| Constructor and Description |
|---|
FileSyncService(ISymmetricEngine engine) |
| Modifier and Type | Method and Description |
|---|---|
void |
acknowledgeFiles(OutgoingBatch outgoingBatch) |
void |
clearCache() |
void |
deleteAllFileTriggerRouters() |
void |
deleteFileTrigger(FileTrigger fileTrigger) |
void |
deleteFileTriggerRouter(FileTriggerRouter fileTriggerRouter) |
void |
deleteFileTriggerRouter(java.lang.String triggerId,
java.lang.String routerId) |
protected void |
deleteFromFileIncoming() |
void |
execute(NodeCommunication nodeCommunication,
RemoteNodeStatus status) |
protected java.lang.String |
findSourceNodeIdFromFileIncoming(java.lang.String filePath,
java.lang.String fileName,
long lastUpdateDate) |
protected java.util.List<OutgoingBatch> |
getBatchesToProcess(Node targetNode) |
java.io.File |
getControleFile(java.io.File file) |
DirectorySnapshot |
getDirectorySnapshot(FileTriggerRouter fileTriggerRouter) |
DirectorySnapshot |
getDirectorySnapshot(FileTriggerRouter fileTriggerRouter,
java.lang.String relativeDir) |
protected java.lang.String |
getEffectiveBaseDir(java.lang.String baseDir) |
FileTrigger |
getFileTrigger(java.lang.String triggerId) |
FileTriggerRouter |
getFileTriggerRouter(java.lang.String triggerId,
java.lang.String routerId,
boolean refreshCache) |
java.util.List<FileTriggerRouter> |
getFileTriggerRouters(boolean refreshCache) |
java.util.List<FileTriggerRouter> |
getFileTriggerRoutersForCurrentNode(boolean refreshCache) |
java.util.List<FileTrigger> |
getFileTriggers() |
protected org.jumpmind.symmetric.io.stage.IStagedResource |
getStagedResource(OutgoingBatch currentBatch) |
java.lang.Object[] |
getStagingPathComponents(OutgoingBatch fileSyncBatch) |
void |
loadFilesFromPush(java.lang.String nodeId,
java.io.InputStream in,
java.io.OutputStream out) |
protected java.util.List<IncomingBatch> |
processZip(java.io.InputStream is,
java.lang.String sourceNodeId,
ProcessInfo processInfo) |
protected void |
pullFilesFromNode(NodeCommunication nodeCommunication,
RemoteNodeStatus status,
Node identity,
NodeSecurity security) |
RemoteNodeStatuses |
pullFilesFromNodes(boolean force) |
protected void |
pushFilesToNode(NodeCommunication nodeCommunication,
RemoteNodeStatus status,
Node identity,
NodeSecurity security) |
RemoteNodeStatuses |
pushFilesToNodes(boolean force) |
protected RemoteNodeStatuses |
queueJob(boolean force,
long minimumPeriodMs,
java.lang.String clusterLock,
NodeCommunication.CommunicationType type) |
boolean |
refreshFromDatabase() |
void |
save(org.jumpmind.db.sql.ISqlTransaction sqlTransaction,
FileSnapshot snapshot) |
void |
save(java.util.List<FileSnapshot> changes) |
void |
save(java.util.List<FileSnapshot> changes,
boolean shouldIgnore) |
protected long |
saveDirectorySnapshot(FileTriggerRouter fileTriggerRouter,
DirectorySnapshot dirSnapshot,
boolean shouldIgnore) |
void |
saveFileTrigger(FileTrigger fileTrigger) |
void |
saveFileTriggerRouter(FileTriggerRouter fileTriggerRouter) |
java.util.List<OutgoingBatch> |
sendFiles(ProcessInfo processInfo,
Node targetNode,
IOutgoingTransport outgoingTransport) |
protected void |
setInterpreterVariables(ISymmetricEngine engine,
java.lang.String sourceNodeId,
java.io.File batchDir,
bsh.Interpreter interpreter) |
protected boolean |
shouldIgnoreInitialFiles(FileTriggerRouter router,
FileTrigger trigger,
java.util.Date contextDate) |
void |
trackChanges(boolean force) |
protected void |
trackChanges(ProcessInfo processInfo,
boolean useCrc) |
protected void |
trackChangesFastScan(ProcessInfo processInfo,
boolean useCrc) |
protected void |
updateFileIncoming(java.lang.String nodeId,
java.util.Map<java.lang.String,java.lang.String> filesToEventType) |
fireOffline, fireOnline, getHttpException, getRootCause, isAuthenticationExpired, isBusy, isNoReservation, isNotAuthenticated, isOffline, isRegistrationNotOpen, isRegistrationPending, isRegistrationRequired, isServiceUnavailable, isSyncDisabled, shouldLogTransportErrorassertNotNull, buildBatchWhere, close, createSqlReplacementTokens, createSqlReplacementTokens, getJdbcTemplate, getParameterService, getSql, getSymmetricDialect, getTablePrefix, getTargetDialect, getTargetPlatform, getTargetPlatform, isCalledFromSymmetricAdminTool, isSet, isStreamClosedByClient, isSymmetricTable, logOnce, maxDate, readAcks, sendAck, setSqlMap, synchronize, toNodeIds, toNodeIdspublic FileSyncService(ISymmetricEngine engine)
public boolean refreshFromDatabase()
refreshFromDatabase in interface IFileSyncServicepublic void trackChanges(boolean force)
trackChanges in interface IFileSyncServiceprotected void trackChanges(ProcessInfo processInfo, boolean useCrc)
protected void trackChangesFastScan(ProcessInfo processInfo, boolean useCrc)
protected boolean shouldIgnoreInitialFiles(FileTriggerRouter router, FileTrigger trigger, java.util.Date contextDate)
protected long saveDirectorySnapshot(FileTriggerRouter fileTriggerRouter, DirectorySnapshot dirSnapshot, boolean shouldIgnore)
protected java.lang.String findSourceNodeIdFromFileIncoming(java.lang.String filePath,
java.lang.String fileName,
long lastUpdateDate)
protected void deleteFromFileIncoming()
public java.util.List<FileTrigger> getFileTriggers()
getFileTriggers in interface IFileSyncServicepublic FileTrigger getFileTrigger(java.lang.String triggerId)
getFileTrigger in interface IFileSyncServicepublic java.util.List<FileTriggerRouter> getFileTriggerRoutersForCurrentNode(boolean refreshCache)
getFileTriggerRoutersForCurrentNode in interface IFileSyncServicepublic java.util.List<FileTriggerRouter> getFileTriggerRouters(boolean refreshCache)
getFileTriggerRouters in interface IFileSyncServicepublic FileTriggerRouter getFileTriggerRouter(java.lang.String triggerId, java.lang.String routerId, boolean refreshCache)
getFileTriggerRouter in interface IFileSyncServicepublic void clearCache()
clearCache in interface IFileSyncServicepublic void saveFileTrigger(FileTrigger fileTrigger)
saveFileTrigger in interface IFileSyncServicepublic void saveFileTriggerRouter(FileTriggerRouter fileTriggerRouter)
saveFileTriggerRouter in interface IFileSyncServicepublic void deleteFileTriggerRouter(java.lang.String triggerId,
java.lang.String routerId)
deleteFileTriggerRouter in interface IFileSyncServicepublic void deleteAllFileTriggerRouters()
deleteAllFileTriggerRouters in interface IFileSyncServicepublic void deleteFileTriggerRouter(FileTriggerRouter fileTriggerRouter)
deleteFileTriggerRouter in interface IFileSyncServicepublic void deleteFileTrigger(FileTrigger fileTrigger)
deleteFileTrigger in interface IFileSyncServicepublic DirectorySnapshot getDirectorySnapshot(FileTriggerRouter fileTriggerRouter)
getDirectorySnapshot in interface IFileSyncServicepublic DirectorySnapshot getDirectorySnapshot(FileTriggerRouter fileTriggerRouter, java.lang.String relativeDir)
public void save(java.util.List<FileSnapshot> changes, boolean shouldIgnore)
public void save(org.jumpmind.db.sql.ISqlTransaction sqlTransaction,
FileSnapshot snapshot)
public RemoteNodeStatuses pullFilesFromNodes(boolean force)
pullFilesFromNodes in interface IFileSyncServicepublic RemoteNodeStatuses pushFilesToNodes(boolean force)
pushFilesToNodes in interface IFileSyncServicepublic java.lang.Object[] getStagingPathComponents(OutgoingBatch fileSyncBatch)
getStagingPathComponents in interface IFileSyncServicepublic java.util.List<OutgoingBatch> sendFiles(ProcessInfo processInfo, Node targetNode, IOutgoingTransport outgoingTransport)
sendFiles in interface IFileSyncServiceprotected java.util.List<OutgoingBatch> getBatchesToProcess(Node targetNode)
public void acknowledgeFiles(OutgoingBatch outgoingBatch)
acknowledgeFiles in interface IFileSyncServicepublic void loadFilesFromPush(java.lang.String nodeId,
java.io.InputStream in,
java.io.OutputStream out)
loadFilesFromPush in interface IFileSyncServiceprotected org.jumpmind.symmetric.io.stage.IStagedResource getStagedResource(OutgoingBatch currentBatch)
public void execute(NodeCommunication nodeCommunication, RemoteNodeStatus status)
execute in interface INodeCommunicationService.INodeCommunicationExecutorprotected void pushFilesToNode(NodeCommunication nodeCommunication, RemoteNodeStatus status, Node identity, NodeSecurity security)
protected java.util.List<IncomingBatch> processZip(java.io.InputStream is, java.lang.String sourceNodeId, ProcessInfo processInfo) throws java.io.IOException
java.io.IOExceptionprotected void setInterpreterVariables(ISymmetricEngine engine, java.lang.String sourceNodeId, java.io.File batchDir, bsh.Interpreter interpreter) throws bsh.EvalError
bsh.EvalErrorprotected void updateFileIncoming(java.lang.String nodeId,
java.util.Map<java.lang.String,java.lang.String> filesToEventType)
protected void pullFilesFromNode(NodeCommunication nodeCommunication, RemoteNodeStatus status, Node identity, NodeSecurity security)
protected RemoteNodeStatuses queueJob(boolean force, long minimumPeriodMs, java.lang.String clusterLock, NodeCommunication.CommunicationType type)
protected java.lang.String getEffectiveBaseDir(java.lang.String baseDir)
public java.io.File getControleFile(java.io.File file)
getControleFile in interface IFileSyncServicepublic void save(java.util.List<FileSnapshot> changes)
save in interface IFileSyncService