From 1049e86f754563cef682f52a6fbebadd06e19332 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Tue, 23 Oct 2018 18:38:11 +0200 Subject: [PATCH] Nodebb API property config file in user's home directory --- .../java/de/hdm_stuttgart/mi/bb/Id2Topic.java | 69 +++++++++++-------- .../mi/bb/ModifyNodebbTopic.java | 2 +- .../de/hdm_stuttgart/mi/bb/ReadUsers.java | 13 ++-- ....template => bbtopics.properties.template} | 0 4 files changed, 48 insertions(+), 36 deletions(-) rename ws/Docbook/Id2topic/src/main/resources/{conf.properties.template => bbtopics.properties.template} (100%) diff --git a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/Id2Topic.java b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/Id2Topic.java index 590b76686..95617922f 100644 --- a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/Id2Topic.java +++ b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/Id2Topic.java @@ -16,10 +16,14 @@ import javax.ws.rs.core.MediaType; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; import java.util.ResourceBundle; -import static java.util.ResourceBundle.getBundle; import java.util.logging.Logger; import java.util.logging.Level; @@ -28,9 +32,27 @@ public class Id2Topic { static { final Logger mongoLogger = Logger.getLogger( "org.mongodb.driver" ); mongoLogger.setLevel(Level.SEVERE); // e.g. or Log.WARNING, etc. + + final String + configPathName= System.getProperty("user.home"), + configFileName = "bbtopics", + fqPathname = configPathName + '/' + configFileName + ".properties"; + + final File file = new File(configPathName); + + ResourceBundle rb = null; + try { + final URL[] urls = new URL[]{file.toURI().toURL()}; + final ClassLoader loader = new URLClassLoader(urls); + rb = ResourceBundle.getBundle(configFileName, Locale.getDefault(), loader); + } catch (final MalformedURLException | MissingResourceException e) { + System.err.println("Unable to open URI " + fqPathname); + System.exit(1); + } + config = rb; } - private static ResourceBundle config = getBundle("conf"); + static private final ResourceBundle config; static private final ModifyNodebbTopic db = new ModifyNodebbTopic( @@ -39,12 +61,11 @@ public class Id2Topic { static private final Client client = ClientBuilder.newClient(new ClientConfig().register(new JacksonFeature())); - static final String bearerToken = config.getString("nodebbBearerToken"); + static private final String bearerToken = config.getString("nodebbBearerToken"); - static final String + static private final String KEY_PAYLOAD = "payload", - KEY_TOPICDATA = "topicData", - KEY_POSTDATA = "postData"; + KEY_TOPICDATA = "topicData"; public static void main(String[] args) { @@ -71,26 +92,25 @@ public class Id2Topic { } catch (JDOMException e) { System.err.println("Unable to parse " + inputFile); } catch (IOException e) { - System.err.println("Unable to read " + inputFile + ":" + - e.getLocalizedMessage()); + System.err.println("Unable to read " + inputFile); } } } - static void handleDocbok2idMap(final Element map) { + static private void handleDocbok2idMap(final Element map) { String mapPrefix = map.getAttributeValue("prefix"); for (final Element entry : map.getChildren("entry")) { final int tid = createTopic( mapPrefix + ":" + entry.getAttributeValue("id"), - Integer.valueOf(entry.getChildText("forumId")), + Integer.valueOf(entry.getAttributeValue("forumId")), entry.getChildText("title"), entry.getChildText("content")); entry.setAttribute("tid", "" + tid); } } - static int createTopic(String hdmId, int categoryId, String title, String content) { + static private int createTopic(String hdmId, int categoryId, String title, String content) { int tid = db.hdmIdExists(hdmId); if (tid < 0) { // No related topic @@ -100,16 +120,15 @@ public class Id2Topic { final Entity jsonTopic = Entity.json(topic); System.out.println("Feeding in Topic " + topic); - final Map<String, Object> response = topicsTarget.request(MediaType.APPLICATION_JSON). - header(HttpHeaders.AUTHORIZATION, "Bearer " + bearerToken) - .accept(MediaType.TEXT_PLAIN_TYPE) - .post(jsonTopic, Map.class); + final Map<String, Object> response = (Map<String, Object>) + topicsTarget.request(MediaType.APPLICATION_JSON). + header(HttpHeaders.AUTHORIZATION, "Bearer " + bearerToken). + accept(MediaType.TEXT_PLAIN_TYPE). + post(jsonTopic, Map.class); - //System.out.println("Result:" + response.get("code")); - //printAttribs(response); - - final Map<String, Object> payload = (Map<String, Object>) response.get(KEY_PAYLOAD); - final Map<String, Object> topicData = (Map<String, Object>) payload.get(KEY_TOPICDATA); + final Map<String, Object> topicData = (Map<String, Object>) + ((Map<String, Object>)(response.get(KEY_PAYLOAD))). + get(KEY_TOPICDATA); int newTid = (int) topicData.get("tid"); db.addHdmId(newTid, hdmId); @@ -128,14 +147,10 @@ public class Id2Topic { final Map<String, Object> hdmTopicMap = response.readEntity(Map.class); System.out.println("-----------------------Topic [tid=" + tid + "] data:"); - printAttribs(hdmTopicMap); + for (String k : hdmTopicMap) { + System.out.println("key '" + k + "', val '" + m.get(k) + "'"); + } */ } } - - static void printAttribs(Map<String, Object> m) { - for (String k : m.keySet()) { - System.out.println("key '" + k + "', val '" + m.get(k) + "'"); - } - } } diff --git a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ModifyNodebbTopic.java b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ModifyNodebbTopic.java index a70f41c04..49e1ce5bf 100644 --- a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ModifyNodebbTopic.java +++ b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ModifyNodebbTopic.java @@ -28,7 +28,7 @@ class ModifyNodebbTopic { * @param hdmId The hdmId value to be searched for. * @return If a topic carrying the hdmId value exists, return its tid, else return a negative value. */ - private int hdmIdExists(final String hdmId) { + int hdmIdExists(final String hdmId) { final Document res = objectCollection.find(eq("hdmId", hdmId)).first(); if (null == res) { diff --git a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ReadUsers.java b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ReadUsers.java index 51bddd6e0..061a8a5a0 100644 --- a/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ReadUsers.java +++ b/ws/Docbook/Id2topic/src/main/java/de/hdm_stuttgart/mi/bb/ReadUsers.java @@ -12,13 +12,11 @@ import java.util.List; import java.util.Map; /** - * Hello world! + * Reading user flags * */ -public class ReadUsers -{ - public static void main( String[] args ) - { +public class ReadUsers { + public static void main( String[] args ) { final ClientConfig cc = new ClientConfig().register(new JacksonFeature()); @@ -33,10 +31,9 @@ public class ReadUsers System.out.println(response.getStatus()); System.out.println(ret.get("users").getClass().getName()); final List l = (List)ret.get("users"); - System.out.println(l.get(0).getClass().getName()); - Map<String, Object> m = (Map)l.get(0); + final Map<String, Object> m = (Map)l.get(0); for (String k: m.keySet()) { System.out.println("key '" + k + "', val '" + m.get(k) + "'"); } } -} +} \ No newline at end of file diff --git a/ws/Docbook/Id2topic/src/main/resources/conf.properties.template b/ws/Docbook/Id2topic/src/main/resources/bbtopics.properties.template similarity index 100% rename from ws/Docbook/Id2topic/src/main/resources/conf.properties.template rename to ws/Docbook/Id2topic/src/main/resources/bbtopics.properties.template -- GitLab