diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/file/FileSyncZipDataWriter.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/file/FileSyncZipDataWriter.java index d3a5e67ace..4c0ada7a05 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/file/FileSyncZipDataWriter.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/file/FileSyncZipDataWriter.java @@ -162,9 +162,9 @@ public void end(Batch batch, boolean inError) { FileTrigger fileTrigger = triggerRouter.getFileTrigger(); - String targetBaseDir = triggerRouter.getTargetBaseDir(); + String targetBaseDir = triggerRouter.getTargetBaseDir().replace('\\', '/'); if (StringUtils.isBlank(targetBaseDir)) { - targetBaseDir = fileTrigger.getBaseDir(); + targetBaseDir = fileTrigger.getBaseDir().replace('\\', '/'); } targetBaseDir = StringEscapeUtils.escapeJava(targetBaseDir); diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/model/FileSnapshot.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/model/FileSnapshot.java index 0b1b27a877..ad7116edbc 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/model/FileSnapshot.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/model/FileSnapshot.java @@ -96,22 +96,21 @@ public FileSnapshot(FileTriggerRouter fileTriggerRouter, File file, LastEventTyp this.lastEventType = lastEventType; this.lastUpdateTime = new Date(); this.fileName = file.getName(); - this.relativeDir = file.getPath(); - if (this.relativeDir.replace('\\', '/').startsWith(fileTriggerRouter.getFileTrigger() - .getBaseDir().replace('\\', '/'))) { - this.relativeDir = this.relativeDir.substring(fileTriggerRouter.getFileTrigger().getBaseDir().length()); + this.relativeDir = file.getPath().replace('\\', '/'); + String baseDir = fileTriggerRouter.getFileTrigger().getBaseDir().replace('\\', '/'); + if (this.relativeDir.startsWith(baseDir)) { + this.relativeDir = this.relativeDir.substring(baseDir.length()); } if (this.relativeDir.endsWith(fileName)) { this.relativeDir = this.relativeDir.substring(0, this.relativeDir.lastIndexOf(fileName)); } - String fileSeparator = System.getProperty("file.separator"); - if (this.relativeDir.startsWith(fileSeparator)) { + if (this.relativeDir.startsWith("/")) { this.relativeDir = this.relativeDir.substring(1); } - if (this.relativeDir.endsWith(fileSeparator)) { + if (this.relativeDir.endsWith("/")) { this.relativeDir = this.relativeDir.substring(0, this.relativeDir.length()-1); } diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java index 5dda211324..f2c367aa51 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/FileSyncService.java @@ -112,7 +112,7 @@ public void trackChanges(boolean force) { for (FileSnapshot fileSnapshot : dirSnapshot) { File file = fileTriggerRouter.getFileTrigger() .createSourceFile(fileSnapshot); - String filePath = file.getParentFile().getPath(); + String filePath = file.getParentFile().getPath().replace('\\', '/'); String fileName = file.getName(); String nodeId = findSourceNodeIdFromFileIncoming(filePath, fileName, fileSnapshot.getFileModifiedTime()); @@ -560,7 +560,7 @@ protected List processZip(InputStream is, String sourceNodeId, Interpreter interpreter = new Interpreter(); try { interpreter.set("log", log); - interpreter.set("batchDir", batchDir.getAbsolutePath()); + interpreter.set("batchDir", batchDir.getAbsolutePath().replace('\\', '/')); interpreter.set("engine", engine); interpreter.set("sourceNodeId", sourceNodeId); @@ -623,7 +623,7 @@ protected void updateFileIncoming(String nodeId, Map filesToEven String eventType = filesToEventType.get(filePath); File file = new File(filePath); String fileName = file.getName(); - String dirName = file.getParentFile().getPath(); + String dirName = file.getParentFile().getPath().replace('\\', '/'); long lastUpdateTime = file.lastModified(); int updateCount = sqlTemplate.update(getSql("updateFileIncoming"), nodeId, lastUpdateTime, eventType, dirName, fileName); @@ -716,7 +716,7 @@ protected RemoteNodeStatuses queueJob(boolean force, long minimumPeriodMs, Strin class FileTriggerMapper implements ISqlRowMapper { public FileTrigger mapRow(Row rs) { FileTrigger fileTrigger = new FileTrigger(); - fileTrigger.setBaseDir(rs.getString("base_dir")); + fileTrigger.setBaseDir(rs.getString("base_dir").replace('\\', '/')); fileTrigger.setCreateTime(rs.getDateTime("create_time")); fileTrigger.setExcludesFiles(rs.getString("excludes_files")); fileTrigger.setIncludesFiles(rs.getString("includes_files")); @@ -746,7 +746,7 @@ public FileTriggerRouter mapRow(Row rs) { fileTriggerRouter.setLastUpdateTime(rs.getDateTime("last_update_time")); fileTriggerRouter.setEnabled(rs.getBoolean("enabled")); fileTriggerRouter.setInitialLoadEnabled(rs.getBoolean("initial_load_enabled")); - fileTriggerRouter.setTargetBaseDir(rs.getString("target_base_dir")); + fileTriggerRouter.setTargetBaseDir(rs.getString("target_base_dir").replace('\\', '/')); fileTriggerRouter.setRouter(engine.getTriggerRouterService().getRouterById( rs.getString("router_id"))); return fileTriggerRouter; @@ -762,7 +762,7 @@ public FileSnapshot mapRow(Row rs) { fileSnapshot.setLastUpdateTime(rs.getDateTime("last_update_time")); fileSnapshot.setFileModifiedTime(rs.getLong("file_modified_time")); fileSnapshot.setFileName(rs.getString("file_name")); - fileSnapshot.setRelativeDir(rs.getString("relative_dir")); + fileSnapshot.setRelativeDir(rs.getString("relative_dir").replace('\\', '/')); fileSnapshot.setFileSize(rs.getLong("file_size")); fileSnapshot.setLastEventType(LastEventType.fromCode(rs.getString("last_event_type"))); fileSnapshot.setTriggerId(rs.getString("trigger_id"));