[or-cvs] [metrics-web/master] Move config from ernie.properties to deployment descriptor.

karsten at torproject.org karsten at torproject.org
Thu Oct 7 14:22:33 UTC 2010


Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Thu, 7 Oct 2010 16:21:21 +0200
Subject: Move config from ernie.properties to deployment descriptor.
Commit: 413cb6bd9d81fbd373bc2a1836b6428fd15a8def

---
 etc/ernie.properties                               |   16 ----------
 etc/web.xml                                        |   22 ++++++++++++++
 .../torproject/ernie/web/DescriptorServlet.java    |    8 ++--
 src/org/torproject/ernie/web/ErnieProperties.java  |   31 --------------------
 .../ernie/web/ExtraInfoDescriptorServlet.java      |    8 ++--
 src/org/torproject/ernie/web/GraphController.java  |   19 ++++--------
 .../torproject/ernie/web/GraphImageServlet.java    |   12 +++++++-
 .../torproject/ernie/web/RelaySearchServlet.java   |    8 ++--
 src/org/torproject/ernie/web/RelayServlet.java     |    8 ++--
 .../ernie/web/ServerDescriptorServlet.java         |    8 ++--
 10 files changed, 59 insertions(+), 81 deletions(-)
 delete mode 100644 etc/ernie.properties
 delete mode 100644 src/org/torproject/ernie/web/ErnieProperties.java

diff --git a/etc/ernie.properties b/etc/ernie.properties
deleted file mode 100644
index 3b303e0..0000000
--- a/etc/ernie.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# The Postgres connection string
-jdbc.url=jdbc:postgresql://localhost/tordir?user=ernie&password=password
-
-# The Rserve host
-rserve.host=localhost
-
-# The Rserve port
-rserve.port=6311
-
-# Maximum age in seconds of a graph in the cache
-max.cache.age=21600
-
-# Directory to store cached graph. Must be writable by tomcat
-# and rserve processes
-cached.graphs.dir=/tmp/ernie/
-
diff --git a/etc/web.xml b/etc/web.xml
index be2137a..7e0eccd 100644
--- a/etc/web.xml
+++ b/etc/web.xml
@@ -40,6 +40,22 @@
   <servlet>
     <servlet-name>GraphImageServlet</servlet-name>
     <servlet-class>org.torproject.ernie.web.GraphImageServlet</servlet-class>
+    <init-param>
+      <param-name>rserveHost</param-name>
+      <param-value>localhost</param-value>
+    </init-param>
+    <init-param>
+      <param-name>rservePort</param-name>
+      <param-value>6311</param-value>
+    </init-param>
+    <init-param>
+      <param-name>maxCacheAge</param-name>
+      <param-value>21600</param-value>
+    </init-param>
+    <init-param>
+      <param-name>cachedGraphsDir</param-name>
+      <param-value>/srv/metrics.torproject.org/graphs/</param-value>
+    </init-param>
   </servlet>
   <servlet-mapping>
     <servlet-name>GraphImageServlet</servlet-name>
@@ -137,4 +153,10 @@
     <servlet-name>ErnieGeneratedFile</servlet-name>
     <url-pattern>/consensus-health-2.html</url-pattern>
   </servlet-mapping>
+
+  <context-param>
+    <param-name>jdbcUrl</param-name>
+    <param-value>jdbc:postgresql://localhost/tordir?user=ernie&amp;password=password</param-value>
+  </context-param>
 </web-app>
