List of usage examples for org.apache.maven.project MavenProject getArtifact
public Artifact getArtifact()
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; }