Example usage for org.apache.maven.project MavenProject getVersion

List of usage examples for org.apache.maven.project MavenProject getVersion

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getVersion.

Prototype

public String getVersion() 

Source Link

Usage

From source file:io.fabric8.maven.CreateProfileZipMojo.java

License:Apache License

protected void generateAggregatedZip(MavenProject rootProject, List<MavenProject> reactorProjects,
        List<MavenProject> pomZipProjects) throws IOException, MojoExecutionException {
    File projectBaseDir = rootProject.getBasedir();
    File projectOutputFile = new File(projectBaseDir, "target/profile.zip");
    getLog().info("Generating " + projectOutputFile.getAbsolutePath() + " from root project "
            + rootProject.getArtifactId());
    File projectBuildDir = new File(projectBaseDir, reactorProjectOutputPath);

    createAggregatedZip(reactorProjects, projectBaseDir, projectBuildDir, reactorProjectOutputPath,
            projectOutputFile, includeReadMe, pomZipProjects);
    if (rootProject.getAttachedArtifacts() != null) {
        // need to remove existing as otherwise we get a WARN
        Artifact found = null;//from   ww  w. j  av  a  2s .c  om
        for (Artifact artifact : rootProject.getAttachedArtifacts()) {
            if (artifactClassifier != null && artifact.hasClassifier()
                    && artifact.getClassifier().equals(artifactClassifier)) {
                found = artifact;
                break;
            }
        }
        if (found != null) {
            rootProject.getAttachedArtifacts().remove(found);
        }
    }

    getLog().info("Attaching aggregated zip " + projectOutputFile + " to root project "
            + rootProject.getArtifactId());
    projectHelper.attachArtifact(rootProject, artifactType, artifactClassifier, projectOutputFile);

    // if we are doing an install goal, then also install the aggregated zip manually
    // as maven will install the root project first, and then build the reactor projects, and at this point
    // it does not help to attach artifact to root project, as those artifacts will not be installed
    // so we need to install manually
    if (rootProject.hasLifecyclePhase("install")) {
        getLog().info("Installing aggregated zip " + projectOutputFile);
        InvocationRequest request = new DefaultInvocationRequest();
        request.setBaseDirectory(rootProject.getBasedir());
        request.setPomFile(new File("./pom.xml"));
        request.setGoals(Collections.singletonList("install:install-file"));
        request.setRecursive(false);
        request.setInteractive(false);

        Properties props = new Properties();
        props.setProperty("file", "target/profile.zip");
        props.setProperty("groupId", rootProject.getGroupId());
        props.setProperty("artifactId", rootProject.getArtifactId());
        props.setProperty("version", rootProject.getVersion());
        props.setProperty("classifier", "profile");
        props.setProperty("packaging", "zip");
        request.setProperties(props);

        getLog().info(
                "Installing aggregated zip using: mvn install:install-file" + serializeMvnProperties(props));
        Invoker invoker = new DefaultInvoker();
        try {
            InvocationResult result = invoker.execute(request);
            if (result.getExitCode() != 0) {
                throw new IllegalStateException("Error invoking Maven goal install:install-file");
            }
        } catch (MavenInvocationException e) {
            throw new MojoExecutionException("Error invoking Maven goal install:install-file", e);
        }
    }
}

From source file:io.fabric8.maven.enricher.fabric8.GrafanaLinkEnricher.java

License:Apache License

private String findGrafanaLink() {
    MavenProject project = getProject();
    String defaultDashboard = detectDefaultDashboard(project);
    String query = "";
    String projectName = null;//from  w w  w  .java2 s. com
    String version = null;

    // TODO - use the docker names which may differ from project metadata!
    if (Strings.isNullOrBlank(projectName)) {
        projectName = project.getArtifactId();
    }
    if (Strings.isNullOrBlank(version)) {
        version = project.getVersion();
    }

    if (Strings.isNotBlank(projectName)) {
        query += "&var-project=" + projectName;
    }
    if (Strings.isNotBlank(version)) {
        query += "&var-version=" + version;
    }
    if (query.startsWith("&")) {
        query = "?" + query.substring(1);
    }
    return URLUtils.pathJoin("dashboard/file", defaultDashboard, query);
}

From source file:io.fabric8.maven.enricher.standard.ProjectEnricher.java

License:Apache License

private Map<String, String> createLabels(boolean withoutVersion) {
    MavenProject project = getProject();
    Map<String, String> ret = new HashMap<>();
    ret.put("project", project.getArtifactId());
    ret.put("group", project.getGroupId());
    ret.put("provider", "fabric8");
    if (!withoutVersion) {
        ret.put("version", project.getVersion());
    }//w ww  . j ava2 s . c  o m
    return ret;
}