+
diff --git a/src/org/torproject/ernie/web/DescriptorServlet.java b/src/org/torproject/ernie/web/DescriptorServlet.java
index 6efaef1..71e69e4 100644
--- a/src/org/torproject/ernie/web/DescriptorServlet.java
+++ b/src/org/torproject/ernie/web/DescriptorServlet.java
@@ -16,7 +16,7 @@ public class DescriptorServlet extends HttpServlet {
 
   private Connection conn = null;
 
-  public DescriptorServlet() {
+  public void init() {
 
     /* Try to load the database driver. */
     try {
@@ -27,9 +27,9 @@ public class DescriptorServlet extends HttpServlet {
       return;
     }
 
-    /* Read JDBC URL from property file. */
-    ErnieProperties props = new ErnieProperties();
-    String connectionURL = props.getProperty("jdbc.url");
+    /* Read JDBC URL from deployment descriptor. */
+    String connectionURL = getServletContext().
+        getInitParameter("jdbcUrl");
 
     /* Try to connect to database. */
     try {
diff --git a/src/org/torproject/ernie/web/ErnieProperties.java b/src/org/torproject/ernie/web/ErnieProperties.java
deleted file mode 100644
index 7858285..0000000
--- a/src/org/torproject/ernie/web/ErnieProperties.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.torproject.ernie.web;
-
-import java.util.Properties;
-
-public class ErnieProperties  {
-
-  private static final String PROPS_RESOURCE = "ernie.properties";
-  private static Properties props;
-
-  static {
-    props = new Properties();
-    try {
-      props.load(ErnieProperties.class.getClassLoader()
-          .getResourceAsStream(PROPS_RESOURCE));
-    } catch (Exception e) {
-    }
-  }
-
-  public String getProperty(String key) {
-    return props.getProperty(key);
-  }
-
-  public String getProperty(String key, String defaultValue)  {
-    return props.getProperty(key, defaultValue);
-  }
-
-  public int getInt(String key) {
-    String value = getProperty(key);
-    return value == null ? 0 : Integer.parseInt(value);
-  }
-}
diff --git a/src/org/torproject/ernie/web/ExtraInfoDescriptorServlet.java b/src/org/torproject/ernie/web/ExtraInfoDescriptorServlet.java
index d447a7e..aee9be0 100644
--- a/src/org/torproject/ernie/web/ExtraInfoDescriptorServlet.java
+++ b/src/org/torproject/ernie/web/ExtraInfoDescriptorServlet.java
@@ -10,7 +10,7 @@ public class ExtraInfoDescriptorServlet extends HttpServlet {
 
   private Connection conn = null;
 
-  public ExtraInfoDescriptorServlet() {
+  public void init() {
 
     /* Try to load the database driver. */
     try {
@@ -21,9 +21,9 @@ public class ExtraInfoDescriptorServlet extends HttpServlet {
       return;
     }
 
-    /* Read JDBC URL from property file. */
-    ErnieProperties props = new ErnieProperties();
-    String connectionURL = props.getProperty("jdbc.url");
+    /* Read JDBC URL from deployment descriptor. */
+    String connectionURL = getServletContext().
+        getInitParameter("jdbcUrl");
 
     /* Try to connect to database. */
     try {
diff --git a/src/org/torproject/ernie/web/GraphController.java b/src/org/torproject/ernie/web/GraphController.java
index 32b7f4f..01d59de 100644
--- a/src/org/torproject/ernie/web/GraphController.java
+++ b/src/org/torproject/ernie/web/GraphController.java
@@ -8,12 +8,6 @@ import org.rosuda.REngine.*;
 
 public class GraphController {
 
-  /* Singleton instance and getInstance method of this class. */
-  private static GraphController instance = new GraphController();
-  public static GraphController getInstance() {
-    return instance;
-  }
-
   /* Host and port where Rserve is listening. */
   private String rserveHost;
   private int rservePort;
@@ -22,14 +16,13 @@ public class GraphController {
   private String cachedGraphsDirectory;
   private long maxCacheAge;
 
-  protected GraphController ()  {
+  public GraphController(String rserveHost, String rservePort,
+      String maxCacheAge, String cachedGraphsDir) {
 
-    /* Read properties from property file. */
-    ErnieProperties props = new ErnieProperties();
-    this.cachedGraphsDirectory = props.getProperty("cached.graphs.dir");
-    this.maxCacheAge = (long) props.getInt("max.cache.age");
-    this.rserveHost = props.getProperty("rserve.host");
-    this.rservePort = props.getInt("rserve.port");
+    this.rserveHost = rserveHost;
+    this.rservePort = Integer.parseInt(rservePort);
+    this.cachedGraphsDirectory = cachedGraphsDir;
+    this.maxCacheAge = Long.parseLong(maxCacheAge);
   }
 
   /* Generate a graph using the given R query that has a placeholder for
diff --git a/src/org/torproject/ernie/web/GraphImageServlet.java b/src/org/torproject/ernie/web/GraphImageServlet.java
index 8534049..4f0570e 100644
--- a/src/org/torproject/ernie/web/GraphImageServlet.java
+++ b/src/org/torproject/ernie/web/GraphImageServlet.java
@@ -24,7 +24,6 @@ public class GraphImageServlet extends HttpServlet {
   private Map<String, String> knownParameterValues;
 
   public GraphImageServlet()  {
-    this.graphController = GraphController.getInstance();
     this.dateFormat = new SimpleDateFormat("yyyy-MM-dd");
     this.dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
 
@@ -53,6 +52,17 @@ public class GraphImageServlet extends HttpServlet {
     this.knownParameterValues.put("filesize", "50kb,1mb,5mb");
   }
 
+  public void init() {
+    ServletConfig servletConfig = getServletConfig();
+    String rserveHost = servletConfig.getInitParameter("rserveHost");
+    String rservePort = servletConfig.getInitParameter("rservePort");
+    String maxCacheAge = servletConfig.getInitParameter("maxCacheAge");
+    String cachedGraphsDir = servletConfig.getInitParameter(
+        "cachedGraphsDir");
+    this.graphController = new GraphController(rserveHost, rservePort,
+        maxCacheAge, cachedGraphsDir);
+  }
+
   public void doGet(HttpServletRequest request,
       HttpServletResponse response) throws IOException,
       ServletException {
diff --git a/src/org/torproject/ernie/web/RelaySearchServlet.java b/src/org/torproject/ernie/web/RelaySearchServlet.java
index f6c44a7..ac2ced8 100644
--- a/src/org/torproject/ernie/web/RelaySearchServlet.java
+++ b/src/org/torproject/ernie/web/RelaySearchServlet.java
@@ -60,7 +60,7 @@ public class RelaySearchServlet extends HttpServlet {
 
   private Connection conn = null;
 
-  public RelaySearchServlet() {
+  public void init() {
 
     /* Try to load the database driver. */
     try {
@@ -71,9 +71,9 @@ public class RelaySearchServlet extends HttpServlet {
       return;
     }
 
-    /* Read JDBC URL from property file. */
-    ErnieProperties props = new ErnieProperties();
-    String connectionURL = props.getProperty("jdbc.url");
+    /* Read JDBC URL from deployment descriptor. */
+    String connectionURL = getServletContext().
+        getInitParameter("jdbcUrl");
 
     /* Try to connect to database. */
     try {
diff --git a/src/org/torproject/ernie/web/RelayServlet.java b/src/org/torproject/ernie/web/RelayServlet.java
index 9492090..c59ce1b 100644
--- a/src/org/torproject/ernie/web/RelayServlet.java
+++ b/src/org/torproject/ernie/web/RelayServlet.java
@@ -23,7 +23,7 @@ public class RelayServlet extends HttpServlet {
 
   private Connection conn = null;
 
-  public RelayServlet() {
+  public void init() {
 
     /* Try to load the database driver. */
     try {
@@ -34,9 +34,9 @@ public class RelayServlet extends HttpServlet {
       return;
     }
 
-    /* Read JDBC URL from property file. */
-    ErnieProperties props = new ErnieProperties();
-    String connectionURL = props.getProperty("jdbc.url");
+    /* Read JDBC URL from deployment descriptor. */
+    String connectionURL = getServletContext().
+        getInitParameter("jdbcUrl");
 
     /* Try to connect to database. */
     try {
diff --git a/src/org/torproject/ernie/web/ServerDescriptorServlet.java b/src/org/torproject/ernie/web/ServerDescriptorServlet.java
index 69f5bd6..23e4625 100644
--- a/src/org/torproject/ernie/web/ServerDescriptorServlet.java
+++ b/src/org/torproject/ernie/web/ServerDescriptorServlet.java
@@ -10,7 +10,7 @@ public class ServerDescriptorServlet extends HttpServlet {
 
   private Connection conn = null;
 
-  public ServerDescriptorServlet() {
+  public void init() {
 
     /* Try to load the database driver. */
     try {
@@ -21,9 +21,9 @@ public class ServerDescriptorServlet extends HttpServlet {
       return;
     }
 
-    /* Read JDBC URL from property file. */
-    ErnieProperties props = new ErnieProperties();
-    String connectionURL = props.getProperty("jdbc.url");
+    /* Read JDBC URL from deployment descriptor. */
+    String connectionURL = getServletContext().
+        getInitParameter("jdbcUrl");
 
     /* Try to connect to database. */
     try {
-- 
1.7.1



More information about the tor-commits mailing list