This example uses the ObjectMap API to perform simple create, retrieve, update, and delete operations on the data grid.
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.HashSet;
import java.util.BitSet;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.File;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import com.ibm.websphere.objectgrid.ClientClusterContext;
import com.ibm.websphere.objectgrid.ConnectException;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectMap;
import com.ibm.websphere.objectgrid.ObjectGridException;
import com.ibm.websphere.objectgrid.ObjectGridManager;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
import com.ibm.websphere.objectgrid.ObjectGridRuntimeException;
import com.ibm.websphere.objectgrid.Session;
import com.ibm.websphere.objectgrid.config.BackingMapConfiguration;
import com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory;
import com.ibm.websphere.objectgrid.config.ObjectGridConfiguration;
import com.ibm.websphere.objectgrid.plugins.TransactionCallbackException;
import com.ibm.websphere.objectgrid.security.config.ClientSecurityConfiguration;
import com.ibm.websphere.objectgrid.security.config.ClientSecurityConfiguration;
import com.ibm.websphere.objectgrid.security.config.ClientSecurityConfigurationFactory;
import com.ibm.websphere.objectgrid.security.plugins.CredentialGenerator;
import com.ibm.websphere.objectgrid.security.plugins.builtins.UserPasswordCredentialGenerator;
import com.ibm.websphere.objectgrid.server.CatalogServerProperties;
public class SimpleGrid {
static String gridName = "test";
static String mapName = gridName;
static String username="xcadmin";
static String password="xcadmin";
static String hostName="localhost";
static ObjectGrid clientGrid=null;
static ConcurrentLinkedQueue<Session> sessions = new ConcurrentLinkedQueue<Session>();
static synchronized public ObjectGrid getObjectGrid() {
if (clientGrid == null) {
ClientClusterContext ccc = null;
try {
new java.io.File(System.getProperty("java.io.tmpdir")).mkdirs();
} catch (Throwable t) {
t.printStackTrace();
}
ObjectGridManager ogm = ObjectGridManagerFactory.getObjectGridManager();
ClientSecurityConfiguration clientSC = getAdminClientConfig();
List<ObjectGridConfiguration> ogConfigs=new ArrayList<ObjectGridConfiguration>();
ObjectGridConfiguration lclGridConfig = ObjectGridConfigFactory.createObjectGridConfiguration(gridName);
BackingMapConfiguration bmc = ObjectGridConfigFactory.createBackingMapConfiguration(mapName);
bmc.setNumberOfBuckets(0);
lclGridConfig.addBackingMapConfiguration(bmc);
ogConfigs.add(lclGridConfig);
try {
ccc = ogm.connect(hostName+":2809", clientSC, null);
} catch (Throwable e) {
e.printStackTrace();
}
if (ccc != null) {
HashMap<String,List<ObjectGridConfiguration>> overrideMap = new HashMap<String,List<ObjectGridConfiguration>>();
overrideMap.put(ccc.getClusterName(),ogConfigs);
ogm.setOverrideObjectGridConfigurations(overrideMap);
try {
clientGrid = ogm.getObjectGrid(ccc, gridName);
} catch (ObjectGridRuntimeException ogre) {
ogre.printStackTrace();
}
}
}
return clientGrid;
}
static public Session getSession() throws TransactionCallbackException,
ObjectGridException {
Session session = sessions.poll();
if (session == null && getObjectGrid()!=null) {
session = getObjectGrid().getSession();
}
if (session == null)
throw new IllegalStateException("unable to initialize connection to objectgrid");
return session;
}
static public void putSession(Session session) {
if (session.isTransactionActive()) {
try {
session.rollback();
} catch (Exception e) {
}
}
sessions.add(session);
}
public static ClientSecurityConfiguration getAdminClientConfig() {
// Creates a ClientSecurityConfiguration object using the specified file
ClientSecurityConfiguration clientSC = ClientSecurityConfigurationFactory.getClientSecurityConfiguration();
clientSC.setSecurityEnabled(true);
// Creates a CredentialGenerator using the passed-in user and password.
CredentialGenerator credGen = new UserPasswordCredentialGenerator(username,password);
clientSC.setCredentialGenerator(credGen);
return clientSC;
}
public static void main(String args[]) throws Exception {
for (int i=0;i<args.length;i++) {
if(args[i].startsWith("-username:")) {
username = args[i].substring(args[i].indexOf(":")+1);
} else if(args[i].startsWith("-password:")) {
password = args[i].substring(args[i].indexOf(":")+1);
} else if(args[i].startsWith("-gridname:")) {
gridName = args[i].substring(args[i].indexOf(":")+1);
} else if(args[i].startsWith("-mapname:")) {
mapName = args[i].substring(args[i].indexOf(":")+1);
} else if(args[i].startsWith("-hostname:")) {
hostName = args[i].substring(args[i].indexOf(":")+1);
} else {
System.out.println("usage: SimpleGrid [optional args]");
System.out.println(" -username:<username>");
System.out.println(" -password:<password>");
System.out.println(" -gridname:<gridname>");
System.out.println(" -mapname:<mapname>");
System.out.println(" -hostname:<hostname>");
System.exit(1);
}
}
System.out.println("--------------------------------------------------------------");
System.out.println("Simple Grid Test");
System.out.println("--------------------------------------------------------------");
System.out.println("username : "+username);
System.out.println("password : "+password);
System.out.println("gridname : "+gridName);
System.out.println("mapname : "+mapName);
System.out.println("hostname : "+hostName);
System.out.println("--------------------------------------------------------------");
if (getObjectGrid() == null) {
System.out.println("ERROR: unable to connect to objectgrid at "+hostName);
System.exit(1);
}
Session session = getSession();
ObjectMap map=session.getMap(mapName);
session.begin();
Object data = map.get("TestKey");
if (data!=null)
map.remove("TestKey");
map.insert("TestKey","TestValue");
session.commit();
putSession(session);
}
}