Commit 18e03e4b authored by Ate Douma's avatar Ate Douma

TRIVIAL cleanup master

parent 22b2ef85
*.iml
/.idea/
.project/
.settings
target/
This diff is collapsed.
Hippo Plugin Robots.txt Generator
Copyright 2009-2018 Hippo B.V. (http://www.onehippo.com)
This product includes software developed by:
Hippo B.V., Amsterdam, The Netherlands (http://www.onehippo.com/);
The Apache Software Foundation (http://www.apache.org/).
NOTICE: Only our own original work is licensed under the terms of the
Apache License Version 2.0. The licenses of some libraries might impose
different redistribution or general licensing terms than those stated in the
Apache License. Users and redistributors are hereby requested to verify these
conditions and agree upon them.
# This is not the branch you're looking for...
BloomReach only provides the git trees for the release tags of Hippo CMS, as explained on https://www.onehippo.org/about/open-source-release-policy.html
To checkout the code for a specific release tag, after cloning this repository, use the following:
## to show the available tags
git tag
## to checkout a specific tag
git checkout <tag name>
## to modify a project
If you want to make modifications to a project, for example to create a patch, create a new fork branch from the specific tag like this:
git checkout -b forked-<tag name> <tag name>
For the latter, also see the **Build from Source** documentation at https://www.onehippo.org/library/development/build-hippo-cms-from-scratch.html
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2009-2015 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-robotstxt</artifactId>
<version>4.3.0-SNAPSHOT</version>
</parent>
<name>Hippo Plugin Robots.txt HST Client</name>
<description>Robots.txt HST Client</description>
<artifactId>hippo-plugin-robotstxt-hst-client</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-api</artifactId>
</dependency>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-content-beans</artifactId>
</dependency>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-client</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
</dependency>
<dependency>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-modules</artifactId>
</dependency>
</dependencies>
</project>
/*
* Copyright 2012-2015 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onehippo.forge.robotstxt.annotated;
import java.util.List;
import org.hippoecm.hst.content.beans.Node;
import org.hippoecm.hst.content.beans.standard.HippoDocument;
/**
* [robotstxt:robotstxt] > hippo:document, hippostd:publishable, hippostd:publishableSummary
* - robotstxt:disallowfacnav (boolean)
* - robotstxt:sitemap (string) multiple
* + robotstxt:section (robotstxt:section) multiple
*/
@Node(jcrType="robotstxt:robotstxt")
public class Robotstxt extends HippoDocument {
public List<Section> getSections() {
return this.getChildBeans("robotstxt:section");
}
public String[] getSitemaps() {
return getProperty("robotstxt:sitemap");
}
public boolean isDisallowFacNav() {
return getProperty("robotstxt:disallowfacnav", true);
}
}
/**
* Copyright 2012-2013 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onehippo.forge.robotstxt.annotated;
import java.util.Arrays;
import java.util.List;
import org.hippoecm.hst.content.beans.Node;
import org.hippoecm.hst.content.beans.standard.HippoItem;
/**
* [robotstxt:section]
* - robotstxt:useragent (string) mandatory
* - robotstxt:disallow (string) multiple
*/
@Node(jcrType = "robotstxt:section")
public class Section extends HippoItem {
private final static String DISALLOW_PREFIX = "Disallow: ";
public String getUserAgent() {
return this.getProperty("robotstxt:useragent");
}
public List<String> getDisallows() {
final String[] disallows = this.getProperty("robotstxt:disallow");
List<String> disallowsList = Arrays.asList(disallows);
return disallowsList;
}
/**
* @deprecated This function implements part of the rendering. Rendering is supposed
* to happen in the JSP, so it is *recommended* to use the section's "disallows"
* attribute directly from the JSP. This function is left here for backwards
* compatibility.
* @return a pre-formatted string, containing all "Disallow:" lines for this section.
*/
@Deprecated
public String getDisallowFragment() {
StringBuilder sb = new StringBuilder();
for (String s : getDisallows()) {
sb.append(DISALLOW_PREFIX).append(s).append(System.getProperty("line.separator"));
}
return sb.toString();
}
}
/*
* Copyright 2012-2017 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onehippo.forge.robotstxt.components;
import com.google.common.base.Strings;
import org.hippoecm.hst.component.support.bean.BaseHstComponent;
import org.hippoecm.hst.configuration.hosting.Mount;
import org.hippoecm.hst.core.component.HstComponentException;
import org.hippoecm.hst.core.component.HstRequest;
import org.hippoecm.hst.core.component.HstResponse;
import org.hippoecm.hst.core.linking.HstLink;
import org.hippoecm.hst.core.linking.HstLinkCreator;
import org.hippoecm.repository.jackrabbit.facetnavigation.FacNavNodeType;
import org.onehippo.forge.robotstxt.annotated.Robotstxt;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import java.util.ArrayList;
import java.util.List;
public class RobotstxtComponent extends BaseHstComponent {
private static final Logger log = LoggerFactory.getLogger(RobotstxtComponent.class);
@Override
public void doBeforeRender(HstRequest request, HstResponse response) {
super.doBeforeRender(request, response);
// Disallow everything for preview sites ?
final Mount mount = request.getRequestContext().getResolvedMount().getMount();
if (disallowPreviewMount(request, mount)) {
request.setAttribute("disallowAll", true);
return;
}
// Process the CMS-based robots.txt configuration
final Robotstxt bean = request.getRequestContext().getContentBean(Robotstxt.class);
if (bean == null) {
throw new HstComponentException("No bean found, check the HST configuration for the RobotstxtComponent");
}
request.setAttribute("document", bean);
// Handle faceted navigation
if (isFacetedNavigationDisallowed(request, (Robotstxt) bean)) {
request.setAttribute("disallowedFacNavLinks", getDisallowedFacetNavigationLinks(request, mount));
}
}
/**
* Handle faceted navigation URLs. Typically, they should be disallowed, but a flag on the
* robots.txt document can override this behavior and allow faceted navigation URLs.
*
* @param request Handle for current request
* @param bean The robots.txt document (CMS content)
*/
protected boolean isFacetedNavigationDisallowed(final HstRequest request, final Robotstxt bean) {
return bean.isDisallowFacNav();
}
/**
* Disallow faceted navigation URLs.
*
* @param request Handle for current request
* @param currentMount Mount point of current site
* @return List of HstLinks, representing Facet Navigation URLs.
*/
protected List<HstLink> getDisallowedFacetNavigationLinks(final HstRequest request, final Mount currentMount) {
final List<HstLink> disallowedLinks = new ArrayList<>();
final HstLinkCreator linkCreator = request.getRequestContext().getHstLinkCreator();
final List<Mount> allMounts = getMountWithSubMounts(currentMount);
try {
// We're running a JCR query because HST queries don't find facetnavigation nodes.
// The query gets all facetnavigation content nodes and matches later to be under the current mount's
// content path (or under any submount paths)
final QueryManager queryManager = request.getRequestContext().getSession().getWorkspace().getQueryManager();
@SuppressWarnings("deprecation") final Query query = queryManager.createQuery(getFacNavQueryXPath(), Query.XPATH);
query.setLimit(getFacNavQueryLimit());
final NodeIterator nodeIterator = query.execute().getNodes();
while (nodeIterator.hasNext()) {
final Node facNavNode = nodeIterator.nextNode();
final HstLink facNavLink = linkCreator.create(facNavNode, request.getRequestContext());
if (facNavLink.isNotFound()) {
log.debug("Not disallowing link for facet nav node {}: its HST link is not-found link '{}'",
facNavNode.getPath(), facNavLink.toUrlForm(request.getRequestContext(), false));
continue;
}
final Mount facNavLinkMount = facNavLink.getMount();
if (allMounts.stream().noneMatch(mount -> mount.equals(facNavLinkMount))) {
log.debug("Not disallowing links for facet navigation node {} because its link mount {} is not part " +
"of the current mount (or one of its submounts) for paths {}", facNavNode.getPath(),
facNavLink.getMount().getContentPath(), allMounts.stream().map(mount -> mount.getContentPath()).toArray());
continue;
}
// disallow all first level links below facet navigation
final NodeIterator facetChildNodesIterator = facNavNode.getNodes();
while (facetChildNodesIterator.hasNext()) {
final Node facetChildNode = facetChildNodesIterator.nextNode();
if (!facetChildNode.isNodeType(FacNavNodeType.NT_FACETSAVAILABLENAVIGATION)) {
log.debug("Not disallowing link for facet child node {}: it is not of type {} but of type {}",
facetChildNode.getPath(), FacNavNodeType.NT_FACETSAVAILABLENAVIGATION, facetChildNode.getPrimaryNodeType().getName());
continue;
}
final HstLink link = linkCreator.create(facetChildNode, request.getRequestContext());
if (link.isNotFound()) {
log.debug("Not disallowing link for facet child node {}: its HST link is not-found link '{}'",
facetChildNode.getPath(), link.toUrlForm(request.getRequestContext(), false));
continue;
}
// Link is suitable for rendering.
disallowedLinks.add(link);
}
}
} catch (RepositoryException e) {
throw new HstComponentException(e);
}
return disallowedLinks;
}
/**
* Get the XPath query for searching facet navigation nodes, that are to be checked for exclusion.
*/
protected String getFacNavQueryXPath() {
return "//element(*, " + FacNavNodeType.NT_FACETNAVIGATION + ")";
}
/**
* Get the limit used in the query for facet navigation nodes, that are to be checked for exclusion.
*/
protected long getFacNavQueryLimit() {
long limit = 200;
final String limitStr = this.getComponentParameter("facnavQueryLimit");
if (!Strings.isNullOrEmpty(limitStr)) {
try {
limit = Long.valueOf(limitStr);
} catch (NumberFormatException nfe) {
log.warn("Value {} for parameter facnavQueryLimit is not a long, falling back to limit {}", limitStr, limit);
}
}
return limit;
}
/**
* Get a list of the mount content base path, plus all content base paths of its child mounts.
*/
protected List<Mount> getMountWithSubMounts(Mount mount) {
final List<Mount> allMounts = new ArrayList<>();
allMounts.add(mount);
// add only live submounts recursively (no preview or composer (_rp) types)
for (Mount subMount : mount.getChildMounts()) {
if (subMount.isOfType(Mount.LIVE_NAME)) {
allMounts.addAll(getMountWithSubMounts(subMount));
}
}
return allMounts;
}
/**
* Overridable logic to disallow all URLs for preview sites (setting the "disallowAll" flag)
*
* @param request Handle for current request
* @param mount Mount point of current site
* @return true if mount is of type "preview"
*/
protected boolean disallowPreviewMount(final HstRequest request, final Mount mount) {
return mount.isOfType(Mount.PREVIEW_NAME);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2009-2018 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms7-project</artifactId>
<version>29.4-SNAPSHOT</version>
</parent>
<name>Hippo Plugin Robots.txt Generator</name>
<description>Hippo Plugin Robots.txt Generator</description>
<artifactId>hippo-plugin-robotstxt</artifactId>
<version>4.3.0-SNAPSHOT</version>
<packaging>pom</packaging>
<inceptionYear>2009</inceptionYear>
<scm>
<connection>scm:git:https://code.onehippo.org/cms-community/hippo-plugin-robotstxt.git</connection>
<developerConnection>scm:git:git@code.onehippo.org:cms-community/hippo-plugin-robotstxt.git</developerConnection>
<url>https://code.onehippo.org/cms-community/hippo-plugin-robotstxt</url>
</scm>
<properties>
<!-- use root project name for all project modules NOTICE files, should be the same as in the root NOTICE file -->
<notice.project.name>Hippo Plugin Robots.txt Generator</notice.project.name>
<hippo.jackrabbit.version>2.16.1-h1-SNAPSHOT</hippo.jackrabbit.version>
<hippo.hst.version>5.3.0-SNAPSHOT</hippo.hst.version>
<hippo.repository.version>5.3.0-SNAPSHOT</hippo.repository.version>
</properties>
<repositories>
<repository>
<id>hippo</id>
<name>Hippo Maven 2</name>
<url>https://maven.onehippo.com/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
<issueManagement>
<system>Jira</system>
<url>https://issues.onehippo.com/browse/HIPPLUG/component/12847</url>
</issueManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-modules</artifactId>
<version>${hippo.repository.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-api</artifactId>
<version>${hippo.hst.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-content-beans</artifactId>
<version>${hippo.hst.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.onehippo.cms7.hst</groupId>
<artifactId>hst-client</artifactId>
<version>${hippo.hst.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
<version>${hippo.jackrabbit.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<profile>
<id>pedantic</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<excludes combine.children="append">
<!-- repository content XML -->
<exclude>repository/src/main/resources/**/*.xml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<modules>
<module>repository</module>
<module>hst</module>
</modules>
</project>
<?xml version="1.0"?>
<!--
Copyright 2012-2015 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-plugin-robotstxt</artifactId>
<version>4.3.0-SNAPSHOT</version>
</parent>
<artifactId>hippo-plugin-robotstxt-addon-repository</artifactId>
<name>Hippo Plugin Robots.txt Addon Repository</name>
</project>
definitions:
config:
/hst:hst/hst:configurations/hst:default/hst:pages/robotstxt:
jcr:primaryType: hst:component
jcr:uuid: cfb036fe-93c4-49af-93d3-c946d7b8a9a3
hst:componentclassname: org.onehippo.forge.robotstxt.components.RobotstxtComponent
hst:template: robotstxt.ftl
definitions:
config:
/hst:hst/hst:configurations/hst:default/hst:templates/robotstxt.ftl:
jcr:primaryType: hst:template
jcr:uuid: a0e01646-dbb0-475f-bc81-5f2d551f7fad
hst:script: "<#ftl encoding=\"UTF-8\" strip_whitespace=true attributes={\"content_type\"\
: \"text/plain\"}>\r\n<#assign hst=JspTaglibs[\"http://www.hippoecm.org/jsp/hst/core\"\
] >\r\n<#if document??>\r\n<#if document.sections??>\r\n<#list document.sections\
\ as section>\r\n<#if section.userAgent?? && (section.disallows?? || disallowedFacNavLinks??)>\r\
\nUser-agent: ${section.userAgent}\r\n<#list section.disallows as path>Disallow:\
\ ${path}\r\n</#list>\r\n<#list disallowedFacNavLinks as facnav>Disallow:\
\ <@hst.link link=facnav/>/\r\n</#list>\r\n\r\n</#if>\r\n</#list>\r\n</#if>\r\
\n<#if document.sitemaps??>\r\n<#list document.sitemaps as sitemap>\r\nSitemap:\
\ ${sitemap}\r\n</#list>\r\n</#if>\r\n</#if>"
definitions:
namespace:
robotstxt:
uri: http://www.onehippo.org/robotstxt/nt/1.1
cnd: robotstxt.cnd
definitions:
config:
/hippo:namespaces/robotstxt:
jcr:primaryType: hipposysedit:namespace
jcr:mixinTypes: ['mix:referenceable']
/section:
jcr:primaryType: hipposysedit:templatetype
jcr:mixinTypes: ['mix:referenceable', 'editor:editable']
/hipposysedit:nodetype:
jcr:primaryType: hippo:handle
jcr:mixinTypes: ['mix:referenceable']
/hipposysedit:nodetype:
jcr:primaryType: hipposysedit:nodetype
jcr:mixinTypes: ['hipposysedit:remodel', 'mix:referenceable']
hipposysedit:node: true
hipposysedit:supertype: ['hippo:compound']
hipposysedit:uri: http://www.onehippo.org/robotstxt/nt/1.1
/useragent:
jcr:primaryType: hipposysedit:field
hipposysedit:mandatory: true
hipposysedit:multiple: false
hipposysedit:ordered: false
hipposysedit:path: robotstxt:useragent
hipposysedit:primary: false
hipposysedit:type: String
/disallow:
jcr:primaryType: hipposysedit:field
hipposysedit:mandatory: false
hipposysedit:multiple: true
hipposysedit:ordered: false
hipposysedit:path: robotstxt:disallow
hipposysedit:primary: false
hipposysedit:type: String
/hipposysedit:prototypes:
jcr:primaryType: hipposysedit:prototypeset
/hipposysedit:prototype:
jcr:primaryType: robotstxt:section
robotstxt:disallow: ['']
robotstxt:useragent: '*'
/editor:templates:
jcr:primaryType: editor:templateset
/_default_:
jcr:primaryType: frontend:plugincluster
frontend:properties: [mode]
frontend:references: [wicket.model, engine]
frontend:services: [wicket.id]
type: robotstxt:section
/twocolumn:
jcr:primaryType: frontend:plugin
extension.left: ${cluster.id}.left
extension.right: ${cluster.id}.right
plugin.class: org.hippoecm.frontend.editor.layout.TwoColumn
wicket.extensions: [extension.left, extension.right]
wicket.id: ${wicket.id}
/left:
jcr:primaryType: frontend:plugin
item: ${cluster.id}.left.item
plugin.class: org.hippoecm.frontend.service.render.ListViewPlugin
wicket.id: ${cluster.id}.left
/right:
jcr:primaryType: frontend:plugin
item: ${cluster.id}.right.item
plugin.class: org.hippoecm.frontend.service.render.ListViewPlugin
wicket.id: ${cluster.id}.right
/useragent:
jcr:primaryType: frontend:plugin
engine: ${engine}
field: useragent
mode: ${mode}
plugin.class: org.hippoecm.frontend.editor.plugins.field.PropertyFieldPlugin
wicket.id: ${cluster.id}.left.item
wicket.model: ${wicket.model}
/cluster.options:
jcr:primaryType: frontend:pluginconfig
/disallow:
jcr:primaryType: frontend:plugin
engine: ${engine}
field: disallow
mode: ${mode}
plugin.class: org.hippoecm.frontend.editor.plugins.field.PropertyFieldPlugin
wicket.id: ${cluster.id}.right.item
wicket.model: ${wicket.model}
/cluster.options:
jcr:primaryType: frontend:pluginconfig
/robotstxt:
jcr:primaryType: hipposysedit:templatetype
jcr:mixinTypes: ['mix:referenceable', 'editor:editable']
/hipposysedit:nodetype:
jcr:primaryType: hippo:handle
jcr:mixinTypes: ['mix:referenceable']
/hipposysedit:nodetype:
jcr:primaryType: hipposysedit:nodetype
jcr:mixinTypes: ['hipposysedit:remodel', 'mix:referenceable']
hipposysedit:node: true
hipposysedit:supertype: ['hippo:document', 'hippostdpubwf:document', 'hippostd:publishableSummary']
hipposysedit:uri: http://www.onehippo.org/robotstxt/nt/1.1
/section:
jcr:primaryType: hipposysedit:field
hipposysedit:mandatory: false
hipposysedit:multiple: true
hipposysedit:ordered: false
hipposysedit:path: robotstxt:section
hipposysedit:primary: false
hipposysedit:type: robotstxt:section
/sitemap:
jcr:primaryType: hipposysedit:field
hipposysedit:mandatory: false
hipposysedit:multiple: true
hipposysedit:ordered: true
hipposysedit:path: robotstxt:sitemap
hipposysedit:primary: false
hipposysedit:type: String
/hipposysedit:prototypes:
jcr:primaryType: hipposysedit:prototypeset
/hipposysedit:prototype:
jcr:primaryType: robotstxt:robotstxt
jcr:mixinTypes: ['mix:referenceable']
hippostd:state: unpublished
hippostdpubwf:createdBy: admin
hippostdpubwf:creationDate: 2010-02-04T16:32:28.068+02:00
hippostdpubwf:lastModificationDate: 2010-02-04T16:32:28.068+02:00