Верблюд: использование заполнителей свойств для логического атрибута в конфигурации конечной точки CXF

Мне нравится использовать заполнитель свойства для логического атрибута в моем определении конечной точки CXF. Я прочитал документ о префиксе заполнителя в http://camel.apache.org/using-propertyplaceholder.html, но ik не может понять, как применить их в моей конфигурации конечной точки. Строковые заполнители работают нормально. В приведенном ниже примере я использую логический атрибут ${ws-logging}, и XML не проходит проверку. Как я могу использовать заполнитель свойства для логического атрибута в конфигурации конечной точки CXF?

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:prop="http://camel.apache.org/schema/placeholder"
   xmlns:camel-cxf="http://camel.apache.org/schema/blueprint/cxf"
   xsi:schemaLocation="
   http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
   http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">

  <property-placeholder persistent-id="test.config" id="test.config.placeholder" xmlns="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0">
    <default-properties>
        <property name="ws-logging" value="true"/>
    </default-properties>
  </property-placeholder>

  <camel-cxf:cxfEndpoint id="update"
    address="http://someaddress"
    endpointName="ssp:someendpoint"
    serviceName="ssp:someservice"
    wsdlURL="http://someaddress/wsdl?targetURI=sometargeturi"
    xmlns:ssp="somenamespace"
    loggingFeatureEnabled="${ws-logging}">
    <camel-cxf:properties>
        <entry key="dataFormat" value="PAYLOAD"/>
    </camel-cxf:properties>
  </camel-cxf:cxfEndpoint>

  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route id="timerToLog">
      <from uri="timer:foo?period=5000"/>
      <to uri="mock:result"/>
    </route>
  </camelContext>
</blueprint>

person Ewout    schedule 20.10.2015    source источник


Ответы (1)


Я полагаю, что вам не хватает ссылки на схему и пространства имен: blueprint-cm. Попробуйте добавить его, как показано в примере ниже.

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel-cxf="http://camel.apache.org/schema/cxf"
       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
       xsi:schemaLocation="http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
  http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.0.0.xsd
   http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
   http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">

    <cm:property-placeholder persistent-id="com.example">
        <cm:default-properties>
            <property name="ws-logging" value="true"/>
        </cm:default-properties>
    </cm:property-placeholder>

</blueprint>
person fiw    schedule 20.10.2015
comment
Попробовал ваше решение с отрицательным результатом. Похоже, что свойства логического типа принимают только настоящие логические значения и не содержат заполнителей, если они определены вне верблюжьего контекста. Таким образом, принимаются только значения true, false, 0 или 1. - person Ewout; 11.11.2015