changeset 767:f16b52396b14

Removed hardcoded URL for WebStorage. Reviewed-by: neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-November/004082.html
author Roman Kennke <rkennke@redhat.com>
date Mon, 12 Nov 2012 16:40:56 +0100
parents 13eda5b74828
children 7fe64764d836 003c2660ff00
files web/client/src/main/java/com/redhat/thermostat/web/client/WebStorage.java web/client/src/main/java/com/redhat/thermostat/web/client/WebStorageProvider.java web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java
diffstat 3 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/web/client/src/main/java/com/redhat/thermostat/web/client/WebStorage.java	Mon Nov 12 15:48:34 2012 +0100
+++ b/web/client/src/main/java/com/redhat/thermostat/web/client/WebStorage.java	Mon Nov 12 16:40:56 2012 +0100
@@ -95,8 +95,13 @@
 
         @Override
         public void connect() {
-            connected = true;
-            fireChanged(ConnectionStatus.CONNECTED);
+            try {
+                ping();
+                connected = true;
+                fireChanged(ConnectionStatus.CONNECTED);
+            } catch (IOException ex) {
+                fireChanged(ConnectionStatus.FAILED_TO_CONNECT);
+            }
         }
         @Override
         public String getUrl() {
@@ -111,11 +116,20 @@
     private Gson gson;
 
     public WebStorage() {
-        endpoint = "http://localhost:8082";
         categoryIds = new HashMap<>();
         gson = new GsonBuilder().registerTypeHierarchyAdapter(Pojo.class, new ThermostatGSONConverter()).create();
     }
 
+    private void ping() throws IOException {
+        HttpClient httpClient = new DefaultHttpClient();
+        HttpPost httpPost = new HttpPost(endpoint + "/ping");
+        HttpResponse response = httpClient.execute(httpPost);
+        StatusLine status = response.getStatusLine();
+        if (status.getStatusCode() != 200) {
+            throw new IOException("Server returned status: " + status);
+        }
+    }
+
     @Override
     public void registerCategory(Category category) {
         try {
--- a/web/client/src/main/java/com/redhat/thermostat/web/client/WebStorageProvider.java	Mon Nov 12 15:48:34 2012 +0100
+++ b/web/client/src/main/java/com/redhat/thermostat/web/client/WebStorageProvider.java	Mon Nov 12 16:40:56 2012 +0100
@@ -10,7 +10,9 @@
     
     @Override
     public Storage createStorage() {
-        return new WebStorage();
+        WebStorage storage = new WebStorage();
+        storage.setEndpoint(config.getDBConnectionString());
+        return storage;
     }
 
     @Override
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java	Mon Nov 12 15:48:34 2012 +0100
+++ b/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java	Mon Nov 12 16:40:56 2012 +0100
@@ -126,9 +126,15 @@
             loadFile(req, resp);
         } else if (cmd.equals("purge")) {
             purge(req, resp);
+        } else if (cmd.equals("ping")) {
+            ping(req, resp);
         }
     }
 
+    private void ping(HttpServletRequest req, HttpServletResponse resp) {
+        resp.setStatus(HttpServletResponse.SC_OK);
+    }
+
     private void purge(HttpServletRequest req, HttpServletResponse resp) {
         storage.purge();
         resp.setStatus(HttpServletResponse.SC_OK);