[
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:35 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, 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-biolder could be created as an
annotated/incected 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 Shraink 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, 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 on 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-biolder could be created as an
annotated/incected 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 Shraink 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)