[SM-2102]GenerateServiceAssemblyMojo should be able to pacakge SA according to serviceUnitName specified for the SU
git-svn-id: https://svn.apache.org/repos/asf/servicemix/maven-plugins/trunk@1159082 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/AbstractJbiMojo.java b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/AbstractJbiMojo.java
index e94c955..86e5251 100644
--- a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/AbstractJbiMojo.java
+++ b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/AbstractJbiMojo.java
@@ -42,6 +42,7 @@
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
@@ -51,6 +52,7 @@
import org.apache.servicemix.maven.plugin.jbi.JbiResolutionListener.Node;
import org.codehaus.plexus.archiver.jar.Manifest;
import org.codehaus.plexus.archiver.jar.ManifestException;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
public abstract class AbstractJbiMojo extends AbstractMojo {
@@ -349,5 +351,26 @@
sb.append(version.substring(matcher.end(), version.length()));
return sb.toString();
}
+
+ protected String getServiceUnitName(MavenProject project) {
+ for (Object elem : project.getBuildPlugins()) {
+ if (elem instanceof Plugin) {
+ Plugin plugin = (Plugin)elem;
+ if (plugin.getGroupId().equals("org.apache.servicemix.tooling")
+ && plugin.getArtifactId().equals("jbi-maven-plugin")) {
+ Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
+ if (configuration != null) {
+ Xpp3Dom serviceUnitName = configuration.getChild("serviceUnitName");
+ if (serviceUnitName != null) {
+ return serviceUnitName.getValue();
+ }
+ }
+ break;
+ }
+ }
+ }
+ return null;
+ }
+
}
diff --git a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyDescriptorMojo.java b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyDescriptorMojo.java
index f1285ec..ef07ba9 100644
--- a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyDescriptorMojo.java
+++ b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyDescriptorMojo.java
@@ -220,7 +220,12 @@
if (fileName.equals("classes")) {
fileName = artifact.getArtifactId() + "-" + artifact.getVersion() + ".jar";
}
- fileName = fileName.substring(0, fileName.lastIndexOf('.')) + ".zip";
+ String suName = getServiceUnitName(project);
+ if (suName != null && suName.length() > 0) {
+ fileName = suName;
+ } else {
+ fileName = fileName.substring(0, fileName.lastIndexOf('.')) + ".zip";
+ }
info.setFilename(fileName);
info.setComponent(getComponentName(project, artifacts, artifact));
info.setDescription(project.getDescription());
diff --git a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyMojo.java b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyMojo.java
index 3f2a8ec..cdbfc6b 100644
--- a/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyMojo.java
+++ b/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/GenerateServiceAssemblyMojo.java
@@ -22,6 +22,7 @@
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
@@ -30,6 +31,7 @@
import org.codehaus.plexus.archiver.jar.Manifest;
import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
import java.io.File;
import java.io.IOException;
@@ -133,9 +135,14 @@
}
if (project != null && project.getPackaging().equals("jbi-service-unit")) {
try {
- String path = artifact.getFile().getAbsolutePath();
- path = path.substring(0, path.lastIndexOf('.')) + ".zip";
- FileUtils.copyFileToDirectory(new File(path), workDirectory);
+ String suName = getServiceUnitName(project);
+ String path = artifact.getFile().getAbsolutePath();
+ if (suName != null && suName.length() > 0) {
+ path = path.substring(0, path.lastIndexOf(File.separator)) + File.separator + suName;
+ } else {
+ path = path.substring(0, path.lastIndexOf('.')) + ".zip";
+ }
+ FileUtils.copyFileToDirectory(new File(path), workDirectory);
} catch (IOException e) {
throw new JbiPluginException(e);
}
@@ -143,5 +150,4 @@
}
}
}
-
}