if (PathUtil.getPrivateApplicationBaseFileFor(artifact, localRepository).exists())
{
return;
}
ArtifactContext artifactContext = null;
AssemblyResolver assemblyResolver = null;
ArtifactFactory artifactFactory = null;
DataAccessObjectRegistry daoRegistry = null;
try {
artifactContext = (ArtifactContext) container.lookup(ArtifactContext.ROLE);
assemblyResolver = (AssemblyResolver) container.lookup(AssemblyResolver.ROLE);
artifactFactory = (ArtifactFactory) container.lookup(ArtifactFactory.ROLE);
daoRegistry = (DataAccessObjectRegistry) container.lookup(DataAccessObjectRegistry.ROLE);
Dependency dependency = new Dependency();
dependency.setGroupId(artifact.getGroupId());
dependency.setArtifactId(artifact.getArtifactId());
dependency.setVersion(artifact.getVersion());
dependency.setScope(Artifact.SCOPE_RUNTIME);
dependency.setType(artifact.getType());
try
{
assemblyResolver.resolveTransitivelyFor(new MavenProject(), Collections.singletonList(dependency), getMavenProject().getRemoteArtifactRepositories(),
localRepository, false);
}
catch( NPandayArtifactResolutionException e )
{
throw new MojoExecutionException( e.getMessage(), e );
}
ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
dao.openConnection();
Project project;
try
{
project = dao.getProjectFor(dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(),
dependency.getClassifier());
}
catch( ProjectDaoException e )
{
throw new MojoExecutionException( e.getMessage(), e );
}
List<Dependency> sourceArtifactDependencies = new ArrayList<Dependency>();
for (ProjectDependency projectDependency : project.getProjectDependencies()) {
sourceArtifactDependencies.add(ProjectFactory.createDependencyFrom(projectDependency));
}
artifactContext.getArtifactInstaller().installArtifactAndDependenciesIntoPrivateApplicationBase(localRepository, artifact,
sourceArtifactDependencies);
dao.closeConnection();
}
catch (IOException e) {
throw new MojoExecutionException(e.getMessage(), e);