TOMEE-2444 Updated examples internatioalization to format: source/<language>/examples/
diff --git a/src/main/java/org/apache/tomee/website/GroupedIndex.java b/src/main/java/org/apache/tomee/website/GroupedIndex.java
index 7218763..f81f190 100644
--- a/src/main/java/org/apache/tomee/website/GroupedIndex.java
+++ b/src/main/java/org/apache/tomee/website/GroupedIndex.java
@@ -69,10 +69,19 @@
final Map<String, List<Doc>> sections = new HashMap<>();
- //filtering only documents with the same language
- for (Doc doc1 : docs) {
- if (doc1.language.equalsIgnoreCase(language)) {
- sections.computeIfAbsent(doc1.getGroup(), k -> new ArrayList<>()).add(doc1);
+ //filtering only documents with the same language for: target/jbake/<tomeeBranch>/docs
+ if(this.type.equalsIgnoreCase("docsindex")){
+
+ for (Doc doc1 : docs) {
+ if (doc1.language.equalsIgnoreCase(language)) {
+ sections.computeIfAbsent(doc1.getGroup(), k -> new ArrayList<>()).add(doc1);
+ }
+ }
+ }else{
+ for (Doc doc1 : docs) { //filtering only documents with the same language for: target/jbake/<tomeeBranch> and type = examplesindex
+ if (doc1.language.equalsIgnoreCase(language) && doc1.source.getParentFile().getName().equalsIgnoreCase("examples")) {
+ sections.computeIfAbsent(doc1.getGroup(), k -> new ArrayList<>()).add(doc1);
+ }
}
}
@@ -96,7 +105,7 @@
out.printf(
" <li class=\"group-item\"><span class=\"group-item-i\" ><i class=\"fa fa-angle-right\"></i></span><a href=\"%s\">%s</a></li>\n",
- doc.getHref().replaceAll(language + File.separator, ""), doc.getTitle());
+ doc.getHref(), doc.getTitle());
});
@@ -129,6 +138,9 @@
}
}
+ //ToDo:*****************
+ //ToDo: This is going to break when a group will have more than 10 documents in different languages
+ //ToDo:*****************
sections.entrySet().stream()
.filter(entry -> entry.getValue().size() >= 10)
.sorted((o1, o2) -> new Integer(o1.getValue().size()).compareTo(o2.getValue().size()))
@@ -157,7 +169,7 @@
final Doc doc = iterator.next();
out.printf(
" <li class=\"group-item\"><span class=\"group-item-i\" ><i class=\"fa fa-angle-right\"></i></span><a href=\"%s\">%s</a></li>\n",
- doc.getHref().replaceAll(language + File.separator, ""), doc.getTitle());
+ doc.getHref(), doc.getTitle());
}
out.printf(" </ul>\n");
@@ -235,14 +247,18 @@
final String group = Optional.ofNullable(map.get("index-group")).orElse("Unknown") + "";
/*
- Extract language from the file path, examples:
- examples/file.adoc will not generate language. (default to "en")
- examples/es/file.adoc generates language es attribute inside the New Doc that is returned.
- */
+ Create the document reference to be ready to be added as part of the index files like:
+ target/jbake/content/tomee-8.0/docs/index.html
+ target/jbake/content/tomee-8.0/docs/maven/index.html
+ target/jbake/content/tomee-8.0/fr/examples/index.html
+ target/jbake/content/tomee-8.0/en/examples/index.html
+ */
if (type.equalsIgnoreCase("examplesindex") && file.getParentFile().getName().equalsIgnoreCase("examples")) {
String detectedLanguage = getLanguageFromPath(file,this.type);
- return new Doc(group, title, Docs.href(directory, file), file, detectedLanguage);
+ return new Doc(group, title, Docs.href(new File (directory + File.separator + detectedLanguage + File.separator + "examples"), file), file, detectedLanguage);
+ //target/jbake/content/tomee-8.0/docs //target/jbake/content/tomee-8.0/docs/maven/configtest-mojo.adoc
+ //target/jbake/content/tomee-8.0 //target/jbake/content/tomee-8.0/fr/examples/cdi-request-scope.adoc
// if (detectedLanguage.equalsIgnoreCase("en")) {
// return new Doc(group, title, Docs.href(directory, file), file); //default to english "en"
// } else {
diff --git a/src/main/java/org/apache/tomee/website/Sources.java b/src/main/java/org/apache/tomee/website/Sources.java
index 599b9df..13daf34 100644
--- a/src/main/java/org/apache/tomee/website/Sources.java
+++ b/src/main/java/org/apache/tomee/website/Sources.java
@@ -139,7 +139,7 @@
.peek(examples::prepare)
.peek(versionIndex::prepare)
.forEach(Sources::done);
- ;
+
VersionsIndex.prepare(this);
}
diff --git a/src/main/java/org/apache/tomee/website/VersionIndex.java b/src/main/java/org/apache/tomee/website/VersionIndex.java
index 3923d1e..7601f42 100644
--- a/src/main/java/org/apache/tomee/website/VersionIndex.java
+++ b/src/main/java/org/apache/tomee/website/VersionIndex.java
@@ -31,9 +31,15 @@
this.sources = sources;
}
+ /**
+ * Add the available languages to the /target/jbake/content/tomee-8.0/examples/index.html
+ * Add the available languages to the /target/jbake/content/tomee-8.0/es/examples/index.html
+ *
+ * @param source
+ */
public void prepare(final Source source) {
final File docs = sources.getJbakeContentDestFor(source, "docs");
- final File examples = sources.getJbakeContentDestFor(source, "examples");
+ final File examples = sources.getJbakeContentDestFor(source, ""); // target/jbake/content/tomee-8.0/
try {
final StringBuilder index = new StringBuilder();
@@ -50,14 +56,16 @@
//ToDo: add to the doc index file the available languages for documentation.
index.append(" - link:docs[Documentation]\n");
}
- if (examples.exists() && examples.listFiles().length > 0) {
+ List<String> listOfLanguagesDirs = obtainListOfExamplesLanguages(examples);
- List<String> listOfLanguagesDirs = obtainListOfLanguages(examples);
+ if (listOfLanguagesDirs.size() > 0) {
- index.append(" - link:examples[Examples]");
+ index.append(" - link:en/examples[Examples]");
for (String LanguageDir : listOfLanguagesDirs) {
- index.append(" link:examples/" + LanguageDir + "[ [" + LanguageDir + "\\] ]");
+ if (!LanguageDir.equalsIgnoreCase("en")) {
+ index.append(" link:" + LanguageDir + "/examples" + "[ [" + LanguageDir + "\\] ]");
+ }
}
index.append("\n");
@@ -71,13 +79,18 @@
}
}
- public static List<String> obtainListOfLanguages(File file) {
+ public static List<String> obtainListOfExamplesLanguages(File file) { // target/jbake/content/tomee-8.0/
List<String> listOfLanguages = new ArrayList<>();
File[] directories = new File(file.getAbsolutePath()).listFiles(File::isDirectory);
+ File temp = null;
+
for (File directory : directories) {
- listOfLanguages.add(directory.getName());
+ temp = new File(directory.getAbsolutePath() + File.separator + "examples");
+ if (temp.exists()) {
+ listOfLanguages.add(directory.getName());
+ }
}
return listOfLanguages;
diff --git a/src/main/java/org/apache/tomee/website/VersionsIndex.java b/src/main/java/org/apache/tomee/website/VersionsIndex.java
index 0e4a1e3..61edfa9 100644
--- a/src/main/java/org/apache/tomee/website/VersionsIndex.java
+++ b/src/main/java/org/apache/tomee/website/VersionsIndex.java
@@ -20,7 +20,6 @@
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
public class VersionsIndex {
@@ -50,25 +49,29 @@
index.append("*\n\n");
final File docs = sources.getJbakeContentDestFor(source, "docs");
- final File examples = sources.getJbakeContentDestFor(source, "examples");
+ final File examples = sources.getJbakeContentDestFor(source, "");
if (docs.exists() && docs.listFiles().length > 0) {
index.append(" - link:").append(source.getName()).append("/docs[Documentation]\n");
}
- if (examples.exists() && examples.listFiles().length > 0) {
- List<String> listOfLanguagesDirs = VersionIndex.obtainListOfLanguages(examples);
+ List<String> listOfLanguagesDirs = VersionIndex.obtainListOfExamplesLanguages(examples);
- index.append(" - link:").append(source.getName()).append("/examples[Examples]");
+ if (listOfLanguagesDirs.size() > 0) {
+
+ index.append(" - link:"+source.getName()+"/en/examples[Examples]");
for (String LanguageDir : listOfLanguagesDirs) {
- index.append(" link:")
- .append(source.getName())
- .append("/examples/")
- .append(LanguageDir)
- .append("[ [")
- .append(LanguageDir)
- .append("\\] ]");
+ if(!LanguageDir.equalsIgnoreCase("en")){
+ index.append(" link:")
+ .append(source.getName())
+ .append("/")
+ .append(LanguageDir)
+ .append("/examples/")
+ .append("[ [")
+ .append(LanguageDir)
+ .append("\\] ]");
+ }
}
index.append("\n");