You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by br...@apache.org on 2005/12/23 05:50:27 UTC
svn commit: r358704 - in /maven/doxia/trunk/doxia-decoration-model/src:
main/java/org/apache/maven/doxia/site/decoration/inheritance/
test/java/org/apache/maven/doxia/site/decoration/inheritance/ test/resources/
Author: brett
Date: Thu Dec 22 20:50:17 2005
New Revision: 358704
URL: http://svn.apache.org/viewcvs?rev=358704&view=rev
Log:
PR: MSITE-44
strip unnecessary base url from some links
Added:
maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml (with props)
Modified:
maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
maven/doxia/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
maven/doxia/trunk/doxia-decoration-model/src/test/resources/fully-populated-merged.xml
Modified: maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java?rev=358704&r1=358703&r2=358704&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java (original)
+++ maven/doxia/trunk/doxia-decoration-model/src/main/java/org/apache/maven/doxia/site/decoration/inheritance/DefaultDecorationModelInheritanceAssembler.java Thu Dec 22 20:50:17 2005
@@ -52,14 +52,14 @@
{
child.setBannerLeft( parent.getBannerLeft() );
- resolveBannerPaths( child.getBannerLeft(), prefix );
+ resolveBannerPaths( child.getBannerLeft(), prefix, parentBaseUrl );
}
if ( child.getBannerRight() == null )
{
child.setBannerRight( parent.getBannerRight() );
- resolveBannerPaths( child.getBannerRight(), prefix );
+ resolveBannerPaths( child.getBannerRight(), prefix, parentBaseUrl );
}
if ( child.getPublishDate() == null )
@@ -67,26 +67,32 @@
child.setPublishDate( parent.getPublishDate() );
}
- child.setPoweredBy( mergePoweredByLists( child.getPoweredBy(), parent.getPoweredBy(), prefix ) );
+ child.setPoweredBy(
+ mergePoweredByLists( child.getPoweredBy(), parent.getPoweredBy(), prefix, parentBaseUrl ) );
- assembleBodyInheritance( child, parent, prefix );
+ assembleBodyInheritance( child, parent, prefix, parentBaseUrl );
assembleCustomInheritance( child, parent );
}
}
- private void resolveBannerPaths( Banner banner, String prefix )
+ private void resolveBannerPaths( Banner banner, String prefix, String baseUrl )
{
if ( banner != null )
{
- banner.setHref( resolvePath( banner.getHref(), prefix ) );
- banner.setSrc( resolvePath( banner.getSrc(), prefix ) );
+ banner.setHref( resolvePath( banner.getHref(), prefix, baseUrl ) );
+ banner.setSrc( resolvePath( banner.getSrc(), prefix, baseUrl ) );
}
}
- private String resolvePath( String href, String prefix )
+ private String resolvePath( String href, String prefix, String baseUrl )
{
String relativePath = href;
+ if ( relativePath.startsWith( baseUrl ) )
+ {
+ relativePath = relativePath.substring( baseUrl.length() );
+ }
+
if ( relativePath.startsWith( "/" ) )
{
relativePath = relativePath.substring( 1 );
@@ -106,7 +112,7 @@
}
}
- private void assembleBodyInheritance( DecorationModel child, DecorationModel parent, String prefix )
+ private void assembleBodyInheritance( DecorationModel child, DecorationModel parent, String prefix, String baseUrl )
{
Body cBody = child.getBody();
Body pBody = parent.getBody();
@@ -128,14 +134,15 @@
cBody.setHead( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom) cBody.getHead(), (Xpp3Dom) pBody.getHead() ) );
}
- cBody.setLinks( mergeLinkItemLists( cBody.getLinks(), pBody.getLinks(), prefix ) );
- cBody.setBreadcrumbs( mergeLinkItemLists( cBody.getBreadcrumbs(), pBody.getBreadcrumbs(), prefix ) );
+ cBody.setLinks( mergeLinkItemLists( cBody.getLinks(), pBody.getLinks(), prefix, baseUrl ) );
+ cBody.setBreadcrumbs(
+ mergeLinkItemLists( cBody.getBreadcrumbs(), pBody.getBreadcrumbs(), prefix, baseUrl ) );
- cBody.setMenus( mergeMenus( cBody.getMenus(), pBody.getMenus(), prefix ) );
+ cBody.setMenus( mergeMenus( cBody.getMenus(), pBody.getMenus(), prefix, baseUrl ) );
}
}
- private List mergeMenus( List dominant, List recessive, String prefix )
+ private List mergeMenus( List dominant, List recessive, String prefix, String baseUrl )
{
List menus = new ArrayList();
@@ -156,41 +163,41 @@
menus.add( topCounter, menu );
topCounter++;
- resolveMenuPaths( menu.getItems(), prefix );
+ resolveMenuPaths( menu.getItems(), prefix, baseUrl );
}
else if ( "bottom".equals( menu.getInherit() ) )
{
menus.add( menu );
- resolveMenuPaths( menu.getItems(), prefix );
+ resolveMenuPaths( menu.getItems(), prefix, baseUrl );
}
}
return menus;
}
- private void resolveMenuPaths( List items, String prefix )
+ private void resolveMenuPaths( List items, String prefix, String baseUrl )
{
for ( Iterator i = items.iterator(); i.hasNext(); )
{
MenuItem item = (MenuItem) i.next();
- resolveLinkItemPaths( item, prefix );
- resolveMenuPaths( item.getItems(), prefix );
+ resolveLinkItemPaths( item, prefix, baseUrl );
+ resolveMenuPaths( item.getItems(), prefix, baseUrl );
}
}
- private void resolveLinkItemPaths( LinkItem item, String prefix )
+ private void resolveLinkItemPaths( LinkItem item, String prefix, String baseUrl )
{
- item.setHref( resolvePath( item.getHref(), prefix ) );
+ item.setHref( resolvePath( item.getHref(), prefix, baseUrl ) );
}
- private void resolveLogoPaths( Logo logo, String prefix )
+ private void resolveLogoPaths( Logo logo, String prefix, String baseUrl )
{
- logo.setImg( resolvePath( logo.getImg(), prefix ) );
- resolveLinkItemPaths( logo, prefix );
+ logo.setImg( resolvePath( logo.getImg(), prefix, baseUrl ) );
+ resolveLinkItemPaths( logo, prefix, baseUrl );
}
- private List mergeLinkItemLists( List dominant, List recessive, String prefix )
+ private List mergeLinkItemLists( List dominant, List recessive, String prefix, String baseUrl )
{
List items = new ArrayList();
@@ -209,14 +216,14 @@
{
items.add( item );
- resolveLinkItemPaths( item, prefix );
+ resolveLinkItemPaths( item, prefix, baseUrl );
}
}
return items;
}
- private List mergePoweredByLists( List dominant, List recessive, String prefix )
+ private List mergePoweredByLists( List dominant, List recessive, String prefix, String baseUrl )
{
List logos = new ArrayList();
@@ -235,7 +242,7 @@
{
logos.add( logo );
- resolveLogoPaths( logo, prefix );
+ resolveLogoPaths( logo, prefix, baseUrl );
}
}
Modified: maven/doxia/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java?rev=358704&r1=358703&r2=358704&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java (original)
+++ maven/doxia/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/DecorationModelInheritenceAssemblerTest.java Thu Dec 22 20:50:17 2005
@@ -124,6 +124,35 @@
assertEquals( "check menu item href", "../special/", menuItem.getHref() );
}
+ public void testPathsResolvedForSubsiteUrls()
+ throws IOException, XmlPullParserException
+ {
+ DecorationModel parentModel = readModel( "subsite-urls.xml" );
+ DecorationModel childModel = readModel( "empty.xml" );
+ assembler.assembleModelInheritance( childModel, parentModel, "http://maven.apache.org/doxia/",
+ "http://maven.apache.org" );
+
+ assertEquals( "check left banner href", "../banner/left", childModel.getBannerLeft().getHref() );
+ assertEquals( "check left banner image", "../images/jakarta-logo.gif", childModel.getBannerLeft().getSrc() );
+
+ assertEquals( "check right banner href", "../banner/right/", childModel.getBannerRight().getHref() );
+ assertEquals( "check right banner image", "../commons/images/logo.png", childModel.getBannerRight().getSrc() );
+
+ Logo poweredBy = (Logo) childModel.getPoweredBy().get( 0 );
+ assertEquals( "check powered by logo href", "../tomcat", poweredBy.getHref() );
+ assertEquals( "check powered by logo image", "../tomcat/logo.gif", poweredBy.getImg() );
+
+ LinkItem breadcrumb = (LinkItem) childModel.getBody().getBreadcrumbs().get( 0 );
+ assertEquals( "check breadcrumb href", "../apache", breadcrumb.getHref() );
+
+ LinkItem link = (LinkItem) childModel.getBody().getLinks().get( 0 );
+ assertEquals( "check link href", "../bouncycastle/", link.getHref() );
+
+ Menu menu = (Menu) childModel.getBody().getMenus().get( 0 );
+ LinkItem menuItem = (LinkItem) menu.getItems().get( 0 );
+ assertEquals( "check menu item href", "../special/", menuItem.getHref() );
+ }
+
public void testPathsResolvedForRelativeUrlsDepthOfTwo()
throws IOException, XmlPullParserException
{
Modified: maven/doxia/trunk/doxia-decoration-model/src/test/resources/fully-populated-merged.xml
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/test/resources/fully-populated-merged.xml?rev=358704&r1=358703&r2=358704&view=diff
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/test/resources/fully-populated-merged.xml (original)
+++ maven/doxia/trunk/doxia-decoration-model/src/test/resources/fully-populated-merged.xml Thu Dec 22 20:50:17 2005
@@ -29,7 +29,7 @@
<publishDate format="fmt" position="top"/>
<poweredBy>
- <logo name="Maven" href="http://maven.apache.org" img="http://maven.apache.org/images/maven-feather.png"/>
+ <logo name="Maven" href="http://maven.apache.org" img="../images/maven-feather.png"/>
</poweredBy>
<body>
Added: maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml
URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml?rev=358704&view=auto
==============================================================================
--- maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml (added)
+++ maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml Thu Dec 22 20:50:17 2005
@@ -0,0 +1,46 @@
+<!--
+ ~ Copyright 2004-2005 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ ~
+ -->
+
+<project name="Parent Name">
+ <bannerLeft>
+ <name>The Jakarta Project</name>
+ <src>http://maven.apache.org/images/jakarta-logo.gif</src>
+ <href>http://maven.apache.org/banner/left</href>
+ </bannerLeft>
+ <bannerRight>
+ <name>Jakarta Commons Sandbox</name>
+ <src>http://maven.apache.org/commons/images/logo.png</src>
+ <href>http://maven.apache.org/banner/right/</href>
+ </bannerRight>
+
+ <poweredBy>
+ <logo name="Tomcat" href="tomcat" img="http://maven.apache.org/tomcat/logo.gif"/>
+ </poweredBy>
+
+ <body>
+ <breadcrumbs>
+ <item name="Apache" href="http://maven.apache.org/apache"/>
+ </breadcrumbs>
+
+ <links>
+ <item name="Bouncy Castle" href="http://maven.apache.org/bouncycastle/"/>
+ </links>
+
+ <menu name="Special" inherit="top">
+ <item name="Special" href="http://maven.apache.org/special/"/>
+ </menu>
+ </body>
+</project>
Propchange: maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/doxia/trunk/doxia-decoration-model/src/test/resources/subsite-urls.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision