]> git.argeo.org Git - gpl/argeo-slc.git/blob - maven/maven-argeo-osgi-plugin/src/main/java/org/argeo/slc/maven/plugins/osgi/InstallBundlesMojo.java
Add update manifest feature
[gpl/argeo-slc.git] / maven / maven-argeo-osgi-plugin / src / main / java / org / argeo / slc / maven / plugins / osgi / InstallBundlesMojo.java
1 package org.argeo.slc.maven.plugins.osgi;
2
3 import java.io.File;
4 import java.util.List;
5
6 import org.apache.maven.artifact.Artifact;
7 import org.apache.maven.artifact.installer.ArtifactInstallationException;
8 import org.apache.maven.artifact.installer.ArtifactInstaller;
9 import org.apache.maven.plugin.MojoExecutionException;
10 import org.apache.maven.plugin.MojoFailureException;
11 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
12
13 /**
14 * @goal install-bundles
15 * @phase install
16 * @author mbaudier
17 *
18 */
19 public class InstallBundlesMojo extends AbstractBundlesPackagerMojo {
20 /** @component */
21 private ArtifactInstaller installer;
22
23 public void execute() throws MojoExecutionException, MojoFailureException {
24 List bundlePackages = analyze(false);
25 for (int i = 0; i < bundlePackages.size(); i++) {
26 AbstractBundlesPackagerMojo.BundlePackage bundlePackage = (BundlePackage) bundlePackages
27 .get(i);
28 try {
29 Artifact artifact = bundlePackage.getArtifact();
30 ProjectArtifactMetadata metadata = new ProjectArtifactMetadata(
31 artifact, bundlePackage.getPomFile());
32 artifact.addMetadata(metadata);
33 installer.install(bundlePackage.getPackageFile(), artifact,
34 local);
35 } catch (ArtifactInstallationException e) {
36 throw new MojoExecutionException("Could not install bundle "
37 + bundlePackage.getBundleDir(), e);
38 }
39 }
40
41 // Bundles pom
42 try {
43 installer.install(bundlesPomFile(), bundlesPomArtifact(), local);
44 installer.install(new File(baseDir.getPath() + File.separator
45 + "pom.xml"), project.getArtifact(), local);
46 } catch (ArtifactInstallationException e) {
47 throw new MojoExecutionException("Could not install bundles POM", e);
48 }
49
50 }
51 }