diff --git a/src/main/java/fr/osug/doi/GenerateRedirectPipeline.java b/src/main/java/fr/osug/doi/GenerateRedirectPipeline.java index 15b7a1fad254b663c452ca319b18693eb6fbfbf2..62aedb760418e373d2c8164af44523ba28bd55cc 100644 --- a/src/main/java/fr/osug/doi/GenerateRedirectPipeline.java +++ b/src/main/java/fr/osug/doi/GenerateRedirectPipeline.java @@ -152,38 +152,42 @@ public final class GenerateRedirectPipeline extends AbstractPipeline<PipelineCom for (Project p : projects) { final String projectName = p.getName(); - final ProjectConfig projectConfig = pipeData.getProjectConfigAll(projectName); - - if (projectConfig.getPropertyBoolean(ProjectConfig.CONF_KEY_GENERATE_EMBEDDED)) { - // // [public/staging]/PROJECT/embed/DOI_SUFFIX[.html] - sb.append("\n# Project ").append(projectName); - - /* - RedirectMatch "^/embed/AMMA-CATCH.CE.RainD_Nc([-]*)(.*)" "/staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc$1$2.html" - /embed/AMMA-CATCH.CE.RainD_Nc => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc.html - /embed/AMMA-CATCH.CE.RainD_Nc-header => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc-header.html - /embed/AMMA-CATCH.CE.RainD_Nc-meta => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc-meta.html - */ - final List<Doi> dois = dr.findByProject(projectName); - - logger.info("Dois for project[{}]: {}", projectName, dois.size()); - - for (Doi doi : dois) { - final String doiSuffix = doi.getIdentifier(); - - // ^/embed/ - sb.append("\nRedirectMatch \"^/").append(Paths.DIR_WEB_EMBED).append('/'); - sb.append(doiSuffix).append("([-]*)(.*)\" \""); + final List<Doi> dois = dr.findByProject(projectName); - if (doi.getStatus() == Status.PUBLIC) { - sb.append('/').append(Paths.DIR_WEB_PUBLIC).append('/'); - } else { - sb.append('/').append(Paths.DIR_WEB_STAGING).append('/'); + logger.info("Dois for project[{}]: {}", projectName, dois.size()); + + // skip empty projects (orphans) + if (!dois.isEmpty()) { + final ProjectConfig projectConfig = pipeData.getProjectConfigAll(projectName); + + if (projectConfig.getPropertyBoolean(ProjectConfig.CONF_KEY_GENERATE_EMBEDDED)) { + // // [public/staging]/PROJECT/embed/DOI_SUFFIX[.html] + sb.append("\n# Project ").append(projectName); + + /* + RedirectMatch "^/embed/AMMA-CATCH.CE.RainD_Nc([-]*)(.*)" "/staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc$1$2.html" + /embed/AMMA-CATCH.CE.RainD_Nc => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc.html + /embed/AMMA-CATCH.CE.RainD_Nc-header => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc-header.html + /embed/AMMA-CATCH.CE.RainD_Nc-meta => /staging/AMMA-CATCH/embed/AMMA-CATCH.CE.RainD_Nc-meta.html + */ + + for (Doi doi : dois) { + final String doiSuffix = doi.getIdentifier(); + + // ^/embed/ + sb.append("\nRedirectMatch \"^/").append(Paths.DIR_WEB_EMBED).append('/'); + sb.append(doiSuffix).append("([-]*)(.*)\" \""); + + if (doi.getStatus() == Status.PUBLIC) { + sb.append('/').append(Paths.DIR_WEB_PUBLIC).append('/'); + } else { + sb.append('/').append(Paths.DIR_WEB_STAGING).append('/'); + } + sb.append(projectName).append('/').append(Paths.DIR_WEB_EMBED).append('/').append(doiSuffix); + sb.append("$1$2").append(GeneratePipeline.HTML_EXT).append('\"'); } - sb.append(projectName).append('/').append(Paths.DIR_WEB_EMBED).append('/').append(doiSuffix); - sb.append("$1$2").append(GeneratePipeline.HTML_EXT).append('\"'); + sb.append('\n'); } - sb.append('\n'); } } sb.append('\n'); diff --git a/src/main/java/fr/osug/util/FileUtils.java b/src/main/java/fr/osug/util/FileUtils.java index bf65e228778cf915e9838b63408f059d5b12bded..21ad1ec69b315407ead2e30a3843bdbe54ef2fb7 100644 --- a/src/main/java/fr/osug/util/FileUtils.java +++ b/src/main/java/fr/osug/util/FileUtils.java @@ -180,7 +180,7 @@ public final class FileUtils { if (dir != null) { return dir; } - throw new FileNotFoundException("Invalid directory '" + ((dir == null) ? null : dir.getAbsolutePath()) + "' !"); + throw new FileNotFoundException("Invalid directory '" + ((dir == null) ? path : dir.getAbsolutePath()) + "' !"); } /** @@ -240,7 +240,7 @@ public final class FileUtils { if (file != null) { return file; } - throw new FileNotFoundException("Invalid file '" + ((file == null) ? null : file.getAbsolutePath()) + "' !"); + throw new FileNotFoundException("Invalid file '" + ((file == null) ? path : file.getAbsolutePath()) + "' !"); } // writers :