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

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

Introduction

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

Prototype

public Artifact getArtifact() 

Source Link

Usage

From source file:org.apache.felix.bundleplugin.BundlePlugin.java

License:Apache License

protected Properties getDefaultProperties(MavenProject currentProject) {
    Properties properties = new Properties();

    String bsn;//from  w w  w. jav  a 2  s.  c o  m
    try {
        bsn = getMaven2OsgiConverter().getBundleSymbolicName(currentProject.getArtifact());
    } catch (Exception e) {
        bsn = currentProject.getGroupId() + "." + currentProject.getArtifactId();
    }

    // Setup defaults
    properties.put(MAVEN_SYMBOLICNAME, bsn);
    properties.put(Analyzer.BUNDLE_SYMBOLICNAME, bsn);
    properties.put(Analyzer.IMPORT_PACKAGE, "*");
    properties.put(Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion(currentProject.getVersion()));

    // remove the extraneous Include-Resource and Private-Package entries from generated manifest
    properties.put(Analyzer.REMOVE_HEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE);

    header(properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription());
    StringBuffer licenseText = printLicenses(currentProject.getLicenses());
    if (licenseText != null) {
        header(properties, Analyzer.BUNDLE_LICENSE, licenseText);
    }
    header(properties, Analyzer.BUNDLE_NAME, currentProject.getName());

    if (currentProject.getOrganization() != null) {
        String organizationName = currentProject.getOrganization().getName();
        header(properties, Analyzer.BUNDLE_VENDOR, organizationName);
        properties.put("project.organization.name", organizationName);
        properties.put("pom.organization.name", organizationName);
        if (currentProject.getOrganization().getUrl() != null) {
            String organizationUrl = currentProject.getOrganization().getUrl();
            header(properties, Analyzer.BUNDLE_DOCURL, organizationUrl);
            properties.put("project.organization.url", organizationUrl);
            properties.put("pom.organization.url", organizationUrl);
        }
    }

    properties.putAll(currentProject.getProperties());
    properties.putAll(currentProject.getModel().getProperties());
    properties.putAll(getProperties(currentProject.getModel(), "project.build."));
    properties.putAll(getProperties(currentProject.getModel(), "pom."));
    properties.putAll(getProperties(currentProject.getModel(), "project."));
    properties.put("project.baseDir", baseDir);
    properties.put("project.build.directory", getBuildDirectory());
    properties.put("project.build.outputdirectory", getOutputDirectory());

    properties.put("classifier", classifier == null ? "" : classifier);

    // Add default plugins
    header(properties, Analyzer.PLUGIN, BlueprintPlugin.class.getName() + "," + SpringXMLType.class.getName());

    return properties;
}

From source file:org.apache.felix.bundleplugin.ManifestPlugin.java

License:Apache License

public Manifest getManifest(MavenProject project, Map instructions, Properties properties, Jar[] classpath)
        throws IOException, MojoFailureException, MojoExecutionException {
    Analyzer analyzer = getAnalyzer(project, instructions, properties, classpath);

    List errors = analyzer.getErrors();
    List warnings = analyzer.getWarnings();

    for (Iterator w = warnings.iterator(); w.hasNext();) {
        String msg = (String) w.next();
        getLog().warn("Warning in manifest for " + project.getArtifact() + " : " + msg);
    }/*  www .j  av a 2s  .c o  m*/
    for (Iterator e = errors.iterator(); e.hasNext();) {
        String msg = (String) e.next();
        getLog().error("Error in manifest for " + project.getArtifact() + " : " + msg);
    }

    if (errors.size() > 0) {
        String failok = analyzer.getProperty("-failok");
        if (null == failok || "false".equalsIgnoreCase(failok)) {
            throw new MojoFailureException("Error(s) found in manifest configuration");
        }
    }

    Manifest manifest = analyzer.getJar().getManifest();

    // cleanup...
    analyzer.close();

    return manifest;
}

From source file:org.apache.felix.bundleplugin.ManifestPlugin.java

License:Apache License

