Repository: nifi Updated Branches: refs/heads/master ce233bdbb -> e723a2c5c
NIFI-3776 Correcting links in documentation for SeeAlso and properties referencing controller services. This closes #1739 Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/e723a2c5 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/e723a2c5 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/e723a2c5 Branch: refs/heads/master Commit: e723a2c5c4ae49f97b367d3495bf2a6686be8f91 Parents: ce233bd Author: Bryan Bende <[email protected]> Authored: Wed May 3 10:20:38 2017 -0400 Committer: Matt Gilman <[email protected]> Committed: Wed May 3 11:15:48 2017 -0400 ---------------------------------------------------------------------- .../html/HtmlDocumentationWriter.java | 46 +++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/e723a2c5/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java index 42801ac..e538fed 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java @@ -23,12 +23,16 @@ import org.apache.nifi.annotation.behavior.Stateful; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.bundle.Bundle; +import org.apache.nifi.bundle.BundleCoordinate; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.ConfigurableComponent; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.controller.ControllerService; import org.apache.nifi.documentation.DocumentationWriter; import org.apache.nifi.nar.ExtensionManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLOutputFactory; @@ -49,6 +53,8 @@ import java.util.Set; */ public class HtmlDocumentationWriter implements DocumentationWriter { + public static final Logger LOGGER = LoggerFactory.getLogger(HtmlDocumentationWriter.class); + /** * The filename where additional user specified information may be stored. */ @@ -239,13 +245,26 @@ public class HtmlDocumentationWriter implements DocumentationWriter { xmlStreamWriter.writeCharacters(", "); } - final String link = "../" + linkedComponent + "/index.html"; + final List<Bundle> linkedComponentBundles = ExtensionManager.getBundles(linkedComponent); - final int indexOfLastPeriod = linkedComponent.lastIndexOf(".") + 1; + if (linkedComponentBundles != null && linkedComponentBundles.size() > 0) { + final Bundle firstBundle = linkedComponentBundles.get(0); + final BundleCoordinate firstCoordinate = firstBundle.getBundleDetails().getCoordinate(); - writeLink(xmlStreamWriter, linkedComponent.substring(indexOfLastPeriod), link); + final String group = firstCoordinate.getGroup(); + final String id = firstCoordinate.getId(); + final String version = firstCoordinate.getVersion(); - ++index; + final String link = "/nifi-docs/components/" + group + "/" + id + "/" + version + "/" + linkedComponent + "/index.html"; + + final int indexOfLastPeriod = linkedComponent.lastIndexOf(".") + 1; + + writeLink(xmlStreamWriter, linkedComponent.substring(indexOfLastPeriod), link); + + ++index; + } else { + LOGGER.warn("Could not link to {} because no bundles were found", new Object[] {linkedComponent}); + } } xmlStreamWriter.writeEndElement(); } @@ -661,8 +680,23 @@ public class HtmlDocumentationWriter implements DocumentationWriter { * @param clazz the configurable component to link to * @throws XMLStreamException thrown if there is a problem writing the XML */ - protected void writeLinkForComponent(final XMLStreamWriter xmlStreamWriter, final Class<?> clazz) throws XMLStreamException { - writeLink(xmlStreamWriter, clazz.getSimpleName(), "../" + clazz.getCanonicalName() + "/index.html"); + protected void writeLinkForComponent(final XMLStreamWriter xmlStreamWriter, final Class<?> clazz) + throws XMLStreamException { + final String linkedComponentName = clazz.getName(); + final List<Bundle> linkedComponentBundles = ExtensionManager.getBundles(linkedComponentName); + + if (linkedComponentBundles != null && linkedComponentBundles.size() > 0) { + final Bundle firstLinkedComponentBundle = linkedComponentBundles.get(0); + final BundleCoordinate coordinate = firstLinkedComponentBundle.getBundleDetails().getCoordinate(); + + final String group = coordinate.getGroup(); + final String id = coordinate.getId(); + final String version = coordinate.getVersion(); + + writeLink(xmlStreamWriter, clazz.getSimpleName(), "/nifi-docs/components/" + group + "/" + id + "/" + version + "/" + clazz.getCanonicalName() + "/index.html"); + } else { + LOGGER.warn("Could not link to {} because no bundles were found", new Object[] {linkedComponentName}); + } } /**
