Author: vsiveton
Date: Mon Jun 23 21:28:00 2008
New Revision: 671017

URL: http://svn.apache.org/viewvc?rev=671017&view=rev
Log:
o fixed name, description, created, homepage, licenses, bug-database, 
mailing-list

Modified:
    
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java

Modified: 
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java?rev=671017&r1=671016&r2=671017&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
 Mon Jun 23 21:28:00 2008
@@ -30,6 +30,7 @@
 import org.apache.maven.model.Contributor;
 import org.apache.maven.model.Developer;
 import org.apache.maven.model.License;
+import org.apache.maven.model.MailingList;
 import org.apache.maven.model.Scm;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -149,26 +150,33 @@
         // Project
         writer.startElement( "Project" );
         writer.addAttribute( "rdf:about", "http://Maven.rdf.apache.org/"; );
-        DoapUtil.writeElement( writer, "created", project.getInceptionYear() );
 
-        if ( project.getLicenses().size() > 0 )
-        {
-            //TODO: how to map to usefulinc site, or if this is necessary, the 
OSI page might
-            //      be more appropriate.
-            DoapUtil.writeRdfResourceElement( writer, "license", ( (License) 
project.getLicenses().get( 0 ) ).getUrl() );
-        }
+        // name
+        writeName( writer );
+
+        // description
+        writeDescription( writer );
+
+        // created
+        writeCreated( writer );
+
+        // homepage
+        writeHomepage( writer );
+
+        // licenses
+        writeLicenses( writer );
 
-        DoapUtil.writeElement( writer, "name", project.getName() );
-        DoapUtil.writeRdfResourceElement( writer, "homepage", project.getUrl() 
);
         DoapUtil.writeRdfResourceElement( writer, "asfext:pmc", 
project.getUrl() );
-        DoapUtil.writeElement( writer, "shortdesc", project.getDescription() );
-        DoapUtil.writeElement( writer, "description", project.getDescription() 
);
 
-        if ( project.getIssueManagement() != null )
-        {
-            DoapUtil.writeRdfResourceElement( writer, "bug-database", 
project.getIssueManagement().getUrl() );
-        }
-        DoapUtil.writeRdfResourceElement( writer, "mailing-list", composeUrl( 
project.getUrl(), "/mail-lists.html" ) );
+        // SCM
+        writeSourceRepositories( writer );
+
+        // bug-database
+        writeBugDatabase( writer );
+
+        // mailing list
+        writeMailingList( writer );
+
         DoapUtil.writeRdfResourceElement( writer, "download-page", composeUrl( 
project.getUrl(), "/download.html" ) );
         DoapUtil.writeElement( writer, "programming-language", language );
         //TODO: how to lookup category, map it, or just declare it.
@@ -177,17 +185,14 @@
         // Releases
         publishReleases();
 
-        // SCM
-        writeSourceRepositories( writer );
-
         // Developers
         writeDevelopersOrContributors( writer, project.getDevelopers() );
 
         // Contributors
         writeDevelopersOrContributors( writer, project.getContributors() );
 
