[ 
https://issues.apache.org/jira/browse/MNG-7475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17537459#comment-17537459
 ] 

Andreas Loew edited comment on MNG-7475 at 5/16/22 10:39 AM:
-------------------------------------------------------------

[~cstamas] sorry but what you propose ist simply not feasible for the remaining 
lifetime of our (admittedly, "legacy") Java EE application.

Basically, the role of Arquillian is to be the (only feasible) vehicle to 
execute such maven-failsafe-plugin "integration" type tests that require Java 
EE container infrastructure to run: access to JPA Entity Manager, transactional 
EJBs, JMS Message Endpoints etc.) within a managed (or even embedded) Java EE 
container such as Wildfly (or the commercial JBoss EAP).

{color:#de350b}*There simply is no viable alterative for us to replace 
Arquillian by something else as long as the Java EE "legacy" application still 
exists.*{color}

As stated before, I am with you and also support {*}closing this 
maven-model-builder related ticket with "won't fix"{*}.

What I would like to receive some kind help from you before we do so is some 
educated advice on how we can change our own (inevitable) fork of Arquillian 
(or rather at least its ShrinkWrap component), to be able to {*}make Sisu 
annotation processing and Sisu component injection at runtime part of the 
ShrinkWrap process{*}.

Do you e.g. have any other typical use cases of the surefire or failsafe plugin 
where the test driver code additionally creates a Sisu environment such that 
the FileProfileActivator from maven-model-builder could be created as an 
annotated/injected component from ShrinkWrap-fork code?

I hope I succeeded in making our dilemma clear enough: I am searching for a way 
to make the whole Arquillian, e.g. Arquillian Shrink Wrap, being able to 
utilize Sisu as an Maven annotated component injection provider, and am looking 
for a code examples what must be done to achieve this...

Thanks again & best regards!


was (Author: JIRAUSER289351):
[~cstamas] sorry but what you propose ist simply not feasible for the remaining 
lifetime of our (admittedly, "legacy") Java EE application.

Basically, the role of Arquillian is to be the (only feasible) vehicle to 
execute such maven-failsafe-plugin "integration" type tests that require Java 
EE container infrastructure to run: access to JPA Entity Manager, transactional 
EJBs, JMS Message Endpoints etc.) within a managed (or even embedded) Java EE 
container such as Wildfly (or the commercial JBoss EAP).

{color:#de350b}*There simply is no viable alterative for us to replace 
Arquillian by something else als long as the Java EE "legacy" application still 
exists.*{color}

As stated before, I am with you and also support {*}closing this 
maven-model-builder related ticket with "won't fix"{*}.

What I would like to receive some kind help from you before we do so is some 
educated advice on how we can change our own (inevitable) fork of Arquillian 
(or rather at least its ShrinkWrap component), to be able to {*}make Sisu 
annotation processing and Sisu component injection at runtime part of the 
ShrinkWrap process{*}.

Do you e.g. have any other typical use cases of the surefire or failsafe plugin 
where the test driver code additionally creates a Sisu environment such that 
the FileProfileActivator from maven-model-builder could be created as an 
annotated/injected component from ShrinkWrap-fork code?

I hope I succeeded in making our dilemma clear enough: I am searching for a way 
to make the whole Arquillian, e.g. Arquillian Shrink Wrap, being able to 
utilize Sisu as an Maven annotated component injection provider, and am looking 
for a code examples what must be done to achieve this...

Thanks again & best regards!

> [REGRESSION] ModelBuilder API Change breaks ShrinkWrap: NoSuchMethodError in 
> FileProfileActivator.setPathTranslator()
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-7475
>                 URL: https://issues.apache.org/jira/browse/MNG-7475
>             Project: Maven
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 3.8.5
>         Environment: any & deterministically reproducible / proven by public 
> API docs
>            Reporter: Andreas Loew
>            Assignee: Tamás Cservenák
>            Priority: Major
>             Fix For: 3.8.6
>
>         Attachments: arquillian-reproducer.zip
>
>
> Maven 3.8.5 breaks [Arquillian 
> ShrinkWrap|https://arquillian.org/modules/shrinkwrap-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:
> {code:java}
> [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)
>  {code}
> It seems that method
> {code:java}
> public FileProfileActivator setPathTranslator( PathTranslator pathTranslator 
> ) {code}
> as well as the class of its argument - has been refactored/renamed to
> {code:java}
> public FileProfileActivator setProfileActivationFilePathInterpolator( 
> ProfileActivationFilePathInterpolator profileActivationFilePathInterpolator ) 
> {code}
> 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! :)
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to