Running an OT/J application requires a byte code weaver for binding roles into their bases. Since version 2.3, the OTDT ships with two distinct weavers with the following properties:
In short: For applications using Java 8, OTDRE is the only option. At Java 7 or below, OTRE is still a good option, perhaps with better performance, still.
Initial configuration of the target weaving scheme happens in the New Object Teams Project Wizard.
For existing projects, this option can be found in the project's properties concerning the OT/J compiler:
This configuration is evaluated by the compiler and when launching an OT/J application.
Since the OT/J compiler performs some preparation for the respective weaver,
it has to generate different byte code formats, depending on the targeted weaving scheme.
As a consequence, switching from one weaving scheme to the other requires a full
recompilation of all OT/J code involved. The runtime will detect if it encounters
any class files compiled for an incompatible weaving scheme, signaled by throwing
UnsupportedClassVersionError
.
When launching an OT/J-enabled application the suitable weaving scheme will automatically be selected based on the configuration of projects involved in the launch.