// Path: backend/src/main/java/org/haagensoftware/netty/webserver/spi/PropertyConstants.java
// public class PropertyConstants {
//     public static final String NETTY_PORT = "no.haagensoftware.netty.port";
//     public static final String WEBAPP_DIR = "no.haagensoftware.netty.webappDir";
//     public static final String SCRIPTS_CACHE_SECONDS = "no.haagensoftware.netty.scriptsCacheSeconds";
//     public static final String RIAK_HOST = "no.haagensoftware.riak.host";
//     public static final String RIAK_PORT = "no.haagensoftware.riak.port";
// }
// 
// Path: backend/src/main/java/no/haagensoftware/riak/dao/RiakBucketDao.java
// public class RiakBucketDao {
// 	private static Logger logger = Logger.getLogger(RiakBucketDao.class.getName());
// 	
// 	private IRiakClient riakClient;
// 	
// 	public RiakBucketDao(IRiakClient riakClient) {
// 		this.riakClient = riakClient;
// 	}
// 	
// 	public List<BucketData> getBuckets() {
// 		List<BucketData> bucketList = new ArrayList<>();
// 		try {
// 			for (String bucket : riakClient.listBuckets()) {
// 				BucketData bd = new BucketData(bucket);
// 				List<String> keyIds = new ArrayList<>();
// 				
// 				for (KeyData kd : getKeysForBucket(bucket)) {
// 					keyIds.add(bucket + "___" + kd.getId());
// 				}
// 				Collections.sort(keyIds);
// 				bd.setKeyIds(keyIds);
// 				bucketList.add(bd);
// 			}
// 		} catch (RiakException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 		
// 		return bucketList;
// 	}
// 	
// 	public List<KeyData> getKeysForBucket(String bucketName) {
// 		List<KeyData> keyList = new ArrayList<>();
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			
// 			for (String key : bucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
// 				keyList.add(new KeyData(key));
// 			}
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         } catch (RiakException e) {
//             e.printStackTrace();
//         }
// 		
// 		return keyList;
// 	}
// 	
// 	public KeyValue getKeyValue(String bucketName, String key) {
// 		KeyValue keyValue = new KeyValue();
// 		keyValue.setId(bucketName + "___" + key);
// 		keyValue.setKeyName(key);
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			keyValue.setValue(bucket.fetch(key).execute().getValueAsString());
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         }   
// 		
// 		return keyValue;
// 	}
// 	
// 	public void persistKeyValue(String bucketName, String key, KeyValue keyValue) {
// 		logger.info("Persisint KeyValue for bucket: " + bucketName + " key: " + key + " JSON: " + keyValue.getValue());
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			bucket.store(key, keyValue.getValue()).execute();
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         }
// 	}
// 	
// 	public void deleteKeyValue(String bucketName, String key) {
// 		logger.info("Deleting keyVlaue for bucket: " + bucketName + " key: " + key);
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			bucket.delete(key).execute();
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         } catch (RiakException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 	}
// }


import org.haagensoftware.netty.webserver.spi.PropertyConstants;
import no.haagensoftware.riak.dao.RiakBucketDao;
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakFactory;
import com.basho.riak.client.raw.pbc.PBClientConfig;
import com.basho.riak.client.raw.pbc.PBClusterConfig;
package no.haagensoftware.riak;




public class RiakEnv {
	private IRiakClient riakClient;
// Path: backend/src/main/java/org/haagensoftware/netty/webserver/spi/PropertyConstants.java
// public class PropertyConstants {
//     public static final String NETTY_PORT = "no.haagensoftware.netty.port";
//     public static final String WEBAPP_DIR = "no.haagensoftware.netty.webappDir";
//     public static final String SCRIPTS_CACHE_SECONDS = "no.haagensoftware.netty.scriptsCacheSeconds";
//     public static final String RIAK_HOST = "no.haagensoftware.riak.host";
//     public static final String RIAK_PORT = "no.haagensoftware.riak.port";
// }
// 
// Path: backend/src/main/java/no/haagensoftware/riak/dao/RiakBucketDao.java
// public class RiakBucketDao {
// 	private static Logger logger = Logger.getLogger(RiakBucketDao.class.getName());
// 	
// 	private IRiakClient riakClient;
// 	
// 	public RiakBucketDao(IRiakClient riakClient) {
// 		this.riakClient = riakClient;
// 	}
// 	
// 	public List<BucketData> getBuckets() {
// 		List<BucketData> bucketList = new ArrayList<>();
// 		try {
// 			for (String bucket : riakClient.listBuckets()) {
// 				BucketData bd = new BucketData(bucket);
// 				List<String> keyIds = new ArrayList<>();
// 				
// 				for (KeyData kd : getKeysForBucket(bucket)) {
// 					keyIds.add(bucket + "___" + kd.getId());
// 				}
// 				Collections.sort(keyIds);
// 				bd.setKeyIds(keyIds);
// 				bucketList.add(bd);
// 			}
// 		} catch (RiakException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 		
// 		return bucketList;
// 	}
// 	
// 	public List<KeyData> getKeysForBucket(String bucketName) {
// 		List<KeyData> keyList = new ArrayList<>();
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			
// 			for (String key : bucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
// 				keyList.add(new KeyData(key));
// 			}
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         } catch (RiakException e) {
//             e.printStackTrace();
//         }
// 		
// 		return keyList;
// 	}
// 	
// 	public KeyValue getKeyValue(String bucketName, String key) {
// 		KeyValue keyValue = new KeyValue();
// 		keyValue.setId(bucketName + "___" + key);
// 		keyValue.setKeyName(key);
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			keyValue.setValue(bucket.fetch(key).execute().getValueAsString());
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         }   
// 		
// 		return keyValue;
// 	}
// 	
// 	public void persistKeyValue(String bucketName, String key, KeyValue keyValue) {
// 		logger.info("Persisint KeyValue for bucket: " + bucketName + " key: " + key + " JSON: " + keyValue.getValue());
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			bucket.store(key, keyValue.getValue()).execute();
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         }
// 	}
// 	
// 	public void deleteKeyValue(String bucketName, String key) {
// 		logger.info("Deleting keyVlaue for bucket: " + bucketName + " key: " + key);
// 		
// 		Bucket bucket = null;
// 		try {
// 			bucket = riakClient.fetchBucket(bucketName).execute();
// 			bucket.delete(key).execute();
// 		} catch (RiakRetryFailedException rrfe) {
//             rrfe.printStackTrace();
//         } catch (RiakException e) {
// 			// TODO Auto-generated catch block
// 			e.printStackTrace();
// 		}
// 	}
// }


// Path: backend/src/main/java/no/haagensoftware/riak/RiakEnv.java
import org.haagensoftware.netty.webserver.spi.PropertyConstants;
import no.haagensoftware.riak.dao.RiakBucketDao;
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakFactory;
import com.basho.riak.client.raw.pbc.PBClientConfig;
import com.basho.riak.client.raw.pbc.PBClusterConfig;

package no.haagensoftware.riak;




public class RiakEnv {
	private IRiakClient riakClient;
	private RiakBucketDao riakBucketDao;