Index: tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java =================================================================== --- tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java (revision 1344797) +++ tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java (working copy) @@ -309,7 +309,7 @@ feature = objectFactory.createFeature(); feature.setName(project.getArtifactId()); } - if (feature.getVersion() == null) { + if (!feature.hasVersion()) { feature.setVersion(project.getArtifact().getBaseVersion()); } if (feature.getDescription() == null) { Index: features/core/src/main/java/org/apache/karaf/features/Feature.java =================================================================== --- features/core/src/main/java/org/apache/karaf/features/Feature.java (revision 1344797) +++ features/core/src/main/java/org/apache/karaf/features/Feature.java (working copy) @@ -36,6 +36,8 @@ String getVersion(); + boolean hasVersion(); + String getResolver(); String getInstall(); Index: features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java =================================================================== --- features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java (revision 1344797) +++ features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java (working copy) @@ -35,6 +35,7 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlType; + import org.apache.karaf.features.BundleInfo; import org.apache.karaf.features.ConfigFileInfo; @@ -302,6 +303,14 @@ } /** + * Since version has a default value ("0.0.0"), returns + * whether or not the version has been set. + */ + public boolean hasVersion() { + return this.version != null; + } + + /** * Gets the value of the description property. * * @return