protected Analyzer getAnalyzer(MavenProject project, Map instructions, Properties properties, Jar[] classpath)
        throws IOException, MojoExecutionException {
    File file = project.getArtifact().getFile();
    if (file == null) {
        file = getOutputDirectory();/* www . j av  a  2  s  .  com*/
    }

    if (!file.exists()) {
        throw new FileNotFoundException(file.getPath());
    }

    properties.putAll(getDefaultProperties(project));
    properties.putAll(transformDirectives(instructions));

    PackageVersionAnalyzer analyzer = new PackageVersionAnalyzer();

    if (project.getBasedir() != null)
        analyzer.setBase(project.getBasedir());

    analyzer.setProperties(properties);

    if (classpath != null)
        analyzer.setClasspath(classpath);

    analyzer.setJar(file);

    if (analyzer.getProperty(Analyzer.EXPORT_PACKAGE) == null
            && analyzer.getProperty(Analyzer.EXPORT_CONTENTS) == null
            && analyzer.getProperty(Analyzer.PRIVATE_PACKAGE) == null) {
        String export = analyzer.calculateExportsFromContents(analyzer.getJar());
        analyzer.setProperty(Analyzer.EXPORT_PACKAGE, export);
    }

    // Apply Embed-Dependency headers, even though the contents won't be changed
    Collection embeddableArtifacts = getEmbeddableArtifacts(project, analyzer);
    new DependencyEmbedder(getLog(), embeddableArtifacts).processHeaders(analyzer);

    dumpInstructions("BND Instructions:", analyzer.getProperties(), getLog());
    dumpClasspath("BND Classpath:", analyzer.getClasspath(), getLog());

    analyzer.mergeManifest(analyzer.getJar().getManifest());
    analyzer.calcManifest();

    dumpManifest("BND Manifest:", analyzer.getJar().getManifest(), getLog());

    return analyzer;
}

From source file:org.apache.felix.obr.plugin.ObrDeployFile.java

License:Apache License

public void execute() throws MojoExecutionException {
    MavenProject project = getProject();

    if (!supportedProjectTypes.contains(project.getPackaging())) {
        getLog().info("Ignoring packaging type " + project.getPackaging());
        return;/*  w w  w . ja v  a  2  s .co m*/
    } else if ("NONE".equalsIgnoreCase(obrRepository)) {
        getLog().info("OBR update disabled (enable with -DobrRepository)");
        return;
    }

    URI tempURI = ObrUtils.findRepositoryXml("", obrRepository);
    String repositoryName = new File(tempURI.getPath()).getName();

    Log log = getLog();
    ObrUpdate update;

    RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log);
    remoteFile.connect(repositoryId, url);

    // ======== LOCK REMOTE OBR ========
    log.info("LOCK " + remoteFile + '/' + repositoryName);
    remoteFile.lockFile(repositoryName, ignoreLock);
    File downloadedRepositoryXml = null;

    try {
        // ======== DOWNLOAD REMOTE OBR ========
        log.info("Downloading " + repositoryName);
        downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml");

        String mavenRepository = localRepository.getBasedir();

        URI repositoryXml = downloadedRepositoryXml.toURI();
        URI obrXmlFile = ObrUtils.toFileURI(obrXml);
        URI bundleJar;

        if (null == file) {
            bundleJar = ObrUtils.findBundleJar(localRepository, project.getArtifact());
        } else {
            bundleJar = file.toURI();
        }

        URI remoteBundleURI = null;
        if (null != bundleUrl) {
            remoteBundleURI = URI.create(bundleUrl);
        } else if (null != file) {
            remoteBundleURI = URI.create(localRepository.pathOf(project.getArtifact()));
        }

        Config userConfig = new Config();
        userConfig.setRemoteBundle(remoteBundleURI);
        userConfig.setPathRelative(true);
        userConfig.setRemoteFile(true);

        update = new ObrUpdate(repositoryXml, obrXmlFile, project, bundleJar, mavenRepository, userConfig, log);

        update.updateRepository();

        if (downloadedRepositoryXml.exists()) {
            // ======== UPLOAD MODIFIED OBR ========
            log.info("Uploading " + repositoryName);
            remoteFile.put(downloadedRepositoryXml, repositoryName);
        }
    } catch (Exception e) {
        log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e);
    } finally {
        // ======== UNLOCK REMOTE OBR ========
        log.info("UNLOCK " + remoteFile + '/' + repositoryName);
        remoteFile.unlockFile(repositoryName);
        remoteFile.disconnect();

        if (null != downloadedRepositoryXml) {
            downloadedRepositoryXml.delete();
        }
    }
}

