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;
-
/**
* [EMAIL PROTECTED]
*/
@@ -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:[EMAIL PROTECTED]">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