projects
/
pnews.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d7e9634
)
load languages from configuration file
author
Jean-Philippe Orsini
<orsinije@fr.ibm.com>
Sun, 29 Oct 2017 21:07:16 +0000
(22:07 +0100)
committer
Jean-Philippe Orsini
<orsinije@fr.ibm.com>
Sun, 29 Oct 2017 21:07:16 +0000
(22:07 +0100)
war/src/main/java/pnews/Language.java
patch
|
blob
|
history
war/src/main/java/pnews/servlet/Config.java
patch
|
blob
|
history
war/src/main/java/pnews/servlet/Pnews.java
patch
|
blob
|
history
war/src/main/resources/feeds.json
patch
|
blob
|
history
diff --git
a/war/src/main/java/pnews/Language.java
b/war/src/main/java/pnews/Language.java
index
dad66d2
..
30770dc
100644
(file)
--- a/
war/src/main/java/pnews/Language.java
+++ b/
war/src/main/java/pnews/Language.java
@@
-1,7
+1,17
@@
package pnews;
public class Language {
package pnews;
public class Language {
- public static String toURL(String l) {
- return "/" + l + "/";
+ private final String id;
+
+ public Language(String id) {
+ this.id = id;
+ }
+
+ public String toURL() {
+ return "/" + id;
+ }
+
+ public String getLabel() {
+ return id;
}
}
}
}
diff --git
a/war/src/main/java/pnews/servlet/Config.java
b/war/src/main/java/pnews/servlet/Config.java
index
e4c5fed
..
09a5457
100644
(file)
--- a/
war/src/main/java/pnews/servlet/Config.java
+++ b/
war/src/main/java/pnews/servlet/Config.java
@@
-17,11
+17,12
@@
import javax.json.JsonValue;
import pnews.Category;
import pnews.Feed;
import pnews.Category;
import pnews.Feed;
+import pnews.Language;
public class Config {
private Feed[] feeds;
private Category[] categories;
public class Config {
private Feed[] feeds;
private Category[] categories;
- private
final String[] languages = { "fr", "en" }
;
+ private
Language[] languages
;
private static final Logger LOG = Logger.getLogger(Config.class.getName());
private void loadCategories(JsonArray jcats) {
private static final Logger LOG = Logger.getLogger(Config.class.getName());
private void loadCategories(JsonArray jcats) {
@@
-42,6
+43,22
@@
public class Config {
categories = cats.toArray(new Category[0]);
}
categories = cats.toArray(new Category[0]);
}
+
+ private void loadLanguages(JsonArray jlangs) {
+ List<Language> langs;
+ JsonObject jlang;
+ String id;
+
+ langs = new ArrayList<>(jlangs.size());
+
+ for (JsonValue v: jlangs) {
+ jlang = (JsonObject)v;
+ id = jlang.getString("id");
+ langs.add(new Language(id));
+ }
+
+ languages = langs.toArray(new Language[0]);
+ }
private Category getCategory(String id) {
for (Category c: categories)
private Category getCategory(String id) {
for (Category c: categories)
@@
-65,7
+82,7
@@
public class Config {
try { r.close(); } catch (IOException e) { };
}
try { r.close(); } catch (IOException e) { };
}
-
+ loadLanguages(jroot.getJsonArray("languages"));
loadCategories(jroot.getJsonArray("categories"));
jfeeds = jroot.getJsonObject("feeds");
loadCategories(jroot.getJsonArray("categories"));
jfeeds = jroot.getJsonObject("feeds");
@@
-128,11
+145,11
@@
public class Config {
return categories[0];
}
return categories[0];
}
- public
String
[] getLanguages() {
+ public
Language
[] getLanguages() {
return languages;
}
return languages;
}
- public
String
getDefaultLanguage() {
+ public
Language
getDefaultLanguage() {
return languages[0];
}
return languages[0];
}
diff --git
a/war/src/main/java/pnews/servlet/Pnews.java
b/war/src/main/java/pnews/servlet/Pnews.java
index
94475f9
..
5800d04
100644
(file)
--- a/
war/src/main/java/pnews/servlet/Pnews.java
+++ b/
war/src/main/java/pnews/servlet/Pnews.java
@@
-174,7
+174,7
@@
public class Pnews extends HttpServlet {
}
if (path.equals("/")) {
}
if (path.equals("/")) {
- doTemporaryRedirect(
Language.toURL(config.getDefaultLanguage()
), resp);
+ doTemporaryRedirect(
config.getDefaultLanguage().toURL(
), resp);
return ;
}
return ;
}
@@
-191,8
+191,8
@@
public class Pnews extends HttpServlet {
}
}
}
}
- for (
String
l: config.getLanguages()) {
- if (path.equals(
"/" + l) || path.equals("/" + l + "/"
)) {
+ for (
Language
l: config.getLanguages()) {
+ if (path.equals(
l.toURL()
)) {
doTemporaryRedirect(config.getDefaultCategory().getURL(), resp);
return ;
}
doTemporaryRedirect(config.getDefaultCategory().getURL(), resp);
return ;
}
diff --git
a/war/src/main/resources/feeds.json
b/war/src/main/resources/feeds.json
index
34631f2
..
8e71c0c
100644
(file)
--- a/
war/src/main/resources/feeds.json
+++ b/
war/src/main/resources/feeds.json
@@
-1,4
+1,8
@@
{
{
+ "languages": [
+ {"id": "fr"},
+ {"id": "en"}
+ ],
"categories": [
{
"id": "actualite",
"categories": [
{
"id": "actualite",