Search in sources :

Example 6 with XMLResourceGenerator

use of aQute.bnd.osgi.repository.XMLResourceGenerator in project bnd by bndtools.

the class LocalIndexerMojo method execute.

public void execute() throws MojoExecutionException, MojoFailureException {
    if (skip) {
        logger.debug("skip project as configured");
        return;
    }
    if (baseFile == null) {
        baseFile = outputFile.getParentFile();
    }
    logger.debug("Indexing dependencies in folder: {}", inputDir.getAbsolutePath());
    logger.debug("Outputting index to: {}", outputFile.getAbsolutePath());
    logger.debug("Producing additional gzip index: {}", includeGzip);
    logger.debug("URI paths will be relative to: {}", baseFile);
    Set<File> toIndex = new HashSet<>();
    toIndex.addAll(asList(inputDir.listFiles()));
    BaseFileURLResolver baseFileURLResolver = new BaseFileURLResolver();
    ResourcesRepository resourcesRepository = new ResourcesRepository();
    XMLResourceGenerator xmlResourceGenerator = new XMLResourceGenerator();
    for (File file : toIndex) {
        ResourceBuilder resourceBuilder = new ResourceBuilder();
        try {
            resourceBuilder.addFile(file, baseFileURLResolver.resolver(file));
        } catch (Exception e) {
            throw new MojoExecutionException(e.getMessage(), e);
        }
        resourcesRepository.add(resourceBuilder.build());
    }
    try {
        IO.mkdirs(outputFile.getParentFile());
        xmlResourceGenerator.repository(resourcesRepository).save(outputFile);
    } catch (Exception e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }
    if (fail) {
        throw new MojoExecutionException("One or more URI lookups failed");
    }
    if (includeGzip) {
        File gzipOutputFile = new File(outputFile.getPath() + ".gz");
        try {
            xmlResourceGenerator.save(gzipOutputFile);
        } catch (Exception e) {
            throw new MojoExecutionException("Unable to create the gzipped output file");
        }
    }
}
Also used : ResourceBuilder(aQute.bnd.osgi.resource.ResourceBuilder) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) XMLResourceGenerator(aQute.bnd.osgi.repository.XMLResourceGenerator) File(java.io.File) ResourcesRepository(aQute.bnd.osgi.repository.ResourcesRepository) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MojoFailureException(org.apache.maven.plugin.MojoFailureException) HashSet(java.util.HashSet)

Aggregations

XMLResourceGenerator (aQute.bnd.osgi.repository.XMLResourceGenerator)6 File (java.io.File)3 ResourcesRepository (aQute.bnd.osgi.repository.ResourcesRepository)2 ResourceBuilder (aQute.bnd.osgi.resource.ResourceBuilder)2 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)2 MojoFailureException (org.apache.maven.plugin.MojoFailureException)2 DependencyResolver (aQute.bnd.maven.lib.resolve.DependencyResolver)1 RemotePostProcessor (aQute.bnd.maven.lib.resolve.RemotePostProcessor)1 CapabilityBuilder (aQute.bnd.osgi.resource.CapabilityBuilder)1 Release (aQute.maven.api.Release)1 FileNotFoundException (java.io.FileNotFoundException)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 ArtifactRepository (org.apache.maven.artifact.repository.ArtifactRepository)1 ArtifactResult (org.eclipse.aether.resolution.ArtifactResult)1