You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Karl Heinz Marbaise <kh...@gmx.de> on 2015/04/19 14:14:05 UTC

Re: Maven Compat + Maven 3.0 Plugin Part 1: Mercury

Hi,

I have taken a look into maven-invoker and maven-install plugin and 
found this thread and the maven-shared component maven-artifact-transer...

It sounds like the above shared component seemed to be the only 
reasonably way to go ?

Is my assumption correct? Or do we have other paths which we could try  ?

Kind regards
Karl Heinz Marbaise

On 3/7/15 4:04 PM, Robert Scholte wrote:
> Hi,
>
> when we start requiring Maven 3.0 for our plugins, IMO they should all
> work *without* depending on Maven Compat.
> I've tried to do this for the maven-invoker-plugin and hit the first issue.
> They all have to do with artifacts: ArtifactInstaller,
> ArtifactRepository, ArtifactRepositoryFactory, ArtifactResolver.
> The original code doesn't describe what to do, but after some digging I
> found this:
>
> https://cwiki.apache.org/confluence/display/MAVEN/Compatibility+with+Maven+2.x
>
>
> bq.
>      Maven Artifact
>
>      Maven Artifact will be entirely extricated from the core of Maven
> 3.x and replaced with Mercury, but we will make a best effort to
>       ensure the compatibility of plugins that use Maven Artifact. There
> are, however, components and classes that are just so broken or conflict
>       with standard ways of doing resolution and conflict reduction that
> we can't support them.
>
>      Supported Compatibility
>      •org.apache.maven.artifact.deployer.ArtifactDeployer
>      •org.apache.maven.artifact.factory.ArtifactFactory
>      •org.apache.maven.artifact.handler.ArtifactHandler
>      •org.apache.maven.artifact.installer.ArtifactInstaller
>      •org.apache.maven.artifact.manager.WagonManager (1)
>      •org.apache.maven.artifact.repository.ArtifactRepository
>      •org.apache.maven.artifact.repository.ArtifactRepositoryPolicy
>      •org.apache.maven.artifact.repository.ArtifactRepositoryFactory
>      •org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout
>      •org.apache.maven.artifact.resolver.ArtifactResolver
>      •org.apache.maven.artifact.resolver.filter.ArtifactFilter
>      •org.apache.maven.artifact.resolver.filter.Artifact
>
>      (1) In r746285 various methods have been removed from the
> WagonManager which breaks the maven-project-info-reports-plugin, the
>       maven-site-plugin and the maven-stage-plugin, e.g. due to a
> linkage error on getAuthentaticationInfo().
>
>      Unsupported Compatibility
>      •org.apache.maven.artifact.metadata.ArtifactMetadataSource
>      •org.apache.maven.artifact.metadata.ResolutionGroup
>      •org.apache.maven.artifact.repository.metadata.*
>      •org.apache.maven.artifact.resolver.ResolutionNode
>      •org.apache.maven.artifact.resolver.ResolutionListener
>      •org.apache.maven.artifact.resolver.metadata.*
>      •org.apache.maven.artifact.resolver.transform.*
>      •org.apache.maven.artifact.resolver.versioning.*
>
>
> Mercury? I guess some of it is now part of Aether, but I think we should
> keep the abstraction layer (remember the issues we got Aether moved from
> Sonatype to Eclipse and the amount of workarounds).
> What to do? Move them back, make new APIs for Maven4, like
> ArtifactTransferor?
>
> My first conclusion is that we can't make these plugins Maven3
> compatible without the maven-compat, unless we embed the classes in the
> plugin.
>
> thanks,
> Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Maven Compat + Maven 3.0 Plugin Part 1: Mercury

Posted by Robert Scholte <rf...@apache.org>.
Hi all,