From source file:io.fabric8.maven.generator.api.BaseGenerator.java

License:Apache License

protected void addLatestTagIfSnapshot(BuildImageConfiguration.Builder buildBuilder) {
    MavenProject project = getProject();
    if (project.getVersion().endsWith("-SNAPSHOT")) {
        buildBuilder.tags(Collections.singletonList("latest"));
    }/*from w  ww  .  j ava2s . c  o  m*/
}

From source file:io.fabric8.maven.HelmMojo.java

License:Apache License

protected Chart createChart() {
    Chart answer = new Chart();
    answer.setName(chartName);/*from   ww w . j  a  va  2 s. c  o  m*/
    MavenProject project = getProject();
    if (project != null) {
        answer.setVersion(project.getVersion());
        answer.setDescription(project.getDescription());
        answer.setHome(project.getUrl());
        List<Developer> developers = project.getDevelopers();
        if (developers != null) {
            List<String> maintainers = new ArrayList<>();
            for (Developer developer : developers) {
                String email = developer.getEmail();
                String name = developer.getName();
                String text = Strings.defaultIfEmpty(name, "");
                if (Strings.isNotBlank(email)) {
                    if (Strings.isNotBlank(text)) {
                        text = text + " <" + email + ">";
                    } else {
                        text = email;
                    }
                }
                if (Strings.isNotBlank(text)) {
                    maintainers.add(text);
                }
            }
            answer.setMaintainers(maintainers);
        }
    }
    return answer;
}

From source file:io.fabric8.maven.HelmPushMojo.java

License:Apache License

protected static boolean projectsEqual(MavenProject project1, MavenProject project2) {
    return Objects.equal(project1.getGroupId(), project2.getGroupId())
            && Objects.equal(project1.getArtifactId(), project2.getArtifactId())
            && Objects.equal(project1.getVersion(), project2.getVersion());
}

From source file:io.fabric8.maven.JsonMojo.java

License:Apache License

protected void generateKubernetesJson(File kubernetesJson) throws MojoExecutionException {
    // TODO populate properties, project etc.
    MavenProject project = getProject();
    Map<String, String> labelMap = getLabels();
    String name = getProjectName();
    String group = getGroupName();
    if (!labelMap.containsKey("version")) {
        labelMap.put("version", project.getVersion());
    }/* ww w .j  av  a  2  s  . c o  m*/
    if (!labelMap.containsKey("project") && Strings.isNotBlank(name)) {
        labelMap.put("project", name);
    }
    if (!labelMap.containsKey("group") && Strings.isNotBlank(group)) {
        labelMap.put("group", group);
    }
    if (!labelMap.containsKey("provider") && Strings.isNotBlank(provider)) {
        labelMap.put("provider", provider);
    }

    Map<String, String> podSpecAnnotations = getPodSpecAnnotations();
    Map<String, String> rcAnnotations = getRCAnnotations();
    KubernetesListBuilder builder = new KubernetesListBuilder();

    // lets add a ServiceAccount object if we add any new secret annotations
    boolean addedServiceAcount = addServiceAccountIfIUsingSecretAnnotations(builder, podSpecAnnotations);

    List<Volume> volumes = getVolumes();
    List<VolumeMount> volumeMounts = getVolumeMounts();
    Boolean containerPrivileged = getContainerPrivileged();

    if (addedServiceAcount) {
        addServiceConstraints(builder, volumes,
                containerPrivileged != null && containerPrivileged.booleanValue());
    }
    builder.addNewReplicationControllerItem().withNewMetadata()
            .withName(KubernetesHelper.validateKubernetesId(replicationControllerName,
                    "fabric8.replicationController.name"))
            .withLabels(labelMap).withAnnotations(rcAnnotations).endMetadata().withNewSpec()
            .withReplicas(replicaCount).withSelector(labelMap).withNewTemplate().withNewMetadata()
            .withLabels(labelMap).withAnnotations(podSpecAnnotations).endMetadata().withNewSpec()
            .withServiceAccountName(serviceAccount).addNewContainer().withName(getKubernetesContainerName())
            .withImage(getDockerImage()).withImagePullPolicy(getImagePullPolicy())
            .withEnv(getEnvironmentVariables()).withNewSecurityContext().withPrivileged(containerPrivileged)
            .endSecurityContext().withPorts(getContainerPorts()).withVolumeMounts(volumeMounts)
            .withLivenessProbe(getLivenessProbe()).withReadinessProbe(getReadinessProbe()).endContainer()
            .withVolumes(volumes).endSpec().endTemplate().endSpec().endReplicationControllerItem();

    addPersistentVolumeClaims(builder, volumes);

    addServices(builder, labelMap);

    Template template = getTemplate();
    String iconUrl = getIconUrl();
    if (!template.getParameters().isEmpty() || Strings.isNotBlank(iconUrl)) {
        configureTemplateDescriptionAndIcon(template, iconUrl);
        builder = builder.addToTemplateItems(template);
    }

    KubernetesList kubernetesList = builder.build();

    Object result = Templates.combineTemplates(kubernetesList);
    if (result instanceof Template) {
        Template resultTemplate = (Template) result;
        configureTemplateDescriptionAndIcon(resultTemplate, iconUrl);

        if (pureKubernetes) {
            try {
                result = applyTemplates(resultTemplate);
            } catch (IOException e) {
                throw new MojoExecutionException("Failed to process template locally " + e, e);
            }
        }
    }
    try {
        if (pureKubernetes) {
            result = filterPureKubernetes(result);
        }

        ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
        String generated = mapper.writeValueAsString(result);
        Files.writeToFile(kubernetesJson, generated, Charset.defaultCharset());
    } catch (Exception e) {
        throw new IllegalArgumentException("Failed to generate Kubernetes JSON.", e);
    }
}

