package md.frolov.legume.client.service.impl;

import javax.inject.Singleton;

import md.frolov.legume.client.service.ConfigurationService;

import com.google.gwt.user.client.Cookies;

@Singleton
public class ConfigurationServiceImpl implements ConfigurationService{

    @Override
    public String get(String key) {
        return get(key, "");
    }

    @Override
    public String get(String key, String defaultValue) {
        String value = Cookies.getCookie(key);
        if(value==null) {
            value = getFromProperties(key);
        }
        if (value == null) {
            value = defaultValue;
        }
        return value;
    }

    @Override
    public void put(String key, String value) {
        Cookies.setCookie(key, value); //TODO secure cookies?
    }

    private final native String getFromProperties(String key) /*-{
		return $wnd.GlobalProperties[key];
    }-*/;
}

@@ -79,16 +79,60 @@
 %0Aimport 
+com.google.gwt.user.client.Cookies;%0A%0Aimport 
 md.frolo
@@ -179,52 +179,8 @@
 vice
-;%0A%0Aimport com.google.gwt.user.client.Cookies
 ;%0A%0A@
@@ -258,18 +258,18 @@
 nService
-%7B
 %0A
+%7B
 %0A    @Ov
@@ -289,32 +289,38 @@
 blic String get(
+final 
 String key) %7B%0A  
@@ -314,16 +314,20 @@
 ing key)
+%0A   
  %7B%0A     
@@ -393,16 +393,22 @@
 ing get(
+final 
 String k
@@ -402,32 +402,38 @@
 inal String key,
+ final
  String defaultV
@@ -433,24 +433,28 @@
 efaultValue)
+%0A   
  %7B%0A        S
@@ -505,21 +505,32 @@
   if
+ 
 (value
+ 
 ==
+ 
 null)
+%0A       
  %7B%0A 
@@ -608,16 +608,24 @@
 == null)
+%0A       
  %7B%0A     
@@ -726,16 +726,22 @@
 oid put(
+final 
 String k
@@ -743,16 +743,22 @@
 ing key,
+ final
  String 
@@ -763,16 +763,20 @@
 g value)
+%0A   
  %7B%0A     
@@ -889,16 +889,22 @@
 perties(
+final 
 String k
@@ -916,10 +916,16 @@
 *-%7B%0A
-%09%09
+        
 retu
@@ -932,16 +932,23 @@
 rn $wnd.
+window.
 GlobalPr
@@ -962,16 +962,53 @@
 s%5Bkey%5D;%0A
+        //TODO check for null values%0A
     %7D-*/

Fix configurationService.