Mule-expression-Geltungsbereich von Variablen

Was ist der Gültigkeitsbereich von Variablen in der Mule-expression-Komponenten, und wie verhält die sich zu flow-Variablen? Ich hatte einen Fluss mit einem set-variable und war überrascht zu sehen, dass der Wert überschrieben wird, indem eine Zuweisung in eine expression-component. Zum Beispiel,

<flow name="HelloWorldFlow1" doc:name="HelloWorldFlow1">
    <http:inbound-endpoint exchange-pattern="request-response"
        host="localhost" port="9999" doc:name="HTTP"
        doc:description="This endpoint receives an HTTP message." path="helloworld"/>
    <set-variable variableName="asdf" value="firstvalue" doc:name="Variable"/>
    <logger message="#[flowVars[&quot;asdf&quot;]]" level="INFO" doc:name="Logger"/>
    <expression-component doc:name="Expression"><![CDATA[asdf = "secondvalue";]]></expression-component>
    <logger message="#[flowVars[&quot;asdf&quot;]]" level="INFO" doc:name="Logger"/>

    <expression-component doc:name="Expression"><![CDATA[qwer = "thirdvalue";]]></expression-component>
    <logger message="#[flowVars[&quot;qwer&quot;]]" level="INFO" doc:name="Logger"/>
</flow>

Die Ausgabe ist:

INFO  2014-04-25 08:58:46,889 [[helloworld].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: firstvalue
INFO  2014-04-25 08:58:46,893 [[helloworld].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: secondvalue
INFO  2014-04-25 08:58:46,895 [[helloworld].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: null

Wenn möglich, können Sie zeigen Sie mir die Dokumentation des scoping-Regeln? Ich habe versucht ein paar verschiedene Suchbegriffe und immer irrelevante Ergebnisse.

Klarstellung: Innerhalb der expression-component tut Mule zunächst überprüfen, um zu sehen, ob es eine flow-variable mit einem bestimmten Namen und verwenden Sie dann die variable, anstatt eine neue zu erstellen? Wenn die Ausdruck-Komponente erstellt eine variable, der Gültigkeitsbereich beschränkt sich auf nur die Ausdruck-Komponente code? In http://blogs.mulesoft.org/mule-school-the-mulemessage-property-scopes-and-variables/, es sagt, dass Mule flow-Variablen "Verhalten sich wie die Instanz-Eigenschaften", aber ich kann nicht finden, eine definition für das, was eine Instanz-Eigenschaft ist. Das Wort Umfang ist auch nicht in dem Ausdruck Komponente Referenz Seite (http://www.mulesoft.org/documentation/display/current/Expression+ - Komponente+Referenz).

InformationsquelleAutor Don 01001100 | 2014-04-25
Schreibe einen Kommentar