Index: lib/d1_common_java-0.5.0.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java	(revision 5769)
+++ src/edu/ucsb/nceas/metacat/restservice/ResourceHandler.java	(revision 5770)
@@ -486,10 +486,98 @@
                     //health monitoring calls
                     System.out.println("processing monitor request");
                     String pathInfo = request.getPathInfo();
-                    if (httpVerb == GET && pathInfo.toLowerCase().equals("ping")) {
-                        System.out.println("processing ping request");
+                    if(httpVerb == GET)
+                    {
+                        System.out.println("verb is GET");
+                        System.out.println("pathInfo is " + pathInfo);
+                        pathInfo = pathInfo.substring(1);
                         HealthService hs = new HealthService(request, response);
-                        hs.ping();
+                        if (pathInfo.toLowerCase().equals("ping")) {
+                            System.out.println("processing ping request");
+                            hs.ping();
+                        } else if (pathInfo.toLowerCase().equals("status")) {
+                            System.out.println("processing status request");
+                            hs.getStatus();
+                        } else if (pathInfo.toLowerCase().equals("object")) {
+                            System.out.println("processing object request");
+                            boolean day = false;
+                            Identifier pid = null;
+                            String url = null;
+                            ObjectFormat of = null;
+                            Date time = null;
+                            
+                            if(params.containsKey("day"))
+                            {
+                               day = true; 
+                            }
+                            if(params.containsKey("pid"))
+                            {
+                                String id = params.get("pid")[0];
+                                pid = new Identifier();
+                                pid.setValue(id);
+                            }
+                            if(params.containsKey("url"))
+                            {
+                                url = params.get("url")[0];
+                            }
+                            if(params.containsKey("format"))
+                            {
+                                String format = params.get("format")[0];
+                                of = ObjectFormat.convert(format);
+                            }
+                            if(params.containsKey("time"))
+                            {
+                                String t = params.get("time")[0];
+                                time = dateFormat.parse(t);
+                            }
+                            
+                            hs.getObjectStatistics(day, pid, url, of, time);
+                        } else if (pathInfo.toLowerCase().equals("event")) {
+                            System.out.println("processing event request");
+                            boolean day = false;
+                            Identifier pid = null;
+                            Date created = null;
+                            ObjectFormat of = null;
+                            Date time = null;
+                            String ipAddress = null;
+                            String event = null;
+                            
+                            if(params.containsKey("day"))
+                            {
+                               day = true; 
+                            }
+                            if(params.containsKey("pid"))
+                            {
+                                String id = params.get("pid")[0];
+                                pid = new Identifier();
+                                pid.setValue(id);
+                            }
+                            if(params.containsKey("created"))
+                            {
+                                String t = params.get("created")[0];
+                                created = dateFormat.parse(t);
+                            }
+                            if(params.containsKey("format"))
+                            {
+                                String format = params.get("format")[0];
+                                of = ObjectFormat.convert(format);
+                            }
+                            if(params.containsKey("eventtime"))
+                            {
+                                String t = params.get("eventtime")[0];
+                                time = dateFormat.parse(t);
+                            }
+                            if(params.containsKey("ip_address"))
+                            {
+                                ipAddress = params.get("ip_address")[0];
+                            }
+                            if(params.containsKey("event"))
+                            {
+                                event = params.get("event")[0];
+                            }
+                            
+                            hs.getOperationStatistics(day, pid, of, created, time, ipAddress, event);
+                        }
                     }
                     status = true;
                 }
Index: src/edu/ucsb/nceas/metacat/dataone/HealthService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/HealthService.java	(revision 5769)
+++ src/edu/ucsb/nceas/metacat/dataone/HealthService.java	(revision 5770)
@@ -24,16 +24,20 @@
 package edu.ucsb.nceas.metacat.dataone;
 
 import java.io.IOException;
+import java.util.Date;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.dataone.service.mn.MemberNodeHealth;
+import org.dataone.service.types.Identifier;
+import org.dataone.service.types.ObjectFormat;
+import org.dataone.service.types.ObjectInfo;
 import org.omg.CORBA.portable.OutputStream;
 
 /**
  * @author berkley
- *
+ * Class to implement the HealthService API for DataONE
  */
 public class HealthService implements MemberNodeHealth
 {    
@@ -40,6 +44,11 @@
     HttpServletRequest request;
     HttpServletResponse response;
     
+    /**
+     * Constructor
+     * @param request
+     * @param response
+     */
     public HealthService(HttpServletRequest request, HttpServletResponse response)
     {
         this.request = request;
@@ -46,6 +55,10 @@
         this.response = response;
     }
     
+    /**
+     * Implements /monitory/ping from 
+     * http://mule1.dataone.org/ArchitectureDocs-current/apis/REST_interface.html#get-monitor-object
+     */
     public void ping()
     {
         response.setStatus(200);
@@ -61,18 +74,57 @@
         }
     }
     
-    public void getObjectStatistics()
+    /**
+     * implements /monitor/object from 
+     * http://mule1.dataone.org/ArchitectureDocs-current/apis/REST_interface.html#get-monitor-object
+     */
+    public void getObjectStatistics(boolean reportDaily, 
+            Identifier guid, String url, ObjectFormat format, Date time)
     {
+        response.setStatus(500);
+        try
+        {
+            response.getOutputStream().write("getObjectStatistics Not Implemented".getBytes());
+            response.getOutputStream().flush();
+        }
+        catch (IOException e)
+        {
+            System.out.println("Error in getObjectStatistics: " + e.getMessage());
+            e.printStackTrace();
+        }
         
     }
     
-    public void getOperationStatistics()
+    /**
+     * implements /monitor/event from
+     * http://mule1.dataone.org/ArchitectureDocs-current/apis/REST_interface.html#get-monitor-object
+     */
+    public void getOperationStatistics(boolean reportDaily, Identifier pid, 
+            ObjectFormat format, Date createDate, Date eventTime, String ipAddress, String event)
     {
-        
+        response.setStatus(500);
+        try
+        {
+            response.getOutputStream().write("getOperationStatistics Not Implemented".getBytes());
+            response.getOutputStream().flush();
+        }
+        catch (IOException e)
+        {
+            System.out.println("Error in getOperationStatistics: " + e.getMessage());
+            e.printStackTrace();
+        }
     }
     
+    /**
+     * Implements /monitor/status from
+     * http://mule1.dataone.org/ArchitectureDocs-current/apis/REST_interface.html#get-monitor-object
+     * This method is mostly unimplemented.  Right now it just does what ping does.
+     * It should be updated in the future to return status information such as 
+     * pending outages, software updates, etc.  See Use Case 10 for more 
+     * info.
+     */
     public void getStatus()
     {
-        
+        ping();
     }
 }
Index: src/edu/ucsb/nceas/metacat/dataone/CrudService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/CrudService.java	(revision 5769)
+++ src/edu/ucsb/nceas/metacat/dataone/CrudService.java	(revision 5770)
@@ -119,7 +119,7 @@
     }
     
     /**
-     * Initializes new instance by setting servlet context,request and response.
+     * Constructor, private for singleton access
      */
     private CrudService() {
         logMetacat = Logger.getLogger(CrudService.class);
