\r
private String octopusAddress = SystemConfiguration.getInstance().value("services.octopus.api.address", "");\r
\r
- private void check(String localRetrievePath, String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder,\r
- String octopusOutputFolder, String genericOutputFolder, String houseId, String targetPathType) {\r
+ private void check(String localRetrievePath, String materialOutputFolder, String promoOutputFolder,\r
+ String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder, String houseId,\r
+ String targetPathType) {\r
if (StringUtils.isBlank(localRetrievePath)) {\r
logger.error(marker, "A folyamat 'localRetrievePath' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'localRetrievePath' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'localRetrievePath' input parameter missing.");\r
}\r
if (StringUtils.isBlank(materialOutputFolder)) {\r
logger.error(marker, "A folyamat 'materialOutputFolder' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'materialOutputFolder' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'materialOutputFolder' input parameter missing.");\r
}\r
if (StringUtils.isBlank(promoOutputFolder)) {\r
logger.error(marker, "A folyamat 'promoOutputFolder' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'promoOutputFolder' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'promoOutputFolder' input parameter missing.");\r
}\r
if (StringUtils.isBlank(advertisementOutputFolder)) {\r
logger.error(marker, "A folyamat 'advertisementOutputFolder' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'advertisementOutputFolder' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'advertisementOutputFolder' input parameter missing.");\r
}\r
if (StringUtils.isBlank(octopusOutputFolder)) {\r
logger.error(marker, "A folyamat 'octopusOutputFolder' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'octopusOutputFolder' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'octopusOutputFolder' input parameter missing.");\r
}\r
if (StringUtils.isBlank(genericOutputFolder)) {\r
logger.error(marker, "A folyamat 'genericOutputFolder' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'genericOutputFolder' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'genericOutputFolder' input parameter missing.");\r
}\r
if (StringUtils.isBlank(houseId)) {\r
logger.error(marker, "A folyamat 'houseId' bemeneti paramétere üres.");\r
}\r
if (StringUtils.isBlank(targetPathType)) {\r
logger.error(marker, "A folyamat 'targetPathType' bemeneti paramétere üres.");\r
- throw new NullPointerException("System is not configured properly, 'targetPathType' input parameter missing.");\r
+ throw new NullPointerException(\r
+ "System is not configured properly, 'targetPathType' input parameter missing.");\r
}\r
}\r
\r
@StepEntry\r
- public Object[] execute(String localRetrievePath, String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder,\r
- String octopusOutputFolder, String genericOutputFolder, String onlineOutputFolder, String houseId, String targetPathType,\r
- ArchivedMedia archivedMedia, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
- marker = jobRuntime.getSessionMarker();\r
- check(localRetrievePath, materialOutputFolder, promoOutputFolder, advertisementOutputFolder, octopusOutputFolder, genericOutputFolder, houseId,\r
- targetPathType);\r
+ public Object[] execute(String localRetrievePath, String materialOutputFolder, String promoOutputFolder,\r
+ String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder,\r
+ String onlineOutputFolder, String houseId, String targetPathType, ArchivedMedia archivedMedia,\r
+ IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
+ marker = getSessionMarker();\r
+ check(localRetrievePath, materialOutputFolder, promoOutputFolder, advertisementOutputFolder,\r
+ octopusOutputFolder, genericOutputFolder, houseId, targetPathType);\r
Object[] result = null;\r
+ boolean isOctopusTarget = false;\r
switch (Integer.parseInt(targetPathType)) {\r
case 0:\r
- String outputFolder = getFolderById(materialOutputFolder, promoOutputFolder, advertisementOutputFolder, octopusOutputFolder, genericOutputFolder,\r
- houseId, archivedMedia);\r
- result = localTargetInit(localRetrievePath, outputFolder, houseId, jobRuntime);\r
+ String outputFolder = getFolderById(materialOutputFolder, promoOutputFolder, advertisementOutputFolder,\r
+ octopusOutputFolder, genericOutputFolder, houseId, archivedMedia);\r
+ isOctopusTarget = outputFolder.equals(octopusOutputFolder);\r
+ result = localTargetInit(localRetrievePath, outputFolder, houseId, isOctopusTarget);\r
break;\r
case 1:\r
- result = localTargetInit(localRetrievePath, onlineOutputFolder, houseId, jobRuntime);\r
+ result = localTargetInit(localRetrievePath, onlineOutputFolder, houseId, isOctopusTarget);\r
break;\r
case 2:\r
\r
return result;\r
}\r
\r
- private String getFolderById(String materialOutputFolder, String promoOutputFolder, String advertisementOutputFolder, String octopusOutputFolder,\r
- String genericOutputFolder, String houseId, ArchivedMedia archivedMedia) throws Exception {\r
+ private String getFolderById(String materialOutputFolder, String promoOutputFolder,\r
+ String advertisementOutputFolder, String octopusOutputFolder, String genericOutputFolder, String houseId,\r
+ ArchivedMedia archivedMedia) throws Exception {\r
String id = houseId.toUpperCase();\r
MetadataType mdType = MetadataTypeDetector.GuessMetadataType(id);\r
String result = null;\r
return result[0];\r
}\r
\r
- private Object[] localTargetInit(String localRetrievePath, String outputFolder, String houseId, IJobRuntime jobRuntime) throws IOException {\r
+ private String getPossibleOctopusPath(String id, Path targetPath) throws IOException {\r
+ String[] result = new String[] { targetPath.toString() };\r
+ FileVisitor<Path> matcherVisitor = new SimpleFileVisitor<Path>() {\r
+ @Override\r
+ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {\r
+ String dirName = dir.getFileName().toString();\r
+ if (dirName.startsWith(id + "-") || dirName.equals(id)) {\r
+ result[0] = dir.toString();\r
+ return FileVisitResult.TERMINATE;\r
+ }\r
+ return FileVisitResult.CONTINUE;\r
+ }\r
+ };\r
+ Files.walkFileTree(targetPath.getParent(), matcherVisitor);\r
+ return result[0];\r
+ }\r
+\r
+ private Object[] localTargetInit(String localRetrievePath, String outputFolder, String houseId,\r
+ boolean isOctopusTarget) throws IOException {\r
String id = houseId.toUpperCase();\r
- String targetPath = getPossiblePath(id, Paths.get(localRetrievePath, outputFolder, id)).toString();\r
+ String targetPath = null;\r
+\r
+ if (isOctopusTarget) {\r
+ String[] tokens = id.split("_");\r
+ targetPath = getPossibleOctopusPath(tokens[0], Paths.get(localRetrievePath, outputFolder, id)).toString();\r
+ } else {\r
+ targetPath = getPossiblePath(id, Paths.get(localRetrievePath, outputFolder, id)).toString();\r
+ }\r
+\r
String targetNamePattern = houseId + TARGETNAMEPATTERN;\r
try {\r
EscortFiles.ensureUNCFolder(Paths.get(targetPath));\r
} catch (Exception e) {\r
- logger.error(jobRuntime.getSessionMarker(), "A cél mappa '{}' nem létezik és nem hozható létre. A rendszer hibaüzenete: {}", targetPath,\r
+ logger.error(getSessionMarker(),\r
+ "A cél mappa '{}' nem létezik és nem hozható létre. A rendszer hibaüzenete: {}", targetPath,\r
e.getMessage());\r
throw e;\r
}\r