This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch site-model-rework in repository https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git
commit 073afea6a2262633fb1171bce42cdf5f7b91e69b Author: Michael Osipov <[email protected]> AuthorDate: Sun Jun 25 00:46:36 2023 +0200 [DOXIASITETOOLS-311] Rework and simplify the site model This closes #110 --- .../apache/maven/doxia/tools/DefaultSiteTool.java | 209 ++++++++++++++++- .../src/main/resources/default-site.xml | 10 +- .../org/apache/maven/doxia/tools/SiteToolTest.java | 41 +++- .../unit/interpolated-site/src/site/site.xml | 19 +- .../interpolation-child-test/src/site/site.xml | 49 ++-- .../interpolation-parent-test/src/site/site.xml | 21 +- .../old-to-new-site-model-conversion-test/pom.xml | 36 +-- .../src/site/new-site.xml | 80 +++++++ .../src/site/site.xml | 78 +++++++ .../site-tool-locales-test/full/src/site/site.xml | 17 +- .../full/src/site/site_de_DE_BY.xml | 17 +- .../language/src/site/site.xml | 17 +- .../language/src/site/site_de.xml | 17 +- .../language_country/src/site/site.xml | 17 +- .../language_country/src/site/site_de_DE.xml | 17 +- .../unit/site-tool-test/src/site/site.xml | 17 +- doxia-site-model/pom.xml | 66 +++++- .../DefaultSiteModelInheritanceAssembler.java | 64 ++---- .../src/main/mdo/{site.mdo => decoration.mdo} | 74 ++---- doxia-site-model/src/main/mdo/site.mdo | 253 ++++++--------------- .../SiteModelInheritanceAssemblerTest.java | 84 ++++--- doxia-site-model/src/test/resources/empty.xml | 6 +- .../src/test/resources/external-urls.xml | 22 +- .../src/test/resources/fully-populated-child.xml | 22 +- .../src/test/resources/fully-populated-merged.xml | 22 +- .../test/resources/fully-populated-unresolved.xml | 22 +- .../resources/inheritance-child-no-inheritance.xml | 6 +- .../src/test/resources/inheritance-child.xml | 6 +- .../src/test/resources/inheritance-expected.xml | 21 +- .../src/test/resources/inheritance-parent.xml | 21 +- .../src/test/resources/relative-urls-resolved.xml | 22 +- .../src/test/resources/relative-urls.xml | 22 +- .../subsite-relative-urls-multiple-resolved.xml | 22 +- .../resources/subsite-relative-urls-resolved.xml | 22 +- .../src/test/resources/subsite-urls-file.xml | 23 +- .../src/test/resources/subsite-urls.xml | 23 +- .../src/test/resources/site/site.xml | 21 +- 37 files changed, 902 insertions(+), 604 deletions(-) diff --git a/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java b/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java index e42b279..70e076c 100644 --- a/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java +++ b/doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java @@ -48,10 +48,19 @@ import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.doxia.site.Banner; +import org.apache.maven.doxia.site.Body; +import org.apache.maven.doxia.site.Image; +import org.apache.maven.doxia.site.LinkItem; +import org.apache.maven.doxia.site.Logo; import org.apache.maven.doxia.site.Menu; import org.apache.maven.doxia.site.MenuItem; +import org.apache.maven.doxia.site.PublishDate; import org.apache.maven.doxia.site.SiteModel; import org.apache.maven.doxia.site.Skin; +import org.apache.maven.doxia.site.Version; +import org.apache.maven.doxia.site.decoration.DecorationModel; +import org.apache.maven.doxia.site.decoration.io.xpp3.DecorationXpp3Reader; import org.apache.maven.doxia.site.inheritance.SiteModelInheritanceAssembler; import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Reader; import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Writer; @@ -72,6 +81,8 @@ import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; +import org.codehaus.plexus.util.xml.pull.MXParser; +import org.codehaus.plexus.util.xml.pull.XmlPullParser; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession; @@ -404,7 +415,7 @@ public class DefaultSiteTool implements SiteTool { // "classical" late interpolation, after full inheritance siteDescriptorContent = getInterpolatedSiteDescriptorContent(project, siteDescriptorContent, false); - siteModel = readSiteModel(siteDescriptorContent); + siteModel = readSiteModel(siteDescriptorContent, project, locale); if (parentProject != null) { populateParentMenu(siteModel, locale, project, parentProject, true); @@ -998,7 +1009,7 @@ public class DefaultSiteTool implements SiteTool { // interpolate ${this.*} = early interpolation siteDescriptorContent = getInterpolatedSiteDescriptorContent(project, siteDescriptorContent, true); - siteModel = readSiteModel(siteDescriptorContent); + siteModel = readSiteModel(siteDescriptorContent, project, locale); siteModel.setLastModified(siteDescriptor.lastModified()); } else { LOGGER.debug("No" + (depth == 0 ? "" : (" parent level " + depth)) + " site descriptor"); @@ -1071,9 +1082,21 @@ public class DefaultSiteTool implements SiteTool { * @return the site model object * @throws SiteToolException if any */ - private SiteModel readSiteModel(String siteDescriptorContent) throws SiteToolException { + private SiteModel readSiteModel(String siteDescriptorContent, MavenProject project, Locale locale) + throws SiteToolException { try { - return new SiteXpp3Reader().read(new StringReader(siteDescriptorContent)); + if (project != null && isOldSiteModel(siteDescriptorContent)) { + LOGGER.warn( + "Site model of '" + project.getId() + "' for " + + (locale.equals(SiteTool.DEFAULT_LOCALE) + ? "default locale" + : "locale '" + locale + "'") + + " is still using the old pre-version 2.0.0 model. You MUST migrate to the new model as soon as possible otherwise your build will break in the future!"); + return convertOldToNewSiteModel( + new DecorationXpp3Reader().read(new StringReader(siteDescriptorContent))); + } else { + return new SiteXpp3Reader().read(new StringReader(siteDescriptorContent)); + } } catch (XmlPullParserException e) { throw new SiteToolException("Error parsing site descriptor", e); } catch (IOException e) { @@ -1081,6 +1104,182 @@ public class DefaultSiteTool implements SiteTool { } } + private SiteModel convertOldToNewSiteModel(DecorationModel oldModel) { + SiteModel newModel = new SiteModel(); + newModel.setName(oldModel.getName()); + newModel.setCombineSelf(oldModel.getCombineSelf()); + if (oldModel.getBannerLeft() != null) { + newModel.setBannerLeft(convertBanner(oldModel.getBannerLeft())); + } + if (oldModel.getBannerRight() != null) { + newModel.setBannerRight(convertBanner(oldModel.getBannerRight())); + } + if (!oldModel.isDefaultPublishDate()) { + PublishDate newPublishDate = new PublishDate(); + newPublishDate.setFormat(oldModel.getPublishDate().getFormat()); + newPublishDate.setPosition(oldModel.getPublishDate().getPosition()); + newPublishDate.setTimezone(oldModel.getPublishDate().getTimezone()); + newModel.setPublishDate(newPublishDate); + } + if (!oldModel.isDefaultVersion()) { + Version newVersion = new Version(); + newVersion.setPosition(oldModel.getVersion().getPosition()); + newModel.setVersion(newVersion); + } + newModel.setEdit(oldModel.getEdit()); + if (oldModel.getSkin() != null) { + Skin newSkin = new Skin(); + newSkin.setGroupId(oldModel.getSkin().getGroupId()); + newSkin.setArtifactId(oldModel.getSkin().getArtifactId()); + newSkin.setVersion(oldModel.getSkin().getVersion()); + newModel.setSkin(newSkin); + } + // poweredBy + for (org.apache.maven.doxia.site.decoration.Logo oldLogo : oldModel.getPoweredBy()) { + Logo newLogo = new Logo(); + newLogo.setName(oldLogo.getName()); + newLogo.setHref(oldLogo.getHref()); + newLogo.setTarget(oldLogo.getTarget()); + if (oldLogo.getImg() != null) { + newLogo.setImage(convertImage( + oldLogo.getImg(), + oldLogo.getPosition(), + oldLogo.getHeight(), + oldLogo.getWidth(), + oldLogo.getBorder(), + oldLogo.getAlt())); + } + newModel.addPoweredBy(newLogo); + } + newModel.setLastModified(oldModel.getLastModified()); + if (oldModel.getBody() != null) { + Body newBody = new Body(); + newBody.setHead(oldModel.getBody().getHead()); + for (org.apache.maven.doxia.site.decoration.LinkItem oldLink : + oldModel.getBody().getLinks()) { + newBody.addLink(convertLinkItem(oldLink)); + } + for (org.apache.maven.doxia.site.decoration.LinkItem oldBreadcrumb : + oldModel.getBody().getBreadcrumbs()) { + newBody.addBreadcrumb(convertLinkItem(oldBreadcrumb)); + } + + for (org.apache.maven.doxia.site.decoration.Menu oldMenu : + oldModel.getBody().getMenus()) { + Menu newMenu = new Menu(); + newMenu.setName(oldMenu.getName()); + newMenu.setInherit(oldMenu.getInherit()); + newMenu.setInheritAsRef(oldMenu.isInheritAsRef()); + newMenu.setRef(oldMenu.getRef()); + if (oldMenu.getImg() != null) { + newMenu.setImage(convertImage( + oldMenu.getImg(), + oldMenu.getPosition(), + oldMenu.getHeight(), + oldMenu.getWidth(), + oldMenu.getBorder(), + oldMenu.getAlt())); + } + newMenu.setItems(convertMenuItems(oldMenu.getItems())); + newBody.addMenu(newMenu); + } + + newBody.setFooter(oldModel.getBody().getFooter()); + newModel.setBody(newBody); + } + newModel.setCustom(oldModel.getCustom()); + + return newModel; + } + + private Banner convertBanner(org.apache.maven.doxia.site.decoration.Banner oldBanner) { + Banner newBanner = new Banner(); + newBanner.setName(oldBanner.getName()); + newBanner.setHref(oldBanner.getHref()); + if (oldBanner.getSrc() != null) { + newBanner.setImage(convertImage( + oldBanner.getSrc(), + null, + oldBanner.getHeight(), + oldBanner.getWidth(), + oldBanner.getBorder(), + oldBanner.getAlt())); + } + + return newBanner; + } + + private Image convertImage(String src, String position, String height, String width, String border, String alt) { + Image newImage = new Image(); + newImage.setSrc(src); + newImage.setPosition(position); + newImage.setHeight(height); + newImage.setWidth(width); + if (border != null) { + newImage.setStyle("border: " + border + ";"); + } + newImage.setAlt(alt); + + return newImage; + } + + private LinkItem convertLinkItem(org.apache.maven.doxia.site.decoration.LinkItem oldLinkItem) { + LinkItem newLinkItem = new LinkItem(); + newLinkItem.setName(oldLinkItem.getName()); + newLinkItem.setHref(oldLinkItem.getHref()); + newLinkItem.setTarget(oldLinkItem.getTarget()); + if (oldLinkItem.getImg() != null) { + newLinkItem.setImage(convertImage( + oldLinkItem.getImg(), + oldLinkItem.getPosition(), + oldLinkItem.getHeight(), + oldLinkItem.getWidth(), + oldLinkItem.getBorder(), + oldLinkItem.getAlt())); + } + + return newLinkItem; + } + + private List<MenuItem> convertMenuItems(List<org.apache.maven.doxia.site.decoration.MenuItem> oldMenuItems) { + List<MenuItem> newMenuItems = new ArrayList<>(); + for (org.apache.maven.doxia.site.decoration.MenuItem oldMenuItem : oldMenuItems) { + MenuItem newMenuItem = new MenuItem(); + newMenuItem.setName(oldMenuItem.getName()); + newMenuItem.setHref(oldMenuItem.getHref()); + newMenuItem.setTarget(oldMenuItem.getTarget()); + newMenuItem.setCollapse(oldMenuItem.isCollapse()); + newMenuItem.setRef(oldMenuItem.getRef()); + newMenuItem.setItems(convertMenuItems(oldMenuItem.getItems())); + if (oldMenuItem.getImg() != null) { + newMenuItem.setImage(convertImage( + oldMenuItem.getImg(), + oldMenuItem.getPosition(), + oldMenuItem.getHeight(), + oldMenuItem.getWidth(), + oldMenuItem.getBorder(), + oldMenuItem.getAlt())); + } + newMenuItems.add(newMenuItem); + } + + return newMenuItems; + } + + private boolean isOldSiteModel(String siteDescriptorContent) throws XmlPullParserException, IOException { + XmlPullParser parser = new MXParser(); + parser.setInput(new StringReader(siteDescriptorContent)); + + if (!(parser.getEventType() == XmlPullParser.START_DOCUMENT && parser.next() == XmlPullParser.START_TAG)) { + return false; + } + if ("project".equals(parser.getName())) { + return true; + } + + return false; + } + private SiteModel getDefaultSiteModel() throws SiteToolException { String siteDescriptorContent; @@ -1094,7 +1293,7 @@ public class DefaultSiteTool implements SiteTool { IOUtil.close(reader); } - return readSiteModel(siteDescriptorContent); + return readSiteModel(siteDescriptorContent, null, SiteTool.DEFAULT_LOCALE); } private String siteModelToString(SiteModel siteModel) throws SiteToolException { diff --git a/doxia-integration-tools/src/main/resources/default-site.xml b/doxia-integration-tools/src/main/resources/default-site.xml index 7f7052f..b523ed9 100644 --- a/doxia-integration-tools/src/main/resources/default-site.xml +++ b/doxia-integration-tools/src/main/resources/default-site.xml @@ -18,10 +18,10 @@ specific language governing permissions and limitations under the License. --> -<project name="${project.name}"> - <bannerLeft> - <name>${project.name}</name> - </bannerLeft> +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 https://maven.apache.org/xsd/site-2.0.0.xsd" + name="${project.name}"> + <bannerLeft name="${project.name}" /> <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-fluido-skin</artifactId> @@ -35,4 +35,4 @@ under the License. <menu ref="modules" /> <menu ref="reports" /> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java b/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java index e4782e2..c4dd00b 100644 --- a/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java +++ b/doxia-integration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java @@ -22,6 +22,7 @@ import javax.inject.Inject; import javax.inject.Named; import java.io.File; +import java.io.StringReader; import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; @@ -38,6 +39,7 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.doxia.site.LinkItem; import org.apache.maven.doxia.site.SiteModel; import org.apache.maven.doxia.site.Skin; +import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Reader; import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Writer; import org.apache.maven.doxia.tools.stubs.SiteToolMavenProjectStub; import org.apache.maven.project.MavenProject; @@ -127,7 +129,7 @@ public class SiteToolTest { SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("site-tool-test"); Skin skin = new Skin(); skin.setGroupId("org.apache.maven.skins"); - skin.setArtifactId("maven-stylus-skin"); + skin.setArtifactId("maven-fluido-skin"); assertNotNull( tool.getSkinArtifactFromRepository(newRepoSession(), project.getRemoteProjectRepositories(), skin)); } @@ -370,13 +372,13 @@ public class SiteToolTest { assertEquals("Maven Site", model.getBannerLeft().getName()); assertEquals( "http://maven.apache.org/images/apache-maven-project.png", - model.getBannerLeft().getSrc()); + model.getBannerLeft().getImage().getSrc()); assertEquals("http://maven.apache.org/", model.getBannerLeft().getHref()); assertNotNull(model.getBannerRight()); assertNull(model.getBannerRight().getName()); assertEquals( "http://maven.apache.org/images/maven-small.gif", - model.getBannerRight().getSrc()); + model.getBannerRight().getImage().getSrc()); assertNull(model.getBannerRight().getHref()); // model from repo: https://repo1.maven.org/maven2/org/apache/maven/maven/3.8.6/maven-3.8.6-site.xml @@ -396,7 +398,7 @@ public class SiteToolTest { assertEquals("dummy", modelFromRepo.getBannerLeft().getName()); assertEquals( "https://maven.apache.org/images/apache-maven-project.png", - modelFromRepo.getBannerLeft().getSrc()); + modelFromRepo.getBannerLeft().getImage().getSrc()); assertEquals("https://maven.apache.org/", modelFromRepo.getBannerLeft().getHref()); assertNull(modelFromRepo.getBannerRight()); } @@ -534,6 +536,37 @@ public class SiteToolTest { assertEquals("PATH = PATH property from pom", links.next().getName()); } + /** + * @throws Exception + */ + @Test + public void testConvertOldToNewSiteModel() throws Exception { + assertNotNull(tool); + + SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("old-to-new-site-model-conversion-test"); + List<MavenProject> reactorProjects = new ArrayList<MavenProject>(); + + // model from current local build + SiteModel model = tool.getSiteModel( + new File(project.getBasedir(), "src/site"), + SiteTool.DEFAULT_LOCALE, + project, + reactorProjects, + newRepoSession(), + project.getRemoteProjectRepositories()); + assertNotNull(model); + + File descriptorFile = + getTestFile("src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/new-site.xml"); + assertNotNull(descriptorFile); + assertTrue(descriptorFile.exists()); + + String siteDescriptorContent = FileUtils.fileRead(descriptorFile); + SiteModel newModel = new SiteXpp3Reader().read(new StringReader(siteDescriptorContent)); + assertNotNull(newModel); + assertEquals(newModel, model); + } + private void writeModel(SiteModel model, String to) throws Exception { Writer writer = WriterFactory.newXmlWriter(getTestFile("target/test-classes/" + to)); try { diff --git a/doxia-integration-tools/src/test/resources/unit/interpolated-site/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/interpolated-site/src/site/site.xml index db8aac9..118c544 100644 --- a/doxia-integration-tools/src/test/resources/unit/interpolated-site/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/interpolated-site/src/site/site.xml @@ -19,15 +19,20 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-fluido-skin</artifactId> + </skin> <body> <links> <item name="Maven" href="http://maven.apache.org/"/> @@ -40,4 +45,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/interpolation-child-test/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/interpolation-child-test/src/site/site.xml index 091ed51..96beea9 100644 --- a/doxia-integration-tools/src/test/resources/unit/interpolation-child-test/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/interpolation-child-test/src/site/site.xml @@ -1,24 +1,25 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<!-- -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. ---> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd" - name="${project.name}"> -</project> \ No newline at end of file +<?xml version="1.0" encoding="ISO-8859-1"?> + +<!-- +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. +--> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="${project.name}"> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/interpolation-parent-test/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/interpolation-parent-test/src/site/site.xml index 27a2913..7943471 100644 --- a/doxia-integration-tools/src/test/resources/unit/interpolation-parent-test/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/interpolation-parent-test/src/site/site.xml @@ -19,16 +19,15 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.6.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.6.0 http://maven.apache.org/xsd/decoration-1.6.0.xsd"> - <bannerLeft> - <name>project.artifactId = ${project.artifactId}</name> - </bannerLeft> - <bannerRight> - <name>this.artifactId = ${this.artifactId}</name> - </bannerRight> - +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd"> + <bannerLeft name="project.artifactId = ${project.artifactId}" /> + <bannerRight name="this.artifactId = ${this.artifactId}" /> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-fluido-skin</artifactId> + </skin> <body> <links> <!-- late interpolation from project model --> @@ -49,4 +48,4 @@ under the License. <item name="project.name = ${project.name}" href="${this.url}" /> </breadcrumbs> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/pom.xml similarity index 52% copy from doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml copy to doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/pom.xml index 64c545c..0382a76 100644 --- a/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml +++ b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/pom.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> - <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -9,7 +8,7 @@ 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 + 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 @@ -19,20 +18,23 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.6.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.6.0.xsd" - name="Child No Inheritance" - combine.self="override"> - <body> - <links> - <item name="Bouncy Castle" href="http://www.bouncycastle.org"/> - </links> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.apache.maven.shared</groupId> + <artifactId>old-to-new-site-model-conversion-test</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> - <menu name="Subproject menu"> - <item name="Introduction" href="/indexChild.html"/> - <item name="Usage" href="/usageChild.html"/> - </menu> + <name>dummy</name> - </body> -</project> \ No newline at end of file + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/new-site.xml b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/new-site.xml new file mode 100644 index 0000000..3ad354b --- /dev/null +++ b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/new-site.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<!-- +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. +--> + +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" alt="banner left" height="200px" width="200px" style="border: solid;" /> + </bannerLeft> + <bannerRight name="right" /> + <publishDate position="top" format="yyyyMMdd" timezone="Europe/Berlin" /> + <version position="bottom" /> + <edit>foo</edit> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-stylus-skin</artifactId> + </skin> + <poweredBy> + <logo name="first" /> + <logo name="second" href="foo" target="_blank"> + <image src="logo.png" position="left" alt="second logo" width="10px" height="10px" style="border: dotted;" /> + </logo> + </poweredBy> + <body> + <head>head injection</head> + <links> + <item name="Maven" href="http://maven.apache.org/" /> + <item name="Maven" href="http://maven.apache.org/" target="_blank"> + <image src="link.jpeg" position="left" alt="second link" width="10px" height="10px" style="border: dotted;" /> + </item> + </links> + <breadcrumbs> + <item name="Maven" href="http://maven.apache.org/" /> + <item name="Maven" href="http://maven.apache.org/" target="_blank"> + <image src="breadcrumb.jpeg" position="left" alt="second breadcrumb" width="10px" height="10px" style="border: dotted;" /> + </item> + </breadcrumbs> + + <menu name="Overview"> + <item name="Test" href="/test.html" /> + </menu> + <menu name="Details" inherit="bottom" inheritAsRef="false" ref="foo"> + <image src="menu.jpeg" position="left" alt="second menu" width="10px" height="10px" style="border: dotted;" /> + <item name="Test" href="/test.html" collapse="false" ref="foo"> + <image src="item.jpeg" position="left" alt="second menu" width="10px" height="10px" style="border: dotted;" /> + <item name="Nested Test" href="/test.html" collapse="false" ref="foo"> + <image src="nested-item.jpeg" position="left" alt="second menu" width="10px" height="10px" style="border: dotted;" /> + </item> + </item> + </menu> + <menu ref="reports" /> + + <footer>footer injection</footer> + </body> + + <custom> + <options> + <foo>bar</foo> + </options> + </custom> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/site.xml new file mode 100644 index 0000000..45a9688 --- /dev/null +++ b/doxia-integration-tools/src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/site.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<!-- +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. +--> + +<project xmlns="http://maven.apache.org/DECORATION/1.8.1" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.1 file:../../../target/generated-site/xsd/decoration-1.8.1.xsd" + name="Maven Dummy Site"> + <bannerLeft> + <name>Maven Site</name> + <href>http://maven.apache.org/</href> + <src>http://maven.apache.org/images/apache-maven-project.png</src> + <alt>banner left</alt> + <border>solid</border> + <height>200px</height> + <width>200px</width> + </bannerLeft> + <bannerRight> + <name>right</name> + </bannerRight> + <publishDate position="top" format="yyyyMMdd" timezone="Europe/Berlin" /> + <version position="bottom" /> + <edit>foo</edit> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-stylus-skin</artifactId> + </skin> + <poweredBy> + <logo name="first" /> + <logo name="second" href="foo" target="_blank" img="logo.png" position="left" alt="second logo" border="dotted" width="10px" height="10px" /> + </poweredBy> + <body> + <head>head injection</head> + <links> + <item name="Maven" href="http://maven.apache.org/" /> + <item name="Maven" href="http://maven.apache.org/" target="_blank" img="link.jpeg" position="left" alt="second link" border="dotted" width="10px" height="10px" /> + </links> + <breadcrumbs> + <item name="Maven" href="http://maven.apache.org/" /> + <item name="Maven" href="http://maven.apache.org/" target="_blank" img="breadcrumb.jpeg" position="left" alt="second breadcrumb" border="dotted" width="10px" height="10px" /> + </breadcrumbs> + + <menu name="Overview"> + <item name="Test" href="/test.html"/> + </menu> + <menu name="Details" inherit="bottom" inheritAsRef="false" ref="foo" img="menu.jpeg" position="left" alt="second menu" border="dotted" width="10px" height="10px"> + <item name="Test" href="/test.html" collapse="false" ref="foo" img="item.jpeg" position="left" alt="second menu" border="dotted" width="10px" height="10px"> + <item name="Nested Test" href="/test.html" collapse="false" ref="foo" img="nested-item.jpeg" position="left" alt="second menu" border="dotted" width="10px" height="10px" /> + </item> + </menu> + <menu ref="reports" /> + + <footer>footer injection</footer> + </body> + + <custom> + <options> + <foo>bar</foo> + </options> + </custom> +</project> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site.xml index a65c9a9..37d75d8 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site_de_DE_BY.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site_de_DE_BY.xml index 849863c..109905d 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site_de_DE_BY.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/full/src/site/site_de_DE_BY.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site.xml index a65c9a9..37d75d8 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site_de.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site_de.xml index e330ea1..c176934 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site_de.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language/src/site/site_de.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site.xml index dec2ea7..150ee16 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site_de_DE.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site_de_DE.xml index dec2ea7..150ee16 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site_de_DE.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-locales-test/language_country/src/site/site_de_DE.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-integration-tools/src/test/resources/unit/site-tool-test/src/site/site.xml b/doxia-integration-tools/src/test/resources/unit/site-tool-test/src/site/site.xml index dec2ea7..150ee16 100644 --- a/doxia-integration-tools/src/test/resources/unit/site-tool-test/src/site/site.xml +++ b/doxia-integration-tools/src/test/resources/unit/site-tool-test/src/site/site.xml @@ -19,18 +19,19 @@ specific language governing permissions and limitations under the License. --> -<project name="Maven Dummy Site"> - <bannerLeft> - <name>Maven Site</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> +<site xmlns="http://maven.apache.org/SITE/2.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" + name="Maven Dummy Site"> + <bannerLeft name="Maven Site" href="http://maven.apache.org/"> + <image src="http://maven.apache.org/images/apache-maven-project.png" /> </bannerLeft> <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> + <image src="http://maven.apache.org/images/maven-small.gif" /> </bannerRight> <skin> <groupId>org.apache.maven.skins</groupId> - <artifactId>maven-stylus-skin</artifactId> + <artifactId>maven-fluido-skin</artifactId> </skin> <body> <links> @@ -42,4 +43,4 @@ under the License. </menu> <menu ref="reports"/> </body> -</project> +</site> diff --git a/doxia-site-model/pom.xml b/doxia-site-model/pom.xml index 2a392d9..610a13b 100644 --- a/doxia-site-model/pom.xml +++ b/doxia-site-model/pom.xml @@ -63,11 +63,6 @@ under the License. <groupId>org.codehaus.modello</groupId> <artifactId>modello-maven-plugin</artifactId> <configuration> - <models> - <model>src/main/mdo/site.mdo</model> - </models> - <!-- TODO Do not forget to update the version in the description. See DOXIASITETOOLS-98. --> - <version>2.0.0</version> <firstVersion>1.0.0</firstVersion> </configuration> <executions> @@ -80,6 +75,28 @@ under the License. <goal>xsd</goal> </goals> <phase>generate-sources</phase> + <configuration> + <models> + <model>src/main/mdo/site.mdo</model> + </models> + <!-- TODO Do not forget to update the version in the description. See DOXIASITETOOLS-98. --> + <version>2.0.0</version> + </configuration> + </execution> + <execution> + <id>old-descriptor</id> + <goals> + <goal>java</goal> + <goal>xpp3-reader</goal> + <goal>xsd</goal> + </goals> + <phase>generate-sources</phase> + <configuration> + <models> + <model>src/main/mdo/decoration.mdo</model> + </models> + <version>1.8.1</version> + </configuration> </execution> <execution> <id>descriptor-xdoc</id> @@ -87,6 +104,26 @@ under the License. <goal>xdoc</goal> </goals> <phase>pre-site</phase> + <configuration> + <models> + <model>src/main/mdo/site.mdo</model> + </models> + <!-- TODO Do not forget to update the version in the description. See DOXIASITETOOLS-98. --> + <version>2.0.0</version> + </configuration> + </execution> + <execution> + <id>old-descriptor-xdoc</id> + <goals> + <goal>xdoc</goal> + </goals> + <phase>pre-site</phase> + <configuration> + <models> + <model>src/main/mdo/decoration.mdo</model> + </models> + <version>1.8.1</version> + </configuration> </execution> <execution> <id>descriptor-xsd</id> @@ -95,6 +132,25 @@ under the License. </goals> <phase>pre-site</phase> <configuration> + <models> + <model>src/main/mdo/site.mdo</model> + </models> + <!-- TODO Do not forget to update the version in the description. See DOXIASITETOOLS-98. --> + <version>2.0.0</version> + <outputDirectory>${project.build.directory}/generated-site/resources/xsd</outputDirectory> + </configuration> + </execution> + <execution> + <id>old-descriptor-xsd</id> + <goals> + <goal>xsd</goal> + </goals> + <phase>pre-site</phase> + <configuration> + <models> + <model>src/main/mdo/decoration.mdo</model> + </models> + <version>1.8.1</version> <outputDirectory>${project.build.directory}/generated-site/resources/xsd</outputDirectory> </configuration> </execution> diff --git a/doxia-site-model/src/main/java/org/apache/maven/doxia/site/inheritance/DefaultSiteModelInheritanceAssembler.java b/doxia-site-model/src/main/java/org/apache/maven/doxia/site/inheritance/DefaultSiteModelInheritanceAssembler.java index ff758df..5a88135 100644 --- a/doxia-site-model/src/main/java/org/apache/maven/doxia/site/inheritance/DefaultSiteModelInheritanceAssembler.java +++ b/doxia-site-model/src/main/java/org/apache/maven/doxia/site/inheritance/DefaultSiteModelInheritanceAssembler.java @@ -24,7 +24,6 @@ import javax.inject.Singleton; import java.util.ArrayList; import java.util.List; -import org.apache.maven.doxia.site.Banner; import org.apache.maven.doxia.site.Body; import org.apache.maven.doxia.site.LinkItem; import org.apache.maven.doxia.site.Logo; @@ -55,12 +54,12 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc if (child.getBannerLeft() == null && parent.getBannerLeft() != null) { child.setBannerLeft(parent.getBannerLeft().clone()); - rebaseBannerPaths(child.getBannerLeft(), urlContainer); + rebaseLinkItemPaths(child.getBannerLeft(), urlContainer); } if (child.getBannerRight() == null && parent.getBannerRight() != null) { child.setBannerRight(parent.getBannerRight().clone()); - rebaseBannerPaths(child.getBannerRight(), urlContainer); + rebaseLinkItemPaths(child.getBannerRight(), urlContainer); } if (child.isDefaultPublishDate() && parent.getPublishDate() != null) { @@ -97,15 +96,15 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc } if (siteModel.getBannerLeft() != null) { - relativizeBannerPaths(siteModel.getBannerLeft(), baseUrl); + relativizeLinkItemPaths(siteModel.getBannerLeft(), baseUrl); } if (siteModel.getBannerRight() != null) { - relativizeBannerPaths(siteModel.getBannerRight(), baseUrl); + relativizeLinkItemPaths(siteModel.getBannerRight(), baseUrl); } for (Logo logo : siteModel.getPoweredBy()) { - relativizeLogoPaths(logo, baseUrl); + relativizeLinkItemPaths(logo, baseUrl); } if (siteModel.getBody() != null) { @@ -119,34 +118,13 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc for (Menu menu : siteModel.getBody().getMenus()) { relativizeMenuPaths(menu.getItems(), baseUrl); + if (menu.getImage() != null) { + menu.getImage().setSrc(relativizeLink(menu.getImage().getSrc(), baseUrl)); + } } } } - /** - * Resolves all relative paths between the elements in a banner. The banner element might contain relative paths - * to the oldBaseUrl, these are changed to the newBannerUrl. - * - * @param banner - * @param baseUrl - */ - private void relativizeBannerPaths(final Banner banner, final String baseUrl) { - // banner has been checked to be not null, both href and src may be empty or null - banner.setHref(relativizeLink(banner.getHref(), baseUrl)); - banner.setSrc(relativizeLink(banner.getSrc(), baseUrl)); - } - - private void rebaseBannerPaths(final Banner banner, final URLRebaser urlContainer) { - if (banner.getHref() != null) // it may be empty - { - banner.setHref(urlContainer.rebaseLink(banner.getHref())); - } - - if (banner.getSrc() != null) { - banner.setSrc(urlContainer.rebaseLink(banner.getSrc())); - } - } - private void assembleCustomInheritance(final SiteModel child, final SiteModel parent) { if (child.getCustom() == null) { child.setCustom(parent.getCustom()); @@ -207,6 +185,10 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc final Menu clone = menu.clone(); rebaseMenuPaths(clone.getItems(), urlContainer); + if (clone.getImage() != null) { + clone.getImage() + .setSrc(urlContainer.rebaseLink(clone.getImage().getSrc())); + } menus.add(topCounter, clone); topCounter++; @@ -214,6 +196,10 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc final Menu clone = menu.clone(); rebaseMenuPaths(clone.getItems(), urlContainer); + if (clone.getImage() != null) { + clone.getImage() + .setSrc(urlContainer.rebaseLink(clone.getImage().getSrc())); + } menus.add(clone); } @@ -238,20 +224,16 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc private void relativizeLinkItemPaths(final LinkItem item, final String baseUrl) { item.setHref(relativizeLink(item.getHref(), baseUrl)); + if (item.getImage() != null) { + item.getImage().setSrc(relativizeLink(item.getImage().getSrc(), baseUrl)); + } } private void rebaseLinkItemPaths(final LinkItem item, final URLRebaser urlContainer) { item.setHref(urlContainer.rebaseLink(item.getHref())); - } - - private void relativizeLogoPaths(final Logo logo, final String baseUrl) { - logo.setImg(relativizeLink(logo.getImg(), baseUrl)); - relativizeLinkItemPaths(logo, baseUrl); - } - - private void rebaseLogoPaths(final Logo logo, final URLRebaser urlContainer) { - logo.setImg(urlContainer.rebaseLink(logo.getImg())); - rebaseLinkItemPaths(logo, urlContainer); + if (item.getImage() != null) { + item.getImage().setSrc(urlContainer.rebaseLink(item.getImage().getSrc())); + } } private List<LinkItem> mergeLinkItemLists( @@ -293,7 +275,7 @@ public class DefaultSiteModelInheritanceAssembler implements SiteModelInheritanc if (!logos.contains(logo)) { final Logo clone = logo.clone(); - rebaseLogoPaths(clone, urlContainer); + rebaseLinkItemPaths(clone, urlContainer); logos.add(clone); } diff --git a/doxia-site-model/src/main/mdo/site.mdo b/doxia-site-model/src/main/mdo/decoration.mdo similarity index 92% copy from doxia-site-model/src/main/mdo/site.mdo copy to doxia-site-model/src/main/mdo/decoration.mdo index 531a7e9..aa0adbb 100644 --- a/doxia-site-model/src/main/mdo/site.mdo +++ b/doxia-site-model/src/main/mdo/decoration.mdo @@ -20,30 +20,30 @@ under the License. --> <model xmlns="http://codehaus-plexus.github.io/MODELLO/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd" - xml.namespace="http://maven.apache.org/SITE/${version}" - xml.schemaLocation="http://maven.apache.org/xsd/site-${version}.xsd"> - <id>site</id> - <name>Site</name> + xml.namespace="http://maven.apache.org/DECORATION/${version}" + xml.schemaLocation="http://maven.apache.org/xsd/decoration-${version}.xsd"> + <id>decoration</id> + <name>Decoration</name> <description><![CDATA[ - <p>This is a reference for the site descriptor used in Doxia Sitetools, also known as <code>site.xml</code>: + <p>This is a reference for the site decoration descriptor used in Doxia Sitetools, also known as <code>site.xml</code>: it is used to configure a site template (aka skin).</p> <p>An XSD is available at:</p> <ul> <!-- There is no property filtering in Modello, this has to be updated manually. See DOXIASITETOOLS-98. --> - <li><a href="https://maven.apache.org/xsd/site-2.0.0.xsd">https://maven.apache.org/xsd/site-2.0.0.xsd</a></li> + <li><a href="https://maven.apache.org/xsd/decoration-1.8.1.xsd">https://maven.apache.org/xsd/decoration-1.8.1.xsd</a></li> </ul> ]]></description> <defaults> <default> <key>package</key> - <value>org.apache.maven.doxia.site</value> + <value>org.apache.maven.doxia.site.decoration</value> </default> </defaults> <classes> <class rootElement="true" xml.tagName="project" java.clone="deep"> - <name>SiteModel</name> + <name>DecorationModel</name> <description><![CDATA[ The <code><project></code> element is the root of the site decoration descriptor. ]]></description> @@ -51,7 +51,7 @@ under the License. <fields> <field xml.attribute="true"> <name>name</name> - <description>The full name of the project site.</description> + <description>The full name of the project.</description> <version>1.0.0+</version> <type>String</type> <identifier>true</identifier> @@ -133,7 +133,7 @@ under the License. </field> <field xdoc.separator="blank"> <name>body</name> - <description>The main site content.</description> + <description>The main site content decoration.</description> <version>1.0.0+</version> <association> <type>Body</type> @@ -144,8 +144,8 @@ under the License. <name>custom</name> <description><![CDATA[ Custom configuration for use with customized Velocity templates. Data from this field are - accessible in Velocity template from <code>$site.custom</code> variable as DOM content. - Example: <code>$site.custom.getChild( 'customElement' ).getValue()</code> + accessible in Velocity template from <code>$decoration.custom</code> variable as DOM content. + Example: <code>$decoration.custom.getChild( 'customElement' ).getValue()</code> ]]></description> <version>1.0.0+</version> <type>DOM</type> @@ -153,7 +153,7 @@ under the License. </field> <field xml.transient="true"> <name>lastModified</name> - <description>Timestamp of the last modification of this site model.</description> + <description>Timestamp of the last modification of this decoration model.</description> <version>1.0.1+</version> <type>long</type> </field> @@ -261,50 +261,6 @@ under the License. ]]> </code> </codeSegment> - <codeSegment> - <version>1.7.0+</version> - <code> - /** - * @since 1.7 - * @see SiteUtils#isLink - */ - public boolean isLink( String href ) - { - return SiteUtils.isLink( href ); - } - </code> - </codeSegment> - <codeSegment> - <version>1.8.0+</version> - <code> - /** - * @since 1.8 - * @see SiteUtils#getCustomChild - */ - public Object getCustomChild( String path ) - { - return SiteUtils.getCustomChild( (org.codehaus.plexus.util.xml.Xpp3Dom) custom, path ); - } - - /** - * @since 1.8 - * @see SiteUtils#getCustomValue - */ - public String getCustomValue( String path ) - { - return SiteUtils.getCustomValue( (org.codehaus.plexus.util.xml.Xpp3Dom) custom, path ); - } - - /** - * @since 1.8 - * @see SiteUtils#getCustomValue - */ - public String getCustomValue( String path, String defaultValue ) - { - return SiteUtils.getCustomValue( (org.codehaus.plexus.util.xml.Xpp3Dom) custom, path, defaultValue ); - } - </code> - </codeSegment> </codeSegments> </class> @@ -402,7 +358,7 @@ under the License. of the Java Virtual Machine. Refer to <code>java.util.TimeZone</code> for details. ]]> </description> - <version>2.0.0+</version> + <version>1.8.1+</version> <type>String</type> <identifier>true</identifier> <defaultValue>Etc/UTC</defaultValue> @@ -435,7 +391,7 @@ under the License. <class java.clone="deep" xsd.compositor="sequence"> <name>Body</name> - <description>The main content.</description> + <description>The main content decoration.</description> <version>1.0.0+</version> <fields> <field> diff --git a/doxia-site-model/src/main/mdo/site.mdo b/doxia-site-model/src/main/mdo/site.mdo index 531a7e9..fc68742 100644 --- a/doxia-site-model/src/main/mdo/site.mdo +++ b/doxia-site-model/src/main/mdo/site.mdo @@ -21,7 +21,7 @@ under the License. <model xmlns="http://codehaus-plexus.github.io/MODELLO/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd" xml.namespace="http://maven.apache.org/SITE/${version}" - xml.schemaLocation="http://maven.apache.org/xsd/site-${version}.xsd"> + xml.schemaLocation="https://maven.apache.org/xsd/site-${version}.xsd"> <id>site</id> <name>Site</name> <description><![CDATA[ @@ -42,10 +42,10 @@ under the License. </defaults> <classes> - <class rootElement="true" xml.tagName="project" java.clone="deep"> + <class rootElement="true" xml.tagName="site" java.clone="deep"> <name>SiteModel</name> <description><![CDATA[ - The <code><project></code> element is the root of the site decoration descriptor. + The <code><site></code> element is the root of the site decoration descriptor. ]]></description> <version>1.0.0+</version> <fields> @@ -312,65 +312,7 @@ under the License. <name>Banner</name> <description>Banner logo on the masthead of the site.</description> <version>1.0.0+</version> - <fields> - <!-- Ideally we want attributes DOXIA-335 --> - <field> - <name>name</name> - <version>1.0.0+</version> - <description>The name of the banner.</description> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>src</name> - <version>1.0.0+</version> - <description>The source location of an image for the banner.</description> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>alt</name> - <version>1.0.0+</version> - <description>The alt description for the banner image.</description> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>href</name> - <version>1.0.0+</version> - <description>The href of a link to be used for the banner image.</description> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>border</name> - <description>The border to use for the banner image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>width</name> - <description>The width to use for the banner image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>height</name> - <description>The height to use for the banner image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field> - <name>title</name> - <version>1.3.0+</version> - <description>The title for the banner image.</description> - <type>String</type> - <identifier>true</identifier> - </field> - </fields> + <superClass>LinkItem</superClass> </class> <class java.clone="deep"> @@ -402,7 +344,7 @@ under the License. of the Java Virtual Machine. Refer to <code>java.util.TimeZone</code> for details. ]]> </description> - <version>2.0.0+</version> + <version>1.8.1+</version> <type>String</type> <identifier>true</identifier> <defaultValue>Etc/UTC</defaultValue> @@ -438,13 +380,6 @@ under the License. <description>The main content.</description> <version>1.0.0+</version> <fields> - <field> - <name>head</name> - <description>Additional content (like JavaScript) to include in the HEAD block of the generated pages.</description> - <version>1.0.0/1.6.0</version> - <type>DOM</type> - <identifier>true</identifier> - </field> <field> <name>head</name> <description>Additional content (like JavaScript) to include in the HEAD block of the generated pages.</description> @@ -489,13 +424,6 @@ under the License. <type>String</type> <identifier>true</identifier> </field> - <field> - <name>footer</name> - <description>If present, the contained text will be used instead of the generated copyright text.</description> - <version>1.1.0/1.6.0</version> - <type>DOM</type> - <identifier>true</identifier> - </field> </fields> </class> @@ -518,49 +446,6 @@ under the License. <type>String</type> <identifier>true</identifier> </field> - <field xml.attribute="true"> - <name>img</name> - <description>The source location of an image.</description> - <version>1.0.0+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>position</name> - <description>Where to place the image regarding the displayed name (left or right).</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - <defaultValue>left</defaultValue> - </field> - <field xml.attribute="true"> - <name>alt</name> - <description>The alt to use for the image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>border</name> - <description>The border to use for the image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>width</name> - <description>The width to use for the image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>height</name> - <description>The height to use for the image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> <field xml.attribute="true"> <name>target</name> <description>Where the new document will be displayed when the user follows a link, i.e. _blank opens the new document in a new window.</description> @@ -568,11 +453,13 @@ under the License. <type>String</type> <identifier>true</identifier> </field> - <field xml.attribute="true"> - <name>title</name> - <description>The title to use for the image.</description> - <version>1.3.0+</version> - <type>String</type> + <field> + <name>image</name> + <version>2.0.0+</version> + <description>The image for the link.</description> + <association> + <type>Image</type> + </association> <identifier>true</identifier> </field> </fields> @@ -603,7 +490,7 @@ under the License. <name>inheritAsRef</name> <description><![CDATA[ If this is a reference, setting to <code>true</code> means that it will be populated - in the project, whereas if it is <code>false</code>, it is populated in the parent and then inherited. + in the site, whereas if it is <code>false</code>, it is populated in the parent and then inherited. ]]></description> <version>1.0.0+</version> <type>boolean</type> @@ -618,54 +505,13 @@ under the License. <type>String</type> <identifier>true</identifier> </field> - <field xml.attribute="true"> - <name>img</name> - <description>The source location of an menu image.</description> - <version>1.0.0+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>alt</name> - <version>1.0.1+</version> - <description>The alt description for the image.</description> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>position</name> - <description>Where to place the image regarding the displayed name (left or right).</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - <defaultValue>left</defaultValue> - </field> - <field xml.attribute="true"> - <name>border</name> - <description>The border to use for the menu image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>width</name> - <description>The width to use for the menu image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>height</name> - <description>The height to use for the menu image.</description> - <version>1.0.1+</version> - <type>String</type> - <identifier>true</identifier> - </field> - <field xml.attribute="true"> - <name>title</name> - <version>1.3.0+</version> - <description>The title for the image.</description> - <type>String</type> + <field> + <name>image</name> + <version>2.0.0+</version> + <description>The image for the menu.</description> + <association> + <type>Image</type> + </association> <identifier>true</identifier> </field> <field> @@ -687,13 +533,6 @@ under the License. <version>1.0.0+</version> <superClass>LinkItem</superClass> <fields> - <field> - <name>description</name> - <description>A description of the menu item. This is used on any summary pages for a menu.</description> - <version>1.0.0+</version> - <type>String</type> - <identifier>true</identifier> - </field> <field xml.attribute="true"> <name>collapse</name> <description>Whether to collapse children elements of an item menu (by default).</description> @@ -722,6 +561,58 @@ under the License. </fields> </class> + <class java.clone="deep"> + <name>Image</name> + <description>An image.</description> + <version>2.0.0+</version> + <fields> + <field xml.attribute="true"> + <name>src</name> + <description>The source location.</description> + <version>2.0.0+</version> + <type>String</type> + <required>true</required> + <identifier>true</identifier> + </field> + <field xml.attribute="true"> + <name>position</name> + <description>Where to place the image relative to the displayed name (left or right).</description> + <version>2.0.0+</version> + <type>String</type> + <identifier>true</identifier> + <defaultValue>left</defaultValue> + </field> + <field xml.attribute="true"> + <name>alt</name> + <description>The alternative text to use.</description> + <version>2.0.0+</version> + <type>String</type> + <identifier>true</identifier> + </field> + <field xml.attribute="true"> + <name>width</name> + <description>The width to use.</description> + <version>2.0.0+</version> + <type>String</type> + <identifier>true</identifier> + </field> + <field xml.attribute="true"> + <name>height</name> + <description>The height to use.</description> + <version>2.0.0+</version> + <type>String</type> + <identifier>true</identifier> + </field> + <field xml.attribute="true"> + <name>style</name> + <description>The style to use.</description> + <version>2.0.0+</version> + <type>String</type> + <identifier>true</identifier> + </field> + </fields> + </class> + <class java.clone="deep"> <name>Skin</name> <description>A skin artifact declaration.</description> diff --git a/doxia-site-model/src/test/java/org/apache/maven/doxia/site/inheritance/SiteModelInheritanceAssemblerTest.java b/doxia-site-model/src/test/java/org/apache/maven/doxia/site/inheritance/SiteModelInheritanceAssemblerTest.java index cbfbf28..fedd624 100644 --- a/doxia-site-model/src/test/java/org/apache/maven/doxia/site/inheritance/SiteModelInheritanceAssemblerTest.java +++ b/doxia-site-model/src/test/java/org/apache/maven/doxia/site/inheritance/SiteModelInheritanceAssemblerTest.java @@ -24,6 +24,7 @@ import java.util.List; import org.apache.maven.doxia.site.Banner; import org.apache.maven.doxia.site.Body; +import org.apache.maven.doxia.site.Image; import org.apache.maven.doxia.site.LinkItem; import org.apache.maven.doxia.site.Logo; import org.apache.maven.doxia.site.Menu; @@ -169,7 +170,7 @@ public class SiteModelInheritanceAssemblerTest { assertEquals("http://jakarta.apache.org/", childModel.getBannerLeft().getHref(), "check left banner href"); assertEquals( "http://jakarta.apache.org/images/jakarta-logo.gif", - childModel.getBannerLeft().getSrc(), + childModel.getBannerLeft().getImage().getSrc(), "check left banner image"); assertEquals( @@ -178,12 +179,12 @@ public class SiteModelInheritanceAssemblerTest { "check right banner href"); assertEquals( "http://jakarta.apache.org/commons/images/logo.png", - childModel.getBannerRight().getSrc(), + childModel.getBannerRight().getImage().getSrc(), "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("http://tomcat.apache.org/", poweredBy.getHref(), "check powered by logo href"); - assertEquals("http://tomcat.apache.org/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("http://tomcat.apache.org/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("http://www.apache.org/", breadcrumb.getHref(), "check breadcrumb href"); @@ -221,14 +222,20 @@ public class SiteModelInheritanceAssemblerTest { private static void assertPathsResolvedForRelativeUrls(final SiteModel childModel) { assertEquals("../banner/left", childModel.getBannerLeft().getHref(), "check left banner href"); - assertEquals("../images/jakarta-logo.gif", childModel.getBannerLeft().getSrc(), "check left banner image"); + assertEquals( + "../images/jakarta-logo.gif", + childModel.getBannerLeft().getImage().getSrc(), + "check left banner image"); assertEquals("../banner/right/", childModel.getBannerRight().getHref(), "check right banner href"); - assertEquals("../commons/images/logo.png", childModel.getBannerRight().getSrc(), "check right banner image"); + assertEquals( + "../commons/images/logo.png", + childModel.getBannerRight().getImage().getSrc(), + "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("../tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("../tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("../tomcat/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("../apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -269,14 +276,20 @@ public class SiteModelInheritanceAssemblerTest { private static void assertPathsResolvedForSubsiteUrls(final SiteModel childModel) { assertEquals("../banner/left", childModel.getBannerLeft().getHref(), "check left banner href"); - assertEquals("../images/jakarta-logo.gif", childModel.getBannerLeft().getSrc(), "check left banner image"); + assertEquals( + "../images/jakarta-logo.gif", + childModel.getBannerLeft().getImage().getSrc(), + "check left banner image"); assertEquals("../banner/right/", childModel.getBannerRight().getHref(), "check right banner href"); - assertEquals("../commons/images/logo.png", childModel.getBannerRight().getSrc(), "check right banner image"); + assertEquals( + "../commons/images/logo.png", + childModel.getBannerRight().getImage().getSrc(), + "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("../tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("../tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("../tomcat/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("../apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -314,15 +327,20 @@ public class SiteModelInheritanceAssemblerTest { private static void assertPathsResolvedForRelativeUrlsDepthOfTwo(final SiteModel childModel) { assertEquals("../../banner/left", childModel.getBannerLeft().getHref(), "check left banner href"); - assertEquals("../../images/jakarta-logo.gif", childModel.getBannerLeft().getSrc(), "check left banner image"); + assertEquals( + "../../images/jakarta-logo.gif", + childModel.getBannerLeft().getImage().getSrc(), + "check left banner image"); assertEquals("../../banner/right/", childModel.getBannerRight().getHref(), "check right banner href"); assertEquals( - "../../commons/images/logo.png", childModel.getBannerRight().getSrc(), "check right banner image"); + "../../commons/images/logo.png", + childModel.getBannerRight().getImage().getSrc(), + "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("../../tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("../../tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("../../tomcat/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("../../apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -360,15 +378,20 @@ public class SiteModelInheritanceAssemblerTest { private static void assertPathsResolvedForReverseRelativeUrls(final SiteModel childModel) { assertEquals("doxia/banner/left", childModel.getBannerLeft().getHref(), "check left banner href"); - assertEquals("doxia/images/jakarta-logo.gif", childModel.getBannerLeft().getSrc(), "check left banner image"); + assertEquals( + "doxia/images/jakarta-logo.gif", + childModel.getBannerLeft().getImage().getSrc(), + "check left banner image"); assertEquals("doxia/banner/right/", childModel.getBannerRight().getHref(), "check right banner href"); assertEquals( - "doxia/commons/images/logo.png", childModel.getBannerRight().getSrc(), "check right banner image"); + "doxia/commons/images/logo.png", + childModel.getBannerRight().getImage().getSrc(), + "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("doxia/tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("doxia/tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("doxia/tomcat/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("doxia/apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -407,17 +430,19 @@ public class SiteModelInheritanceAssemblerTest { private static void assertPathsResolvedForReverseRelativeUrlsDepthOfTwo(final SiteModel childModel) { assertEquals("doxia/core/banner/left", childModel.getBannerLeft().getHref(), "check left banner href"); assertEquals( - "doxia/core/images/jakarta-logo.gif", childModel.getBannerLeft().getSrc(), "check left banner image"); + "doxia/core/images/jakarta-logo.gif", + childModel.getBannerLeft().getImage().getSrc(), + "check left banner image"); assertEquals("doxia/core/banner/right/", childModel.getBannerRight().getHref(), "check right banner href"); assertEquals( "doxia/core/commons/images/logo.png", - childModel.getBannerRight().getSrc(), + childModel.getBannerRight().getImage().getSrc(), "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("doxia/core/tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("doxia/core/tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals("doxia/core/tomcat/logo.gif", poweredBy.getImage().getSrc(), "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("doxia/core/apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -460,7 +485,7 @@ public class SiteModelInheritanceAssemblerTest { "check left banner href"); assertEquals( "http://jakarta.apache.org/images/jakarta-logo.gif", - childModel.getBannerLeft().getSrc(), + childModel.getBannerLeft().getImage().getSrc(), "check left banner image"); assertEquals( @@ -469,12 +494,15 @@ public class SiteModelInheritanceAssemblerTest { "check right banner href"); assertEquals( "http://jakarta.apache.org/commons/images/logo.png", - childModel.getBannerRight().getSrc(), + childModel.getBannerRight().getImage().getSrc(), "check right banner image"); Logo poweredBy = childModel.getPoweredBy().get(0); assertEquals("http://jakarta.apache.org/tomcat", poweredBy.getHref(), "check powered by logo href"); - assertEquals("http://jakarta.apache.org/tomcat/logo.gif", poweredBy.getImg(), "check powered by logo image"); + assertEquals( + "http://jakarta.apache.org/tomcat/logo.gif", + poweredBy.getImage().getSrc(), + "check powered by logo image"); LinkItem breadcrumb = childModel.getBody().getBreadcrumbs().get(0); assertEquals("http://jakarta.apache.org/apache", breadcrumb.getHref(), "check breadcrumb href"); @@ -877,16 +905,20 @@ public class SiteModelInheritanceAssemblerTest { Banner banner = new Banner(); banner.setName(name); banner.setHref(href); - banner.setSrc(src); - banner.setAlt(alt); + Image image = new Image(); + image.setSrc(src); + image.setAlt(alt); + banner.setImage(image); return banner; } - private Logo createLogo(String name, String href, String img) { + private Logo createLogo(String name, String href, String src) { Logo logo = new Logo(); - logo.setHref(href); - logo.setImg(img); logo.setName(name); + logo.setHref(href); + Image image = new Image(); + image.setSrc(src); + logo.setImage(image); return logo; } diff --git a/doxia-site-model/src/test/resources/empty.xml b/doxia-site-model/src/test/resources/empty.xml index 182b9dd..02563f9 100644 --- a/doxia-site-model/src/test/resources/empty.xml +++ b/doxia-site-model/src/test/resources/empty.xml @@ -19,8 +19,8 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Empty"> -</project> \ No newline at end of file +</site> diff --git a/doxia-site-model/src/test/resources/external-urls.xml b/doxia-site-model/src/test/resources/external-urls.xml index 0791a96..841c4df 100644 --- a/doxia-site-model/src/test/resources/external-urls.xml +++ b/doxia-site-model/src/test/resources/external-urls.xml @@ -19,23 +19,21 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>http://jakarta.apache.org/images/jakarta-logo.gif</src> - <href>http://jakarta.apache.org/</href> + <bannerLeft name="The Jakarta Project" href="http://jakarta.apache.org/"> + <image src="http://jakarta.apache.org/images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>http://jakarta.apache.org/commons/images/logo.png</src> - <href>http://jakarta.apache.org/commons/sandbox</href> + <bannerRight name="Jakarta Commons Sandbox" href="http://jakarta.apache.org/commons/sandbox"> + <image src="http://jakarta.apache.org/commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Tomcat" href="http://tomcat.apache.org/" img="http://tomcat.apache.org/logo.gif"/> + <logo name="Tomcat" href="http://tomcat.apache.org/"> + <image src="http://tomcat.apache.org/logo.gif" /> + </logo> </poweredBy> <body> @@ -51,4 +49,4 @@ under the License. <item name="Special" href="http://www.apache.org/special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/fully-populated-child.xml b/doxia-site-model/src/test/resources/fully-populated-child.xml index 09208b7..fcae863 100644 --- a/doxia-site-model/src/test/resources/fully-populated-child.xml +++ b/doxia-site-model/src/test/resources/fully-populated-child.xml @@ -19,26 +19,24 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Child"> - <bannerLeft> - <name>name</name> - <src>src</src> - <href>href</href> + <bannerLeft name="name" href="href"> + <image src="src" /> </bannerLeft> - <bannerRight> - <name>name</name> - <src>src</src> - <href>href</href> + <bannerRight name="name" href="href"> + <image src="src" /> </bannerRight> <publishDate format="fmt" position="top"/> <version position="right" /> <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"> + <image src="http://maven.apache.org/images/maven-feather.png" /> + </logo> </poweredBy> <skin> @@ -66,4 +64,4 @@ under the License. <custom> <junk>junk</junk> </custom> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/fully-populated-merged.xml b/doxia-site-model/src/test/resources/fully-populated-merged.xml index 47e6858..f26ba15 100644 --- a/doxia-site-model/src/test/resources/fully-populated-merged.xml +++ b/doxia-site-model/src/test/resources/fully-populated-merged.xml @@ -19,26 +19,24 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Empty"> - <bannerLeft> - <name>name</name> - <src>../src</src> - <href>../href</href> + <bannerLeft name="name" href="../href"> + <image src="../src" /> </bannerLeft> - <bannerRight> - <name>name</name> - <src>../src</src> - <href>../href</href> + <bannerRight name="name" href="../href"> + <image src="../src" /> </bannerRight> <publishDate format="fmt" position="top"/> <version position="right" /> <poweredBy> - <logo name="Maven" href=".." img="../images/maven-feather.png"/> + <logo name="Maven" href=".."> + <image src="../images/maven-feather.png" /> + </logo> </poweredBy> <skin> @@ -61,4 +59,4 @@ under the License. <custom> <junk>junk</junk> </custom> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/fully-populated-unresolved.xml b/doxia-site-model/src/test/resources/fully-populated-unresolved.xml index 0f9c66d..9094cbb 100644 --- a/doxia-site-model/src/test/resources/fully-populated-unresolved.xml +++ b/doxia-site-model/src/test/resources/fully-populated-unresolved.xml @@ -19,26 +19,24 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Empty"> - <bannerLeft> - <name>name</name> - <src>../src</src> - <href>../href</href> + <bannerLeft name="name" href="../href"> + <image src="../src" /> </bannerLeft> - <bannerRight> - <name>name</name> - <src>../src</src> - <href>../href</href> + <bannerRight name="name" href="../href"> + <image src="../src" /> </bannerRight> <publishDate format="fmt" position="top"/> <version position="right" /> <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"> + <image src="http://maven.apache.org/images/maven-feather.png" /> + </logo> </poweredBy> <skin> @@ -61,4 +59,4 @@ under the License. <custom> <junk>junk</junk> </custom> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml b/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml index 64c545c..83eeda5 100644 --- a/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml +++ b/doxia-site-model/src/test/resources/inheritance-child-no-inheritance.xml @@ -19,9 +19,9 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.6.0" +<site xmlns="http://maven.apache.org/DECORATION/1.6.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.6.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.6.0.xsd" name="Child No Inheritance" combine.self="override"> <body> @@ -35,4 +35,4 @@ under the License. </menu> </body> -</project> \ No newline at end of file +</site> \ No newline at end of file diff --git a/doxia-site-model/src/test/resources/inheritance-child.xml b/doxia-site-model/src/test/resources/inheritance-child.xml index 30482a8..55db3e4 100644 --- a/doxia-site-model/src/test/resources/inheritance-child.xml +++ b/doxia-site-model/src/test/resources/inheritance-child.xml @@ -19,9 +19,9 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Child"> <body> <links> @@ -34,4 +34,4 @@ under the License. </menu> </body> -</project> \ No newline at end of file +</site> \ No newline at end of file diff --git a/doxia-site-model/src/test/resources/inheritance-expected.xml b/doxia-site-model/src/test/resources/inheritance-expected.xml index 355e775..2f30d4a 100644 --- a/doxia-site-model/src/test/resources/inheritance-expected.xml +++ b/doxia-site-model/src/test/resources/inheritance-expected.xml @@ -19,21 +19,18 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.8.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 file:../../../target/generated-site/xsd/decoration-1.8.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Child"> - <bannerLeft> - <name>The Jakarta Project</name> - <href>http://jakarta.apache.org/</href> - </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>http://jakarta.apache.org/commons/images/logo.png</src> - <href>http://jakarta.apache.org/commons/sandbox</href> + <bannerLeft name="The Jakarta Project" href="http://jakarta.apache.org/" /> + <bannerRight name="Jakarta Commons Sandbox" href="http://jakarta.apache.org/commons/sandbox"> + <image src="http://jakarta.apache.org/commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Maven" href="http://maven.apache.org" img="../images/maven-feather.png"/> + <logo name="Maven" href="http://maven.apache.org"> + <image src="../images/maven-feather.png" /> + </logo> </poweredBy> <skin> <groupId>org.apache.maven.skins</groupId> @@ -66,4 +63,4 @@ under the License. <item name="Copyright" href="../copyrightParent.html"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/inheritance-parent.xml b/doxia-site-model/src/test/resources/inheritance-parent.xml index 8965e2b..019d859 100644 --- a/doxia-site-model/src/test/resources/inheritance-parent.xml +++ b/doxia-site-model/src/test/resources/inheritance-parent.xml @@ -19,21 +19,18 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.8.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 file:../../../target/generated-site/xsd/decoration-1.8.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <href>http://jakarta.apache.org/</href> - </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>http://jakarta.apache.org/commons/images/logo.png</src> - <href>http://jakarta.apache.org/commons/sandbox</href> + <bannerLeft name="The Jakarta Project" href="http://jakarta.apache.org/" /> + <bannerRight name="Jakarta Commons Sandbox" href="http://jakarta.apache.org/commons/sandbox"> + <image src="http://jakarta.apache.org/commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Maven" href="http://maven.apache.org" img="images/maven-feather.png"/> + <logo name="Maven" href="http://maven.apache.org"> + <image src="images/maven-feather.png" /> + </logo> </poweredBy> <skin> <groupId>org.apache.maven.skins</groupId> @@ -61,4 +58,4 @@ under the License. <item name="Copyright" href="/copyrightParent.html"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/relative-urls-resolved.xml b/doxia-site-model/src/test/resources/relative-urls-resolved.xml index 5493373..c9e7617 100644 --- a/doxia-site-model/src/test/resources/relative-urls-resolved.xml +++ b/doxia-site-model/src/test/resources/relative-urls-resolved.xml @@ -19,23 +19,21 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>images/jakarta-logo.gif</src> - <href>banner/left</href> + <bannerLeft name="The Jakarta Project" href="banner/left"> + <image src="images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>commons/images/logo.png</src> - <href>banner/right/</href> + <bannerRight name="Jakarta Commons Sandbox" href="banner/right/"> + <image src="commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Tomcat" href="tomcat" img="tomcat/logo.gif"/> + <logo name="Tomcat" href="tomcat"> + <image src="tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +48,4 @@ under the License. <item name="Special" href="special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/relative-urls.xml b/doxia-site-model/src/test/resources/relative-urls.xml index 8353486..92097f4 100644 --- a/doxia-site-model/src/test/resources/relative-urls.xml +++ b/doxia-site-model/src/test/resources/relative-urls.xml @@ -19,23 +19,21 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>/images/jakarta-logo.gif</src> - <href>banner/left</href> + <bannerLeft name="The Jakarta Project" href="banner/left"> + <image src="images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>commons/images/logo.png</src> - <href>/banner/right/</href> + <bannerRight name="Jakarta Commons Sandbox" href="/banner/right/"> + <image src="commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Tomcat" href="tomcat" img="tomcat/logo.gif"/> + <logo name="Tomcat" href="tomcat"> + <image src="tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +48,4 @@ under the License. <item name="Special" href="/special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/subsite-relative-urls-multiple-resolved.xml b/doxia-site-model/src/test/resources/subsite-relative-urls-multiple-resolved.xml index 71b50e4..f021a61 100644 --- a/doxia-site-model/src/test/resources/subsite-relative-urls-multiple-resolved.xml +++ b/doxia-site-model/src/test/resources/subsite-relative-urls-multiple-resolved.xml @@ -19,23 +19,21 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>../../images/jakarta-logo.gif</src> - <href>../left</href> + <bannerLeft name="The Jakarta Project" href="../left"> + <image src="../../images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>../../commons/images/logo.png</src> - <href></href> + <bannerRight name="Jakarta Commons Sandbox" href=""> + <image src="../../commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Tomcat" href="../../tomcat" img="../../tomcat/logo.gif"/> + <logo name="Tomcat" href="../../tomcat"> + <image src="../../tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +48,4 @@ under the License. <item name="Special" href="../../special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/subsite-relative-urls-resolved.xml b/doxia-site-model/src/test/resources/subsite-relative-urls-resolved.xml index 68d894d..6c0a13e 100644 --- a/doxia-site-model/src/test/resources/subsite-relative-urls-resolved.xml +++ b/doxia-site-model/src/test/resources/subsite-relative-urls-resolved.xml @@ -19,23 +19,21 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>../images/jakarta-logo.gif</src> - <href>../banner/left</href> + <bannerLeft name="The Jakarta Project" href="../banner/left"> + <image src="../images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>../commons/images/logo.png</src> - <href>../banner/right/</href> + <bannerRight name="Jakarta Commons Sandbox" href="../banner/right/"> + <image src="../commons/images/logo.png" /> </bannerRight> <poweredBy> - <logo name="Tomcat" href="../tomcat" img="../tomcat/logo.gif"/> + <logo name="Tomcat" href="../tomcat"> + <image src="../tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +48,4 @@ under the License. <item name="Special" href="../special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/subsite-urls-file.xml b/doxia-site-model/src/test/resources/subsite-urls-file.xml index de3c78a..811c8c8 100644 --- a/doxia-site-model/src/test/resources/subsite-urls-file.xml +++ b/doxia-site-model/src/test/resources/subsite-urls-file.xml @@ -19,23 +19,22 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Parent Name"> - <bannerLeft> - <name>The Jakarta Project</name> - <src>file:///www/maven.apache.org/images/jakarta-logo.gif</src> - <href>file:///www/maven.apache.org/banner/left</href> + <bannerLeft name="The Jakarta Project" href="file:///www/maven.apache.org/banner/left"> + <image src="file:///www/maven.apache.org/images/jakarta-logo.gif" /> </bannerLeft> - <bannerRight> - <name>Jakarta Commons Sandbox</name> - <src>file:///www/maven.apache.org/commons/images/logo.png</src> - <href>file:///www/maven.apache.org/banner/right/</href> + <bannerRight name="Jakarta Commons Sandbox" href="file:///www/maven.apache.org/banner/right/"> + <image src="file:///www/maven.apache.org/commons/images/logo.png" /> </bannerRight> + <poweredBy> - <logo name="Tomcat" href="tomcat" img="file:///www/maven.apache.org/tomcat/logo.gif"/> + <logo name="Tomcat" href="tomcat"> + <image src="file:///www/maven.apache.org/tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +49,4 @@ under the License. <item name="Special" href="file:///www/maven.apache.org/special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-model/src/test/resources/subsite-urls.xml b/doxia-site-model/src/test/resources/subsite-urls.xml index 5452755..f8f30fe 100644 --- a/doxia-site-model/src/test/resources/subsite-urls.xml +++ b/doxia-site-model/src/test/resources/subsite-urls.xml @@ -19,23 +19,22 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" 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 name="The Jakarta Project" href="http://maven.apache.org/banner/left"> + <image src="http://maven.apache.org/images/jakarta-logo.gif" /> </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 name="Jakarta Commons Sandbox" href="http://maven.apache.org/banner/right/"> + <image src="http://maven.apache.org/commons/images/logo.png" /> </bannerRight> + <poweredBy> - <logo name="Tomcat" href="tomcat" img="http://maven.apache.org/tomcat/logo.gif"/> + <logo name="Tomcat" href="tomcat"> + <image src="http://maven.apache.org/tomcat/logo.gif" /> + </logo> </poweredBy> <body> @@ -50,4 +49,4 @@ under the License. <item name="Special" href="http://maven.apache.org/special/"/> </menu> </body> -</project> +</site> diff --git a/doxia-site-renderer/src/test/resources/site/site.xml b/doxia-site-renderer/src/test/resources/site/site.xml index d18c154..f154b72 100644 --- a/doxia-site-renderer/src/test/resources/site/site.xml +++ b/doxia-site-renderer/src/test/resources/site/site.xml @@ -22,19 +22,20 @@ under the License. <!-- A test snippet... --> <!-- END SNIPPET: macrotest --> -<project xmlns="http://maven.apache.org/DECORATION/1.0.0" +<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 file:../../../../../doxia-decoration-model/target/generated-site/xsd/decoration-1.0.0.xsd" + xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 file:../../../target/generated-site/xsd/site-2.0.0.xsd" name="Plexus"> - <bannerLeft> - <name>Plexus</name> - <src>http://plexus.codehaus.org/images/plexus-logo.png</src> - <href>http://plexus.codehaus.org</href> + <bannerLeft name="Plexus" href="http://plexus.codehaus.org"> + <image src="http://plexus.codehaus.org/images/plexus-logo.png" /> </bannerLeft> - <bannerRight> - <src>http://media.codehaus.org/images/unity-codehaus-logo.png</src> - <href>http://www.codehaus.org</href> + <bannerRight href="http://www.codehaus.org"> + <image src="http://media.codehaus.org/images/unity-codehaus-logo.png" /> </bannerRight> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-fluido-skin</artifactId> + </skin> <body> <links> <item name="Plexus" href="http://plexus.codehaus.org"/> @@ -54,4 +55,4 @@ under the License. </item> </menu> </body> -</project> +</site>
