[
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)