Example usage for org.apache.maven.execution MavenSession getUserProperties

List of usage examples for org.apache.maven.execution MavenSession getUserProperties

Introduction

In this page you can find the example usage for org.apache.maven.execution MavenSession getUserProperties.

Prototype

public Properties getUserProperties() 

Source Link

Document

Gets the user properties to use for interpolation and profile activation.

Usage

From source file:com.basistech.mext.VersionGeneratorLifecycleParticipant.java

License:Open Source License

@Override
public void afterSessionStart(MavenSession session) throws MavenExecutionException {
    File projectBase = new File(session.getRequest().getBaseDirectory());
    File policyFile = new File(projectBase, "version-policy.txt");
    if (policyFile.exists()) {
        String template;/* w w w . ja  va 2s  .  c  o  m*/
        try {
            template = fileContents(policyFile);
        } catch (IOException e) {
            throw new MavenExecutionException("Failed to read " + policyFile.getAbsolutePath(), e);
        }

        String[] bits = template.split("=");
        String prop = bits[0];
        String valueTemplate = bits[1];

        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        String timestamp = format.format(new Date());
        String rev = valueTemplate.replace("${timestamp}", timestamp);
        LOG.info("Setting {} to {}", prop, rev);
        session.getUserProperties().put(prop, rev);
    }
}

From source file:com.github.shyiko.sme.ServersExtension.java

License:Apache License

@Override
public void afterProjectsRead(MavenSession session) throws MavenExecutionException {
    MojoExecution mojoExecution = new MojoExecution(new MojoDescriptor());
    ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
    Properties userProperties = session.getUserProperties();

    boolean exportAsSysProp = isExtensionProperty(session, "servers.exportAsSysProp");

    Map<String, String> properties = new HashMap<String, String>();
    try {//from   www .jav  a  2 s.c  o  m
        for (Server server : session.getSettings().getServers()) {
            String serverId = server.getId();
            for (String field : FIELDS) {
                String[] aliases = getAliases(serverId, field);
                String fieldNameWithFirstLetterCapitalized = upperCaseFirstLetter(field);
                String fieldValue = (String) Server.class.getMethod("get" + fieldNameWithFirstLetterCapitalized)
                        .invoke(server);
                if (fieldValue != null) {
                    fieldValue = decryptInlinePasswords(fieldValue);
                }
                for (String alias : aliases) {
                    String userPropertyValue = userProperties.getProperty(alias);
                    if (userPropertyValue != null) {
                        fieldValue = userPropertyValue;
                        break;
                    }
                }
                String resolvedValue = (String) expressionEvaluator.evaluate(fieldValue);
                Server.class
                        .getMethod("set" + fieldNameWithFirstLetterCapitalized, new Class[] { String.class })
                        .invoke(server, resolvedValue);
                if (resolvedValue != null) {
                    for (String alias : aliases) {
                        properties.put(alias, resolvedValue);
                    }
                }
            }
        }

        if (exportAsSysProp) {
            System.getProperties().putAll(properties);
        } else {
            for (MavenProject project : session.getProjects()) {
                Properties projectProperties = project.getProperties();
                projectProperties.putAll(properties);
            }
        }
    } catch (Exception e) {
        throw new MavenExecutionException("Failed to expose settings.servers.*", e);
    }
}

From source file:com.github.shyiko.sme.ServersExtension.java

License:Apache License

/**
 * Lookup for property name in maven project.
 *
 * @param session current maven session/*  w  w  w.j  a v  a2  s . c  o m*/
 * @param propName property name
 * @return true is property is set and has value "true"
 */
private boolean isExtensionProperty(MavenSession session, String propName) {
    Properties properties = session.getUserProperties();
    String value = properties.getProperty(propName);
    if (value != null) {
        return Boolean.valueOf(value);
    }

    properties = session.getCurrentProject().getProperties();
    value = properties.getProperty(propName);
    return Boolean.valueOf(value);
}

