Как Мул обрабатывает конфигурацию XML, которая не соответствует его схеме XML? - PullRequest
2 голосов
/ 07 марта 2012

Мне поручили работать на устаревшей системе, использующей Mule 2, и я обнаружил некоторые причуды в некоторых старых конфигурациях.Разработчики, которые изначально написали документацию, сменили работу, поэтому никто не смел ничего менять с тех пор.

<service name="taskCompleted">
        <inbound>
            <jms:inbound-endpoint topic="namespace.transporttask.completed">
                <jms:jmsmessage-to-object-transformer />

                <!-- This section does not comply with Mule's XML schema 
                     (Element message-properties-transformer is not allowed here) -->
                <message-properties-transformer>
                    <add-message-property key="MULE_ENCODING" value="windows-1252" />
                </message-properties-transformer>
            </jms:inbound-endpoint>
        </inbound>
        <bridge-component />
        <outbound>
            ...
        </outbound>
    </service>

Это только один из примеров, которые я нашел, и я предполагаю, что Мул просто игнорирует конфигурацию, подобную этой, и что ее безопасно удалить, поскольку она, вероятно, ничего не делает.Это предположение верно?

Ответы [ 2 ]

3 голосов
/ 07 марта 2012

Мул строго проверяет конфигурацию, которую он загружает: если элементы смещены или вообще не разрешены, Мул не будет загружать конфигурацию и откажется запускать это приложение.

Если Мул хорошо запускается с этой конфигурацией, это означает, чтоэто верно, и комментарий лжет.

2 голосов
/ 08 марта 2012

Несмотря на то, что IntelliJ IDEA обладает лучшим в своем классе редактированием на основе XML-схем для IDE, оно все еще не идеально. Как правило, Mule выполняет полную проверку при разборе конфигурации. Однако IDE может ошибочно пометить действительную конфигурацию как ошибку.

И, Mule 2.x довольно старый, то, что Дэвид упомянул выше, применимо к Mule 3 больше. Со времен Mule 2 произошли значительные улучшения схемы.

...