in nbm-maven-plugin/src/main/java/org/apache/netbeans/nbm/CreateNbmMojo.java [199:339]
public void execute()
throws MojoExecutionException, MojoFailureException {
if (skipNbm) {
getLog().info("Skipping generation of NBM file.");
return;
}
if ("pom".equals(project.getPackaging())) {
getLog().info(
"Skipping " + project.getId() + ", no nbm:nbm execution for 'pom' packaging");
return;
}
super.execute();
// 3. generate nbm
File nbmFile = new File(nbmBuildDir, finalName + ".nbm");
MakeNBM nbmTask = (MakeNBM) antProject.createTask("makenbm");
nbmTask.setFile(nbmFile);
nbmTask.setProductDir(clusterDir);
nbmTask.setModule("modules" + File.separator + moduleJarName + ".jar");
boolean reqRestart = requiresRestart;
if (!reqRestart && module.isRequiresRestart()) {
reqRestart = module.isRequiresRestart();
getLog().warn("Module descriptor's requiresRestart field is deprecated, use plugin's configuration in pom.xml");
}
nbmTask.setNeedsrestart(Boolean.toString(reqRestart));
String moduleAuthor = author;
if (module.getAuthor() != null) {
moduleAuthor = module.getAuthor();
getLog().warn("Module descriptor's author field is deprecated, use plugin's configuration in pom.xml");
}
nbmTask.setModuleauthor(moduleAuthor);
if (keystore != null && keystorealias != null && keystorepassword != null) {
File ks = new File(keystore);
if (!ks.exists()) {
getLog().warn("Cannot find keystore file at " + ks.getAbsolutePath());
} else {
Signature sig = nbmTask.createSignature();
sig.setKeystore(ks);
sig.setAlias(keystorealias);
sig.setStorepass(keystorepassword);
if (tsaurl != null) {
sig.setTsaurl(tsaurl);
}
if (tsacert != null) {
sig.setTsacert(tsacert);
}
getLog().debug("Setup the Ant task to sign the NBM file.");
}
} else if (keystore != null || keystorepassword != null || keystorealias != null) {
getLog().warn(
"If you want to sign the nbm file, you need to define all three keystore related parameters.");
}
String licName = licenseName;
File licFile = licenseFile;
if (module.getLicenseName() != null) {
licName = module.getLicenseName();
getLog().warn("Module descriptor's licenseName field is deprecated, use plugin's configuration in pom.xml");
}
if (module.getLicenseFile() != null) {
File lf = new File(project.getBasedir(), module.getLicenseFile());
licFile = lf;
getLog().warn("Module descriptor's licenseFile field is deprecated, use plugin's configuration in pom.xml");
}
if (licName != null && licFile != null) {
if (!licFile.exists() || !licFile.isFile()) {
getLog().warn("Cannot find license file at " + licFile.getAbsolutePath());
} else {
Blurb lb = nbmTask.createLicense();
lb.setFile(licFile);
lb.addText(licName);
}
} else if (licName != null || licFile != null) {
getLog().warn(
"To set license for the nbm, you need to specify both licenseName and licenseFile parameters.");
} else {
Blurb lb = nbmTask.createLicense();
lb.addText(createDefaultLicenseHeader());
lb.addText(createDefaultLicenseText());
}
String hpUrl = homePageUrl;
if (module.getHomepageUrl() != null) {
getLog().warn("Module descriptor's homePageUrl field is deprecated, use plugin's configuration in pom.xml");
hpUrl = module.getHomepageUrl();
}
if (hpUrl != null) {
nbmTask.setHomepage(hpUrl);
}
String distribUrl = distributionUrl;
if (module.getDistributionUrl() != null) {
distribUrl = module.getDistributionUrl();
getLog().warn("Module descriptor's distributionUrl field is deprecated, use plugin's configuration in pom.xml");
}
if (distribUrl != null) {
ArtifactRepository distRepository = CreateUpdateSiteMojo.getDeploymentRepository(distribUrl, layouts);
String dist = null;
if (distRepository == null) {
if (!distribUrl.contains("::")) {
dist = distribUrl + (distribUrl.endsWith("/") ? "" : "/") + nbmFile.getName();
}
} else {
Artifact art = artifactFactory.createArtifact(
project.getGroupId(), project.getArtifactId(),
project.getVersion(), null, "nbm-file");
dist = distRepository.getUrl() + (distRepository.getUrl().endsWith("/") ? "" : "/") + distRepository.pathOf(art);
}
nbmTask.setDistribution(dist);
} else {
nbmTask.setDistribution(nbmFile.getName());
}
if (!"extra".equals(cluster)) {
nbmTask.setTargetcluster(cluster);
}
//MNBMODULE-217 avoid using the static DATE_FORMAT variable in MavenNBM.java (in ant harness)
nbmTask.setReleasedate(DATE_FORMAT.format(getOutputTimestampOrNow(project)));
Path updaterPath = nbmTask.createUpdaterJar();
try {
// locate a public class from updater to get the path
URL url = org.netbeans.updater.XMLUtil.class.getProtectionDomain().getCodeSource().getLocation();
updaterPath.setPath(url.getFile());
} catch (BuildException e) {
// we could continue without having updater
getLog().warn("Could not find updater.jar");
}
try {
nbmTask.execute();
} catch (BuildException e) {
throw new MojoExecutionException("Cannot Generate nbm file:" + e.getMessage(), e);
}
try {
File nbmfile = new File(buildDir, nbmFile.getName());
FileUtils.getFileUtils().copyFile(nbmFile, nbmfile);
projectHelper.attachArtifact(project, "nbm-file", null, nbmfile);
} catch (IOException ex) {
throw new MojoExecutionException("Cannot copy nbm to build directory", ex);
}
}