Merge pull request #10 from ebarboni/nbrepositoryparent
Allow possibility to use a parent to populate with
diff --git a/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
index 2d6a90e..08cca3b 100644
--- a/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
+++ b/nb-repository-plugin/src/main/java/org/netbeans/nbm/repository/PopulateRepositoryMojo.java
@@ -69,6 +69,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Component;
@@ -218,6 +219,15 @@
@Parameter(defaultValue="temp", property="dependencyRepositoryId")
private String dependencyRepositoryId;
+ /**
+ * Colon separated artefact coordinate groupId:artefactId:version that
+ * represent parent to be used
+ *
+ * @since 1.4
+ */
+ @Parameter(property = "parentGAV", required = false)
+ private String parentGAV;
+
// <editor-fold defaultstate="collapsed" desc="Component parameters">
/**
* Local maven repository.
@@ -265,6 +275,9 @@
private ArtifactRepositoryLayout artifactRepositoryLayout;
// </editor-fold>
+ // parent handler in case we have one
+ private Parent artefactParent = null;
+
@Override
public void execute()
throws MojoExecutionException
@@ -272,6 +285,21 @@
getLog().info( "Populate repository with NetBeans modules" );
Project antProject = antProject();
ArtifactRepository deploymentRepository = null;
+
+ if (parentGAV != null)
+ {
+ // populate artefactParent
+ artefactParent = new Parent();
+ String[] split = parentGAV.split(":");
+ if (split.length != 3) {
+ throw new MojoExecutionException(
+ "parentGAV should respect the following format groupId:artefactId:version" );
+ }
+ artefactParent.setArtifactId( split[0] );
+ artefactParent.setArtifactId( split[1] );
+ artefactParent.setVersion( split[2] );
+ }
+
if ( deployUrl != null )
{
ArtifactRepositoryLayout layout = new DefaultRepositoryLayout();
@@ -754,6 +782,9 @@
mavenModel.setVersion( wrapper.getVersion() );
mavenModel.setPackaging( "jar" );
mavenModel.setModelVersion( "4.0.0" );
+ if ( artefactParent != null ) {
+ mavenModel.setParent( artefactParent );
+ }
ExamineManifest man = wrapper.getModuleManifest();
List<Dependency> deps = new ArrayList<Dependency>();
if ( !man.getDependencyTokens().isEmpty() )
@@ -985,6 +1016,9 @@
mavenModel.setVersion( wrapper.getVersion() );
mavenModel.setPackaging( "jar" );
mavenModel.setModelVersion( "4.0.0" );
+ if ( artefactParent != null ) {
+ mavenModel.setParent( artefactParent );
+ }
mavenModel.setName(
"Maven definition for " + wrapper.getFile().getName() + " - external part of NetBeans module." );
mavenModel.setDescription(
@@ -1031,6 +1065,9 @@
// mavenModel.setPackaging("nbm-application");
mavenModel.setPackaging( "pom" );
mavenModel.setModelVersion( "4.0.0" );
+ if ( artefactParent != null ) {
+ mavenModel.setParent( artefactParent );
+ }
List<Dependency> deps = new ArrayList<Dependency>();
for ( ModuleWrapper wr : mods )
{