Propagation tracer for choco/palm


a propagation tracer for choco/palm

We developed on original tracer for choco/palm using Aspect Oriented Programming. AOP enables separating concerns in object-oriented application. The direct consequence of this feature is that we are able to provide a propagation tracer for choco and palm without modifying a single line of code in choco. We therefore provide a set of aspects to be weaved with any application using choco in order to generate the propagation trace of the program.

using the tools

If choco/palm is not yet installed, lauch the file, unzip it and and install choco/palm in a directory Mydirectory.

We suppose now that choco/palm is already installed and running and that a constraint application has been developped. We consider that the choco/palm code is in directory Mydirectory/chocosrc and that the application code is in directory Mydirectory/src.
  1. install AspectJ (a aspect-oriented extension to Java ). Our tools have been tested with AspectJ 1.2 available here.
  2. from the zip file, copy AbstractTrace.aj, ChocoTrace.aj (file used for generating a trace with choco), and PalmTrace.aj (file used for generating a trace with palm) into the src directory
  3. extract from the zip file and modify in Mydirectory the last lines of choco.lst (or palm.lst) to add the files of your application
  4. weave the propagation tracer aspects with your application in Mydirectory
                 ajc -source 1.4 -argfile choco.lst -d build
  5. now your application will generate a trace, launch the program in Mydirectory:
                java -cp build:$CLASSPATH YourApplication