Search in sources :

Example 11 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project POL-POM-5 by PhoenicisOrg.

the class ClasspathRepository method buildScripts.

private List<ScriptDTO> buildScripts(String typeId, String categoryId, String applicationId, String typeFileName, String categoryFileName, String applicationFileName) throws RepositoryException {
    try {
        final String applicationScanClassPath = packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName;
        Resource[] resources = resourceResolver.getResources(applicationScanClassPath + "/*");
        final List<ScriptDTO> scriptDTOs = new ArrayList<>();
        for (Resource resource : resources) {
            final String fileName = resource.getFilename();
            if (!"resources".equals(fileName) && !"miniatures".equals(fileName) && !"application.json".equals(fileName)) {
                final ScriptDTO script = buildScript(typeId, categoryId, applicationId, typeFileName, categoryFileName, applicationFileName, fileName);
                scriptDTOs.add(script);
            }
        }
        scriptDTOs.sort(Comparator.comparing(ScriptDTO::getScriptName));
        return scriptDTOs;
    } catch (IOException e) {
        throw new RepositoryException("Could not build scripts", e);
    }
}
Also used : Resource(org.springframework.core.io.Resource) ArrayList(java.util.ArrayList) RepositoryException(org.phoenicis.repository.RepositoryException) IOException(java.io.IOException)

Example 12 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project POL-POM-5 by PhoenicisOrg.

the class ClasspathRepository method buildCategory.

private CategoryDTO buildCategory(String typeId, String typeFileName, String categoryFileName) throws RepositoryException {
    try {
        final String jsonCategoryPath = packagePath + "/" + typeFileName + "/" + categoryFileName + "/category.json";
        final URL jsonCategoryFile = getClass().getResource(jsonCategoryPath);
        if (jsonCategoryFile != null) {
            final CategoryDTO categoryDTO = objectMapper.readValue(jsonCategoryFile, CategoryDTO.class);
            CategoryDTO.Builder categoryDTOBuilder = new CategoryDTO.Builder(categoryDTO).withTypeId(typeId);
            if (StringUtils.isBlank(categoryDTO.getId())) {
                if (!StringUtils.isBlank(categoryDTO.getName())) {
                    categoryDTOBuilder.withId(categoryDTO.getName().replaceAll(INVALID_ID_CHARS_REGEX, ""));
                } else {
                    categoryDTOBuilder.withId(categoryFileName.replaceAll(INVALID_ID_CHARS_REGEX, ""));
                }
            }
            categoryDTOBuilder.withApplications(buildApplications(categoryDTOBuilder.getTypeId(), categoryDTOBuilder.getId(), typeFileName, categoryFileName));
            try {
                categoryDTOBuilder.withIcon(new URI(packagePath + "/" + typeFileName + "/" + categoryFileName + "/icon.png"));
            } catch (URISyntaxException e) {
                LOGGER.warn("Invalid icon path", e);
            }
            return categoryDTOBuilder.build();
        } else {
            LOGGER.debug(String.format("category.json %s for classpath repository does not exist", jsonCategoryPath));
            return new CategoryDTO.Builder().build();
        }
    } catch (IOException e) {
        throw new RepositoryException("Could not build category", e);
    }
}
Also used : RepositoryException(org.phoenicis.repository.RepositoryException) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) URI(java.net.URI) URL(java.net.URL)

Example 13 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project POL-POM-5 by PhoenicisOrg.

the class ClasspathRepository method buildCategories.

private List<CategoryDTO> buildCategories(String typeId, String typeFileName) throws RepositoryException {
    try {
        final String categoryScanClassPath = packagePath + "/" + typeFileName;
        Resource[] resources = resourceResolver.getResources(categoryScanClassPath + "/*");
        final List<CategoryDTO> categoryDTOS = new ArrayList<>();
        for (Resource resource : resources) {
            final String fileName = resource.getFilename();
            if (!"icon.png".equals(fileName) && !"category.json".equals(fileName)) {
                final CategoryDTO category = buildCategory(typeId, typeFileName, fileName);
                if (!category.getApplications().isEmpty()) {
                    categoryDTOS.add(category);
                }
            }
        }
        categoryDTOS.sort(Comparator.comparing(CategoryDTO::getName));
        return categoryDTOS;
    } catch (IOException e) {
        throw new RepositoryException("Could not build categories", e);
    }
}
Also used : Resource(org.springframework.core.io.Resource) ArrayList(java.util.ArrayList) RepositoryException(org.phoenicis.repository.RepositoryException) IOException(java.io.IOException)

Example 14 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project POL-POM-5 by PhoenicisOrg.

the class ClasspathRepository method buildMiniatures.

