aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java243
1 files changed, 243 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
new file mode 100644
index 00000000..36a0f46a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
@@ -0,0 +1,243 @@
+package org.apache.maven.model.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.composition.DefaultDependencyManagementImporter;
+import org.apache.maven.model.composition.DependencyManagementImporter;
+import org.apache.maven.model.inheritance.DefaultInheritanceAssembler;
+import org.apache.maven.model.inheritance.InheritanceAssembler;
+import org.apache.maven.model.interpolation.ModelInterpolator;
+import org.apache.maven.model.interpolation.StringSearchModelInterpolator;
+import org.apache.maven.model.io.DefaultModelReader;
+import org.apache.maven.model.io.ModelReader;
+import org.apache.maven.model.locator.DefaultModelLocator;
+import org.apache.maven.model.locator.ModelLocator;
+import org.apache.maven.model.management.DefaultDependencyManagementInjector;
+import org.apache.maven.model.management.DefaultPluginManagementInjector;
+import org.apache.maven.model.management.DependencyManagementInjector;
+import org.apache.maven.model.management.PluginManagementInjector;
+import org.apache.maven.model.normalization.DefaultModelNormalizer;
+import org.apache.maven.model.normalization.ModelNormalizer;
+import org.apache.maven.model.path.DefaultModelPathTranslator;
+import org.apache.maven.model.path.DefaultModelUrlNormalizer;
+import org.apache.maven.model.path.DefaultPathTranslator;
+import org.apache.maven.model.path.DefaultUrlNormalizer;
+import org.apache.maven.model.path.ModelPathTranslator;
+import org.apache.maven.model.path.ModelUrlNormalizer;
+import org.apache.maven.model.path.PathTranslator;
+import org.apache.maven.model.path.UrlNormalizer;
+import org.apache.maven.model.plugin.DefaultPluginConfigurationExpander;
+import org.apache.maven.model.plugin.DefaultReportConfigurationExpander;
+import org.apache.maven.model.plugin.DefaultReportingConverter;
+import org.apache.maven.model.plugin.LifecycleBindingsInjector;
+import org.apache.maven.model.plugin.PluginConfigurationExpander;
+import org.apache.maven.model.plugin.ReportConfigurationExpander;
+import org.apache.maven.model.plugin.ReportingConverter;
+import org.apache.maven.model.profile.DefaultProfileInjector;
+import org.apache.maven.model.profile.DefaultProfileSelector;
+import org.apache.maven.model.profile.ProfileInjector;
+import org.apache.maven.model.profile.ProfileSelector;
+import org.apache.maven.model.profile.activation.FileProfileActivator;
+import org.apache.maven.model.profile.activation.JdkVersionProfileActivator;
+import org.apache.maven.model.profile.activation.OperatingSystemProfileActivator;
+import org.apache.maven.model.profile.activation.ProfileActivator;
+import org.apache.maven.model.profile.activation.PropertyProfileActivator;
+import org.apache.maven.model.superpom.DefaultSuperPomProvider;
+import org.apache.maven.model.superpom.SuperPomProvider;
+import org.apache.maven.model.validation.DefaultModelValidator;
+import org.apache.maven.model.validation.ModelValidator;
+
+/**
+ * A factory to create model builder instances when no dependency injection is available. <em>Note:</em> This class is
+ * only meant as a utility for developers that want to employ the model builder outside of the Maven build system, Maven
+ * plugins should always acquire model builder instances via dependency injection. Developers might want to subclass
+ * this factory to provide custom implementations for some of the components used by the model builder.
+ *
+ * @author Benjamin Bentmann
+ */
+public class DefaultModelBuilderFactory
+{
+
+ protected ModelProcessor newModelProcessor()
+ {
+ DefaultModelProcessor processor = new DefaultModelProcessor();
+ processor.setModelLocator( newModelLocator() );
+ processor.setModelReader( newModelReader() );
+ return processor;
+ }
+
+ protected ModelLocator newModelLocator()
+ {
+ return new DefaultModelLocator();
+ }
+
+ protected ModelReader newModelReader()
+ {
+ return new DefaultModelReader();
+ }
+
+ protected ProfileSelector newProfileSelector()
+ {
+ DefaultProfileSelector profileSelector = new DefaultProfileSelector();
+
+ for ( ProfileActivator activator : newProfileActivators() )
+ {
+ profileSelector.addProfileActivator( activator );
+ }
+
+ return profileSelector;
+ }
+
+ protected ProfileActivator[] newProfileActivators()
+ {
+ return new ProfileActivator[] { new JdkVersionProfileActivator(), new OperatingSystemProfileActivator(),
+ new PropertyProfileActivator(), new FileProfileActivator().setPathTranslator( newPathTranslator() ) };
+ }
+
+ protected UrlNormalizer newUrlNormalizer()
+ {
+ return new DefaultUrlNormalizer();
+ }
+
+ protected PathTranslator newPathTranslator()
+ {
+ return new DefaultPathTranslator();
+ }
+
+ protected ModelInterpolator newModelInterpolator()
+ {
+ UrlNormalizer normalizer = newUrlNormalizer();
+ PathTranslator pathTranslator = newPathTranslator();
+ return new StringSearchModelInterpolator().setPathTranslator( pathTranslator ).setUrlNormalizer( normalizer );
+ }
+
+ protected ModelValidator newModelValidator()
+ {
+ return new DefaultModelValidator();
+ }
+
+ protected ModelNormalizer newModelNormalizer()
+ {
+ return new DefaultModelNormalizer();
+ }
+
+ protected ModelPathTranslator newModelPathTranslator()
+ {
+ return new DefaultModelPathTranslator().setPathTranslator( newPathTranslator() );
+ }
+
+ protected ModelUrlNormalizer newModelUrlNormalizer()
+ {
+ return new DefaultModelUrlNormalizer().setUrlNormalizer( newUrlNormalizer() );
+ }
+
+ protected InheritanceAssembler newInheritanceAssembler()
+ {
+ return new DefaultInheritanceAssembler();
+ }
+
+ protected ProfileInjector newProfileInjector()
+ {
+ return new DefaultProfileInjector();
+ }
+
+ protected SuperPomProvider newSuperPomProvider()
+ {
+ return new DefaultSuperPomProvider().setModelProcessor( newModelProcessor() );
+ }
+
+ protected DependencyManagementImporter newDependencyManagementImporter()
+ {
+ return new DefaultDependencyManagementImporter();
+ }
+
+ protected DependencyManagementInjector newDependencyManagementInjector()
+ {
+ return new DefaultDependencyManagementInjector();
+ }
+
+ protected LifecycleBindingsInjector newLifecycleBindingsInjector()
+ {
+ return new StubLifecycleBindingsInjector();
+ }
+
+ protected PluginManagementInjector newPluginManagementInjector()
+ {
+ return new DefaultPluginManagementInjector();
+ }
+
+ protected PluginConfigurationExpander newPluginConfigurationExpander()
+ {
+ return new DefaultPluginConfigurationExpander();
+ }
+
+ protected ReportConfigurationExpander newReportConfigurationExpander()
+ {
+ return new DefaultReportConfigurationExpander();
+ }
+
+ protected ReportingConverter newReportingConverter()
+ {
+ return new DefaultReportingConverter();
+ }
+
+ /**
+ * Creates a new model builder instance.
+ *
+ * @return The new model builder instance, never {@code null}.
+ */
+ public DefaultModelBuilder newInstance()
+ {
+ DefaultModelBuilder modelBuilder = new DefaultModelBuilder();
+
+ modelBuilder.setModelProcessor( newModelProcessor() );
+ modelBuilder.setModelValidator( newModelValidator() );
+ modelBuilder.setModelNormalizer( newModelNormalizer() );
+ modelBuilder.setModelPathTranslator( newModelPathTranslator() );
+ modelBuilder.setModelUrlNormalizer( newModelUrlNormalizer() );
+ modelBuilder.setModelInterpolator( newModelInterpolator() );
+ modelBuilder.setInheritanceAssembler( newInheritanceAssembler() );
+ modelBuilder.setProfileInjector( newProfileInjector() );
+ modelBuilder.setProfileSelector( newProfileSelector() );
+ modelBuilder.setSuperPomProvider( newSuperPomProvider() );
+ modelBuilder.setDependencyManagementImporter( newDependencyManagementImporter() );
+ modelBuilder.setDependencyManagementInjector( newDependencyManagementInjector() );
+ modelBuilder.setLifecycleBindingsInjector( newLifecycleBindingsInjector() );
+ modelBuilder.setPluginManagementInjector( newPluginManagementInjector() );
+ modelBuilder.setPluginConfigurationExpander( newPluginConfigurationExpander() );
+ modelBuilder.setReportConfigurationExpander( newReportConfigurationExpander() );
+ modelBuilder.setReportingConverter( newReportingConverter() );
+
+ return modelBuilder;
+ }
+
+ private static class StubLifecycleBindingsInjector
+ implements LifecycleBindingsInjector
+ {
+
+ @Override
+ public void injectLifecycleBindings( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
+ {
+ }
+
+ }
+
+}