All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.alexcojocaru.mojo.elasticsearch.v2.AbstractArtifact Maven / Gradle / Ivy

Go to download

A Maven plugin to run a single node Elasticsearch cluster during the integration test phase of a build

There is a newer version: 6.28
Show newest version
/**
 * Copyright (C) 2010-2012 Joerg Bellmann 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.alexcojocaru.mojo.elasticsearch.v2;

import java.io.File;

import org.apache.commons.lang3.StringUtils;
import org.apache.maven.plugins.annotations.Parameter;

/**
 * Copied from the t7mp project.
 * 
 * @author Joerg Bellmann
 *
 */
public abstract class AbstractArtifact {

    @Parameter(required=true)
    protected String groupId;

    @Parameter(required=true)
    protected String artifactId;

    @Parameter
    protected String version;

    @Parameter
    protected String type;

    @Parameter
    protected String classifier;

    @Parameter
    protected String systemPath;

    protected File file;

    public AbstractArtifact() {
        // default constructor
    }

    public AbstractArtifact(String groupId, String artifactId, String version, String classifier, String type) {
        this.setGroupId(groupId);
        this.setArtifactId(artifactId);
        this.setVersion(version);
        this.setClassifier(classifier);
        this.setType(type);

    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    public String getArtifactId() {
        return artifactId;
    }

    public void setArtifactId(String artifactId) {
        this.artifactId = artifactId;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public abstract String getType();

    public void setType(String type) {
        this.type = type;
    }

    public String getClassifier() {
        return classifier;
    }

    public void setClassifier(String classifier) {
        this.classifier = classifier;
    }

    public String getSystemPath() {
        return this.systemPath;
    }

    public void setSystemPath(String systemPath) {
        this.systemPath = systemPath;
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getArtifactCoordinates() {
        if (!StringUtils.isBlank(getSystemPath())) {
            return getSystemPath();
        } else {
            return buildDefaultMavenCoordinates();
        }
    }

    /**
     * The {@code :[:[:]]:} of the artifact.
     * 
     * @return The Maven coordinates for the current artifact
     */
    protected String buildDefaultMavenCoordinates() {
        StringBuilder sb = new StringBuilder();
        sb.append(getGroupId()).append(":");
        sb.append(getArtifactId());
        if (StringUtils.isNotBlank(getType())) {
            sb.append(":").append(getType());
        }
        if (StringUtils.isNotBlank(getClassifier())) {
            sb.append(":").append(getClassifier());
        }
        sb.append(":");
        sb.append(getVersion());
        return sb.toString().trim();
    }

    @Override
    public String toString() {
        return "Artifact[" + getArtifactCoordinates() + "]";
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy