blob: e9eec3d5fd9761f65566f9367093e2221c23298d [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#
# Begin: page-specific settings. Change these.
$pageTitle = "Eclipse JDT-APT Project";
$pageKeywords = "JDT, Java, UI, Debug, APT, java, development, tools, java ide, Eclipse";
$pageAuthor = "JDT/APT team";
# End: page-specific settings
# Paste your HTML content between the markers!
ob_start();
?>
<div id="midcolumn">
<h1>
<?= $pageTitle ?>
</h1>
<div class="homeitem3col">
<h3>What is the JDT-APT project?</h3>
<p>
The JDT-APT project provides plugins that add Java 5 annotation
processing support to Eclipse. A Java annotation processor is a
compiler plug-in that can gather information about source code as it
is being compiled, generate additional Java types or other resource
files, and post warnings and errors. Eclipse 3.2 provided support for
annotation processors using the <a href="http://java.sun.com/j2se/1.5.0/docs/guide/apt/mirror/overview-summary.html">Java 5 Mirror APIs</a>,
and Eclipse 3.3 added support for processors using the <a href="http://java.sun.com/javase/6/docs/api/javax/annotation/processing/package-summary.html">
Java 6 annotation processing APIs</a>.
</p>
<p>
You can view the presentation given at JavaOne 2005 during a session
on APT that describes some of the goals and technical details <a
href="javaone_apt.ppt">here</a>. At EclipseCon 2006 we made a <a
href="Eclipsecon2006.ppt">presentation</a> on APT do's and don'ts,
and at EclipseCon 2007 this was developed into a <a
href="eclipsecon2007.zip">tutorial</a> on writing annotation
processors for Eclipse, including some sample code and more
discussion of techniques to achieve good performance. At EclipseCon
2008 we gave a <a href="eclipsecon2008.ppt">presentation</a> on
annotations (which briefly mentions annotation processors but does
not go into depth) that may be of interest to those looking for
background material or for alternative strategies to annotation
processing.
</p>
<p>
Additional frequently asked questions and their answers can be found
in our <a href="faq.php">FAQ</a>.
</p>
</div>
<div class="homeitem3col">
<h3>What is APT?</h3>
<p>
APT stands for Annotation Processing Tool. Sun shipped an API for APT
in JDK 1.5, which can be viewed at <a
href="http://java.sun.com/j2se/1.5.0/docs/guide/apt/mirror/index.html">
http://java.sun.com/j2se/1.5.0/docs/guide/apt/mirror/index.html</a>.
Sun also included a commandline implementation of APT in JDK 1.5. You
can find documentation for it at <a
href="http://java.sun.com/j2se/1.5.0/docs/guide/apt/index.html"
target="_blank">http://java.sun.com/j2se/1.5.0/docs/guide/apt/index.html</a>.
In JDK 6, the API was modified considerably and standardized through
JSR-269, and the Sun implementation was built into the javac compiler
rather than requiring a standalone tool.
</p>
<p>To quote from Sun's documentation:</p>
<p>
<code>
apt is a command-line utility for annotation processing. It includes
a set of reflective APIs and supporting infrastructure to process
program annotations (JSR 175). These reflective APIs provide a
build-time, source-based, read-only view of program structure. They
are designed to cleanly model the Java<sup><small>TM</small>
</sup> programming language's type system after the addition of
generics (JSR 14).
</code>
</p>
<p>
So, APT provides a means for generating files and compiling new
java classes based on annotations found in your source code.
</p>
<p>
JDT-APT is not based on Sun's implementation, but rather is a
separate implementation of the APT APIs that runs entirely within
Eclipse.
</p>
</div>
<div class="homeitem3col">
<h3>How do I get started?</h3>
<p>
If all you need to do is use an annotation processor, you may not
need to do anything at all! Many project creation wizards will
automatically install and enable the necessary processors. To check
whether this is the case, or to install and enable your own
processors, use the Java Compiler &gt; Annotation Processing pane of
the project properties.</p>
<p>
For details, see the <a href="http://help.eclipse.org/topic/org.eclipse.jdt.doc.isv/guide/jdt_apt_getting_started.htm">
Getting Started</a> guide in the Eclipse documentation (Help &gt; Help Contents &gt;
JDT Plug-in Developer Guide &gt; Programmer's Guide &gt; JDT Annotation Processing).
</p>
</div>
<div class="homeitem3col">
<h3>How can I contribute?</h3>
<p>
If you're interested in contributing, start by checking out the code in the <a href="https://git.eclipse.org/c/jdt/eclipse.jdt.core.git/">
eclipse.jdt.core</a> Git repository. See the instructions <a href="https://wiki.eclipse.org/JDT_Core_Committer_FAQ#Coding">here</a>.
</p>
<p>
You can also check out the mailing list,
<a href="http://dev.eclipse.org/mailman/listinfo/jdt-apt-dev">jdt-apt-dev@eclipse.org</a>,
or post questions to the Java Development Tools (JDT) <a href="https://www.eclipse.org/forums/">forum</a>.
The mailing list is primarily for announcements and discussion by people working
on the APT tooling in Eclipse; if you have technical questions, it is
best to use the forum.
</p>
</div>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>