Search in sources :

Example 1 with TychoInterpolator

use of org.eclipse.tycho.core.maven.TychoInterpolator in project tycho by eclipse.

the class BuildPropertiesParserImpl method interpolate.

protected void interpolate(Properties properties, File baseDir) {
    if (properties.isEmpty()) {
        return;
    }
    MavenSession mavenSession = legacySupport.getSession();
    if (mavenSession == null) {
        logger.warn("No maven session available, values in the build.properties will not be interpolated!");
        return;
    }
    // find the maven project for the currently used basedir, so that the correct maven project is used by the interpolator.
    // if no project could be found, it does not make sense to interpolate the properties
    MavenProject mavenProject = MavenSessionUtils.getMavenProject(mavenSession, baseDir);
    if (mavenProject == null) {
        logger.warn("No maven project found for baseDir '" + baseDir.getAbsolutePath() + "', values in the build.properties will not be interpolated!");
        return;
    }
    TychoInterpolator interpolator = new TychoInterpolator(mavenSession, mavenProject);
    for (Entry<Object, Object> entry : properties.entrySet()) {
        entry.setValue(interpolator.interpolate((String) entry.getValue()));
    }
}
Also used : MavenSession(org.apache.maven.execution.MavenSession) MavenProject(org.apache.maven.project.MavenProject) TychoInterpolator(org.eclipse.tycho.core.maven.TychoInterpolator)

Example 2 with TychoInterpolator

use of org.eclipse.tycho.core.maven.TychoInterpolator in project tycho by eclipse.

the class PublishProductMojo method publishContent.

@Override
protected Collection<DependencySeed> publishContent(PublisherServiceFactory publisherServiceFactory) throws MojoExecutionException, MojoFailureException {
    Interpolator interpolator = new TychoInterpolator(getSession(), getProject());
    PublishProductTool publisher = publisherServiceFactory.createProductPublisher(getReactorProject(), getEnvironments(), getQualifier(), interpolator);
    List<DependencySeed> seeds = new ArrayList<>();
    for (File productFile : getEclipseRepositoryProject().getProductFiles(getProject())) {
        try {
            ProductConfiguration productConfiguration = ProductConfiguration.read(productFile);
            if (isEmpty(productConfiguration.getId())) {
                throw new MojoExecutionException("The product file " + productFile.getName() + " does not contain the mandatory attribute 'uid'. Please ensure you entered an id in the product file.");
            } else if (isEmpty(productConfiguration.getVersion())) {
                throw new MojoExecutionException("The product file " + productFile.getName() + " does not contain the mandatory attribute 'version'. Please ensure you entered a version in the product file.");
            }
            seeds.addAll(publisher.publishProduct(productFile, productConfiguration.includeLaunchers() ? getExpandedLauncherBinaries() : null, flavor));
        } catch (IOException e) {
            throw new MojoExecutionException("I/O exception while writing product definition or copying launcher icons", e);
        }
    }
    return seeds;
}
Also used : DependencySeed(org.eclipse.tycho.core.resolver.shared.DependencySeed) ProductConfiguration(org.eclipse.tycho.model.ProductConfiguration) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) PublishProductTool(org.eclipse.tycho.p2.tools.publisher.facade.PublishProductTool) ArrayList(java.util.ArrayList) Interpolator(org.eclipse.tycho.core.shared.Interpolator) TychoInterpolator(org.eclipse.tycho.core.maven.TychoInterpolator) IOException(java.io.IOException) TychoInterpolator(org.eclipse.tycho.core.maven.TychoInterpolator) File(java.io.File)

Aggregations

TychoInterpolator (org.eclipse.tycho.core.maven.TychoInterpolator)2 File (java.io.File)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 MavenSession (org.apache.maven.execution.MavenSession)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 MavenProject (org.apache.maven.project.MavenProject)1 DependencySeed (org.eclipse.tycho.core.resolver.shared.DependencySeed)1 Interpolator (org.eclipse.tycho.core.shared.Interpolator)1 ProductConfiguration (org.eclipse.tycho.model.ProductConfiguration)1 PublishProductTool (org.eclipse.tycho.p2.tools.publisher.facade.PublishProductTool)1