<html>
  <head>
    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
	<link rel=stylesheet type="text/css" href="../css/book.css">
	<link rel=stylesheet type="text/css" href="otguide.css">
    <title>Java builder extended for Object Teams</title>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  </head>
  <body>
    <h1>Java builder extended for Object Teams</h1>
    <p>The <b>OT/J builder</b> is a seamless extension of the Java builder for Object Teams.
    It manages the incremental compilation of individual source files within a project,
    which aims at performing minimal work only, as to speed up compilation for large 
    projects if only small changes have been performed.
    </p><p>
    By the introduction of role files 
    (<a href="otjld/def/s1.html#s1.2.5"><img src="../images/ot_paragraph.png"> 1.2.5</a>)
    even inner classes (here: roles) can be compiled individually.
    Incremental compilation is guided by an analysis of the various dependencies among classes.
    </p><p>    
	If for some reason incremental compilation fails were it should not, a full build can
	be triggered by <span class="ui">Project-&gt;Clean...</code>.
	</p>
    <p>Note that the produced class files contain standard Java byte code. However, for execution
    the Object Teams Runtime Environment (OTRE) is needed in order to weave aspect code into
    base classes. Additional options in the launching dialog will take care of this detail for you
    (see <a href="running.html">Running Object Teams programs</a>).
  </body>
</html>