Index: build.xml
===================================================================
--- .	(revision 648230)
+++ .	(working copy)
@@ -58,6 +58,7 @@
   <property name="compiler.args.vysper" value="${compiler.args}"/>
   
   <property name="vysper.output.dir" value="${basedir}/build/ant/classes"/>
+  <property name="vysper.docs.dir" value="${basedir}/build/ant/apidocs"/>
   <property name="vysper.unittest.base.dir" value="${basedir}/build/ant/tests/junit"/>
   <property name="vysper.unittest.output.classes.dir" value="${vysper.unittest.base.dir}/classes"/>
   <property name="vysper.unittest.output.reports.dir" value="${vysper.unittest.base.dir}/reports"/>
@@ -191,4 +192,9 @@
   <target name="clean" depends="clean.vysper" description="cleanup all"/>
   
   <target name="all" depends="init, clean, compile.vysper" description="build all"/>
+	
+  <target name="docs" description="generate javadocs">
+  	<javadoc sourcepathref="sourcepath" destdir="${vysper.docs.dir}">
+  	</javadoc>
+  </target>
 </project>
Index: src/main/java/org/apache/vysper/util/annotations/RfcCompliant.java
===================================================================
--- src/main/java/org/apache/vysper/util/annotations/RfcCompliant.java	(revision 0)
+++ src/main/java/org/apache/vysper/util/annotations/RfcCompliant.java	(revision 0)
@@ -0,0 +1,46 @@
+package org.apache.vysper.util.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This annotation is used to mark methods, types or packages that implement a
+ * specific RFC or a section of an RFC. Use the <code>status</code> parameter
+ * to specify the compliance level.
+ * 
+ * @author Gerolf Seitz (gseitz@apache.org)
+ * 
+ */
+@Documented
+@Target( { ElementType.METHOD, ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RfcCompliant {
+	public enum ComplianceStatus {
+		NOT_STARTED, PARTIAL, FINISHED
+	}
+
+	/**
+	 * Specifies the RFC the target implements.
+	 * 
+	 * @return the RFC number
+	 */
+	String rfc();
+
+	/**
+	 * Specifies the section the target implements.
+	 * 
+	 * @return the section/appendix number or an empty {@link String} in case
+	 *         the entire RFC is implemented by the target
+	 */
+	String section() default "";
+
+	/**
+	 * Specifies the status of the RFC compliance.
+	 * 
+	 * @return the compliance status
+	 */
+	ComplianceStatus status();
+}
