maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Abel Salgado Romero (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MSITE-849) Unable to inject MavenProject when using `mvn site:run`
Date Sun, 18 Aug 2019 14:24:00 GMT

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

Abel Salgado Romero commented on MSITE-849:
-------------------------------------------

As a note to self. Directly injecting MavenProject I could narrow it to {{org.apache.maven.doxia.parser.manager.DefaultParserManager::getParser(
String id)}}.
This holds a set of available Parsers, in this case the "asciidoc" parser is not initialized
(null in the internal map), so when trying retrieve it Guice kicks in and initializes it,
failing cause it cannot find the MavenProject in the context.

> Unable to inject MavenProject when using `mvn site:run`
> -------------------------------------------------------
>
>                 Key: MSITE-849
>                 URL: https://issues.apache.org/jira/browse/MSITE-849
>             Project: Maven Site Plugin
>          Issue Type: New Feature
>    Affects Versions: 3.7.1, 3.8.2
>            Reporter: Abel Salgado Romero
>            Assignee: Michael Osipov
>            Priority: Major
>
> In https://github.com/asciidoctor/asciidoctor-maven-plugin we inject a MavenProject to
obtain addition configurations from the pom.xml (https://github.com/asciidoctor/asciidoctor-maven-plugin/blob/a4d86a949643ab68c124fd4c1b9b936412637d93/src/main/java/org/asciidoctor/maven/site/AsciidoctorDoxiaParser.java#L54).
> This works fine with {{site:site}}, but when using {{site:run}} and accessing one of
the Asciidoc generated pages we get the error below.
> I saw that:
> * The error occurs when trying to retrieve the instance of the MavenProject.
> * Behavior is the same if I directly inject the MavenProject instead of using a provider.
That is, {{site:site}} works, {{site:run}} fails because it cannot find the instance.
> {code:java}
> HTTP ERROR 500
> Problem accessing /hello.html. Reason:
>     Server Error
> Caused by:
> com.google.inject.ProvisionException: Unable to provision, see the following errors:
> 1) Error in custom provider, com.google.inject.OutOfScopeException: Cannot access Key[type=org.apache.maven.project.MavenProject,
annotation=[none]] outside of a scoping block
>   at org.apache.maven.execution.scope.internal.MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:55)
(via modules: org.eclipse.sisu.wire.WireModule -> org.apache.maven.execution.scope.internal.MojoExecutionScopeModule)
>   while locating org.apache.maven.project.MavenProject
> 1 error
> 	at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:226)
> 	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1053)
> 	at org.asciidoctor.maven.site.AsciidoctorDoxiaParser.parse(AsciidoctorDoxiaParser.java:78)
> 	at org.apache.maven.doxia.DefaultDoxia.parse(DefaultDoxia.java:65)
> {code}
> * How to reproduce:
> # clone https://github.com/asciidoctor/asciidoctor-maven-examples
> # cd asciidoc-maven-site-example
> # mvn site:run
> # Access {{http://localhost:8080/hello.html}}
> * Env:
> {code}
> $ mvn -v
> Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T21:00:29+02:00)
> Maven home: /home/----/.sdkman/candidates/maven/current
> Java version: 1.8.0_222, vendor: AdoptOpenJDK, runtime: /home/-----/.sdkman/candidates/java/8.0.222.hs-adpt/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "5.1.21-1-manjaro", arch: "amd64", family: "unix
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Mime
View raw message