[
https://issues.apache.org/jira/browse/ARTEMIS-2310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16840374#comment-16840374
]
SL commented on ARTEMIS-2310:
-----------------------------
I think there is chicken/egg problem.
If the substitution happens on the raw text before parsing (like it was) it
will correctly substitude the variables used to build the paths to xinclude'd
files but it will not substitute in the sub-configurations. if the substitution
is done after parsing and consolidation of xincluded fragements, the variables
will be substituted on all elements but variables path for xincludes will never
be substituted, as it is supposed to be resolved and disappear during parsing.
> Variable substitution does not happen with xinclude'd sub files
> ---------------------------------------------------------------
>
> Key: ARTEMIS-2310
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2310
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.7.0
> Reporter: SL
> Assignee: Justin Bertram
> Priority: Major
> Fix For: 2.8.0
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> The variable substitution mechanism which set values from system properties
> only works for the root configuration document.
> when fragments are imported from xinclude, the placeholder stays untouched
> sample
> {code:xml|title=test.broker.xml}
> (...)
> <acceptors xmlns="urn:activemq:core">
> <acceptor name="in-vm">vm://1</acceptor>
> <acceptor
> name="netty-ssl">tcp://localhost:6161?protocols=CORE,OPENWIRE,AMQP;sslEnabled=true;needClientAuth=true;keyStorePath=localhost.jks;keyStorePassword=*******;trustStorePath=CA.jks;trustStorePassword=*********;needClientAuth=true;forceSSLParameters=true;enabledCipherSuites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384;enabledProtocols=${tls.protocols}</acceptor>
> </acceptors>
> (...)
> {code}
> produces
> {noformat}
> 15:57:42.487 DEBUG o.a.activemq.artemis.utils.XMLUtil - replacing
> ${tls.protocols} with TLSv1.3,TLSv1.2
> 15:57:42.965 DEBUG o.a.a.a.c.s.impl.ActiveMQServerImpl - Starting server
> ActiveMQServerImpl::
> {noformat}
> when replaced with
> {code:xml|title=test-broker.xml}
> <xi:include href="test-acceptors.xml"/>
> {code}
> {code:xml|title=test-acceptors.xml}
> <acceptors xmlns="urn:activemq:core">
> <acceptor name="in-vm">vm://1</acceptor>
> <acceptor
> name="netty-ssl">tcp://localhost:6161?protocols=CORE,OPENWIRE,AMQP;sslEnabled=true;needClientAuth=true;keyStorePath=localhost.jks;keyStorePassword=********;trustStorePath=CA.jks;trustStorePassword=*******;needClientAuth=true;forceSSLParameters=true;enabledCipherSuites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384;enabledProtocols=${tls.protocols}</acceptor>
> </acceptors>
> {code}
> produces
> {noformat}
> 15:59:44.953 ERROR ArtemisTest - Artemis failed to start
> java.lang.RuntimeException: Illegal character in query at index 1067:
> tcp://localhost:6161?protocols=CORE,OPENWIRE,AMQP&sslEnabled=true&needClientAuth=true&keyStorePath=localhost.jks&keyStorePassword=********&trustStorePath=CA.jks&trustStorePassword=********&needClientAuth=true&forceSSLParameters=true&enabledCipherSuites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384&enabledProtocols=${tls.protocols}
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)