From f5130c14a2bcf7e4e067e698b041b5f00462a2f4 Mon Sep 17 00:00:00 2001 From: Vincent Siveton Date: Fri, 29 Jul 2005 12:37:56 +0000 Subject: [PATCH] MNG-661: added link between parent project and modules git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@226364 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/maven/doxia/DoxiaMojo.java | 97 ++++++++++++++++++- .../src/main/resources/default-site.xml | 2 + .../main/resources/site-plugin_en.properties | 3 + .../main/resources/site-plugin_fr.properties | 3 + .../site-plugin-test8/framework/pom.xml | 65 +++++++++++++ .../apache/maven/plugin/site/test8/App.java | 13 +++ .../framework/src/site/apt/index.apt | 12 +++ .../framework/src/site/site.xml | 39 ++++++++ .../maven/plugin/site/test8/AppTest.java | 38 ++++++++ .../site-plugin-test8/framework2/pom.xml | 65 +++++++++++++ .../apache/maven/plugin/site/test8/App.java | 13 +++ .../framework2/src/site/apt/index.apt | 12 +++ .../framework2/src/site/site.xml | 39 ++++++++ .../maven/plugin/site/test8/AppTest.java | 38 ++++++++ .../test/projects/site-plugin-test8/pom.xml | 64 ++++++++++++ .../apache/maven/plugin/site/test8/App.java | 13 +++ .../site-plugin-test8/src/site/apt/index.apt | 12 +++ .../site-plugin-test8/src/site/site.xml | 39 ++++++++ .../maven/plugin/site/test8/AppTest.java | 38 ++++++++ 19 files changed, 603 insertions(+), 2 deletions(-) create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/pom.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/main/java/org/apache/maven/plugin/site/test8/App.java create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/apt/index.apt create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/site.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/pom.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/main/java/org/apache/maven/plugin/site/test8/App.java create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/apt/index.apt create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/site.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/pom.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/main/java/org/apache/maven/plugin/site/test8/App.java create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/apt/index.apt create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/site.xml create mode 100644 maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java diff --git a/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java b/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java index 2da67da784..d9e42d85f1 100644 --- a/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java +++ b/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java @@ -151,6 +151,12 @@ public class DoxiaMojo */ private String locales; + /** + * @parameter expression="${addModules}" + * default-value="true" + */ + private boolean addModules; + /** * @parameter expression="${component.org.codehaus.plexus.siterenderer.Renderer}" * @required @@ -443,6 +449,26 @@ public void execute() { copyDirectory( resourcesDirectory, localeOutputDirectory ); } + + // Copy the generated site in parent site if needed to provide module links + if ( addModules ) + { + MavenProject parentProject = project.getParent(); + if ( parentProject != null ) + { + // TODO Handle user plugin configuration + File parentSiteDir = new File( parentProject.getBasedir(), parentProject.getBuild().getDirectory() + + File.separator + "site" + File.separator + project.getArtifactId() ); + + if ( !parentSiteDir.exists() ) + { + parentSiteDir.mkdirs(); + } + + File siteDir = new File( outputDirectory ); + FileUtils.copyDirectoryStructure( siteDir, parentSiteDir ); + } + } } } catch ( MavenReportException e ) @@ -484,8 +510,9 @@ else if ( MavenReport.CATEGORY_PROJECT_REPORTS.equals( report.getCategoryName() private String getReportsMenu( Locale locale ) { StringBuffer buffer = new StringBuffer(); - // TODO i18n - buffer.append( "\n" ); + buffer.append( "\n" ); buffer.append( " \n" ); + + List modules = project.getModules(); + if ( project.getModules() != null ) + { + for (Iterator it = modules.iterator(); it.hasNext();) + { + String module = (String)it.next(); + + buffer.append( " \n" ); + } + } + + buffer.append( "\n" ); + + return buffer.toString(); + } + + /** + * Generate a menu for the parent project + * + * @param locale the locale wanted + * @return a XML menu for the parent project + */ + private String getProjectParentMenu( Locale locale ) + { + StringBuffer buffer = new StringBuffer(); + buffer.append( "\n" ); + + buffer.append( " \n" ); + + buffer.append( "\n" ); + + return buffer.toString(); + } + /** * @todo should only be needed once */ @@ -566,6 +646,19 @@ private InputStream getSiteDescriptor( List reports, Locale locale ) props.put( "reports", getReportsMenu( locale ) ); } + if ( project.getParent() != null ) + { + props.put( "parentProject", getProjectParentMenu( locale ) ); + } + + if ( addModules ) + { + if ( ( project.getModules() != null ) && ( project.getModules().size() > 0 ) ) + { + props.put( "modules", getModulesMenu( locale ) ); + } + } + // TODO: interpolate ${project.*} in general if ( project.getName() != null ) diff --git a/maven-plugins/maven-site-plugin/src/main/resources/default-site.xml b/maven-plugins/maven-site-plugin/src/main/resources/default-site.xml index 3fa181c80a..1451edd565 100644 --- a/maven-plugins/maven-site-plugin/src/main/resources/default-site.xml +++ b/maven-plugins/maven-site-plugin/src/main/resources/default-site.xml @@ -7,6 +7,8 @@ + ${parentProject} + ${modules} ${reports} diff --git a/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_en.properties b/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_en.properties index 25544ec4fe..531ffbd73e 100644 --- a/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_en.properties +++ b/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_en.properties @@ -28,6 +28,9 @@ report.information.description2=on behalf of the project. report.information.sectionTitle=Overview report.information.column.description=Description report.information.column.document=Document +report.menu.projectdocumentation=Project Documentation +report.menu.parentproject=Parent Project +report.menu.projectmodules=Modules report.menu.about=About report.menu.projectinformation=Project Info report.menu.projectreports=Project Reports diff --git a/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_fr.properties b/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_fr.properties index 1830b72d11..312ffd4045 100644 --- a/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_fr.properties +++ b/maven-plugins/maven-site-plugin/src/main/resources/site-plugin_fr.properties @@ -28,6 +28,9 @@ report.information.description2=le projet lui-m report.information.sectionTitle=Vue d'ensemble report.information.column.description=Description report.information.column.document=Document +report.menu.projectdocumentation=Documentation sur le projet +report.menu.parentproject=Projet parent +report.menu.projectmodules=Modules report.menu.about=A propos de report.menu.projectinformation=Info Projet report.menu.projectreports=Rapports Projet diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/pom.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/pom.xml new file mode 100644 index 0000000000..8fe07e57db --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/pom.xml @@ -0,0 +1,65 @@ + + + + + + 4.0.0 + + org.apache.maven.plugin.site.test8 + site-plugin-test8 + 1.0-SNAPSHOT + + org.apache.maven.plugin.site.test8 + framework + jar + 1.0-SNAPSHOT + 2005 + Framework module for the Maven Site Plugin Test8 MNG-661 issue + Framework module to test the MNG-661 issue + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + + vsiveton + Vincent Siveton + vsiveton@apache.org + Apache Software Foundation + + Java Developer + + -5 + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/main/java/org/apache/maven/plugin/site/test8/App.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/main/java/org/apache/maven/plugin/site/test8/App.java new file mode 100644 index 0000000000..ee2ae5ab37 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/main/java/org/apache/maven/plugin/site/test8/App.java @@ -0,0 +1,13 @@ +package org.apache.maven.plugin.site.test8; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/apt/index.apt b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/apt/index.apt new file mode 100644 index 0000000000..d1c030610c --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/apt/index.apt @@ -0,0 +1,12 @@ + ------ + Configuring Site Plugin + ------ + Vincent Siveton + ------ + 29 July 2005 + ------ + + +Site Plugin MNG-661 (framework module) + + Todo diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/site.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/site.xml new file mode 100644 index 0000000000..7666739526 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/site/site.xml @@ -0,0 +1,39 @@ + + + + + + + Maven Site + http://maven.apache.org/images/apache-maven-project.png + http://maven.apache.org/ + + + http://maven.apache.org/images/maven-small.gif + + + + + + + ${parentProject} + ${modules} + ${reports} + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java new file mode 100644 index 0000000000..91f993a464 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java @@ -0,0 +1,38 @@ +package org.apache.maven.plugin.site.test8; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/pom.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/pom.xml new file mode 100644 index 0000000000..104dcd0afc --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/pom.xml @@ -0,0 +1,65 @@ + + + + + + 4.0.0 + + org.apache.maven.plugin.site.test8 + site-plugin-test8 + 1.0-SNAPSHOT + + org.apache.maven.plugin.site.test8 + framework2 + jar + 1.0-SNAPSHOT + 2005 + Framework2 module for the Maven Site Plugin Test8 MNG-661 issue + Framework2 module to test the MNG-661 issue + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + + vsiveton + Vincent Siveton + vsiveton@apache.org + Apache Software Foundation + + Java Developer + + -5 + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/main/java/org/apache/maven/plugin/site/test8/App.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/main/java/org/apache/maven/plugin/site/test8/App.java new file mode 100644 index 0000000000..ee2ae5ab37 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/main/java/org/apache/maven/plugin/site/test8/App.java @@ -0,0 +1,13 @@ +package org.apache.maven.plugin.site.test8; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/apt/index.apt b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/apt/index.apt new file mode 100644 index 0000000000..a6b902c778 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/apt/index.apt @@ -0,0 +1,12 @@ + ------ + Configuring Site Plugin + ------ + Vincent Siveton + ------ + 29 July 2005 + ------ + + +Site Plugin MNG-661 (framework2 module) + + Todo diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/site.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/site.xml new file mode 100644 index 0000000000..7666739526 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/site/site.xml @@ -0,0 +1,39 @@ + + + + + + + Maven Site + http://maven.apache.org/images/apache-maven-project.png + http://maven.apache.org/ + + + http://maven.apache.org/images/maven-small.gif + + + + + + + ${parentProject} + ${modules} + ${reports} + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java new file mode 100644 index 0000000000..91f993a464 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/framework2/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java @@ -0,0 +1,38 @@ +package org.apache.maven.plugin.site.test8; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/pom.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/pom.xml new file mode 100644 index 0000000000..abaa329da9 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/pom.xml @@ -0,0 +1,64 @@ + + + + + + 4.0.0 + org.apache.maven.plugin.site.test8 + site-plugin-test8 + jar + 1.0-SNAPSHOT + 2005 + Maven Site Plugin Test8 MNG-661 issue + Test the MNG-661 issue + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + + vsiveton + Vincent Siveton + vsiveton@apache.org + Apache Software Foundation + + Java Developer + + -5 + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + framework + framework2 + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/main/java/org/apache/maven/plugin/site/test8/App.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/main/java/org/apache/maven/plugin/site/test8/App.java new file mode 100644 index 0000000000..ee2ae5ab37 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/main/java/org/apache/maven/plugin/site/test8/App.java @@ -0,0 +1,13 @@ +package org.apache.maven.plugin.site.test8; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/apt/index.apt b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/apt/index.apt new file mode 100644 index 0000000000..dddcc232e6 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/apt/index.apt @@ -0,0 +1,12 @@ + ------ + Configuring Site Plugin + ------ + Vincent Siveton + ------ + 29 July 2005 + ------ + + +Site Plugin MNG-661 + + Todo diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/site.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/site.xml new file mode 100644 index 0000000000..814770dc80 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/site/site.xml @@ -0,0 +1,39 @@ + + + + + + + Maven Site + http://maven.apache.org/images/apache-maven-project.png + http://maven.apache.org/ + + + http://maven.apache.org/images/maven-small.gif + + + + + + + ${parentProject} + ${modules} + ${reports} + + diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java new file mode 100644 index 0000000000..91f993a464 --- /dev/null +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test8/src/test/java/org/apache/maven/plugin/site/test8/AppTest.java @@ -0,0 +1,38 @@ +package org.apache.maven.plugin.site.test8; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}