org.apache.hadoop.chukwa.datacollection.agent.rest
Class AdaptorController

java.lang.Object
  extended by org.apache.hadoop.chukwa.datacollection.agent.rest.AdaptorController

public class AdaptorController
extends Object

JAX-RS controller to handle all HTTP request to the Agent that deal with adaptors. To return all adaptors: GET /rest/v1/adaptor Optional QS params: viewType=text|xml (default=xml) To return a single adaptor: GET /rest/v1/adaptor/[adaptorId] Optional QS params: viewType=text|xml (default=xml) To remove an adaptor: DELETE /rest/v1/adaptor/[adaptorId] To add an adaptor: POST /rest/v1/adaptor Content-Type: application/json Optional QS params: viewType=text|xml (default=xml) { "DataType" : "foo", "AdaptorClass" : "FooAdaptor", "AdaptorParams" : "params", "Offset" : "0" } The first 3 params above are the only required ones.


Constructor Summary
AdaptorController()
           
 
Method Summary
 javax.ws.rs.core.Response addAdaptor(javax.servlet.ServletContext context, String viewType, String postBody)
          Adds an adaptor to the agent and returns the adaptor info.
protected static void appendElement(StringBuilder out, String name, Object value, Object... attributeNvps)
          XML helper to append an Element and it's child text value.
protected static void appendEndTag(StringBuilder out, String name)
          XML helper to append a Element end tag.
protected static void appendNvp(StringBuilder out, int indent, String name, Object value)
          Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value] with indent number of spaces prepended.
protected static void appendNvp(StringBuilder out, int indent, String name, Object value, boolean stringLiteral)
          Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value] with indent number of spaces prepended.
protected static void appendNvp(StringBuilder out, String name, Object value)
          Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value]
protected static void appendStartTag(StringBuilder out, String name, Object... attributeNvps)
          XML helper to append a Element start tag.
protected  String buildAdaptorText(ChukwaAgent agent, String adaptorId)
          Renders info for one or all adaptors in plain text (YAML).
protected  String buildAdaptorXML(ChukwaAgent agent, String adaptorId)
          Renders info for one or all adaptors in XML.
 javax.ws.rs.core.Response getAdaptor(javax.servlet.ServletContext context, String viewType, String adaptorId)
          Get a single adaptor
 javax.ws.rs.core.Response getAdaptors(javax.servlet.ServletContext context, String viewType)
          Get all adaptors
protected static void indent(StringBuilder out, int indent)
          Helper to insert a number of spaces into the output stream.
 javax.ws.rs.core.Response removeAdaptor(javax.servlet.ServletContext context, String adaptorId)
          Remove an adaptor from the agent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AdaptorController

public AdaptorController()
Method Detail

addAdaptor

public javax.ws.rs.core.Response addAdaptor(@Context
                                            javax.servlet.ServletContext context,
                                            String viewType,
                                            String postBody)
Adds an adaptor to the agent and returns the adaptor info.

Parameters:
context - servletContext
viewType - type of view to return (text|xml)
postBody - JSON post body
Returns:
Response object

removeAdaptor

public javax.ws.rs.core.Response removeAdaptor(@Context
                                               javax.servlet.ServletContext context,
                                               String adaptorId)
Remove an adaptor from the agent

Parameters:
context - ServletContext
adaptorId - id of adaptor to remove.
Returns:
Response object

getAdaptors

public javax.ws.rs.core.Response getAdaptors(@Context
                                             javax.servlet.ServletContext context,
                                             String viewType)
Get all adaptors

Parameters:
context - ServletContext
viewType - type of view to return (text|xml)
Returns:
Response object

getAdaptor

public javax.ws.rs.core.Response getAdaptor(@Context
                                            javax.servlet.ServletContext context,
                                            String viewType,
                                            String adaptorId)
Get a single adaptor

Parameters:
context - ServletContext
viewType - type of view to return (text|xml)
adaptorId - id of the adaptor to return
Returns:
Response object

buildAdaptorXML

protected String buildAdaptorXML(ChukwaAgent agent,
                                 String adaptorId)
Renders info for one or all adaptors in XML.


buildAdaptorText

protected String buildAdaptorText(ChukwaAgent agent,
                                  String adaptorId)
Renders info for one or all adaptors in plain text (YAML).


appendNvp

protected static void appendNvp(StringBuilder out,
                                String name,
                                Object value)
Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value]


appendNvp

protected static void appendNvp(StringBuilder out,
                                int indent,
                                String name,
                                Object value)
Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value] with indent number of spaces prepended.


appendNvp

protected static void appendNvp(StringBuilder out,
                                int indent,
                                String name,
                                Object value,
                                boolean stringLiteral)
Helper for appending name/value pairs to the ServletOutputStream in the format [name]: [value] with indent number of spaces prepended. Set stringLiteral=true if the value might contain special YAML characters.


indent

protected static void indent(StringBuilder out,
                             int indent)
Helper to insert a number of spaces into the output stream.


appendStartTag

protected static void appendStartTag(StringBuilder out,
                                     String name,
                                     Object... attributeNvps)
XML helper to append a Element start tag. Optionally a number of attributeNvps can be passed, which will be inserted as XML atrribute names and values, alternating between names and values.


appendEndTag

protected static void appendEndTag(StringBuilder out,
                                   String name)
XML helper to append a Element end tag.


appendElement

protected static void appendElement(StringBuilder out,
                                    String name,
                                    Object value,
                                    Object... attributeNvps)
XML helper to append an Element and it's child text value. Optionally a number of attributeNvps can be passed, which will be inserted as XML atrribute names and values, alternating between names and values.



Copyright © 2011 Apache Software Foundation. All Rights Reserved.