From source file:org.apache.felix.obr.plugin.ObrInstallFile.java

License:Apache License

public void execute() throws MojoExecutionException {
    MavenProject project = getProject();

    if (!supportedProjectTypes.contains(project.getPackaging())) {
        getLog().info("Ignoring packaging type " + project.getPackaging());
        return;//from   w ww  .j  ava2  s .  co m
    } else if ("NONE".equalsIgnoreCase(obrRepository)) {
        getLog().info("OBR update disabled (enable with -DobrRepository)");
        return;
    }

    Log log = getLog();
    ObrUpdate update;

    String mavenRepository = localRepository.getBasedir();

    URI repositoryXml = ObrUtils.findRepositoryXml(mavenRepository, obrRepository);
    URI obrXmlFile = ObrUtils.toFileURI(obrXml);
    URI bundleJar;

    if (null == file) {
        bundleJar = ObrUtils.findBundleJar(localRepository, project.getArtifact());
    } else {
        bundleJar = file.toURI();
    }

    Config userConfig = new Config();

    update = new ObrUpdate(repositoryXml, obrXmlFile, project, bundleJar, mavenRepository, userConfig, log);

    update.updateRepository();
}

From source file:org.apache.felix.obrplugin.ObrDeployFile.java

License:Apache License

public void execute() throws MojoExecutionException {
    MavenProject project = getProject();
    String projectType = project.getPackaging();

    // ignore unsupported project types, useful when bundleplugin is configured in parent pom
    if (!supportedProjectTypes.contains(projectType)) {
        getLog().warn(//from  w  w w  .ja v  a  2s .  c om
                "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes);
        return;
    } else if ("NONE".equalsIgnoreCase(remoteOBR) || "false".equalsIgnoreCase(remoteOBR)) {
        getLog().info("Remote OBR update disabled (enable with -DremoteOBR)");
        return;
    }

    // if the user doesn't supply an explicit name for the remote OBR file, use the local name instead
    if (null == remoteOBR || remoteOBR.trim().length() == 0 || "true".equalsIgnoreCase(remoteOBR)) {
        remoteOBR = obrRepository;
    }

    URI tempURI = ObrUtils.findRepositoryXml("", remoteOBR);
    String repositoryName = new File(tempURI.getSchemeSpecificPart()).getName();

    Log log = getLog();
    ObrUpdate update;

    RemoteFileManager remoteFile = new RemoteFileManager(m_wagonManager, settings, log);
    remoteFile.connect(repositoryId, url);

    // ======== LOCK REMOTE OBR ========
    log.info("LOCK " + remoteFile + '/' + repositoryName);
    remoteFile.lockFile(repositoryName, ignoreLock);
    File downloadedRepositoryXml = null;

    try {
        // ======== DOWNLOAD REMOTE OBR ========
        log.info("Downloading " + repositoryName);
        downloadedRepositoryXml = remoteFile.get(repositoryName, ".xml");

        String mavenRepository = localRepository.getBasedir();

        URI repositoryXml = downloadedRepositoryXml.toURI();
        URI obrXmlFile = ObrUtils.toFileURI(obrXml);
        URI bundleJar;

        if (null == file) {
            bundleJar = ObrUtils.getArtifactURI(localRepository, project.getArtifact());
        } else {
            bundleJar = file.toURI();
        }

        Config userConfig = new Config();
        userConfig.setRemoteFile(true);

        if (null != bundleUrl) {
            // public URL differs from the bundle file location
            URI uri = URI.create(bundleUrl);
            log.info("Computed bundle uri: " + uri);
            userConfig.setRemoteBundle(uri);
        } else if (null != file) {
            // assume file will be deployed in remote repository, so find the remote relative location
            URI uri = URI.create(localRepository.pathOf(project.getArtifact()));
            log.info("Computed bundle uri: " + uri);
            userConfig.setRemoteBundle(uri);
        }

        update = new ObrUpdate(repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log);
        update.parseRepositoryXml();

        update.updateRepository(bundleJar, null, null);

        update.writeRepositoryXml();

        if (downloadedRepositoryXml.exists()) {
            // ======== UPLOAD MODIFIED OBR ========
            log.info("Uploading " + repositoryName);
            remoteFile.put(downloadedRepositoryXml, repositoryName);
        }
    } catch (Exception e) {
        log.warn("Exception while updating remote OBR: " + e.getLocalizedMessage(), e);
    } finally {
        // ======== UNLOCK REMOTE OBR ========
        log.info("UNLOCK " + remoteFile + '/' + repositoryName);
        remoteFile.unlockFile(repositoryName);
        remoteFile.disconnect();

        if (null != downloadedRepositoryXml) {
            downloadedRepositoryXml.delete();
        }
    }
}

From source file:org.apache.felix.obrplugin.ObrInstallFile.java

License:Apache License

public void execute() throws MojoExecutionException {
    MavenProject project = getProject();
    String projectType = project.getPackaging();

    // ignore unsupported project types, useful when bundleplugin is configured in parent pom
    if (!supportedProjectTypes.contains(projectType)) {
        getLog().warn(/*from   w  w w.  j  a  v a 2 s  . co m*/
                "Ignoring project type " + projectType + " - supportedProjectTypes = " + supportedProjectTypes);
        return;
    } else if ("NONE".equalsIgnoreCase(obrRepository) || "false".equalsIgnoreCase(obrRepository)) {
        getLog().info("Local OBR update disabled (enable with -DobrRepository)");
        return;
    }

    Log log = getLog();
    ObrUpdate update;

    String mavenRepository = localRepository.getBasedir();

    URI repositoryXml = ObrUtils.findRepositoryXml(mavenRepository, obrRepository);
    URI obrXmlFile = ObrUtils.toFileURI(obrXml);
    URI bundleJar;

    if (null == file) {
        bundleJar = ObrUtils.getArtifactURI(localRepository, project.getArtifact());
    } else {
        bundleJar = file.toURI();
    }

    Config userConfig = new Config();

    update = new ObrUpdate(repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log);
    update.parseRepositoryXml();

    update.updateRepository(bundleJar, null, null);

    update.writeRepositoryXml();
}

From source file:org.apache.geronimo.mavenplugins.car.AbstractCarMojo.java

License:Apache License

protected void getDependencies(MavenProject project, boolean useTransitiveDependencies)
        throws MojoExecutionException {

    DependencyTreeResolutionListener listener = new DependencyTreeResolutionListener(getLogger());

    DependencyNode rootNode;/*from   w  w  w.  j a v a 2 s.c o m*/
    try {
        Map managedVersions = project.getManagedVersionMap();

        Set dependencyArtifacts = project.getDependencyArtifacts();

        if (dependencyArtifacts == null) {
            dependencyArtifacts = project.createArtifacts(artifactFactory, null, null);
        }
        ArtifactResolutionResult result = artifactCollector.collect(dependencyArtifacts, project.getArtifact(),
                managedVersions, localRepository, project.getRemoteArtifactRepositories(),
                artifactMetadataSource, null, Collections.singletonList(listener));

        this.dependencyArtifacts = result.getArtifacts();
        rootNode = listener.getRootNode();
    } catch (ArtifactResolutionException exception) {
        throw new MojoExecutionException("Cannot build project dependency tree", exception);
    } catch (InvalidDependencyVersionException e) {
        throw new MojoExecutionException("Invalid dependency version for artifact " + project.getArtifact());
    }

    Scanner scanner = new Scanner();
    scanner.scan(rootNode, useTransitiveDependencies);
    localDependencies = scanner.localDependencies.keySet();
    treeListing = scanner.getLog();
}

From source file:org.apache.hyracks.maven.license.LicenseMojo.java

License:Apache License

private void addDependencyToLicenseMap(MavenProject depProject, List<Pair<String, String>> depLicenses,
        String depLocation) {//from   w w w  . j  a v a2s. c  o  m
    final String depGav = toGav(depProject);
    getLog().debug("adding " + depGav + ", location: " + depLocation);
    final MutableBoolean usedMetric = new MutableBoolean(false);
    if (depLicenses.size() > 1) {
        Collections.sort(depLicenses, (o1, o2) -> {
            final int metric1 = getLicenseMetric(o1.getLeft());
            final int metric2 = getLicenseMetric(o2.getLeft());
            usedMetric.setValue(usedMetric.booleanValue() || metric1 != LicenseSpec.UNDEFINED_LICENSE_METRIC
                    || metric2 != LicenseSpec.UNDEFINED_LICENSE_METRIC);
            return Integer.compare(metric1, metric2);
        });
        if (usedMetric.booleanValue()) {
            getLog().info("Multiple licenses for " + depGav + ": " + depLicenses + "; taking lowest metric: "
                    + depLicenses.get(0));
        } else {
            getLog().warn("Multiple licenses for " + depGav + ": " + depLicenses + "; taking first listed: "
                    + depLicenses.get(0));
        }
    } else if (depLicenses.isEmpty()) {
        getLog().info("no license defined in model for " + depGav);
        depLicenses.add(new ImmutablePair<>("MISSING_LICENSE", null));
    }
    Pair<String, String> key = depLicenses.get(0);
    String licenseUrl = key.getLeft();
    final String displayName = key.getRight();
    if (!urlToLicenseMap.containsKey(licenseUrl)) {
        // assuming we've not already mapped it, annotate the URL with artifact info, if not an actual URL
        try {
            getLog().debug("- URL: " + new URL(licenseUrl));
            // life is good
        } catch (MalformedURLException e) {
            // we encounter this a lot.  Log a warning, and use an annotated key
            final String fakeLicenseUrl = depGav.replaceAll(":", "--") + "_" + licenseUrl;
            getLog().info(
                    "- URL for " + depGav + " is malformed: " + licenseUrl + "; using: " + fakeLicenseUrl);
            licenseUrl = fakeLicenseUrl;
        }
    }
    addProject(new Project(depProject, depLocation, depProject.getArtifact().getFile()),
            new LicenseSpec(licenseUrl, displayName), true);
}

From source file:org.apache.hyracks.maven.license.LicenseMojo.java

License:Apache License

protected MavenProject resolveDependency(Artifact depObj) throws ProjectBuildingException {
    String key = depObj.getGroupId() + ":" + depObj.getArtifactId() + ":" + depObj.getVersion();

    MavenProject depProj = projectCache.get(key);

    if (depProj == null) {
        try {//from  ww  w.  ja  v a  2s  . c  om
            depProj = projectBuilder.buildFromRepository(depObj, remoteRepositories, localRepository, false);
        } catch (ProjectBuildingException e) {
            throw new ProjectBuildingException(key, "Error creating dependent artifacts", e);
        }

        Model supplement = supplementModels.get(
                SupplementalModelHelper.generateSupplementMapKey(depObj.getGroupId(), depObj.getArtifactId()));
        if (supplement != null) {
            Model merged = SupplementalModelHelper.mergeModels(assembler, depProj.getModel(), supplement);
            Set<String> origLicenses = depProj.getModel().getLicenses().stream().map(License::getUrl)
                    .collect(Collectors.toSet());
            Set<String> newLicenses = merged.getLicenses().stream().map(License::getUrl)
                    .collect(Collectors.toSet());
            if (!origLicenses.equals(newLicenses)) {
                getLog().warn("license list for " + toGav(depProj) + " changed with supplemental model; was: "
                        + origLicenses + ", now: " + newLicenses);
            }
            depProj = new MavenProject(merged);
            depProj.setArtifact(depObj);
            depProj.setVersion(depObj.getVersion());
        }
        depProj.getArtifact().setScope(depObj.getScope());
        projectCache.put(key, depProj);
    }
    return depProj;
}