From source file:com.github.shyiko.ump.NonRecursiveExtension.java

License:Apache License

public void afterProjectsRead(MavenSession session) {
    if (session.getGoals().isEmpty() && session.getUserProperties().isEmpty()) {
        session.setProjects(Arrays.asList(session.getTopLevelProject()));
        if (session.getCurrentProject().getDefaultGoal() == null) {
            session.getGoals().add("usage:show");
        }// w w  w. j  av a 2s  .  c  o  m
    }
}

From source file:com.sloshydog.timely.ReportWriterFactory.java

License:Apache License

public Writer createWriter(MavenSession mavenSession) throws IOException {

    File reportFile = FileUtils.getFile(mavenSession.getUserProperties().getProperty(OUTPUT_DIR, DEFAULT_DIR),
            String.format(FILENAME, getTimeSource().currentSystemTime()));
    File path = reportFile.getParentFile();
    if (!path.exists()) {
        if (!path.mkdirs()) {
            throw new IOException("Unable to create " + path);
        }//  w w  w  . ja v a 2 s. com
    }
    return new FileWriter(reportFile);
}

From source file:fr.brouillard.oss.jgitver.JGitverExtension.java

License:Apache License

@Override
public void afterProjectsRead(MavenSession mavenSession) throws MavenExecutionException {
    MavenProject rootProject = mavenSession.getTopLevelProject();
    List<MavenProject> projects = locateProjects(mavenSession, rootProject.getModules());

    Map<GAV, String> newProjectVersions = new LinkedHashMap<>();

    if (JGitverModelProcessor.class.isAssignableFrom(modelProcessor.getClass())) {
        JGitverModelProcessor jGitverModelProcessor = JGitverModelProcessor.class.cast(modelProcessor);
        JGitverModelProcessorWorkingConfiguration workingConfiguration = jGitverModelProcessor
                .getWorkingConfiguration();

        if (workingConfiguration == null) {
            logger.warn("");
            logger.warn("jgitver has changed!");
            logger.warn("");
            logger.warn(//from www  .  jav  a  2s.c o  m
                    "it now requires the usage of maven core extensions instead of standard plugin extensions.");
            logger.warn("The plugin must be now declared in a `.mvn/extensions.xml` file.");
            logger.warn("");
            logger.warn("    read https://github.com/jgitver/jgitver-maven-plugin for further information");
            logger.warn("");
            throw new MavenExecutionException("detection of jgitver old setting mechanism",
                    new IllegalStateException("jgitver must now use maven core extensions"));
        }

        newProjectVersions = workingConfiguration.getNewProjectVersions();
    } else {
        logger.info("jgitver-maven-plugin is about to change project(s) version(s)");

        String newVersion = null;
        try {
            newVersion = JGitverUtils
                    .calculateVersionForProject(rootProject, mavenSession.getUserProperties(), logger)
                    .getCalculatedVersion();
        } catch (IOException ex) {
            throw new MavenExecutionException("failure calculating version from git information", ex);
        }

        // Let's modify in memory resolved projects model
        for (MavenProject project : projects) {
            GAV projectGAV = GAV.from(project); // SUPPRESS CHECKSTYLE AbbreviationAsWordInName

            logger.debug("about to change in memory POM for: " + projectGAV);
            // First the project itself
            project.setVersion(newVersion);
            logger.debug("    version set to " + newVersion);
            VersionRange newVersionRange = VersionRange.createFromVersion(newVersion);
            project.getArtifact().setVersionRange(newVersionRange);
            logger.debug("    artifact version range set to " + newVersionRange);
            newProjectVersions.put(projectGAV, newVersion);

            // No need to worry about parent link, because model is in memory
        }

        try {
            JGitverUtils.attachModifiedPomFilesToTheProject(projects, newProjectVersions, mavenSession, logger);
        } catch (IOException | XmlPullParserException ex) {
            throw new MavenExecutionException("cannot attach updated POMs during project execution", ex);
        }
    }

    newProjectVersions.entrySet()
            .forEach(e -> logger.info("    " + e.getKey().toString() + " -> " + e.getValue()));
}

From source file:fr.brouillard.oss.jgitver.JGitverModelProcessor.java

License:Apache License

private void calculateVersionIfNecessary() throws Exception {
    if (workingConfiguration == null) {
        synchronized (this) {
            if (workingConfiguration == null) {
                logger.info("jgitver-maven-plugin is about to change project(s) version(s)");

                MavenSession mavenSession = legacySupport.getSession();
                final File rootDirectory = mavenSession.getRequest().getMultiModuleProjectDirectory();

                logger.debug("using " + JGitverUtils.EXTENSION_PREFIX + " on directory: " + rootDirectory);

                Configuration cfg = ConfigurationLoader.loadFromRoot(rootDirectory, logger);

                try (GitVersionCalculator gitVersionCalculator = GitVersionCalculator.location(rootDirectory)) {
                    gitVersionCalculator.setMavenLike(cfg.mavenLike)
                            .setAutoIncrementPatch(cfg.autoIncrementPatch).setUseDirty(cfg.useDirty)
                            .setUseDistance(cfg.useCommitDistance).setUseGitCommitId(cfg.useGitCommitId)
                            .setGitCommitIdLength(cfg.gitCommitIdLength)
                            .setNonQualifierBranches(cfg.nonQualifierBranches);

                    JGitverVersion jGitverVersion = new JGitverVersion(gitVersionCalculator);
                    JGitverUtils.fillPropertiesFromMetadatas(mavenSession.getUserProperties(), jGitverVersion,
                            logger);/*from  w  w w.j ava  2 s  .  com*/

                    workingConfiguration = new JGitverModelProcessorWorkingConfiguration(
                            jGitverVersion.getCalculatedVersion(), rootDirectory);
                }
            }
        }
    }
}

From source file:info.ronjenkins.maven.rtr.RTRConfig.java

License:Apache License

private static String getProperty(final String prop, final MavenSession session, final MavenProject project) {
    if (session == null) {
        return project.getProperties().getProperty(prop);
    } else if (project == null) {
        return session.getUserProperties().getProperty(prop);
    } else {//from   w w w.j  ava2s .  c om
        return StringUtils.defaultString(session.getUserProperties().getProperty(prop),
                project.getProperties().getProperty(prop));
    }
}

From source file:io.takari.maven.timeline.BuildEventsExtension.java

License:Apache License

private File logFile(MavenSession session) {
    String path = session.getUserProperties().getProperty(OUTPUT_FILE, DEFAULT_FILE_DESTINATION);
    if (new File(path).isAbsolute()) {
        return new File(path);
    }/*from   ww  w  .ja v a2 s . com*/
    String buildDir = session.getExecutionRootDirectory();
    return new File(buildDir, path);
}

From source file:ms.dew.devops.maven.mojo.BasicMojo.java

License:Apache License

/**
 * ?Maven.//from w w  w .  ja va 2s.com
 *
 * @param session maven mavenSession
 * @return properties maven properties
 */
private static Map<String, String> getMavenProperties(MavenSession session) {
    Map<String, String> props = new HashMap<>();
    props.putAll(session.getSystemProperties().entrySet().stream().collect(Collectors.toMap(
            prop -> prop.getKey().toString().toLowerCase().trim(), prop -> prop.getValue().toString().trim())));
    props.putAll(session.getUserProperties().entrySet().stream().collect(Collectors.toMap(
            prop -> prop.getKey().toString().toLowerCase().trim(), prop -> prop.getValue().toString().trim())));
    // Support gitlab ci runner by chart.
    props.putAll(props.entrySet().stream().filter(prop -> prop.getKey().startsWith("env."))
            .collect(Collectors.toMap(prop -> prop.getKey().substring("env.".length()), Map.Entry::getValue)));
    return props;
}