Author: gnodet
Date: Mon Oct 2 02:34:26 2006
New Revision: 451931
URL: http://svn.apache.org/viewvc?view=rev&rev=451931
Log:
SM-605: Ability to configure jbi:projectDeploy goal to exclude updating
dependencies
Modified:
incubator/servicemix/branches/servicemix-3.0/tooling/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/JbiProjectDeployerMojo.java
Modified:
incubator/servicemix/branches/servicemix-3.0/tooling/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/JbiProjectDeployerMojo.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/branches/servicemix-3.0/tooling/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/JbiProjectDeployerMojo.java?view=diff&rev=451931&r1=451930&r2=451931
==============================================================================
---
incubator/servicemix/branches/servicemix-3.0/tooling/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/JbiProjectDeployerMojo.java
(original)
+++
incubator/servicemix/branches/servicemix-3.0/tooling/jbi-maven-plugin/src/main/java/org/apache/servicemix/maven/plugin/jbi/JbiProjectDeployerMojo.java
Mon Oct 2 02:34:26 2006
@@ -67,16 +67,31 @@
private List deploymentTypes;
/**
- * @parameter default-value="true"
+ * @parameter default-value="true" expression="${deployDependencies}"
*/
private boolean deployDependencies;
+
+ /**
+ * @parameter default-value="false" expression="${forceUpdate}"
+ */
+ private boolean forceUpdate;
+
+ /**
+ * @parameter default-value="true" expression="${deferExceptions}"
+ */
+ private boolean deferExceptions;
+
+ /**
+ * @parameter default-value="true" expression="${deployChildren}"
+ */
+ private boolean deployChildren;
public void execute() throws MojoExecutionException,
MojoFailureException {
deployProject();
}
protected void deployProject() throws MojoExecutionException {
- if
(!getDeployablePackagingTypes().contains(project.getPackaging())) {
+ if (!deployChildren &&
!getDeployablePackagingTypes().contains(project.getPackaging())) {
throw new MojoExecutionException(
"Project must be of packaging type ["
+
getDeployablePackagingTypes() + "]");
@@ -84,42 +99,39 @@
try {
Stack dependencies = new Stack();
- dependencies.add(resolveDeploymentPackage(project,
project
- .getArtifact()));
- ArrayList artifactList = new ArrayList();
- artifactList.addAll(project.getArtifacts());
- Collections.sort(artifactList, new
ArtifactDepthComparator());
- for (Iterator iter = artifactList.iterator();
iter.hasNext();) {
- Artifact artifact = (Artifact) iter.next();
- resolveArtifact(artifact, dependencies);
- }
+ if (deployChildren) {
+ resolveArtifact(project.getArtifact(), dependencies);
+ } else {
+ dependencies.add(resolveDeploymentPackage(project,
project.getArtifact()));
+ ArrayList artifactList = new ArrayList();
+ artifactList.addAll(project.getArtifacts());
+ Collections.sort(artifactList, new
ArtifactDepthComparator());
+ for (Iterator iter = artifactList.iterator();
iter.hasNext();) {
+ Artifact artifact = (Artifact) iter.next();
+ resolveArtifact(artifact, dependencies);
+ }
+ }
- getLog()
- .info(
- "------------------
Deployment Analysis --------------------");
- getLog().info(
- project.getName() + " has " +
(dependencies.size() - 1)
+ getLog().info("------------------ Deployment Analysis
--------------------");
+ getLog().info(project.getName() + " has " +
(dependencies.size() - 1)
+ " child
dependencies");
- for (Iterator iterator = dependencies.iterator();
iterator
- .hasNext();) {
+ for (Iterator iterator = dependencies.iterator();
iterator.hasNext();) {
getLog().info(" - " + iterator.next());
}
- getLog()
- .info(
-
"-----------------------------------------------------------");
+
getLog().info("-----------------------------------------------------------");
if (deployDependencies) {
// We need to stop all the dependencies first
- for (Iterator iterator =
dependencies.iterator(); iterator
- .hasNext();) {
- JbiDeployableArtifact jbiDeployable =
(JbiDeployableArtifact) iterator
- .next();
-
- if (isDeployed(jbiDeployable)) {
- stopDependency(jbiDeployable);
-
undeployDependency(jbiDeployable);
+ if (!deferExceptions) {
+ for (Iterator iterator =
dependencies.iterator(); iterator.hasNext();) {
+ JbiDeployableArtifact
jbiDeployable = (JbiDeployableArtifact) iterator.next();
+
+ if (forceUpdate &&
isDeployed(jbiDeployable)) {
+
stopDependency(jbiDeployable);
+
undeployDependency(jbiDeployable);
+ }
}
}
@@ -128,8 +140,12 @@
while (!dependencies.empty()) {
JbiDeployableArtifact jbiDeployable =
(JbiDeployableArtifact) dependencies
.pop();
- deployDependency(jbiDeployable);
- startDependency(jbiDeployable);
+ if (forceUpdate || !isDeployed(jbiDeployable)) {
+ deployDependency(jbiDeployable,
deferExceptions);
+ if (!deferExceptions) {
+ startDependency(jbiDeployable);
+ }
+ }
}
} else {
JbiDeployableArtifact jbiDeployable =
(JbiDeployableArtifact) dependencies
@@ -138,7 +154,7 @@
stopDependency(jbiDeployable);
undeployDependency(jbiDeployable);
}
- deployDependency(jbiDeployable);
+ deployDependency(jbiDeployable,
deferExceptions);
startDependency(jbiDeployable);
}
@@ -226,7 +242,8 @@
}
}
- private void deployDependency(JbiDeployableArtifact jbiDeployable) {
+ private void deployDependency(JbiDeployableArtifact jbiDeployable,
+ boolean doDeferExceptions) {
getLog().info(
"Deploying " + jbiDeployable.getType() + " from
"
@@ -235,17 +252,20 @@
InstallSharedLibraryTask componentTask = new
InstallSharedLibraryTask();
initializeJbiTask(componentTask);
componentTask.setFile(jbiDeployable.getFile());
+ componentTask.setDeferExceptions(doDeferExceptions);
componentTask.execute();
} else if
(JBI_SERVICE_ASSEMBLY.equals(jbiDeployable.getType())) {
DeployServiceAssemblyTask componentTask = new
DeployServiceAssemblyTask();
initializeJbiTask(componentTask);
componentTask.setFile(jbiDeployable.getFile());
+ componentTask.setDeferExceptions(doDeferExceptions);
componentTask.execute();
}
if (JBI_COMPONENT.equals(jbiDeployable.getType())) {
InstallComponentTask componentTask = new
InstallComponentTask();
initializeJbiTask(componentTask);
componentTask.setFile(jbiDeployable.getFile());
+ componentTask.setDeferExceptions(doDeferExceptions);
componentTask.execute();
}
@@ -265,28 +285,29 @@
throws ArtifactResolutionException,
ArtifactNotFoundException {
MavenProject project = null;
try {
- project = projectBuilder.buildFromRepository(artifact,
remoteRepos, localRepo,
- true);
+ project = projectBuilder.buildFromRepository(artifact,
remoteRepos, localRepo, false);
} catch (ProjectBuildingException e) {
- getLog().warn(
- "Unable to determine packaging for
dependency : "
+ getLog().warn("Unable to determine packaging for
dependency : "
+
artifact.getArtifactId() + " assuming jar");
}
- if (project != null) {
+ if (project != null) {
if
(getDeployablePackagingTypes().contains(project.getPackaging())) {
- getLog().debug(
- "Checking for dependency from
project "
- +
project.getArtifactId());
- JbiDeployableArtifact deployableArtifact =
resolveDeploymentPackage(
- project, artifact);
+ getLog().debug("Checking for dependency from
project " + project.getArtifactId());
+ JbiDeployableArtifact deployableArtifact =
resolveDeploymentPackage(project, artifact);
if (!dependencies.contains(deployableArtifact))
{
- getLog().debug(
- "Adding dependency from
project "
- +
project.getArtifactId());
+ getLog().debug("Adding dependency from
project " + project.getArtifactId());
dependencies.push(deployableArtifact);
}
- }
+ ArrayList artifactList = new ArrayList();
+ artifactList.addAll(project.getArtifacts());
+ Collections.sort(artifactList, new ArtifactDepthComparator());
+ for (Iterator iter = artifactList.iterator(); iter.hasNext();)
{
+ resolveArtifact((Artifact) iter.next(), dependencies);
+ }
+ } else {
+ getLog().debug("Ignoring non-jbi dependency: " +
project.getArtifactId() + " of type " + project.getPackaging());
+ }
}
return dependencies;
}