01: package org.apache.maven.embedder;
02:
03: import org.apache.maven.execution.MavenExecutionRequest;
04: import org.apache.maven.execution.DefaultMavenExecutionRequest;
05: import org.apache.maven.execution.MavenExecutionResult;
06: import org.apache.maven.model.Plugin;
07: import org.apache.maven.plugin.PluginManagerException;
08: import org.apache.maven.project.MavenProject;
09: import org.apache.maven.artifact.handler.ArtifactHandler;
10:
11: import java.io.File;
12: import java.util.Map;
13: import java.util.HashMap;
14:
15: /** @author Jason van Zyl */
16: public class MavenEmbedderProjectWithExtensionReadingTest extends
17: MavenEmbedderTest {
18: public void testProjectWithExtensionsReading() throws Exception {
19: MavenExecutionRequest request = new DefaultMavenExecutionRequest()
20: .setShowErrors(true)
21: .setPomFile(
22: new File(basedir, "src/test/resources/pom2.xml")
23: .getAbsolutePath());
24:
25: ClassLoader classLoader = Thread.currentThread()
26: .getContextClassLoader();
27:
28: MavenExecutionResult result = new ExtendableMavenEmbedder(
29: classLoader).readProjectWithDependencies(request);
30:
31: assertNoExceptions(result);
32:
33: // sources, test sources, and the junit jar..
34:
35: assertEquals(3, result.getProject().getTestClasspathElements()
36: .size());
37: }
38:
39: private class ExtendableMavenEmbedder extends MavenEmbedder {
40:
41: public ExtendableMavenEmbedder(ClassLoader classLoader)
42: throws MavenEmbedderException {
43: super (new DefaultConfiguration()
44: .setClassLoader(classLoader)
45: .setMavenEmbedderLogger(
46: new MavenEmbedderConsoleLogger()));
47: }
48:
49: protected Map getPluginExtensionComponents(Plugin plugin)
50: throws PluginManagerException {
51: Map toReturn = new HashMap();
52: MyArtifactHandler handler = new MyArtifactHandler();
53: toReturn.put("mkleint", handler);
54: return toReturn;
55: }
56:
57: protected void verifyPlugin(Plugin plugin, MavenProject project) {
58: //ignore don't want to actually verify in test
59: }
60: }
61:
62: private class MyArtifactHandler implements ArtifactHandler {
63:
64: public String getExtension() {
65: return "jar";
66: }
67:
68: public String getDirectory() {
69: throw new UnsupportedOperationException(
70: "Not supported yet.");
71: }
72:
73: public String getClassifier() {
74: return null;
75: }
76:
77: public String getPackaging() {
78: return "mkleint";
79: }
80:
81: public boolean isIncludesDependencies() {
82: return false;
83: }
84:
85: public String getLanguage() {
86: return "java";
87: }
88:
89: public boolean isAddedToClasspath() {
90: return true;
91: }
92: }
93: }
|