-        writer.endElement();
-        writer.endElement();
+        writer.endElement(); // Project
+        writer.endElement(); // rdf:RDF
 
         try
         {
@@ -203,6 +208,194 @@
     // Private methods
     // ----------------------------------------------------------------------
 
+    /**
+     * Write DOAP name.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#name";>http://usefulinc.com/ns/doap#name</a>
+     */
+    private void writeName( XMLWriter writer )
+    {
+        if ( StringUtils.isEmpty( project.getName() ) )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "A name of something.", 2 );
+        // http://usefulinc.com/ns/doap#name
+        DoapUtil.writeElement( writer, "name", project.getName() );
+    }
+
+    /**
+     * Write DOAP description.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#description";>http://usefulinc.com/ns/doap#description</a>
+     * @see <a 
href="http://usefulinc.com/ns/doap#shortdesc";>http://usefulinc.com/ns/doap#shortdesc</a>
+     */
+    private void writeDescription( XMLWriter writer )
+    {
+        if ( StringUtils.isEmpty( project.getDescription() ) )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "Plain text description of a 
project, of 2-4 sentences in length.", 2 );
+        // http://usefulinc.com/ns/doap#description
+        DoapUtil.writeElement( writer, "description", project.getDescription() 
);
+        // http://usefulinc.com/ns/doap#shortdesc
+        DoapUtil.writeElement( writer, "shortdesc", project.getDescription() );
+    }
+
+    /**
+     * Write DOAP created.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#created";>http://usefulinc.com/ns/doap#created</a>
+     */
+    private void writeCreated( XMLWriter writer )
+    {
+        if ( StringUtils.isEmpty( project.getInceptionYear() ) )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "Date when something was 
created, in YYYY-MM-DD form. e.g. 2004-04-05",
+                                        2 );
+        // http://usefulinc.com/ns/doap#created
+        DoapUtil.writeElement( writer, "created", project.getInceptionYear() + 
"/01/01" );
+    }
+
+    /**
+     * Write DOAP homepage.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#homepage";>http://usefulinc.com/ns/doap#homepage</a>
+     */
+    private void writeHomepage( XMLWriter writer )
+    {
+        if ( StringUtils.isEmpty( project.getUrl() ) )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "URL of a project's homepage, 
associated with exactly one project.", 2 );
+        // http://usefulinc.com/ns/doap#homepage
+        DoapUtil.writeRdfResourceElement( writer, "homepage", project.getUrl() 
);
+    }
+
+    /**
+     * Write DOAP licenses.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#license";>http://usefulinc.com/ns/doap#license</a>
+     */
+    private void writeLicenses( XMLWriter writer )
+    {
+        if ( project.getLicenses() == null || project.getLicenses().size() == 
0 )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "The URI of the license the 
software is distributed under.", 2 );
+        //TODO: how to map to usefulinc site, or if this is necessary, the OSI 
page might
+        //      be more appropriate.
+        for ( Iterator it = project.getLicenses().iterator(); it.hasNext(); )
+        {
+            License license = (License) it.next();
+
+            if ( StringUtils.isNotEmpty( license.getUrl() ) )
+            {
+                // http://usefulinc.com/ns/doap#license
+                DoapUtil.writeRdfResourceElement( writer, "license", 
license.getUrl() );
+            }
+            else
+            {
+                getLog().warn( "No URL was specified for license " + 
license.getName() );
+            }
+        }
+    }
+
+    /**
+     * Write DOAP bug-database.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#bug-database";>http://usefulinc.com/ns/doap#bug-database</a>
+     */
+    private void writeBugDatabase( XMLWriter writer )
+    {
+        if ( project.getIssueManagement() == null )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "bug database.", 2 );
+        if ( StringUtils.isNotEmpty( project.getIssueManagement().getUrl() ) )
+        {
+            // http://usefulinc.com/ns/doap#bug-database
+            DoapUtil.writeRdfResourceElement( writer, "bug-database", 
project.getIssueManagement().getUrl() );
+        }
+        else
+        {
+            getLog().warn( "No URL was specified for issue management" );
+        }
+    }
+
+    /**
+     * Write DOAP mailing-list.
+     *
+     * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#mailing-list";>http://usefulinc.com/ns/doap#mailing-list</a>
+     */
+    private void writeMailingList( XMLWriter writer )
+    {
+        if ( project.getMailingLists() == null || 
project.getMailingLists().size() == 0 )
+        {
+            return;
+        }
+
+        XmlWriterUtil.writeLineBreak( writer );
+        XmlWriterUtil.writeCommentText( writer, "mailing list.", 2 );
+        for ( Iterator it = project.getMailingLists().iterator(); 
it.hasNext(); )
+        {
+            MailingList mailingList = (MailingList) it.next();
+
+            if ( StringUtils.isNotEmpty( mailingList.getArchive() ) )
+            {
+                // http://usefulinc.com/ns/doap#mailing-list
+                DoapUtil.writeRdfResourceElement( writer, "mailing-list", 
mailingList.getArchive() );
+            }
+            else
+            {
+                getLog().warn( "No archive was specified for mailing list " + 
mailingList.getName() );
+            }
+
+            if ( mailingList.getOtherArchives() != null )
+            {
+                for ( Iterator it2 = 
mailingList.getOtherArchives().iterator(); it2.hasNext(); )
+                {
+                    String otherArchive = (String) it2.next();
+
+                    if ( StringUtils.isNotEmpty( otherArchive ) )
+                    {
+                        // http://usefulinc.com/ns/doap#mailing-list
+                        DoapUtil.writeRdfResourceElement( writer, 
"mailing-list", otherArchive );
+                    }
+                    else
+                    {
+                        getLog().warn( "No other archive was specified for 
mailing list " + mailingList.getName() );
+                    }
+                }
+            }
+        }
+    }
+
     //TODO: we will actually have to pull all the metadata from the repository
     private void publishReleases()
     {
@@ -212,6 +405,9 @@
      * Write all DOAP repositories.
      *
      * @param writer
+     * @see <a 
href="http://usefulinc.com/ns/doap#Repository";>http://usefulinc.com/ns/doap#Repository</a>
+     * @see <a 
href="http://usefulinc.com/ns/doap#CVSRepository";>http://usefulinc.com/ns/doap#CVSRepository</a>
+     * @see <a 
href="http://usefulinc.com/ns/doap#SVNRepository";>http://usefulinc.com/ns/doap#SVNRepository</a>
      */
     private void writeSourceRepositories( XMLWriter writer )
     {


Reply via email to