aboutsummaryrefslogtreecommitdiff
path: root/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml
diff options
context:
space:
mode:
Diffstat (limited to 'basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml')
-rw-r--r--basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml83
1 files changed, 83 insertions, 0 deletions
diff --git a/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml
new file mode 100644
index 0000000..9494d05
--- /dev/null
+++ b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.build.tools/scripts_rss/feedWatch.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+
+<project name="Watch Feed" default="watchFeed">
+
+ <taskdef name="WatchFeed"
+ classname="org.eclipse.releng.services.rss.RSSFeedWatcherTask"
+ classpath="../feedTools.jar"/>
+
+ <!-- 1. Define property file -->
+ <target name="init">
+ <!-- <property file="../properties/feedWatch.emf.properties"/> -->
+ <property file="../properties/feedWatch.uml2.properties"/>
+ </target>
+
+ <!-- 2. Watch feed for certain change conditions and respond if necessary -->
+ <target name="watchFeed" depends="init" description="Watch feed for certain change conditions and respond if necessary">
+ <WatchFeed
+ debug="${debug}"
+ file="${file}"
+ feedURL="${feedURL}"
+ feedWatchActions="${feedWatchActions}"
+ />
+
+ <!--
+ Different ways to get at the results of the task include:
+
+ feedWatchAction.Result.0 - The result returned from the <exec> task; if set, something bad happened
+ feedWatchAction.Error.0 - Details about the error that occurred, if set, something bad happened
+ feedWatchAction.Output.0 - Console output from your <exec>, if any;
+ this will depend on what you run in response to a feed change, and if that process produces console output
+ feedWatchAction.OldValue.0 - The original value of the node you asked for, from the previous cached version of the feed
+ feedWatchAction.NewValue.0 - The changed value of the node you asked for, from the latest version of the feed;
+ if you asked for changes to the test status for performance tests, this could be "PASS";
+ if you asked for any changes to the feed, this will be the XML datestamp of the last update, eg: 2006-05-04T12:14:33Z
+ feedWatchAction.TheValue.0 - Even if the original value is unchanged, this will contain the NewValue.
+ This is useful to determine if the value changed (check if NewValue.0 is defined), but also to have the value,
+ in case you need to pass it to a downstream script. For example, you can check //*[name()='entry'][1]/*/*[name()='build']/@type - which
+ if the feed only contains S builds, will never change, and NewValue.0 will be undefined; however, you need the "S" value,
+ so use this property instead of NewValue.0 in order to pass it to the next script.
+
+ If you are watching for more than one condition, you can check for feedWatchAction.NewValue.0, feedWatchAction.NewValue.1, feedWatchAction.NewValue.2, etc.
+ -->
+
+ <!--
+ <echoproperties format="text">
+ <propertyset><propertyref regex="feedWatchAction\.(Result|Error|Output|NewValue|OldValue|TheValue)\.0"/></propertyset>
+ </echoproperties>
+ -->
+
+ <echo message="feedWatchAction.OldValue.0 = ${feedWatchAction.OldValue.0}"/>
+ <echo message="feedWatchAction.NewValue.0 = ${feedWatchAction.NewValue.0}"/>
+ <echo message="feedWatchAction.TheValue.0 = ${feedWatchAction.TheValue.0}"/>
+ <echo message="feedWatchAction.OldValue.1 = ${feedWatchAction.OldValue.1}"/>
+ <echo message="feedWatchAction.NewValue.1 = ${feedWatchAction.NewValue.1}"/>
+ <echo message="feedWatchAction.TheValue.1 = ${feedWatchAction.TheValue.1}"/>
+ <echo message="feedWatchAction.OldValue.2 = ${feedWatchAction.OldValue.2}"/>
+ <echo message="feedWatchAction.NewValue.2 = ${feedWatchAction.NewValue.2}"/>
+ <echo message="feedWatchAction.TheValue.2 = ${feedWatchAction.TheValue.2}"/>
+
+ <!-- 3. now we can respond to a changed/unchanged condition if desired -->
+ <antcall target="respondToFeedUnchanged"/>
+ <antcall target="respondToFeedChanged"/>
+
+ </target>
+
+ <!-- 3a. If not responding via shell <exec>, respond now by checking property(ies) for results -->
+ <target name="respondToFeedUnchanged" description="Respond to feed unchanged" unless="feedWatchAction.NewValue.0">
+ <echo message="Feed unchanged! Should we do something, like waiting for some period of time and trying again?"/>
+ <!-- add steps to do here, like sleeping & re-firing, sending a nag note to someone, etc. -->
+ </target>
+ <!-- 3b. If not responding via shell <exec>, respond now by checking property(ies) for results -->
+ <target name="respondToFeedChanged" description="Respond to feed changed" if="feedWatchAction.NewValue.0">
+ <echo message="Feed changed! Time to do something... but what?"/>
+ <!-- add steps to do here, like firing an email, starting a build, etc. -->
+
+ <!-- eg., wait 30 seconds and try again -->
+ <!-- <echo message="Sleeping..."/>
+ <exec executable="sleep" resolveexecutable="true"><arg line="10"/></exec>
+ <echo message="Spawning..."/>
+ <exec executable="feedWatch.sh" resolveexecutable="true" spawn="true"/> -->
+ </target>
+
+</project>