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

Michael Kainzbauer updated FOP-3238:
------------------------------------
    Description: 
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.
 

  was:
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 remains {{{}"http://example.com"{}}}, as above.
 
 
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 baseURI for the factoryBuilder should change/not change, regardless if the 
baseURI from <base> in fop.xconf is absolute, or not. At least, the 
documentation should mention this behavior.
 
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.
 


> baseURI given for FopFactoryBuilder is overridden <base> in fop.xconf, but 
> only if URI in <base> is absolute
> ------------------------------------------------------------------------------------------------------------
>
>                 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