[ 
https://issues.apache.org/jira/browse/FOP-3238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Kainzbauer updated FOP-3238:
------------------------------------
    Summary: baseURI given for FopFactoryBuilder is overridden <base> in 
fop.xconf  (was: baseURI given for FopFactoryBuilder is overridden <base> in 
fop.xconf, but only if URI in <base> is absolute)

> baseURI given for FopFactoryBuilder is overridden <base> in fop.xconf
> ---------------------------------------------------------------------
>
>                 Key: FOP-3238
>                 URL: https://issues.apache.org/jira/browse/FOP-3238
>             Project: FOP
>          Issue Type: Bug
>          Components: documentation
>    Affects Versions: 2.10
>            Reporter: Michael Kainzbauer
>            Priority: Minor
>         Attachments: InitFopFactory.java
>
>
> I am not sure if this is only a documentation issue or a bug.
> {*}Observed behavior{*}:
> When I create a FopFactoryBuilder like so:
> {{var baseURI = new URI("http://example.com";);}}
> {{var fopFactoryBuilder = new FopFactoryBuilder(baseURI);}}
>  
> it's baseURI is set to {{{}"http://example.com"{}}}, which works as expected.
>  
> When I further set a configuration to this builder, which has a relative 
> baseURI, 
>  
> {{var configWithRelativeBase = 
> configurationBuilder.build(apacheXConfWithRelativeBaseURI());}}
> {{fopFactoryBuilder.setConfiguration(configWithRelativeBase);}}
>  
> the baseURI changes to {{{}"http://example.com/"{}}}, as above, but with a 
> trailing /, so the base changes to the initial baseURI passed to the 
> constructor + the relative URI in <base>
>  
>  
> When I instead set a configuration to this builder, which has a absolute 
> baseURI, the baseURI changes to this value configured in <base></base>.
>  
> {*}Expected behavior{*}:
> The documentation should mention this behavior, so that it is clear the URI 
> specified in <base> will be resolved by the baseURI passed to the 
> constructor. So relative URIs are resolve by whatever URI is the combination 
> from the baseURI passed to the constructor and a relative URI in <base>
>  
> There is a footnote in the documentation: 
> [https://xmlgraphics.apache.org/fop/2.10/configuration.html#fn:1]
>  
> {quote}Relative URIs for those properties are evaluated relative to the base 
> URI of the configuration file. If the configuration is provided 
> programmatically, the base URI can be set with 
> {{FopFactory.setUserConfigBaseURI}} ; default is the current working directory
> {quote}
>  
> However, there is no {{setUserConfigBaseURI}}  in class {{{}FopFactory{}}}, 
> which seems to be an error in the documentation.
>  
> Also, either the behavior of overwriting the baseURI passed to the 
> constructor by the <base> value from fop.xconf is inconsistent or not 
> documented correctly.
>  
> Please find a minimum example for reproducing this behavior attached to this 
> issue.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to