Class ModelBuilderThreadSafetyWorkaround

java.lang.Object
org.codehaus.mojo.flatten.ModelBuilderThreadSafetyWorkaround

@Named public class ModelBuilderThreadSafetyWorkaround extends 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 Details

    • 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
    • inheritanceAssembler

      @Inject private DirectDependenciesInheritanceAssembler inheritanceAssembler
    • 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 Details

    • ModelBuilderThreadSafetyWorkaround

      public ModelBuilderThreadSafetyWorkaround()
  • Method Details

    • 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