[ 
https://issues.apache.org/jira/browse/ARTEMIS-2310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16826135#comment-16826135
 ] 

ASF subversion and git services commented on ARTEMIS-2310:
----------------------------------------------------------

Commit 73bdbad8b44b1da772e870168138f42256970379 in activemq-artemis's branch 
refs/heads/master from Justin Graham Bertram
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=73bdbad ]

ARTEMIS-2310 support system prop sub in xincludes

Historically the broker has read the XML configuration file as a String,
substituted system properties, and then parsed that String into an XML
document. However, this method won't substitute system properties in the
files which are imported via xinclude. In order to substitue system
properties in xincluded files the substitution needs to be performed
after the file is parsed into an XML document. This commit implements
that change and refactors the XMLUtil class a bit to eliminate redundant
code, obsolete comments, etc.


> 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
>            Priority: Major
>          Time Spent: 0.5h
>  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)

Reply via email to