public static void main(String[] args) throws Exception {
PennyServer pennyServer = new PennyServer();
String pigScriptFilename = args[0];
ParsedPigScript parsedPigScript = pennyServer.parse(pigScriptFilename);
String traceAlias = args[1]; // script alias of tuple to get trace of
String traceTuple = args[2]; // tuple to trace (has to match exactly tuple.toSTring())
// Ibis change : start
if (!(parsedPigScript.aliases().contains(traceAlias) && parsedPigScript.operator(traceAlias).equals("LOLoad"))) throw new IllegalArgumentException("Invalid alias.");
// Ibis change : end
Map<String, ClassWithArgs> monitorClasses = new HashMap<String, ClassWithArgs>();
for (String alias : parsedPigScript.aliases()) {
// Ibis change : start
if (parsedPigScript.operator(alias).equals("LOLoad")) {
// Ibis change : end
monitorClasses.put(alias, new ClassWithArgs(BTInjectTaintMonitorAgent.class));
} else if (alias.equals(traceAlias)) {
monitorClasses.put(alias, new ClassWithArgs(BTMatchTaintMonitorAgent.class, traceTuple));
} else {
monitorClasses.put(alias, new ClassWithArgs(BTPropagateTaintMonitorAgent.class));
}
}
Collection<Tuple> traceResults = (Collection<Tuple>) parsedPigScript.trace(BTCoordinator.class, monitorClasses);
System.out.println("*** TRACE RESULTS:" + traceResults);
}