Thanks Tamas,

I am using Maven 3.9.6 and building my extension with java 11
The project I am using to test the extension is built with Maven 3.9.6 and
java 11 and I can tell the extension is loaded because it also contains an
EventSpy that logs some stuff.
This is the code for my custom ProjectDepedencyResolver but it is not
loaded. What am I doing wrong?

import org.apache.maven.project.*;
import org.codehaus.plexus.component.annotations.Component;
import org.eclipse.sisu.Priority;

import javax.inject.Inject;
import javax.inject.Named;

@Named
@Component(role = ProjectDependenciesResolver.class)
@Priority(999)
public class CustomProjectDependencyResolver extends
DefaultProjectDependenciesResolver implements ProjectDependenciesResolver {

    @Inject
    public CustomProjectDependencyResolver() {
    }

    @Override
    public DependencyResolutionResult resolve(DependencyResolutionRequest
request) throws DependencyResolutionException {
        throw new RuntimeException(); // just crashing for now to check if
this class is properly injected
    }
}

On Wed, 1 May 2024 at 08:54, Tamás Cservenák <ta...@cservenak.net> wrote:

> Howdy,
>
> IF you target latest Maven 3.9.x (uses Sisu 0.9.0.M2), then:
> - use max Java 17 bytecode
> - use JSR330 instead of plexus annotations
> - use org.eclipse.sisu.Priority annotation to override a component
>
> IF you target Maven 3.8.x or so, similar, but use Java 11 bytecode max
>
> Thanks
> T
>
>
> On Wed, May 1, 2024 at 12:42 AM Francois-Xavier Bonnet <
> fx.bon...@gmail.com>
> wrote:
>
> > Hey there,
> >
> > I am writing an extension that needs to replace the
> > default ProjectDependenciesResolver with a custom one.
> > According to the documentation I think I should be able to do it: "The
> > mechanism allows extensions to either replace default Sisu components
> with
> > custom ones or add new components which are used at run time."
> > But I could not figure out how to do it or find any example.
> >
> > I have tried to create a new class like this:
> >
> > @Component(role = ProjectDependenciesResolver.class)
> > public class CustomProjectDependencyResolver implements
> > ProjectDependenciesResolver {
> > ...
> > }
> >
> > This did not work.
> >
>

Reply via email to