What's new in the new Gaggle
- Starting almost any Gaggle-enabled application (or "goose") will now automatically start the Gaggle Boss if it is not already started.
The Boss will start up invisibly but you can make it visible by selecting "Boss" in the broadcast target list of any goose and clicking
"Show" (or "S"). In the Firegoose this is turned off by default but may be enabled from the Tools/Firegoose menu.
- Most geese will automatically un-register themselves from the Boss upon shutdown.
- All geese will be notified immediately whenever there is a change to the list of active geese. This means that the update button
is no longer necessary and has been removed.
- The Boss now checks for geese that have shut down improperly yet still show up in the list of active geese. You can force this check
by clicking the "Refresh" button in the boss; it will also occur every time a goose registers or un-registers.
- It is now easier to disconnect from and reconnect to the Boss from within an goose. This removes the previous necessity to close down
geese containing useful data in order to reconnect to the Boss.
- The R goose now supports the connectToGaggle() and disconnectToGaggle() methods for independently connecting and disconnecting
to/from the Boss.
- The kinds of data broadcast between boss and geese have been made into objects. In other words, where previously you would handle a name list
void handleNameList (String species, String  names)
You now accomplish the same thing in this manner:
public void handleNameList(String source, Namelist nameList)
Note that broadcasts now include the name of the goose they originated from. This is useful for geese
that want to ignore broadcasts originating from certain sources.
- All of the Gaggle Data types implement the interface GaggleData which requires them to implement methods for accessing:
the species associated with the broadcast; an optional name for the broadcast; and an optional TupleList object containing
metadata for the broadcast
- In the Boss interface, the various overloaded broadcast() methods have been renamed to broadcastNamelist(), broadcastMatrix(), etc.
- More detailed information about
the core interfaces
types can be found in the Javadoc.
Sample Goose is meant to be an example of how to write a goose using the new API. It is also a useful diagnostic tool.
- A new method in the Goose interface, update(), is called whenever there is a change to the list of geese. There are new
static utility methods to automatically update your UI widgets accordingly.
- The broadcasting of associative arrays (hash maps) has been replaced by broadcasting TupleLists. A TupleList is a flexible
data storage object that can be used as a hash map or a list of lists, or some combination thereof.
- Each Gaggle data type (and therefore each broadcast) includes an optional TupleList so that metadata can be sent along with the
broadcast. It is up to the broadcasting and receiving geese to properly construct and parse the TupleList object.