X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=maven-argeo-osgi-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fmaven%2Fplugins%2Fosgi%2FPackageBundlesMojo.java;h=80074cb2e51d4ea81be9570c26ceebeb268e94c7;hb=42944b0571af7212c6d4dd776de100e73faff862;hp=00da0777ea9282da42c1cb342e5e8f245c52b12e;hpb=364d50cb551b76c54094b7d52b39cb337efcb422;p=gpl%2Fargeo-slc.git diff --git a/maven-argeo-osgi-plugin/src/main/java/org/argeo/slc/maven/plugins/osgi/PackageBundlesMojo.java b/maven-argeo-osgi-plugin/src/main/java/org/argeo/slc/maven/plugins/osgi/PackageBundlesMojo.java index 00da0777e..80074cb2e 100644 --- a/maven-argeo-osgi-plugin/src/main/java/org/argeo/slc/maven/plugins/osgi/PackageBundlesMojo.java +++ b/maven-argeo-osgi-plugin/src/main/java/org/argeo/slc/maven/plugins/osgi/PackageBundlesMojo.java @@ -8,6 +8,8 @@ import java.util.Iterator; import java.util.List; import java.util.jar.Attributes; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.archiver.jar.JarArchiver; @@ -22,36 +24,18 @@ import org.codehaus.plexus.archiver.util.DefaultFileSet; public class PackageBundlesMojo extends AbstractBundlesPackagerMojo { public void execute() throws MojoExecutionException, MojoFailureException { - StringBuffer bundlesPom = new StringBuffer(); - // not using append() systematically for the sake of clarity - bundlesPom.append("\n"); - bundlesPom.append("\t4.0.0\n"); - bundlesPom.append("\t\n"); - bundlesPom.append("\t\t" - + project.getParentArtifact().getGroupId() + "\n"); - bundlesPom.append("\t\t" - + project.getParentArtifact().getArtifactId() - + "\n"); - bundlesPom.append("\t\t" - + project.getParentArtifact().getVersion() + "\n"); - bundlesPom.append("\t\n"); - bundlesPom - .append("\t" + project.getGroupId() + "\n"); - bundlesPom.append("\t" + bundlesPomArtifactId - + "\n"); - bundlesPom.append("\tpom\n"); + StringBuffer bundlesPom = createPomFileHeader(project + .getParentArtifact().getGroupId(), project.getParentArtifact() + .getArtifactId(), project.getParentArtifact().getBaseVersion(), + project.getGroupId(), bundlesPomArtifactId, "pom"); bundlesPom.append("\t\n"); - List bundlePackages = analyze(); + List bundlePackages = analyze(true); for (int i = 0; i < bundlePackages.size(); i++) { AbstractBundlesPackagerMojo.BundlePackage bundlePackage = (BundlePackage) bundlePackages .get(i); - File manifestFile = new File(bundlePackage.getPackageFile() - .getPath() - + ".MF"); - // Package as jar JarArchiver jarArchiver = new JarArchiver(); jarArchiver.setDestFile(bundlePackage.getPackageFile()); @@ -61,15 +45,16 @@ public class PackageBundlesMojo extends AbstractBundlesPackagerMojo { String[] excludes = { "**/.svn", "**/.svn/**" }; fileSet.setIncludes(includes); fileSet.setExcludes(excludes); + + FileOutputStream manifestOut = null; try { + File manifestFile = bundlePackage.getManifestFile(); jarArchiver.addFileSet(fileSet); // Write manifest - FileOutputStream out = new FileOutputStream(manifestFile); - bundlePackage.getManifest().getMainAttributes().put( - Attributes.Name.MANIFEST_VERSION, "1.0"); + manifestOut = new FileOutputStream(manifestFile); - System.out.println("# BUNDLE " + System.out.println("\n# BUNDLE " + bundlePackage.getArtifact().getArtifactId()); Attributes mainAttrs = bundlePackage.getManifest() .getMainAttributes(); @@ -79,14 +64,34 @@ public class PackageBundlesMojo extends AbstractBundlesPackagerMojo { System.out.println(key + ": " + value); } - bundlePackage.getManifest().write(out); - out.close(); - jarArchiver.setManifest(manifestFile); + bundlePackage.getManifest().write(manifestOut); + // Write jar + jarArchiver.setManifest(manifestFile); jarArchiver.createArchive(); } catch (Exception e) { throw new MojoExecutionException("Could not package bundle " + bundlePackage.getBundleDir(), e); + }finally{ + IOUtils.closeQuietly(manifestOut); + } + + // Write bundle POM + File pomFile = bundlePackage.getPomFile(); + StringBuffer pomBuf = createPomFileHeader(project + .getParentArtifact().getGroupId(), project + .getParentArtifact().getArtifactId(), project + .getParentArtifact().getBaseVersion(), bundlePackage + .getArtifact().getGroupId(), bundlePackage.getArtifact() + .getArtifactId(), "jar"); + String pomStr = closePomFile(pomBuf); + try { + FileUtils.writeStringToFile(pomFile, pomStr); + } catch (IOException e) { + throw new MojoExecutionException( + "Could not write pom for bundle " + + bundlePackage.getArtifact().getArtifactId(), + e); } // update dependencies POM @@ -107,16 +112,13 @@ public class PackageBundlesMojo extends AbstractBundlesPackagerMojo { } bundlesPom.append("\t\n"); - bundlesPom.append("\n"); + String bundlePomStr = closePomFile(bundlesPom); try { - FileWriter writer = new FileWriter(bundlesPomFile()); - writer.write(bundlesPom.toString()); - writer.close(); + FileUtils.writeStringToFile(bundlesPomFile(), bundlePomStr); } catch (IOException e) { throw new MojoExecutionException("Could not write dependency pom", e); } } - }