the Installer parts of the maven-artifact-transfer looks complete for the  
maven-install-plugin. I've tested it with every version between 3.0 -  
3.3.3 and now they all pass.
Next steps would be to verify this implementation with the  
maven-invoker-plugin as well.
For the Deployer part I probably need to do the same type of fixes done  
for the Installer.
When you've traced my commits you probably have seen that I had to do some  
special tricks (I don't consider it dirty hacks) to get it all working  
again. Most of them are documented either in pom.xml or in the code. Maybe  
I'll add a page for it as well to have all these tricks explained at one  
place.
Don't hesitate to review the code, this might be an important bridge for  
plugins to work with both Aether implementations and to get rid of the  
deprecated code in maven-compat.

Robert


Op Sun, 19 Apr 2015 14:25:58 +0200 schreef Robert Scholte  
<rf...@apache.org>:

> Hi Karl Heinz,
>
> if we're going to say that plugins are 3.0 compatible, this is the only  
> proper way.
> You can't fix it in the older Maven3 versions anymore, they've already  
> been released.
> So you must fix it in the plugin. This kind of logic is used by multiple  
> plugins, so a shared component the best solution.
>
> I should take a look at the latest status. I've come pretty close to a  
> first release, though still a few hurdles to take.
>
> thanks,
> Robert
>
>
> Op Sun, 19 Apr 2015 14:14:05 +0200 schreef Karl Heinz Marbaise  
> <kh...@gmx.de>:
>
>> Hi,
>>
>> I have taken a look into maven-invoker and maven-install plugin and  
>> found this thread and the maven-shared component  
>> maven-artifact-transer...
>>
>> It sounds like the above shared component seemed to be the only  
>> reasonably way to go ?
>>
>> Is my assumption correct? Or do we have other paths which we could try   
>> ?
>>
>> Kind regards
>> Karl Heinz Marbaise
>>
>> On 3/7/15 4:04 PM, Robert Scholte wrote:
>>> Hi,
>>>
>>> when we start requiring Maven 3.0 for our plugins, IMO they should all
>>> work *without* depending on Maven Compat.
>>> I've tried to do this for the maven-invoker-plugin and hit the first  
>>> issue.
>>> They all have to do with artifacts: ArtifactInstaller,
>>> ArtifactRepository, ArtifactRepositoryFactory, ArtifactResolver.
>>> The original code doesn't describe what to do, but after some digging I
>>> found this:
>>>
>>> https://cwiki.apache.org/confluence/display/MAVEN/Compatibility+with+Maven+2.x
>>>
>>>
>>> bq.
>>>      Maven Artifact
>>>
>>>      Maven Artifact will be entirely extricated from the core of Maven
>>> 3.x and replaced with Mercury, but we will make a best effort to
>>>       ensure the compatibility of plugins that use Maven Artifact.  
>>> There
>>> are, however, components and classes that are just so broken or  
>>> conflict
>>>       with standard ways of doing resolution and conflict reduction  
>>> that
>>> we can't support them.
>>>
>>>      Supported Compatibility
>>>      •org.apache.maven.artifact.deployer.ArtifactDeployer
>>>      •org.apache.maven.artifact.factory.ArtifactFactory
>>>      •org.apache.maven.artifact.handler.ArtifactHandler
>>>      •org.apache.maven.artifact.installer.ArtifactInstaller
>>>      •org.apache.maven.artifact.manager.WagonManager (1)
>>>      •org.apache.maven.artifact.repository.ArtifactRepository
>>>      •org.apache.maven.artifact.repository.ArtifactRepositoryPolicy
>>>      •org.apache.maven.artifact.repository.ArtifactRepositoryFactory
>>>      •org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout
>>>      •org.apache.maven.artifact.resolver.ArtifactResolver
>>>      •org.apache.maven.artifact.resolver.filter.ArtifactFilter
>>>      •org.apache.maven.artifact.resolver.filter.Artifact
>>>
>>>      (1) In r746285 various methods have been removed from the
>>> WagonManager which breaks the maven-project-info-reports-plugin, the
>>>       maven-site-plugin and the maven-stage-plugin, e.g. due to a
>>> linkage error on getAuthentaticationInfo().
>>>
>>>      Unsupported Compatibility
>>>      •org.apache.maven.artifact.metadata.ArtifactMetadataSource
>>>      •org.apache.maven.artifact.metadata.ResolutionGroup
>>>      •org.apache.maven.artifact.repository.metadata.*
>>>      •org.apache.maven.artifact.resolver.ResolutionNode
>>>      •org.apache.maven.artifact.resolver.ResolutionListener
>>>      •org.apache.maven.artifact.resolver.metadata.*
>>>      •org.apache.maven.artifact.resolver.transform.*
>>>      •org.apache.maven.artifact.resolver.versioning.*
>>>
>>>
>>> Mercury? I guess some of it is now part of Aether, but I think we  
>>> should
>>> keep the abstraction layer (remember the issues we got Aether moved  
>>> from
>>> Sonatype to Eclipse and the amount of workarounds).
>>> What to do? Move them back, make new APIs for Maven4, like
>>> ArtifactTransferor?
>>>
>>> My first conclusion is that we can't make these plugins Maven3
>>> compatible without the maven-compat, unless we embed the classes in the
>>> plugin.
>>>
>>> thanks,
>>> Robert
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Maven Compat + Maven 3.0 Plugin Part 1: Mercury

Posted by Robert Scholte <rf...@apache.org>.
Hi Karl Heinz,

if we're going to say that plugins are 3.0 compatible, this is the only  
proper way.
You can't fix it in the older Maven3 versions anymore, they've already  
been released.
So you must fix it in the plugin. This kind of logic is used by multiple  
plugins, so a shared component the best solution.

I should take a look at the latest status. I've come pretty close to a  
first release, though still a few hurdles to take.

thanks,
Robert


Op Sun, 19 Apr 2015 14:14:05 +0200 schreef Karl Heinz Marbaise  
<kh...@gmx.de>:

> Hi,
>
> I have taken a look into maven-invoker and maven-install plugin and  
> found this thread and the maven-shared component  
> maven-artifact-transer...
>
> It sounds like the above shared component seemed to be the only  
> reasonably way to go ?
>
> Is my assumption correct? Or do we have other paths which we could try  ?
>
> Kind regards
> Karl Heinz Marbaise
>
> On 3/7/15 4:04 PM, Robert Scholte wrote:
>> Hi,
>>
>> when we start requiring Maven 3.0 for our plugins, IMO they should all
>> work *without* depending on Maven Compat.
>> I've tried to do this for the maven-invoker-plugin and hit the first  
>> issue.
>> They all have to do with artifacts: ArtifactInstaller,
>> ArtifactRepository, ArtifactRepositoryFactory, ArtifactResolver.
>> The original code doesn't describe what to do, but after some digging I
>> found this:
>>
>> https://cwiki.apache.org/confluence/display/MAVEN/Compatibility+with+Maven+2.x
>>
>>
>> bq.
>>      Maven Artifact
>>
>>      Maven Artifact will be entirely extricated from the core of Maven
>> 3.x and replaced with Mercury, but we will make a best effort to
>>       ensure the compatibility of plugins that use Maven Artifact. There
>> are, however, components and classes that are just so broken or conflict
>>       with standard ways of doing resolution and conflict reduction that
>> we can't support them.
>>
>>      Supported Compatibility
>>      •org.apache.maven.artifact.deployer.ArtifactDeployer
>>      •org.apache.maven.artifact.factory.ArtifactFactory
>>      •org.apache.maven.artifact.handler.ArtifactHandler
>>      •org.apache.maven.artifact.installer.ArtifactInstaller
>>      •org.apache.maven.artifact.manager.WagonManager (1)
>>      •org.apache.maven.artifact.repository.ArtifactRepository
>>      •org.apache.maven.artifact.repository.ArtifactRepositoryPolicy
>>      •org.apache.maven.artifact.repository.ArtifactRepositoryFactory
>>      •org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout
>>      •org.apache.maven.artifact.resolver.ArtifactResolver
>>      •org.apache.maven.artifact.resolver.filter.ArtifactFilter
>>      •org.apache.maven.artifact.resolver.filter.Artifact
>>
>>      (1) In r746285 various methods have been removed from the
>> WagonManager which breaks the maven-project-info-reports-plugin, the
>>       maven-site-plugin and the maven-stage-plugin, e.g. due to a
>> linkage error on getAuthentaticationInfo().
>>
>>      Unsupported Compatibility
>>      •org.apache.maven.artifact.metadata.ArtifactMetadataSource
>>      •org.apache.maven.artifact.metadata.ResolutionGroup
>>      •org.apache.maven.artifact.repository.metadata.*
>>      •org.apache.maven.artifact.resolver.ResolutionNode
>>      •org.apache.maven.artifact.resolver.ResolutionListener
>>      •org.apache.maven.artifact.resolver.metadata.*
>>      •org.apache.maven.artifact.resolver.transform.*
>>      •org.apache.maven.artifact.resolver.versioning.*
>>
>>
>> Mercury? I guess some of it is now part of Aether, but I think we should
>> keep the abstraction layer (remember the issues we got Aether moved from
>> Sonatype to Eclipse and the amount of workarounds).
>> What to do? Move them back, make new APIs for Maven4, like
>> ArtifactTransferor?
>>
>> My first conclusion is that we can't make these plugins Maven3
>> compatible without the maven-compat, unless we embed the classes in the
>> plugin.
>>
>> thanks,
>> Robert
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org