Class ModelBuilderThreadSafetyWorkaround


  • @Named
    public class ModelBuilderThreadSafetyWorkaround
    extends java.lang.Object
    Works around thread safety issues when modifying the global singleton DefaultModelBuilder with custom ProfileInjector and ProfileSelector. Instead of modifying the global DefaultModelBuilder, this class creates a new DefaultModelBuilder and equips it with the currently active components like ModelProcessor, ModelValidator etc. which might have been modified/provided by other Maven extensions.
    Since:
    1.2.3
    • Field Detail

      • modelProcessor

        @Inject
        private org.apache.maven.model.building.ModelProcessor modelProcessor
      • modelValidator

        @Inject
        private org.apache.maven.model.validation.ModelValidator modelValidator
      • modelNormalizer

        @Inject
        private org.apache.maven.model.normalization.ModelNormalizer modelNormalizer
      • modelInterpolator

        @Inject
        private org.apache.maven.model.interpolation.ModelInterpolator modelInterpolator
      • modelPathTranslator

        @Inject
        private org.apache.maven.model.path.ModelPathTranslator modelPathTranslator
      • modelUrlNormalizer

        @Inject
        private org.apache.maven.model.path.ModelUrlNormalizer modelUrlNormalizer
      • superPomProvider

        @Inject
        private org.apache.maven.model.superpom.SuperPomProvider superPomProvider
      • pluginManagementInjector

        @Inject
        private org.apache.maven.model.management.PluginManagementInjector pluginManagementInjector
      • dependencyManagementInjector

        @Inject
        private org.apache.maven.model.management.DependencyManagementInjector dependencyManagementInjector
      • dependencyManagementImporter

        @Inject
        private org.apache.maven.model.composition.DependencyManagementImporter dependencyManagementImporter
      • lifecycleBindingsInjector

        @Inject
        @Nullable
        private org.apache.maven.model.plugin.LifecycleBindingsInjector lifecycleBindingsInjector
      • pluginConfigurationExpander

        @Inject
        private org.apache.maven.model.plugin.PluginConfigurationExpander pluginConfigurationExpander
      • reportConfigurationExpander

        @Inject
        private org.apache.maven.model.plugin.ReportConfigurationExpander reportConfigurationExpander
      • reportingConverter

        @Inject
        private org.apache.maven.model.plugin.ReportingConverter reportingConverter
    • Constructor Detail

      • ModelBuilderThreadSafetyWorkaround

        public ModelBuilderThreadSafetyWorkaround()
    • Method Detail

      • build

        public org.apache.maven.model.building.ModelBuildingResult build​(org.apache.maven.model.building.ModelBuildingRequest buildingRequest,
                                                                         org.apache.maven.model.profile.ProfileInjector customInjector,
                                                                         org.apache.maven.model.profile.ProfileSelector customSelector)
                                                                  throws org.apache.maven.model.building.ModelBuildingException
        Throws:
        org.apache.maven.model.building.ModelBuildingException