Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-7475

[REGRESSION] ModelBuilder API Change breaks ShrinkWrap: NoSuchMethodError in FileProfileActivator.setPathTranslator()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 3.8.5
    • None
    • General
    • None
    • any & deterministically reproducible / proven by public API docs

    Description

      Maven 3.8.5 breaks Arquillian ShrinkWrap (and thereby, most if not all use of Red Hat/JBoss Arquillian) by changing the published public API of class org.apache.maven.model.profile.activation.FileProfileActivator:

      [ERROR] com.dbenergie.ndm.bnb.business.NutzungsinformationenCreateOrtungsinfoTest  Time elapsed: 0.127 s  <<< ERROR!
      java.lang.NoSuchMethodError: 'org.apache.maven.model.profile.activation.FileProfileActivator org.apache.maven.model.profile.activation.FileProfileActivator.setPathTranslator(org.apache.maven.model.path.PathTranslator)'
              at org.jboss.shrinkwrap.resolver.impl.maven.internal.SettingsXmlProfileSelector.<init>(SettingsXmlProfileSelector.java:50)
              at org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.getRemoteRepositories(MavenWorkingSessionImpl.java:327)
              at org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.resolveDependencies(MavenWorkingSessionImpl.java:199)
              at org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.using(MavenStrategyStageBaseImpl.java:71)
              at org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.withTransitivity(MavenStrategyStageBaseImpl.java:53)
              at org.jboss.shrinkwrap.resolver.impl.maven.MavenStrategyStageBaseImpl.withTransitivity(MavenStrategyStageBaseImpl.java:40)
              at org.arquillian.container.chameleon.controller.Resolver.resolve(Resolver.java:45)
              at org.arquillian.container.chameleon.ContainerLoader.load(ContainerLoader.java:36)
              at org.arquillian.container.chameleon.ChameleonConfiguration.getConfiguredAdapter(ChameleonConfiguration.java:116)
              at org.arquillian.container.chameleon.ChameleonContainer.init(ChameleonContainer.java:81)
              at org.arquillian.container.chameleon.InitiateContainer.initiateChameleon(InitiateContainer.java:69)
              at org.arquillian.container.chameleon.InitiateContainer.setup(InitiateContainer.java:38) 

      It seems that method

      public FileProfileActivator setPathTranslator( PathTranslator pathTranslator ) 

      as well as the class of its argument - has been refactored/renamed to

      public FileProfileActivator setProfileActivationFilePathInterpolator( ProfileActivationFilePathInterpolator profileActivationFilePathInterpolator ) 

      While the new name might be regarded as more stylish and/or even more appropriate, unfortunately, this results in an incompatible change of a publicly documented API:

      https://maven.apache.org/ref/3.8.4/maven-model-builder/apidocs/org/apache/maven/model/profile/activation/FileProfileActivator.html

      https://maven.apache.org/ref/3.8.5/maven-model-builder/apidocs/org/apache/maven/model/profile/activation/FileProfileActivator.html

      Therefore, please revert this change - it clearly breaks some valuable dependent software (which unfortunately is no longer maintained by RedHat)...

      Many thanks in advance!

       

      Attachments

        1. arquillian-reproducer.zip
          8 kB
          Andreas Loew

        Issue Links

          Activity

            People

              cstamas Tamas Cservenak
              aloew Andreas Loew
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: