View Javadoc

1   package com.aurea.maven.plugins.util;
2   
3   import java.util.HashSet;
4   import java.util.Set;
5   
6   import org.apache.maven.AbstractMavenLifecycleParticipant;
7   import org.apache.maven.artifact.Artifact;
8   import org.apache.maven.artifact.handler.ArtifactHandler;
9   import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
10  import org.apache.maven.execution.MavenSession;
11  import org.apache.maven.project.MavenProject;
12  import org.codehaus.plexus.component.annotations.Component;
13  import org.codehaus.plexus.component.annotations.Requirement;
14  import org.codehaus.plexus.logging.Logger;
15  
16  @Component(role = AbstractMavenLifecycleParticipant.class, hint = "ArtifactHandlerExt")
17  public class ArtifactHandlerExtension extends AbstractMavenLifecycleParticipant {
18  
19  	/**
20  	 * The {@link ArtifactHandlerManager} into which any extension
21  	 * {@link ArtifactHandler} instances should have been injected when the
22  	 * extensions were loaded.
23  	 * 
24  	 * @component
25  	 */
26  	private ArtifactHandlerManager artifactHandlerManager;
27  
28  	@Requirement
29  	private Logger logger;
30  
31  	// @Requirement
32  	// private RuntimeInformation runtime;
33  
34  	public void afterProjectsRead(MavenSession session) {
35  		logger.info(" __  __");
36  		logger.info("|  \\/  |__ _Aurea-__ ___");
37  		logger.info("| |\\/| / _` \\ V / -_) ' \\  ~ Artifact Loader Extension ~ 1.0");
38  		logger.info("|_|  |_\\__,_|\\_/\\___|_||_|  ");
39  		logger.info("");
40  
41  		MavenProject project = session.getProjects().get(0);
42  
43  		logger.info(
44  				"Setting ArtifactHandler on project-artifact: "
45  						+ project.getId() + "...");
46  
47  		Set<Artifact> artifacts = new HashSet<Artifact>();
48  		artifacts.add(project.getArtifact());
49  
50  		Set<Artifact> dependencyArtifacts = project.getDependencyArtifacts();
51  		if (dependencyArtifacts != null && !dependencyArtifacts.isEmpty()) {
52  			artifacts.addAll(dependencyArtifacts);
53  		}
54  
55  		for (Artifact artifact : artifacts) {
56  			String type = artifact.getType();
57  			ArtifactHandler handler = artifactHandlerManager
58  					.getArtifactHandler(type);
59  
60  			logger.debug("Artifact: " + artifact.getId() + "\nType: " + type
61  					+ "\nArtifactHandler extension: " + handler.getExtension());
62  
63  			artifact.setArtifactHandler(handler);
64  		}
65  
66  		logger.info("...done.");
67  	}
68  
69  }