1 package com.atlassian.maven.plugins.amps;
2
3 import java.util.List;
4
5 import org.apache.maven.execution.MavenSession;
6 import org.apache.maven.plugin.BuildPluginManager;
7 import org.apache.maven.plugin.PluginManager;
8 import org.apache.maven.plugin.logging.Log;
9 import org.apache.maven.project.MavenProject;
10 import org.twdata.maven.mojoexecutor.MojoExecutor;
11 import org.twdata.maven.mojoexecutor.MojoExecutor.ExecutionEnvironment;
12
13 public class MavenContext
14 {
15 private final MavenProject project;
16 private final List<MavenProject> reactor;
17 private final MavenSession session;
18
19
20 private final PluginManager pluginManager;
21
22
23 private final BuildPluginManager buildPluginManager;
24
25 private final Log log;
26
27 public MavenContext(final MavenProject project, List<MavenProject> reactor, final MavenSession session, final PluginManager pluginManager, Log log)
28 {
29 this(project, reactor, session, pluginManager, null, log);
30 }
31
32 public MavenContext(final MavenProject project, List<MavenProject> reactor, final MavenSession session,
33 BuildPluginManager buildPluginManager,
34 Log log)
35 {
36 this(project, reactor, session, null, buildPluginManager, log);
37 }
38
39 private MavenContext(final MavenProject project, List<MavenProject> reactor, final MavenSession session,
40 final PluginManager pluginManager,
41 BuildPluginManager buildPluginManager,
42 Log log)
43 {
44 this.project = project;
45 this.reactor = reactor;
46 this.session = session;
47
48 this.pluginManager = pluginManager;
49
50 this.buildPluginManager = buildPluginManager;
51
52 this.log = log;
53 }
54
55 public MavenProject getProject()
56 {
57 return project;
58 }
59
60 MavenSession getSession()
61 {
62 return session;
63 }
64
65 public Log getLog()
66 {
67 return log;
68 }
69
70 public List<MavenProject> getReactor()
71 {
72 return reactor;
73 }
74
75 public MavenContext with(final MavenProject project, List<MavenProject> reactor, final MavenSession session)
76 {
77 return new MavenContext(project, reactor, session,
78 this.pluginManager, this.buildPluginManager,
79 this.log);
80 }
81
82 public ExecutionEnvironment getExecutionEnvironment()
83 {
84 if (buildPluginManager != null)
85 {
86
87 return MojoExecutor.executionEnvironment(project, session, buildPluginManager);
88 }
89 else
90 {
91
92 return MojoExecutor.executionEnvironment(project, session, pluginManager);
93 }
94 }
95 }