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 2009/06/01 18:47:45 UTC
svn commit: r780718 -
/maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java
Author: vsiveton
Date: Mon Jun 1 16:47:44 2009
New Revision: 780718
URL: http://svn.apache.org/viewvc?rev=780718&view=rev
Log:
o specify default creator and creation date
o wrap developer to author
Modified:
maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java
Modified: maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java?rev=780718&r1=780717&r2=780718&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java (original)
+++ maven/plugins/trunk/maven-pdf-plugin/src/main/java/org/apache/maven/plugins/pdf/PdfMojo.java Mon Jun 1 16:47:44 2009
@@ -26,6 +26,7 @@
import java.io.Writer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
@@ -40,6 +41,7 @@
import org.apache.maven.doxia.docrenderer.DocumentRenderer;
import org.apache.maven.doxia.docrenderer.DocumentRendererException;
import org.apache.maven.doxia.docrenderer.pdf.PdfRenderer;
+import org.apache.maven.doxia.document.DocumentAuthor;
import org.apache.maven.doxia.document.DocumentCover;
import org.apache.maven.doxia.document.DocumentMeta;
import org.apache.maven.doxia.document.DocumentModel;
@@ -56,6 +58,7 @@
import org.apache.maven.doxia.tools.SiteTool;
import org.apache.maven.doxia.tools.SiteToolException;
+import org.apache.maven.model.Developer;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -333,9 +336,12 @@
throws IOException, MojoExecutionException
{
DocumentMeta meta = new DocumentMeta();
- meta.setAuthor( getProjectOrganizationName() );
meta.setTitle( getProjectName() );
meta.setDescription( project.getDescription() );
+ meta.setAuthors( getAuthors() );
+ meta.setCreator( System.getProperty( "user.name" ) );
+ meta.setCreationDate( new Date() );
+ // Note: no default keywords
DocumentCover cover = new DocumentCover();
cover.setCoverTitle( getProjectName() );
@@ -344,6 +350,7 @@
cover.setDate( ISO_8601_FORMAT.format( Calendar.getInstance().getTime() ) );
cover.setProjectName( getProjectName() );
cover.setCompanyName( getProjectOrganizationName() );
+ cover.setAuthors( getAuthors() );
DocumentModel docModel = new DocumentModel();
docModel.setModelEncoding( getProjectModelEncoding() );
@@ -412,26 +419,90 @@
return docModel;
}
+ /**
+ * @return the project organization name if not empty, or the current System user name otherwise.
+ */
private String getProjectOrganizationName()
{
- return ( project.getOrganization() != null
- && StringUtils.isNotEmpty( project.getOrganization().getName() )
- ? project.getOrganization().getName()
- : System.getProperty( "user.name" ) );
+ if ( project.getOrganization() != null && StringUtils.isNotEmpty( project.getOrganization().getName() ) )
+ {
+ return project.getOrganization().getName();
+ }
+
+ return System.getProperty( "user.name" );
}
+ /**
+ * @return the project name if not empty, or the project groupId and artifactId.
+ */
private String getProjectName()
{
- return ( StringUtils.isEmpty( project.getName() )
- ? project.getGroupId() + ":" + project.getArtifactId()
- : project.getName() );
+ if ( StringUtils.isEmpty( project.getName() ) )
+ {
+ return project.getGroupId() + ":" + project.getArtifactId();
+ }
+
+ return project.getName();
}
+ /**
+ * @return the project encoding if defined, or UTF-8 otherwise.
+ */
private String getProjectModelEncoding()
{
- return ( StringUtils.isEmpty( project.getModel().getModelEncoding() )
- ? "UTF-8"
- : project.getModel().getModelEncoding() );
+ if ( StringUtils.isEmpty( project.getModel().getModelEncoding() ) )
+ {
+ return "UTF-8";
+ }
+
+ return project.getModel().getModelEncoding();
+ }
+
+ /**
+ * Wrap the list of project {@link Developer} to a list of {@link DocumentAuthor}.
+ *
+ * @return a list of authors from the project developers.
+ */
+ private List getAuthors()
+ {
+ if ( project.getDevelopers() == null )
+ {
+ return null;
+ }
+
+ List ret = new ArrayList();
+ for ( Iterator it = project.getDevelopers().iterator(); it.hasNext(); )
+ {
+ Developer developer = (Developer) it.next();
+
+ DocumentAuthor author = new DocumentAuthor();
+ author.setName( developer.getName() );
+ author.setEmail( developer.getEmail() );
+ author.setCompanyName( developer.getOrganization() );
+ StringBuffer roles = null;
+ for ( Iterator it2 = developer.getRoles().iterator(); it2.hasNext(); )
+ {
+ String role = (String) it2.next();
+
+ if ( roles == null )
+ {
+ roles = new StringBuffer();
+ }
+ roles.append( role );
+ if ( it2.hasNext() )
+ {
+ roles.append( "," );
+ }
+ }
+ if ( roles != null )
+ {
+ author.setPosition( roles.toString() );
+ }
+
+ ret.add( author );
+ }
+
+ return ret;
}
/**