Search in sources :

Example 16 with RepositoryException

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

the class GitRepository method fetchInstallableApplications.

@Override
public RepositoryDTO fetchInstallableApplications() {
    try {
        cloneOrUpdateWithLock();
        final RepositoryDTO result = this.localRepositoryFactory.createInstance(this.localFolder, this.repositoryUri).fetchInstallableApplications();
        return result;
    } catch (RepositoryException e) {
        final String message = String.format("Could not fetch installable applications for git-repository %s", this.toString());
        throw new RepositoryException(message, e);
    }
}
Also used : RepositoryException(org.phoenicis.repository.RepositoryException) RepositoryDTO(org.phoenicis.repository.dto.RepositoryDTO)

Example 17 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project phoenicis by PhoenicisOrg.

the class ClasspathRepository method buildApplications.

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

Example 18 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project phoenicis by PhoenicisOrg.

the class ClasspathRepository method buildScript.

private ScriptDTO buildScript(String typeId, String categoryId, String applicationId, String typeFileName, String categoryFileName, String applicationFileName, String scriptFileName) throws RepositoryException {
    try {
        final String scriptJsonFile = packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName + "/" + scriptFileName + "/script.json";
        final InputStream scriptJsonInputStream = getClass().getResourceAsStream(scriptJsonFile);
        final InputStream scriptFile = getClass().getResourceAsStream(packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName + "/" + scriptFileName + "/script.js");
        if (scriptJsonInputStream == null) {
            return null;
        }
        URI icon = null;
        final String iconResource = packagePath + "/" + typeFileName + "/" + categoryFileName + "/" + applicationFileName + "/" + scriptFileName + "/icon.png";
        URL iconResourceURL = getClass().getResource(iconResource);
        if (iconResourceURL != null) {
            try {
                icon = iconResourceURL.toURI();
            } catch (URISyntaxException e) {
                LOGGER.debug("Could not get URI of script icon.");
            }
        } else {
            LOGGER.debug("Could not find script icon.");
        }
        ScriptDTO.Builder scriptDTOBuilder = new ScriptDTO.Builder(objectMapper.readValue(scriptJsonInputStream, ScriptDTO.class)).withTypeId(typeId).withCategoryId(categoryId).withApplicationId(applicationId).withScript(new String(IOUtils.toByteArray(scriptFile))).withIcon(icon);
        if (StringUtils.isBlank(scriptDTOBuilder.getId())) {
            if (!StringUtils.isBlank(scriptDTOBuilder.getScriptName())) {
                scriptDTOBuilder.withId(scriptDTOBuilder.getScriptName().replaceAll("[^a-zA-Z0-9_]", ""));
            } else {
                scriptDTOBuilder.withId(scriptFileName.replaceAll("[^a-zA-Z0-9_]", ""));
            }
        }
        return scriptDTOBuilder.build();
    } catch (IOException e) {
        throw new RepositoryException("Could not build script", e);
    }
}
Also used : InputStream(java.io.InputStream) RepositoryException(org.phoenicis.repository.RepositoryException) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) URI(java.net.URI) URL(java.net.URL)

Example 19 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project phoenicis 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 20 with RepositoryException

use of org.phoenicis.repository.RepositoryException in project phoenicis 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)

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