From source file:io.fabric8.maven.JsonMojo.java

License:Apache License

public String getImagePullPolicy() {
    MavenProject project = getProject();
    String pullPolicy = imagePullPolicy;
    if (project != null) {
        String version = project.getVersion();
        if (Strings.isNullOrBlank(pullPolicy)) {
            if (version != null && version.endsWith("SNAPSHOT")) {
                // TODO pullPolicy = "PullAlways";
                pullPolicy = imagePullPolicySnapshot;
            }/*from  w  w w . j  a v a 2  s. c  om*/
        }
    }
    return pullPolicy;
}

From source file:io.fabric8.maven.MigrateMojo.java

License:Apache License

protected void migrateContainer(Container container, ConfigMap parameterConfigMap) {
    String image = container.getImage();
    if (image != null) {
        MavenProject project = getProject();
        String version = project.getVersion();
        if (version != null) {
            String label = ":" + version;
            if (image.endsWith(label)) {
                image = Strings.stripSuffix(image, label) + ":${project.version}";
                container.setImage(image);
            } else {
                getLog().warn("Image does not end with " + label + " as image is: " + image);
            }//ww  w .j  a  va2s  .c o m
        }
    }
    if (parameterConfigMap != null) {
        Map<String, String> parameters = parameterConfigMap.getData();
        if (parameters != null) {
            String configMapName = KubernetesHelper.getName(parameterConfigMap);
            List<EnvVar> env = container.getEnv();
            for (EnvVar envVar : env) {
                String value = envVar.getValue();
                if (value != null) {
                    String name = envVar.getName();
                    if (value.startsWith("${") && value.endsWith("}")) {
                        String variableName = Strings.stripPrefix(Strings.stripSuffix(name, "}"), "${");
                        String expression = convertToConfigMapKey(variableName);
                        if (parameters.containsKey(expression)) {
                            // lets switch to a refer to the config map!
                            envVar.setValue(null);
                            envVar.setValueFrom(new EnvVarSourceBuilder().withNewConfigMapKeyRef()
                                    .withName(configMapName).withKey(expression).endConfigMapKeyRef().build());
                        }

                    }
                }
            }
        }
    }
}

From source file:io.fabric8.maven.MigrateMojo.java

License:Apache License

private void migrateLabels(Map<String, String> labels) {
    if (labels != null) {
        MavenProject project = getProject();

        // TODO there is a currently a bug when using values other than ${project.artifactId} in fabric8-maven-plugin 3.x
        // where it overrides the value of the sepc.selector.matchLabels to the artifactId which then breaks
        // as the template.metadata.labels.project will differ
        boolean alwaysUseArtifactIdForProject = true;
        if (alwaysUseArtifactIdForProject) {
            if (labels.containsKey("project")) {
                labels.put("project", "${project.artifactId}");
            }/*from   w w  w . ja  v  a2  s .c  o m*/
        } else {
            replaceKeyValueWith(labels, "project", project.getArtifactId(), "${project.artifactId}");
        }
        replaceKeyValueWith(labels, "version", project.getVersion(), "${project.version}");
    }
}