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

Michael Kainzbauer updated FOP-3238:
------------------------------------
    Description: 
For me, this seems to be unclear in the documentation

{*}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 <base>, 
 
{{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 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.
 


> 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
>
>
> For me, this seems to be unclear in the documentation
> {*}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 <base>, 
>  
> {{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