Summary
The programming-language, os, and name properties are literals, not URIs. They should not be written as rdf:resources in the RDF output.
The Problem
While the resulting RDF will validate, what happens is that an RDF parser will interpret <programming-language rdf:resource="java" /> as a URI fragment. (see the attached incorrect doap-language-bugreport.tgz:/target/site/doap_doap-language.rdf)
Since there is no explicit xml:base in the DoaP file generated by the plugin, the resulting URL is based on the default supplied by the RDF parser. For example using the W3C RDF Validator yields:
http://www.w3.org/RDF/Validator/run/java
rather than simply "java"
XML Base for RDF is specified at: see
http://www.w3.org/TR/2003/PR-rdf-syntax-grammar-20031215/#section-Syntax-ID-xml-base
Also note that the Apache Doap instructions correctly do not have rdf:resource for the programming language element:
http://projects.apache.org/languages.html
The Fix
Instead of <programming-language rdf:resource="java" />, the plugin should generate <programming-language>java</programming-language>.
Similar changes apply to the os and name properties.
Validation
I am attaching diffs that include changes to the unit tests. Also, the RDF validator at
http://www.w3.org/RDF/Validator/direct
may be used to demonstrate that the progamming language, etc. elements are getting resolved to:
http://www.w3.org/RDF/Validator/run/java
rather than simply "java". Simply "java" is what it should be.