[
https://issues.apache.org/jira/browse/QPID-7486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15628974#comment-15628974
]
Alex Rudyy commented on QPID-7486:
----------------------------------
Rob,
A commit under revision [ https://svn.apache.org/r1767592 ] introduced a
backward incompatibility when initial configuration is overridden in
system.properties and set there as a relative path.
With code before BrokerOptions#getInitialConfigurationLocation() was converting
that path into URL from classpath:
{code}
public String getInitialConfigurationLocation()
{
if(_initialConfigurationLocation == null)
{
String overriddenDefaultConfigurationLocation =
System.getProperty("qpid.initialConfigurationLocation");
if (overriddenDefaultConfigurationLocation != null)
{
URL resource =
BrokerOptions.class.getClassLoader().getResource(overriddenDefaultConfigurationLocation);
if (resource == null)
{
throw new IllegalArgumentException(String.format("Initial
configuration '%s' is not found",
overriddenDefaultConfigurationLocation));
}
return resource.toExternalForm();
}
return DEFAULT_INITIAL_CONFIG_LOCATION;
}
return _initialConfigurationLocation;
}
{code}
As result, initial configuration was passed into Main#copyInitialConfigFile as
jar url containing the exact location of the file. With current approach the
conversion of the overridden path into url does not happen and Broker fails to
locate the initial configuration.
Perhaps, AbstractSystemConfig can be changed to convert
overriddenDefaultConfigurationLocation into URL in
AbstractSystemConfig#updateAttributes similar to logic in
BrokerOptions#getInitialConfigurationLocation()
> [Java Broker] Refactor broker startup code, remove BrokerOptions
> ----------------------------------------------------------------
>
> Key: QPID-7486
> URL: https://issues.apache.org/jira/browse/QPID-7486
> Project: Qpid
> Issue Type: Improvement
> Components: Java Broker
> Reporter: Rob Godfrey
> Assignee: Rob Godfrey
> Fix For: qpid-java-6.2
>
>
> The code relating to the initial construction of the broker has evolved over
> time leaving functionality spread across a number of different classes with
> no clear division of responsibilities.
> Refactor so that Main in the broker module has responsibility for parsing of
> command line arguments and conversion into SystemConfig attributes, as well
> as providing the hooks into the desired logging provider.
> SystemLauncher (renamed from Broker) provides a thin layer of state
> management (shutdown/startup) on top of the SystemConfig configured object.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]