===================================== ObjectTeams/Java v0.6.1c release notes ------------------=====================================---------------------- What: The Object Teams model is based on more than four years of aspect-oriented research. ObjectTeams/Java is the realization of this model based on the Java programming language. Authors: Stephan Herrmann Christof Binder Christine Hundt More Information: http://www.ObjectTeams.org Last change: Fri Jun 25 2004 Contents: 1. Installation 2. Running tests 3. Compiling your own ObjectTeams/Java programs 4. Limitations of the current implementation For user visible changes see file doc/CHANGES.txt ----------------------------------------------------------------------------- 1. Installation: ----------------------------------------------------------------------------- 1.1 Requirements: You need + Java >= Jdk1.4.0, recommended: 1.4.2 (see http://java.sun.com) Starting with v0.5.4, we include JMangler2.0.3 in our distribution. (see http://javalab.cs.uni-bonn.de/research/jmangler) Note: JMangler 3.x is not yet supported! 1.2 Configure: Place the self-extracting archive "Install.class" into any directory, change to that directory and type $ java -classpath . Install Under Windows execute "Install.bat". The installation wizzard will let you choose between different types of installation or select different packages explicitly. When choosing an installation target directory, it suffices to edit the prefix path and all other paths will follow that choice. 1.3 Uninstall: The uninstall script in sub-directory bin will remove all files copied during installation. Files created or modified after installation time are preserved. ----------------------------------------------------------------------------- 2. Running tests: ----------------------------------------------------------------------------- In the src/examples directory you find a set of example programs in individual sub-directories. Documentation of the test programs is included in their respective directories (files README.txt). 2.1 Running a test suite as a batch job: In directory src/examples run "make test". (* Portability Note: In Linux and other Unices this is the usual make using a Makefile, under Windows I have tried to fake that behavior using batch files. NOTE: using nmake with Cygwin on Windows does not work out of the box, since installation under Windows will generate all paths using "\", but Cygwin needs "/" file separators. :-( *) This is what you should get: $ make test make: [test] Error 1 (ignored) Compiling Expression-Printer Testing Expression-Printer ========== Ok. ========== Compiling Observer Testing Observer ========== Ok. ========== Compiling FlightBooking Testing FlightBooking ========== Ok. ========== Compiling Exceptions Testing Exceptions ========== Ok. ========== Testing Error-Messages ========== Ok. ========== ========== TEST SUMMARY ========== 5 successful case(s): Expression-Printer Observer FlightBooking Exceptions Error-Messages 0 failed case(s): ================================== 2.2 Interactive examples: Two examples with GUI are also included (not part of the batch test suite): a stopwatch and a tree browser for Java classes. For full operation the browser depends on the "ctags" source code parser/tag-reader (Exuberant version). If this package is not available a hard coded tree structure is shown. 2.3 Compiling and running individual examples: Each of the examples can be run individually by entering that directory and typing on of: make compile -- this compiles only if needed make CCompile -- forced complete re-build make run -- run previously compiled program make RRun -- forced re-build and run make test -- run one test as described above Example flightbonus only: make runui -- run a version with a simple console UI ----------------------------------------------------------------------------- 3. Compiling your own ObjectTeams/Java programs: ----------------------------------------------------------------------------- The compiler command is "otc" (located in directory bin). In addition to javac's options it currently supports these options: -emacs Produce error messages that are better for integration in emacs. (Linux only). -decapsulation Report details about decapsulation, i.e., callout bindings overriding access restrictions. -nodecapsulation Don't warn when overriding access restrictions. -Dot.nowarn.relevant Don't warn if relevance of abstract role could not be proven. ObjectTeams/Java programs are run using the "ot" command instead of java. ----------------------------------------------------------------------------- 4. Limitations of the current implementation of ObjectTeams/Java ----------------------------------------------------------------------------- As of version 0.6.1c of ObjectTeams/Java the following features are not yet implemented (numbers refer to sections of the language definition at http://www.objectteams.org/def or directory doc/def in a full installation): 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 for Team-level methods still has some restrictions. super() does not work in this context if signatures contain role types. (This will be fixed only for our upcoming new compiler). Team constructors are not affected by this restriction. There is also some bad interaction between implicit inheritance and accessing private role features from the team and vice versa. The compiler will give a warning here. 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. See also the file CHANGES.txt for improvements between versions. ----------------------------------------------------------------------------- If you have problems or other comments please send us an email at: support@objectteams.org -----------------------------------------------------------------------------