Downloading ObjectTeams/Java

Note: This page lets you download our command line tools for OT/J. See the software page for the new Eclipse-based Object Teams Development Tooling.

License Issues

The current implementation of ObjectTeams/Java involves software with different legal status. Everything else is under LGPL and we are working on a new compiler which will be completely available in source code under LGPL, too.

Files

Final version: ObjectTeams/Java v0.6.1c
Requirement: You need Java installed (>= jdk 1.4.0).
Included: Starting from v0.5.4 we include a runtime version of JMangler 2.0.3 in our distribution.
  1. Download the ObjectTeams/Java installer (~ 1.3MB).
  2. On windows you might also want to download this tiny batchfile (into the same directory).
  3. Run the interactive installer:
    Linux/Unix:
    java -classpath directory_where_Install.class_is_stored Install
    Windows:
    double click the batch file
  4. Have fun and send feedback to us.

Previous versions:

Status of Development

See file CHANGES.txt for improvements between versions.

The ObjectTeams/Java compiler and runtime environment generally follow our language definition.
Limitations: As of version 0.6.1b the following are, however, not yet implemented:

§ 2.3(b)
This rule is not fully implemented, i.e., a role constructor can not invoke super/tsuper and base().
§ 5.3:
Implicit Team activation is only implemented for Team methods, not for externalized roles.
Overriding of Team-level methods:
Overriding for Team-level methods still has some restrictions. super() does not work in this context if signatures contain role types. Team constructors are not affected by this restriction.
Private accross classes
There is some bad interaction between implicit inheritance and accessing private role features from the team and vice versa. The compiler will give a warning here.
Nesting etc.
Team nesting etc. are not fully supported. A role class may currently not be a Team nor the base of another role class. It is, however, not a problem for a Team class to serve as a base in a role binding of another Team.

And other restrictions that we don't know of ...

© Stephan Herrmann
Last modified: Fri Jun 25 21:10:06 CEST 2004