private List<URI> buildMiniatures(String typeFileName, String categoryFileName, String applicationFileName) throws RepositoryException {
    try {
        final String applicationScanClassPath = packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName + "/miniatures/";
        Resource[] resources = resourceResolver.getResources(applicationScanClassPath + "/*");
        return Arrays.stream(resources).map(resource -> {
            final String resourceFile = packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName + "/miniatures/" + resource.getFilename();
            try {
                return getClass().getResource(resourceFile).toURI();
            } catch (URISyntaxException e) {
                return null;
            }
        }).collect(Collectors.toList());
    } catch (IOException e) {
        throw new RepositoryException("Could not build miniatures", e);
    }
}
Also used : StringUtils(org.apache.commons.lang.StringUtils) Arrays(java.util.Arrays) Logger(org.slf4j.Logger) URL(java.net.URL) URISyntaxException(java.net.URISyntaxException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ToStringBuilder(org.apache.commons.lang.builder.ToStringBuilder) LoggerFactory(org.slf4j.LoggerFactory) IOUtils(org.apache.commons.compress.utils.IOUtils) HashCodeBuilder(org.apache.commons.lang.builder.HashCodeBuilder) IOException(java.io.IOException) org.phoenicis.repository.dto(org.phoenicis.repository.dto) Collectors(java.util.stream.Collectors) File(java.io.File) ArrayList(java.util.ArrayList) List(java.util.List) EqualsBuilder(org.apache.commons.lang.builder.EqualsBuilder) ResourcePatternResolver(org.springframework.core.io.support.ResourcePatternResolver) URI(java.net.URI) Comparator(java.util.Comparator) RepositoryException(org.phoenicis.repository.RepositoryException) Resource(org.springframework.core.io.Resource) InputStream(java.io.InputStream) Resource(org.springframework.core.io.Resource) RepositoryException(org.phoenicis.repository.RepositoryException) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException)

Example 15 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project POL-POM-5 by PhoenicisOrg.

the class LocalRepository method fetchInstallableApplications.

@Override
public RepositoryDTO fetchInstallableApplications() {
    if (!repositoryDirectory.exists()) {
        throw new RepositoryException(String.format("Repository %s directory does not exist.", repositoryDirectory));
    }
    final File[] typeDirectories = repositoryDirectory.listFiles();
    if (typeDirectories == null) {
        return new RepositoryDTO.Builder().build();
    }
    LOGGER.info("Reading directory : " + repositoryDirectory);
    final RepositoryDTO.Builder repositoryDTOBuilder = new RepositoryDTO.Builder().withName(repositoryDirectory.getName()).withTypes(fetchTypes(typeDirectories));
    final File i18nDirectory = new File(repositoryDirectory, "i18n");
    if (i18nDirectory.exists()) {
        final File[] translationFiles = i18nDirectory.listFiles((dir, name) -> name.endsWith(Locale.getDefault().getLanguage() + ".properties"));
        Properties mergedProperties = new Properties();
        for (File translationFile : translationFiles) {
            try {
                Properties langProperties = new Properties();
                langProperties.load(new FileInputStream(translationFile));
                mergedProperties.putAll(langProperties);
            } catch (IOException e) {
                LOGGER.error("Could not read translation properties", e);
            }
        }
        repositoryDTOBuilder.withTranslations(new TranslationDTO.Builder().withLanguage(Locale.getDefault().getLanguage()).withProperties(mergedProperties).build());
        Localisation.setAdditionalTranslations(new PropertiesResourceBundle(mergedProperties));
    }
    return repositoryDTOBuilder.build();
}
Also used : PropertiesResourceBundle(org.phoenicis.configuration.localisation.PropertiesResourceBundle) ToStringBuilder(org.apache.commons.lang.builder.ToStringBuilder) HashCodeBuilder(org.apache.commons.lang.builder.HashCodeBuilder) EqualsBuilder(org.apache.commons.lang.builder.EqualsBuilder) RepositoryException(org.phoenicis.repository.RepositoryException) IOException(java.io.IOException) File(java.io.File) FileInputStream(java.io.FileInputStream)

Aggregations

RepositoryException (org.phoenicis.repository.RepositoryException)34 IOException (java.io.IOException)32 URI (java.net.URI)12 URISyntaxException (java.net.URISyntaxException)12 URL (java.net.URL)12 ArrayList (java.util.ArrayList)12 Resource (org.springframework.core.io.Resource)12 EqualsBuilder (org.apache.commons.lang.builder.EqualsBuilder)11 HashCodeBuilder (org.apache.commons.lang.builder.HashCodeBuilder)11 ToStringBuilder (org.apache.commons.lang.builder.ToStringBuilder)11 File (java.io.File)9 InputStream (java.io.InputStream)6 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 FileInputStream (java.io.FileInputStream)3 Arrays (java.util.Arrays)3 Comparator (java.util.Comparator)3 List (java.util.List)3 Collectors (java.util.stream.Collectors)3 IOUtils (org.apache.commons.compress.utils.IOUtils)3 StringUtils (org.apache.commons.lang.StringUtils)3