Wie Automatisierungs-Plug-ins werden Quellen-Plug-ins mit drei Dateien definiert: upgrade.xml, info.xml und plugin.xml. Die Struktur der ersten beiden Dateien ist für beide Plug-in-Typen identisch. Die Struktur der plugin.xml-Datei ändert sich je nach dem Typ des Plug-ins. Die Struktur der plugin.xml-Datei für Quellen-Plug-ins wird in diesem Thema beschrieben. Informationen über die plugin.xml-Datei für Automatisierungs-Plug-ins finden Sie unter Die plugin.xml-Datei für Automatisierungs-Plug-ins.
Der Tag <server:plugin-type>Source</server:plugin-type> identifiziert den Plug-in-Typ. Für Quellen-Plug-ins muss der Typ Source sein:
<?xml version="1.0" encoding="UTF-8"?>
<!-- das xmlns:server-Argument ist zum Parsen des Serpräfixes erforderlich -->
<plugin xmlns="http://www.urbancode.com/PluginXMLSchema_v1"
xmlns:server="http://www.urbancode.com/PluginServerXMLSchema_v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<identifier id="com.urbancode.air.plugin.source.Name" name="Plugin Name" version="1"/>
<description>Short description</description>
<tag>SCM/Name</tag>
<server:plugin-type>Source</server:plugin-type>
</header>
Ein Quellen-Plug-in hat einen Schritt, der als Importversion bezeichnet werden muss:
<step-type name="Importversion">
<description>Erstellt eine neue Komponentenversion und importiert Artefakte</description>
<properties>
</properties>
<post-processing><![CDATA[
if (properties.get("exitCode") != 0) {
properties.put(new java.lang.String("Status"), new java.lang.String("Fehlschlag"));
}
else {
properties.put("Status", "Erfolg");
}
]]></post-processing>
<command program="${JAVA_HOME}/bin/java">
<arg value="${JAVA_OPTS}"/>
<arg value="-jar"/>
<arg file="FileSystemSourceConfig.jar"/>
<arg value="ImportVersion"/>
<arg file="${PLUGIN_INPUT_PROPS}"/>
<arg file="${PLUGIN_OUTPUT_PROPS}"/>
</command>
</step-type>
Wie im folgenden Codefragment gezeigt wird, haben Quellen-Plug-ins zwei Eigenschaftsgruppen. Eigenschaften vom Component-Typ werden im Fenster Neue Komponente erstellen konfiguriert. Eigenschaften vom Typ Import werden im Fenster Komponente importieren konfiguriert.
<!-- ==================================== -->
<!-- Eigenschaften -->
<!-- ==================================== -->
<server:property-group type="Component" name="FileSystemComponentProperties">
<server:property name="property-name" required="true">
<server:property-ui type="textBox"
label="property-label"
description="property-description" />
</server:property>
</server:property-group>
<!-- Wenn leer oder nicht eingegeben, erscheint kein Dialog -->
<server:property-group type="Import" name="FileSystemImportProperties">
<server:property name="property-name" required="true">
<server:property-ui type="textBox"
label="property-label"
description="property-description" />
</server:property>
</server:property-group>
</plugin>