You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/06/17 23:01:29 UTC
svn commit: r668827 - in /maven/plugins/trunk/maven-doap-plugin: pom.xml
src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
Author: vsiveton
Date: Tue Jun 17 14:01:28 2008
New Revision: 668827
URL: http://svn.apache.org/viewvc?rev=668827&view=rev
Log:
o bumped to p-u 1.5.4-snap
o bumped to maven 2.0.4 as prerequisite and dependencies
o fixed encoding in the generated doap file
o replaced ASF header in the generated doap file with a generated notice
o added a new utility class with static methods
Added:
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java (with props)
Modified:
maven/plugins/trunk/maven-doap-plugin/pom.xml
maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
Modified: maven/plugins/trunk/maven-doap-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-doap-plugin/pom.xml?rev=668827&r1=668826&r2=668827&view=diff
==============================================================================
--- maven/plugins/trunk/maven-doap-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-doap-plugin/pom.xml Tue Jun 17 14:01:28 2008
@@ -36,7 +36,7 @@
<description>Plugins which generate a DOAP file from information in a POM.</description>
<prerequisites>
- <maven>2.0.1</maven>
+ <maven>2.0.4</maven>
</prerequisites>
<issueManagement>
@@ -45,20 +45,23 @@
</issueManagement>
<dependencies>
+ <!-- Maven -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
- <version>2.0</version>
+ <version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
- <version>2.0</version>
+ <version>2.0.4</version>
</dependency>
+
+ <!-- misc -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>1.1</version>
+ <version>1.5.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
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=668827&r1=668826&r2=668827&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 Tue Jun 17 14:01:28 2008
@@ -19,23 +19,21 @@
* under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.Iterator;
+
import org.apache.maven.model.Developer;
import org.apache.maven.model.License;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
import org.codehaus.plexus.util.xml.XMLWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Iterator;
-
/**
* Generate a Description of a Project (DOAP) file from the information found in a POM.
*
@@ -47,8 +45,6 @@
public class DoapMojo
extends AbstractMojo
{
- public static final String RDF_RESOURCE = "rdf:resource";
-
/**
* The POM from which information will be extracted to create a DOAP file.
*
@@ -80,8 +76,6 @@
*/
private String language;
- private XMLWriter w;
-
/**
* {@inheritDoc}
*/
@@ -92,115 +86,79 @@
// setup pretty print xml writer
// ----------------------------------------------------------------------------
- Writer writer;
-
+ Writer w;
try
{
- writer = new FileWriter( doapFile );
+ w = WriterFactory.newXmlWriter( doapFile );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating DOAP file.", e );
}
- PrintWriter pw = new PrintWriter( writer );
-
- w = new PrettyPrintXMLWriter( pw );
+ XMLWriter writer = new PrettyPrintXMLWriter( w, project.getModel().getModelEncoding(), null );
// ----------------------------------------------------------------------------
// Convert POM to DOAP
// ----------------------------------------------------------------------------
- // Grab year for the license.
- SimpleDateFormat format = new SimpleDateFormat( "yyyy" );
- String year = format.format( new Date() );
-
- pw.println( "<!--" );
- pw.println( " ~ Copyright " + year + " The Apache Software Foundation." );
- pw.println( " ~" );
- pw.println( " ~ Licensed under the Apache License, Version 2.0 (the \"License\");" );
- pw.println( " ~ you may not use this file except in compliance with the License." );
- pw.println( " ~ You may obtain a copy of the License at" );
- pw.println( " ~" );
- pw.println( " ~ http://www.apache.org/licenses/LICENSE-2.0" );
- pw.println( " ~" );
- pw.println( " ~ Unless required by applicable law or agreed to in writing, software" );
- pw.println( " ~ distributed under the License is distributed on an \"AS IS\" BASIS," );
- pw.println( " ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." );
- pw.println( " ~ See the License for the specific language governing permissions and" );
- pw.println( " ~ limitations under the License." );
- pw.println( "--> " );
+ DoapUtil.writeHeader( writer );
// Heading
- w.startElement( "rdf:RDF" );
- w.addAttribute( "xml:lang", "en" );
- w.addAttribute( "xmlns", "http://usefulinc.com/ns/doap#" );
- w.addAttribute( "xmlns:rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#" );
- w.addAttribute( "xmlns:asfext", "http://projects.apache.org/ns/asfext#" );
- w.addAttribute( "xmlns:foaf", "http://xmlns.com/foaf/0.1/" );
+ writer.startElement( "rdf:RDF" );
+ writer.addAttribute( "xml:lang", "en" );
+ writer.addAttribute( "xmlns", "http://usefulinc.com/ns/doap#" );
+ writer.addAttribute( "xmlns:rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#" );
+ writer.addAttribute( "xmlns:asfext", "http://projects.apache.org/ns/asfext#" );
+ writer.addAttribute( "xmlns:foaf", "http://xmlns.com/foaf/0.1/" );
// Project
- w.startElement( "Project" );
- w.addAttribute( "rdf:about", "http://Maven.rdf.apache.org/" );
- element( "created", project.getInceptionYear() );
+ 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.
- rdfResourceElement( "license", ((License) project.getLicenses().get( 0 )).getUrl() );
+ DoapUtil.writeRdfResourceElement( writer, "license", ((License) project.getLicenses().get( 0 )).getUrl() );
}
- element( "name", project.getName() );
- rdfResourceElement( "homepage", project.getUrl() );
- rdfResourceElement( "asfext:pmc", project.getUrl() );
- element( "shortdesc", project.getDescription() );
- element( "description", project.getDescription() );
+ 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 )
{
- rdfResourceElement( "bug-database", project.getIssueManagement().getUrl() );
+ DoapUtil.writeRdfResourceElement( writer, "bug-database", project.getIssueManagement().getUrl() );
}
- rdfResourceElement( "mailing-list", composeUrl( project.getUrl() , "/mail-lists.html" ) );
- rdfResourceElement( "download-page", composeUrl( project.getUrl() , "/download.html" ) );
- element( "programming-language", language );
+ DoapUtil.writeRdfResourceElement( writer, "mailing-list", composeUrl( project.getUrl() , "/mail-lists.html" ) );
+ 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.
- rdfResourceElement( "category", "http://projects.apache.org/category/" + category );
+ DoapUtil.writeRdfResourceElement( writer, "category", "http://projects.apache.org/category/" + category );
// Releases
publishReleases();
// SCM
- publishSourceRepository();
+ publishSourceRepository( writer );
// Developers
- publishMaintainers();
+ publishMaintainers( writer );
- w.endElement();
- w.endElement();
-
- pw.close();
- }
+ writer.endElement();
+ writer.endElement();
- private void element( String name,
- String value )
- {
- if ( value != null )
+ try
{
- w.startElement( name );
- w.writeText( value );
- w.endElement();
+ w.close();
}
- }
-
- private void rdfResourceElement( String name,
- String value )
- {
- if ( value != null )
+ catch ( IOException e )
{
- w.startElement( name );
- w.addAttribute( RDF_RESOURCE, value );
- w.endElement();
+ throw new MojoExecutionException( "Error when closing the writer.", e );
}
}
@@ -209,7 +167,7 @@
{
}
- private void publishSourceRepository()
+ private void publishSourceRepository( XMLWriter w )
{
//<repository>
// <SVNRepository>
@@ -225,14 +183,14 @@
w.startElement( "repository" );
w.startElement( "SVNRepository" );
- rdfResourceElement( "location", project.getScm().getConnection().substring( 8 ) );
- rdfResourceElement( "browse", project.getScm().getUrl() );
+ DoapUtil.writeRdfResourceElement( w, "location", project.getScm().getConnection().substring( 8 ) );
+ DoapUtil.writeRdfResourceElement( w, "browse", project.getScm().getUrl() );
w.endElement();
w.endElement();
}
- private void publishMaintainers()
+ private void publishMaintainers( XMLWriter w )
{
//<maintainer>
// <foaf:Person>
@@ -255,7 +213,7 @@
w.startElement( "foaf:name" );
w.writeText( d.getName() );
w.endElement();
- rdfResourceElement( "foaf:mbox", "mailto:" + d.getEmail() );
+ DoapUtil.writeRdfResourceElement( w, "foaf:mbox", "mailto:" + d.getEmail() );
w.endElement();
w.endElement();
}
@@ -275,9 +233,7 @@
{
return base + path.substring( 1 );
}
- else
- {
- return base + path;
- }
+
+ return base + path;
}
}
Added: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java?rev=668827&view=auto
==============================================================================
--- maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java (added)
+++ maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java Tue Jun 17 14:01:28 2008
@@ -0,0 +1,109 @@
+package org.apache.maven.plugin.doap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.XMLWriter;
+import org.codehaus.plexus.util.xml.XmlWriterUtil;
+
+/**
+ * Utility class for DOAP mojo.
+ *
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ */
+public class DoapUtil
+{
+ private static final String RDF_RESOURCE = "rdf:resource";
+
+ /**
+ * Write comments in the DOAP file header
+ *
+ * @param writer not null
+ */
+ public static void writeHeader( XMLWriter writer )
+ {
+ XmlWriterUtil.writeLineBreak( writer );
+
+ XmlWriterUtil.writeCommentLineBreak( writer );
+ XmlWriterUtil.writeComment( writer, StringUtils.repeat( "=", 21 ) + " - DO NOT EDIT THIS FILE! - "
+ + StringUtils.repeat( "=", 21 ) );
+ XmlWriterUtil.writeCommentLineBreak( writer );
+ XmlWriterUtil.writeComment( writer, " " );
+ XmlWriterUtil.writeComment( writer, "Any modifications will be overwritten." );
+ XmlWriterUtil.writeComment( writer, " " );
+ DateFormat dateFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT, Locale.US );
+ XmlWriterUtil.writeComment( writer, "Generated by Maven Doap Plugin on "
+ + dateFormat.format( new Date( System.currentTimeMillis() ) ) );
+ XmlWriterUtil.writeComment( writer, "See: http://maven.apache.org/plugins/maven-doap-plugin/" );
+ XmlWriterUtil.writeComment( writer, " " );
+ XmlWriterUtil.writeCommentLineBreak( writer );
+
+ XmlWriterUtil.writeLineBreak( writer );
+ }
+
+ /**
+ * @param writer not null
+ * @param name not null
+ * @param value not null
+ * @throws IllegalArgumentException if name is null or empty
+ */
+ public static void writeElement( XMLWriter writer, String name, String value )
+ throws IllegalArgumentException
+ {
+ if ( StringUtils.isEmpty( name ) )
+ {
+ throw new IllegalArgumentException( "name should be defined" );
+ }
+
+ if ( value != null )
+ {
+ writer.startElement( name );
+ writer.writeText( value );
+ writer.endElement();
+ }
+ }
+
+ /**
+ * @param writer not null
+ * @param name not null
+ * @param value not null
+ * @throws IllegalArgumentException if name is null or empty
+ */
+ public static void writeRdfResourceElement( XMLWriter writer, String name, String value )
+ throws IllegalArgumentException
+ {
+ if ( StringUtils.isEmpty( name ) )
+ {
+ throw new IllegalArgumentException( "name should be defined" );
+ }
+
+ if ( value != null )
+ {
+ writer.startElement( name );
+ writer.addAttribute( RDF_RESOURCE, value );
+ writer.endElement();
+ }
+ }
+}
Propchange: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Re: svn commit: r668827 - in /maven/plugins/trunk/maven-doap-plugin:
pom.xml src/main/java/org/apache/maven/plugin/doap/DoapMojo.java src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
Posted by Dennis Lundberg <de...@apache.org>.
plexus-utils later than 1.1 has a Maven 2.0.6 prerequisite
vsiveton@apache.org wrote:
> Author: vsiveton
> Date: Tue Jun 17 14:01:28 2008
> New Revision: 668827
>
> URL: http://svn.apache.org/viewvc?rev=668827&view=rev
> Log:
> o bumped to p-u 1.5.4-snap
> o bumped to maven 2.0.4 as prerequisite and dependencies
> o fixed encoding in the generated doap file
> o replaced ASF header in the generated doap file with a generated notice
> o added a new utility class with static methods
>
> Added:
> maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java (with props)
> Modified:
> maven/plugins/trunk/maven-doap-plugin/pom.xml
> maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapMojo.java
>
> Modified: maven/plugins/trunk/maven-doap-plugin/pom.xml
> URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-doap-plugin/pom.xml?rev=668827&r1=668826&r2=668827&view=diff
> ==============================================================================
> --- maven/plugins/trunk/maven-doap-plugin/pom.xml (original)
> +++ maven/plugins/trunk/maven-doap-plugin/pom.xml Tue Jun 17 14:01:28 2008
> @@ -36,7 +36,7 @@
> <description>Plugins which generate a DOAP file from information in a POM.</description>
>
> <prerequisites>
> - <maven>2.0.1</maven>
> + <maven>2.0.4</maven>
> </prerequisites>
>
> <issueManagement>
> @@ -45,20 +45,23 @@
> </issueManagement>
>
> <dependencies>
> + <!-- Maven -->
> <dependency>
> <groupId>org.apache.maven</groupId>
> <artifactId>maven-project</artifactId>
> - <version>2.0</version>
> + <version>2.0.4</version>
> </dependency>
> <dependency>
> <groupId>org.apache.maven</groupId>
> <artifactId>maven-plugin-api</artifactId>
> - <version>2.0</version>
> + <version>2.0.4</version>
> </dependency>
> +
> + <!-- misc -->
> <dependency>
> <groupId>org.codehaus.plexus</groupId>
> <artifactId>plexus-utils</artifactId>
> - <version>1.1</version>
> + <version>1.5.4-SNAPSHOT</version>
> </dependency>
> </dependencies>
> </project>
>
> 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=668827&r1=668826&r2=668827&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 Tue Jun 17 14:01:28 2008
> @@ -19,23 +19,21 @@
> * under the License.
> */
>
> +import java.io.File;
> +import java.io.IOException;
> +import java.io.PrintWriter;
> +import java.io.Writer;
> +import java.util.Iterator;
> +
> import org.apache.maven.model.Developer;
> import org.apache.maven.model.License;
> import org.apache.maven.plugin.AbstractMojo;
> import org.apache.maven.plugin.MojoExecutionException;
> import org.apache.maven.project.MavenProject;
> +import org.codehaus.plexus.util.WriterFactory;
> import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
> import org.codehaus.plexus.util.xml.XMLWriter;
>
> -import java.io.File;
> -import java.io.FileWriter;
> -import java.io.IOException;
> -import java.io.PrintWriter;
> -import java.io.Writer;
> -import java.text.SimpleDateFormat;
> -import java.util.Date;
> -import java.util.Iterator;
> -
> /**
> * Generate a Description of a Project (DOAP) file from the information found in a POM.
> *
> @@ -47,8 +45,6 @@
> public class DoapMojo
> extends AbstractMojo
> {
> - public static final String RDF_RESOURCE = "rdf:resource";
> -
> /**
> * The POM from which information will be extracted to create a DOAP file.
> *
> @@ -80,8 +76,6 @@
> */
> private String language;
>
> - private XMLWriter w;
> -
> /**
> * {@inheritDoc}
> */
> @@ -92,115 +86,79 @@
> // setup pretty print xml writer
> // ----------------------------------------------------------------------------
>
> - Writer writer;
> -
> + Writer w;
> try
> {
> - writer = new FileWriter( doapFile );
> + w = WriterFactory.newXmlWriter( doapFile );
> }
> catch ( IOException e )
> {
> throw new MojoExecutionException( "Error creating DOAP file.", e );
> }
>
> - PrintWriter pw = new PrintWriter( writer );
> -
> - w = new PrettyPrintXMLWriter( pw );
> + XMLWriter writer = new PrettyPrintXMLWriter( w, project.getModel().getModelEncoding(), null );
>
> // ----------------------------------------------------------------------------
> // Convert POM to DOAP
> // ----------------------------------------------------------------------------
>
> - // Grab year for the license.
> - SimpleDateFormat format = new SimpleDateFormat( "yyyy" );
> - String year = format.format( new Date() );
> -
> - pw.println( "<!--" );
> - pw.println( " ~ Copyright " + year + " The Apache Software Foundation." );
> - pw.println( " ~" );
> - pw.println( " ~ Licensed under the Apache License, Version 2.0 (the \"License\");" );
> - pw.println( " ~ you may not use this file except in compliance with the License." );
> - pw.println( " ~ You may obtain a copy of the License at" );
> - pw.println( " ~" );
> - pw.println( " ~ http://www.apache.org/licenses/LICENSE-2.0" );
> - pw.println( " ~" );
> - pw.println( " ~ Unless required by applicable law or agreed to in writing, software" );
> - pw.println( " ~ distributed under the License is distributed on an \"AS IS\" BASIS," );
> - pw.println( " ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." );
> - pw.println( " ~ See the License for the specific language governing permissions and" );
> - pw.println( " ~ limitations under the License." );
> - pw.println( "--> " );
> + DoapUtil.writeHeader( writer );
>
> // Heading
> - w.startElement( "rdf:RDF" );
> - w.addAttribute( "xml:lang", "en" );
> - w.addAttribute( "xmlns", "http://usefulinc.com/ns/doap#" );
> - w.addAttribute( "xmlns:rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#" );
> - w.addAttribute( "xmlns:asfext", "http://projects.apache.org/ns/asfext#" );
> - w.addAttribute( "xmlns:foaf", "http://xmlns.com/foaf/0.1/" );
> + writer.startElement( "rdf:RDF" );
> + writer.addAttribute( "xml:lang", "en" );
> + writer.addAttribute( "xmlns", "http://usefulinc.com/ns/doap#" );
> + writer.addAttribute( "xmlns:rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#" );
> + writer.addAttribute( "xmlns:asfext", "http://projects.apache.org/ns/asfext#" );
> + writer.addAttribute( "xmlns:foaf", "http://xmlns.com/foaf/0.1/" );
>
> // Project
> - w.startElement( "Project" );
> - w.addAttribute( "rdf:about", "http://Maven.rdf.apache.org/" );
> - element( "created", project.getInceptionYear() );
> + 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.
> - rdfResourceElement( "license", ((License) project.getLicenses().get( 0 )).getUrl() );
> + DoapUtil.writeRdfResourceElement( writer, "license", ((License) project.getLicenses().get( 0 )).getUrl() );
> }
>
> - element( "name", project.getName() );
> - rdfResourceElement( "homepage", project.getUrl() );
> - rdfResourceElement( "asfext:pmc", project.getUrl() );
> - element( "shortdesc", project.getDescription() );
> - element( "description", project.getDescription() );
> + 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 )
> {
> - rdfResourceElement( "bug-database", project.getIssueManagement().getUrl() );
> + DoapUtil.writeRdfResourceElement( writer, "bug-database", project.getIssueManagement().getUrl() );
> }
> - rdfResourceElement( "mailing-list", composeUrl( project.getUrl() , "/mail-lists.html" ) );
> - rdfResourceElement( "download-page", composeUrl( project.getUrl() , "/download.html" ) );
> - element( "programming-language", language );
> + DoapUtil.writeRdfResourceElement( writer, "mailing-list", composeUrl( project.getUrl() , "/mail-lists.html" ) );
> + 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.
> - rdfResourceElement( "category", "http://projects.apache.org/category/" + category );
> + DoapUtil.writeRdfResourceElement( writer, "category", "http://projects.apache.org/category/" + category );
>
> // Releases
> publishReleases();
>
> // SCM
> - publishSourceRepository();
> + publishSourceRepository( writer );
>
> // Developers
> - publishMaintainers();
> + publishMaintainers( writer );
>
> - w.endElement();
> - w.endElement();
> -
> - pw.close();
> - }
> + writer.endElement();
> + writer.endElement();
>
> - private void element( String name,
> - String value )
> - {
> - if ( value != null )
> + try
> {
> - w.startElement( name );
> - w.writeText( value );
> - w.endElement();
> + w.close();
> }
> - }
> -
> - private void rdfResourceElement( String name,
> - String value )
> - {
> - if ( value != null )
> + catch ( IOException e )
> {
> - w.startElement( name );
> - w.addAttribute( RDF_RESOURCE, value );
> - w.endElement();
> + throw new MojoExecutionException( "Error when closing the writer.", e );
> }
> }
>
> @@ -209,7 +167,7 @@
> {
> }
>
> - private void publishSourceRepository()
> + private void publishSourceRepository( XMLWriter w )
> {
> //<repository>
> // <SVNRepository>
> @@ -225,14 +183,14 @@
>
> w.startElement( "repository" );
> w.startElement( "SVNRepository" );
> - rdfResourceElement( "location", project.getScm().getConnection().substring( 8 ) );
> - rdfResourceElement( "browse", project.getScm().getUrl() );
> + DoapUtil.writeRdfResourceElement( w, "location", project.getScm().getConnection().substring( 8 ) );
> + DoapUtil.writeRdfResourceElement( w, "browse", project.getScm().getUrl() );
> w.endElement();
> w.endElement();
>
> }
>
> - private void publishMaintainers()
> + private void publishMaintainers( XMLWriter w )
> {
> //<maintainer>
> // <foaf:Person>
> @@ -255,7 +213,7 @@
> w.startElement( "foaf:name" );
> w.writeText( d.getName() );
> w.endElement();
> - rdfResourceElement( "foaf:mbox", "mailto:" + d.getEmail() );
> + DoapUtil.writeRdfResourceElement( w, "foaf:mbox", "mailto:" + d.getEmail() );
> w.endElement();
> w.endElement();
> }
> @@ -275,9 +233,7 @@
> {
> return base + path.substring( 1 );
> }
> - else
> - {
> - return base + path;
> - }
> +
> + return base + path;
> }
> }
>
> Added: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
> URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java?rev=668827&view=auto
> ==============================================================================
> --- maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java (added)
> +++ maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java Tue Jun 17 14:01:28 2008
> @@ -0,0 +1,109 @@
> +package org.apache.maven.plugin.doap;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied. See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import java.text.DateFormat;
> +import java.util.Date;
> +import java.util.Locale;
> +
> +import org.codehaus.plexus.util.StringUtils;
> +import org.codehaus.plexus.util.xml.XMLWriter;
> +import org.codehaus.plexus.util.xml.XmlWriterUtil;
> +
> +/**
> + * Utility class for DOAP mojo.
> + *
> + * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
> + * @version $Id$
> + */
> +public class DoapUtil
> +{
> + private static final String RDF_RESOURCE = "rdf:resource";
> +
> + /**
> + * Write comments in the DOAP file header
> + *
> + * @param writer not null
> + */
> + public static void writeHeader( XMLWriter writer )
> + {
> + XmlWriterUtil.writeLineBreak( writer );
> +
> + XmlWriterUtil.writeCommentLineBreak( writer );
> + XmlWriterUtil.writeComment( writer, StringUtils.repeat( "=", 21 ) + " - DO NOT EDIT THIS FILE! - "
> + + StringUtils.repeat( "=", 21 ) );
> + XmlWriterUtil.writeCommentLineBreak( writer );
> + XmlWriterUtil.writeComment( writer, " " );
> + XmlWriterUtil.writeComment( writer, "Any modifications will be overwritten." );
> + XmlWriterUtil.writeComment( writer, " " );
> + DateFormat dateFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT, Locale.US );
> + XmlWriterUtil.writeComment( writer, "Generated by Maven Doap Plugin on "
> + + dateFormat.format( new Date( System.currentTimeMillis() ) ) );
> + XmlWriterUtil.writeComment( writer, "See: http://maven.apache.org/plugins/maven-doap-plugin/" );
> + XmlWriterUtil.writeComment( writer, " " );
> + XmlWriterUtil.writeCommentLineBreak( writer );
> +
> + XmlWriterUtil.writeLineBreak( writer );
> + }
> +
> + /**
> + * @param writer not null
> + * @param name not null
> + * @param value not null
> + * @throws IllegalArgumentException if name is null or empty
> + */
> + public static void writeElement( XMLWriter writer, String name, String value )
> + throws IllegalArgumentException
> + {
> + if ( StringUtils.isEmpty( name ) )
> + {
> + throw new IllegalArgumentException( "name should be defined" );
> + }
> +
> + if ( value != null )
> + {
> + writer.startElement( name );
> + writer.writeText( value );
> + writer.endElement();
> + }
> + }
> +
> + /**
> + * @param writer not null
> + * @param name not null
> + * @param value not null
> + * @throws IllegalArgumentException if name is null or empty
> + */
> + public static void writeRdfResourceElement( XMLWriter writer, String name, String value )
> + throws IllegalArgumentException
> + {
> + if ( StringUtils.isEmpty( name ) )
> + {
> + throw new IllegalArgumentException( "name should be defined" );
> + }
> +
> + if ( value != null )
> + {
> + writer.startElement( name );
> + writer.addAttribute( RDF_RESOURCE, value );
> + writer.endElement();
> + }
> + }
> +}
>
> Propchange: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: maven/plugins/trunk/maven-doap-plugin/src/main/java/org/apache/maven/plugin/doap/DoapUtil.java
> ------------------------------------------------------------------------------
> svn:keywords = Author Date Id Revision
>
>
>
--
Dennis Lundberg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org