package com.c2kernel.process; import java.util.StringTokenizer; import com.c2kernel.entity.C2KLocalObject; import com.c2kernel.utils.server.HTTPRequestHandler; /* QueryData over HTTP Socket Handler * Processes an HTTP request consisting of // * and returns that kernel object as XML * Currently supports GET requests. * REVISIT: POST calls Item.request() */ public class ItemHTTPBridge extends HTTPRequestHandler { public ItemHTTPBridge() { } @Override public String getName() { return "Item HTTP Server"; } @Override public String processRequest() { System.out.println("ItemHTTPBridge::ProcessRequest()"); StringTokenizer tok = new StringTokenizer(resource, "?"); //String itemPath = tok.nextToken(); String query = tok.nextToken(); int sysKey = -1; //Path path = Gateway.getLDAPLookup().; if (method.equals("GET")) { try { //DomainPath domPath = new DomainPath(itemPath); //EntityPath entityPath = domPath.getEntity(); if (sysKey > -1) { C2KLocalObject response = Gateway.getStorage().get(sysKey, query, null); return Gateway.getMarshaller().marshall(response); } else return error("404 Not Found", "The entity "+sysKey+" you requested was not found."); } catch (Exception e) { return error("400 Bad Request", "Usage: GET <path to item>?<path to kernel object>
"+e.getClass().getName()); } } return(super.processRequest()); } }