properties.put("Status","Erfolg");
Das Nachverarbeitungsscript kann das Ausgabeprotokoll des Schritts prüfen und Befehle basierend auf dem Ergebnis ausführen. Im folgenden Codefragment registriert scanner.register() die Zeichenfolgen Fehler in der Zeile und Der Wert ist mit einer Steuerkomponente für reguläre Ausdrücke und führt dann Befehle aus, wenn diese Zeichenfolgen gefunden werden. Nachdem alle Zeichenfolgen registriert wurden, ruft es scanner.scan() im Ausgabeprotokoll des Schritts Zeile für Zeile auf.
properties.put("Status",
"Erfolg");
//
// Integrierte exitCode-Eigenschaft auswerten, die den Exit-Code des vom
// Plug-in-Schritt aufgerufenen Scripts enthält. Wenn exitCode-Eigenschaft
// nicht null ist, schlägt der Plug-in-Schritt fehl.
//
if (properties.get("exitCode") != 0) {
properties.put("Status", "Fehler");
}
else {
//
// Scanner zur Suche nach Text "Fehler in Zeile" im Protokoll registrieren.
// Erstes Argument ist ein regulärer Ausdruck.
//
// Zweites Argument, inline-Funktion, wird einmal für jede Zeile in der
// Protokollausgabe aufgerufen, die zum Suchmuster passt. "lineNumber"-
// Variable enthält die Zeilennummer mit der Übereinstimmung, und die
// "line"-Variable ist der vollständige Text der Zeile.
//
scanner.register("(?i)FEHLER in Zeile", function(lineNumber, line) {
//
// In diesem Fall wird eine "Fehler"-Eigenschaft erstellt, die den
// Text aller gefundenen Fehler enthält. Gesucht wird jede Zeile,
// die mit "Fehler in Zeile" beginnt, und dieser Liste hinzugefügt.
//
var errors = properties.get("Fehler");
if (errors == null) {
errors = new java.util.ArrayList();
}
errors.add(line);
//
// Wird eine Zeile mit "Fehler in Zeile" gefunden, ist der Schritt
// fehlgeschlagen, daher wird "Status"-Eigenschaft auf "Fehler",
// gesetzt, womit dem UrbanCode Deploy-Server gezeigt wird, dass
// der Schritt als Fehlschlag markiert werden muss.
//
properties.put("Status", "Fehler");
});
//
// Mehrere Suchen können für den Scanner registriert werden. Eine zweite
// Suche sucht nach interessantem Text, der als Ausgabeeigenschaft
// eingestellt werden kann.
//
// Wenn beispielsweise eine Zeile "Der Wert ist BLAU" heißt ergibt sich
// eine Ausgabeeigenschaft "Wert" mit dem Wert "BLAU".
//
scanner.register("Der Wert ist", function(lineNumber, line) {
var value = line.replace("Der Wert ist ", "");
properties.put("Value", value);
});
scanner.scan();
//
// Gesammelte Liste von Fehlerzeichenfolgen in eine einzige Zeichenfolgen-
// gruppe umwandeln, die eine Ausgabeeigenschaft hat.
//
var errors = properties.get("Fehler");
if (errors == null) {
errors = new java.util.ArrayList();
}
properties.put("Fehler", errors.toString());
}
if (properties.get("exitCode")==0)
{ properties.put("Status","Erfolg"); }
else
{ properties.put("Status","Fehler"); }
properties.put("Step1Prop","value1");
echo Eigenschaften des vorherigen Schritts:
echo "${p:Step1/Status}"
echo "${p:Step1/Step1Prop}"
Der zweite Schritt kann auch diese
Eigenschaften in seinem Nachverarbeitungsscript nutzen. Beispiel: Das
folgende Nachverarbeitungsscript enthält die Eigenschaft
Status des vorherigen Schritts in einer
Eigenschaft für den zweiten Schritt:{
properties.put("Step2Prop","Neue Eigenschaft");
properties.put("Status","OK");
properties.put("StatusOfPreviousStep","${p:Step1/Status}");
}