Java tutorial
package implementations; /** * Copyright 2011 Thibault Dory * Licensed under the GPL Version 3 license */ import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CodingErrorAction; import org.json.JSONException; import org.json.XML; import core.BenchDB; import terrastore.client.TerrastoreClient; import terrastore.client.connection.resteasy.HTTPConnectionFactory; /** * * @author Thibault Dory * This class will not work with the current update function as it add a "1" outside of the JSON document */ public class terrastoreDB extends BenchDB { TerrastoreClient client; final String UTF8 = "UTF8"; @Override public int connectNode(String nodeAddress) { int ret; try { client = new TerrastoreClient("http://" + nodeAddress + ":8000", new HTTPConnectionFactory()); ret = 1; } catch (Exception e) { ret = -1; e.printStackTrace(); } return ret; } @Override public String readDB(String ID) { String xml; try { xml = client.bucket("test").key(ID).get(String.class); } catch (Exception e) { xml = null; e.printStackTrace(); } return xml; } @Override public int updateDB(String ID, String newValue) { int ret; org.json.JSONObject myjson = null; try { myjson = XML.toJSONObject(newValue); } catch (JSONException e1) { e1.printStackTrace(); } try { newValue = myjson.toString(); CharsetDecoder utf8Decoder = Charset.forName("UTF-8").newDecoder(); utf8Decoder.onMalformedInput(CodingErrorAction.REPLACE); utf8Decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); ByteBuffer bytes = ByteBuffer.wrap(newValue.getBytes("UTF8")); CharBuffer parsed = utf8Decoder.decode(bytes); client.bucket("test").key(ID).put(parsed.toString()); ret = 1; } catch (Exception e) { ret = -1; e.printStackTrace(); } return ret; } @Override public int writeDB(String ID, String Value) { return updateDB(ID, Value); } @Override public void searchDB(String keyword) { // TODO Auto-generated method stub } @Override public void close() { } }