Prerequisite: jdk 1.4 or better and java/javac in your path.

To build:
ant or configure;make

Only make will do an install appropriate to running Ccaffeine as a backend:

configure must be supplied with the whereabouts of the ccafe-config
that you want to use.  

To create API javadocs:
ant docs (no make for docs yet)

To run a simple test:
ant test

To launch a cca client that will connect to a C++ cca server running on z:1237:
java -classpath .. gov.sandia.ccaffeine.dc.user_iface.gui.AppFrame --builderPort 1237 --host z.ca.sandia.gov

To launch a cca client that will connect to a Python cca server running on z:1237:
java -classpath .. gov.sandia.ccaffeine.dc.user_iface.gui.AppFrame --builderPort 1237 --pythonServer --host z.ca.sandia.gov

To write a server that interfaces to the cca client,
you have to:

1) Write a view class that implements the GuiListener interface.  
   Your view class should:
       accept events from the GUI
       process those events
       respond to those events by sending commands to the cca server
    There are two implementations that you can look at:
        gov.sandia.ccaffeine.dc.user_iface.MVC.ViewSocket
            Sends queries from the GUI to the cca server.
        gov.sandia.ccaffeine.dc.user_iface.MVC.ViewPython
            Sends queries from the GUI to a client stub.
            The client stub transports the queries to a server skeleton.
            The server skeleton delivers the queries to the cca server.

2) Write a controller class that:
       reads messages from the cca server
       process the messages 
       respond to the messages by sending events to the GUI
    The GUI implements the ControllerListener interface.  Your controller 
    class should invoke ControllerListener methods on the GUI.  There are 
    two implementations that you can look at:
        gov.sandia.ccaffeine.dc.user_iface.MVC.ControllerSocket
            Reads messages from the server.  
            Sends the messages to a parser.
            The parser invokes methods ControllerListener methods on the GUI.
        gov.sandia.ccaffeine.dc.user_iface.MVC.ControllerPython
            Accepts messages from a client stub.
            Invokes ControllerListener methods on the GUI.
    

Stack Traces:
  scenario:  GUI wants to populate the palette
     GUI formulates a query that asks for all the components in the palette
     GUI sends the query to the GuiListener, ViewSocket
     ViewSocket forwards the query to the cca server
     cca server sends the components to the ControllerSocket
     ControllerSocket sends the data to CmdParse
     CmdParse invokes one of the CmdActionXXX classes
     CmdActionXXX invokes the CmdAction class
     CmdAction invokes a ControllerListener method on the GUI

  scenario:  GUI wants to populate the palette
     GUI formulates a query that asks for all the components in the palette
     GUI sends the query to the GuiListene, ViewPython 
     ViewPython sends a query to the PythonStub
     The PythonStub forwards the query to the server skeleton
     The server skeleton forwards the query to the cca server
     The cca server sends the components to the server skeleton
     The server skeleton sends the components to the PythonStub
     The PythonStub sends the components to the ControllerPython
     The ControllerPython invokes a ControllerListener method on the GUI


 

