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

SL updated ARTEMIS-2310:
------------------------
    Description: 
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}

  was:
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=localhostjks;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}


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