1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.model.building;
20
21 import org.apache.maven.model.Model;
22 import org.apache.maven.model.composition.DefaultDependencyManagementImporter;
23 import org.apache.maven.model.composition.DependencyManagementImporter;
24 import org.apache.maven.model.inheritance.DefaultInheritanceAssembler;
25 import org.apache.maven.model.inheritance.InheritanceAssembler;
26 import org.apache.maven.model.interpolation.DefaultModelVersionProcessor;
27 import org.apache.maven.model.interpolation.ModelInterpolator;
28 import org.apache.maven.model.interpolation.ModelVersionProcessor;
29 import org.apache.maven.model.interpolation.StringVisitorModelInterpolator;
30 import org.apache.maven.model.io.DefaultModelReader;
31 import org.apache.maven.model.io.ModelReader;
32 import org.apache.maven.model.locator.DefaultModelLocator;
33 import org.apache.maven.model.locator.ModelLocator;
34 import org.apache.maven.model.management.DefaultDependencyManagementInjector;
35 import org.apache.maven.model.management.DefaultPluginManagementInjector;
36 import org.apache.maven.model.management.DependencyManagementInjector;
37 import org.apache.maven.model.management.PluginManagementInjector;
38 import org.apache.maven.model.normalization.DefaultModelNormalizer;
39 import org.apache.maven.model.normalization.ModelNormalizer;
40 import org.apache.maven.model.path.DefaultModelPathTranslator;
41 import org.apache.maven.model.path.DefaultModelUrlNormalizer;
42 import org.apache.maven.model.path.DefaultPathTranslator;
43 import org.apache.maven.model.path.DefaultUrlNormalizer;
44 import org.apache.maven.model.path.ModelPathTranslator;
45 import org.apache.maven.model.path.ModelUrlNormalizer;
46 import org.apache.maven.model.path.PathTranslator;
47 import org.apache.maven.model.path.ProfileActivationFilePathInterpolator;
48 import org.apache.maven.model.path.UrlNormalizer;
49 import org.apache.maven.model.plugin.DefaultPluginConfigurationExpander;
50 import org.apache.maven.model.plugin.DefaultReportConfigurationExpander;
51 import org.apache.maven.model.plugin.DefaultReportingConverter;
52 import org.apache.maven.model.plugin.LifecycleBindingsInjector;
53 import org.apache.maven.model.plugin.PluginConfigurationExpander;
54 import org.apache.maven.model.plugin.ReportConfigurationExpander;
55 import org.apache.maven.model.plugin.ReportingConverter;
56 import org.apache.maven.model.profile.DefaultProfileInjector;
57 import org.apache.maven.model.profile.DefaultProfileSelector;
58 import org.apache.maven.model.profile.ProfileInjector;
59 import org.apache.maven.model.profile.ProfileSelector;
60 import org.apache.maven.model.profile.activation.FileProfileActivator;
61 import org.apache.maven.model.profile.activation.JdkVersionProfileActivator;
62 import org.apache.maven.model.profile.activation.OperatingSystemProfileActivator;
63 import org.apache.maven.model.profile.activation.ProfileActivator;
64 import org.apache.maven.model.profile.activation.PropertyProfileActivator;
65 import org.apache.maven.model.superpom.DefaultSuperPomProvider;
66 import org.apache.maven.model.superpom.SuperPomProvider;
67 import org.apache.maven.model.validation.DefaultModelValidator;
68 import org.apache.maven.model.validation.ModelValidator;
69
70
71
72
73
74
75
76
77
78 @Deprecated(since = "4.0.0")
79 public class DefaultModelBuilderFactory {
80
81 protected ModelProcessor newModelProcessor() {
82 DefaultModelProcessor processor = new DefaultModelProcessor();
83 processor.setModelLocator(newModelLocator());
84 processor.setModelReader(newModelReader());
85 return processor;
86 }
87
88 protected ModelLocator newModelLocator() {
89 return new DefaultModelLocator();
90 }
91
92 protected ModelReader newModelReader() {
93 return new DefaultModelReader();
94 }
95
96 protected ProfileSelector newProfileSelector() {
97 DefaultProfileSelector profileSelector = new DefaultProfileSelector();
98
99 for (ProfileActivator activator : newProfileActivators()) {
100 profileSelector.addProfileActivator(activator);
101 }
102
103 return profileSelector;
104 }
105
106 protected ProfileActivator[] newProfileActivators() {
107 return new ProfileActivator[] {
108 new JdkVersionProfileActivator(),
109 new OperatingSystemProfileActivator(),
110 new PropertyProfileActivator(),
111 new FileProfileActivator()
112 .setProfileActivationFilePathInterpolator(newProfileActivationFilePathInterpolator())
113 };
114 }
115
116 protected ProfileActivationFilePathInterpolator newProfileActivationFilePathInterpolator() {
117 return new ProfileActivationFilePathInterpolator().setPathTranslator(newPathTranslator());
118 }
119
120 protected UrlNormalizer newUrlNormalizer() {
121 return new DefaultUrlNormalizer();
122 }
123
124 protected PathTranslator newPathTranslator() {
125 return new DefaultPathTranslator();
126 }
127
128 protected ModelInterpolator newModelInterpolator() {
129 UrlNormalizer normalizer = newUrlNormalizer();
130 PathTranslator pathTranslator = newPathTranslator();
131 return new StringVisitorModelInterpolator()
132 .setPathTranslator(pathTranslator)
133 .setUrlNormalizer(normalizer)
134 .setVersionPropertiesProcessor(newModelVersionPropertiesProcessor());
135 }
136
137 protected ModelVersionProcessor newModelVersionPropertiesProcessor() {
138 return new DefaultModelVersionProcessor();
139 }
140
141 protected ModelValidator newModelValidator() {
142 return new DefaultModelValidator(newModelVersionPropertiesProcessor());
143 }
144
145 protected ModelNormalizer newModelNormalizer() {
146 return new DefaultModelNormalizer();
147 }
148
149 protected ModelPathTranslator newModelPathTranslator() {
150 return new DefaultModelPathTranslator().setPathTranslator(newPathTranslator());
151 }
152
153 protected ModelUrlNormalizer newModelUrlNormalizer() {
154 return new DefaultModelUrlNormalizer().setUrlNormalizer(newUrlNormalizer());
155 }
156
157 protected InheritanceAssembler newInheritanceAssembler() {
158 return new DefaultInheritanceAssembler();
159 }
160
161 protected ProfileInjector newProfileInjector() {
162 return new DefaultProfileInjector();
163 }
164
165 protected SuperPomProvider newSuperPomProvider() {
166 return new DefaultSuperPomProvider().setModelProcessor(newModelProcessor());
167 }
168
169 protected DependencyManagementImporter newDependencyManagementImporter() {
170 return new DefaultDependencyManagementImporter();
171 }
172
173 protected DependencyManagementInjector newDependencyManagementInjector() {
174 return new DefaultDependencyManagementInjector();
175 }
176
177 protected LifecycleBindingsInjector newLifecycleBindingsInjector() {
178 return new StubLifecycleBindingsInjector();
179 }
180
181 protected PluginManagementInjector newPluginManagementInjector() {
182 return new DefaultPluginManagementInjector();
183 }
184
185 protected PluginConfigurationExpander newPluginConfigurationExpander() {
186 return new DefaultPluginConfigurationExpander();
187 }
188
189 protected ReportConfigurationExpander newReportConfigurationExpander() {
190 return new DefaultReportConfigurationExpander();
191 }
192
193 protected ReportingConverter newReportingConverter() {
194 return new DefaultReportingConverter();
195 }
196
197
198
199
200
201
202 public DefaultModelBuilder newInstance() {
203 DefaultModelBuilder modelBuilder = new DefaultModelBuilder();
204
205 modelBuilder.setModelProcessor(newModelProcessor());
206 modelBuilder.setModelValidator(newModelValidator());
207 modelBuilder.setModelNormalizer(newModelNormalizer());
208 modelBuilder.setModelPathTranslator(newModelPathTranslator());
209 modelBuilder.setModelUrlNormalizer(newModelUrlNormalizer());
210 modelBuilder.setModelInterpolator(newModelInterpolator());
211 modelBuilder.setInheritanceAssembler(newInheritanceAssembler());
212 modelBuilder.setProfileInjector(newProfileInjector());
213 modelBuilder.setProfileSelector(newProfileSelector());
214 modelBuilder.setSuperPomProvider(newSuperPomProvider());
215 modelBuilder.setDependencyManagementImporter(newDependencyManagementImporter());
216 modelBuilder.setDependencyManagementInjector(newDependencyManagementInjector());
217 modelBuilder.setLifecycleBindingsInjector(newLifecycleBindingsInjector());
218 modelBuilder.setPluginManagementInjector(newPluginManagementInjector());
219 modelBuilder.setPluginConfigurationExpander(newPluginConfigurationExpander());
220 modelBuilder.setReportConfigurationExpander(newReportConfigurationExpander());
221 modelBuilder.setReportingConverter(newReportingConverter());
222 modelBuilder.setProfileActivationFilePathInterpolator(newProfileActivationFilePathInterpolator());
223
224 return modelBuilder;
225 }
226
227 private static class StubLifecycleBindingsInjector implements LifecycleBindingsInjector {
228
229 @Override
230 public void injectLifecycleBindings(
231 Model model, ModelBuildingRequest request, ModelProblemCollector problems) {}
232 }
233 }