You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/02/02 12:44:13 UTC
[camel] 01/02: CAMEL-1225: Ascii doc documentation files should
include link in top.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch CAMEL-12225
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3e76b7389ddaff5ab170dd7dcd41b3d573a0b77c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 2 13:41:20 2018 +0100
CAMEL-1225: Ascii doc documentation files should include link in top.
---
.../camel/maven/packaging/UpdateReadmeMojo.java | 74 ++++++++++++++++++----
1 file changed, 60 insertions(+), 14 deletions(-)
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java
index 7c9d48f..8901fe4 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateReadmeMojo.java
@@ -149,7 +149,8 @@ public class UpdateReadmeMojo extends AbstractMojo {
boolean exists = file.exists();
boolean updated;
- updated = updateTitles(file, docTitle);
+ updated = updateLink(file, componentName + "-component");
+ updated |= updateTitles(file, docTitle);
updated |= updateAvailableFrom(file, model.getFirstVersion());
// resolvePropertyPlaceholders is an option which only make sense to use if the component has other options
@@ -209,7 +210,8 @@ public class UpdateReadmeMojo extends AbstractMojo {
boolean exists = file.exists();
boolean updated;
- updated = updateTitles(file, docTitle);
+ updated = updateLink(file, dataFormatName + "-dataformat");
+ updated |= updateTitles(file, docTitle);
updated |= updateAvailableFrom(file, model.getFirstVersion());
String options = templateDataFormatOptions(model);
@@ -264,7 +266,8 @@ public class UpdateReadmeMojo extends AbstractMojo {
boolean exists = file.exists();
boolean updated;
- updated = updateTitles(file, docTitle);
+ updated = updateLink(file, languageName + "-language");
+ updated |= updateTitles(file, docTitle);
updated |= updateAvailableFrom(file, model.getFirstVersion());
String options = templateLanguageOptions(model);
@@ -328,7 +331,8 @@ public class UpdateReadmeMojo extends AbstractMojo {
boolean exists = file.exists();
boolean updated;
- updated = updateTitles(file, docTitle);
+ updated = updateLink(file, eipName + "-eip");
+ updated |= updateTitles(file, docTitle);
String options = templateEipOptions(model);
updated |= updateEipOptions(file, options);
@@ -383,7 +387,7 @@ public class UpdateReadmeMojo extends AbstractMojo {
return title;
}
- private boolean updateTitles(File file, String title) throws MojoExecutionException {
+ private boolean updateLink(File file, String link) throws MojoExecutionException {
if (!file.exists()) {
return false;
}
@@ -399,6 +403,48 @@ public class UpdateReadmeMojo extends AbstractMojo {
String line = lines[i];
if (i == 0) {
+ // first line is the link
+ String newLine = "[[" + link + "]]";
+ newLines.add(newLine);
+ updated = !line.equals(newLine);
+ if (updated) {
+ // its some old text so keep it
+ newLines.add(line);
+ }
+ } else {
+ newLines.add(line);
+ }
+ }
+
+ if (updated) {
+ // build the new updated text
+ String newText = newLines.stream().collect(Collectors.joining("\n"));
+ writeText(file, newText);
+ }
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+ }
+
+ return updated;
+ }
+
+ private boolean updateTitles(File file, String title) throws MojoExecutionException {
+ if (!file.exists()) {
+ return false;
+ }
+
+ boolean updated = false;
+
+ try {
+ List<String> newLines = new ArrayList<>();
+
+ String text = loadText(new FileInputStream(file));
+ String[] lines = text.split("\n");
+ // line 0 is the link
+ for (int i = 1; i < lines.length; i++) {
+ String line = lines[i];
+
+ if (i == 1) {
// first line is the title to make the text less noisy we use level 2
String newLine = "== " + title;
newLines.add(newLine);
@@ -471,25 +517,25 @@ public class UpdateReadmeMojo extends AbstractMojo {
newLines.addAll(Arrays.asList(lines));
// check the first four lines
- boolean title = lines[0].startsWith("##") || lines[0].startsWith("==");
- boolean empty = lines[1].trim().isEmpty();
- boolean availableFrom = lines[2].trim().contains("Available as of") || lines[2].trim().contains("Available in");
- boolean empty2 = lines[3].trim().isEmpty();
+ boolean title = lines[1].startsWith("##") || lines[1].startsWith("==");
+ boolean empty = lines[2].trim().isEmpty();
+ boolean availableFrom = lines[3].trim().contains("Available as of") || lines[3].trim().contains("Available in");
+ boolean empty2 = lines[4].trim().isEmpty();
if (title && empty && availableFrom) {
String newLine = "*Available as of Camel version " + firstVersion + "*";
- if (!newLine.equals(lines[2])) {
- newLines.set(2, newLine);
+ if (!newLine.equals(lines[3])) {
+ newLines.set(3, newLine);
updated = true;
}
if (!empty2) {
- newLines.add(3, "");
+ newLines.add(4, "");
updated = true;
}
} else if (!availableFrom) {
String newLine = "*Available as of Camel version " + firstVersion + "*";
- newLines.add(2, newLine);
- newLines.add(3, "");
+ newLines.add(3, newLine);
+ newLines.add(4, "");
updated = true;
}
--
To stop receiving notification emails like this one, please contact
davsclaus@apache.org.