/* # Licensed Materials - Property of IBM # Copyright IBM Corp. 2014 */ package com.ibm.streamsx.inet.rest.setup; import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import com.ibm.streams.operator.OperatorContext; import com.ibm.streams.operator.OutputTuple; import com.ibm.streams.operator.StreamingOutput; import com.ibm.streamsx.inet.rest.servlets.InjectForm; import com.ibm.streamsx.inet.rest.servlets.InjectTuple; /** * Sets up the single servlet for Tuple injection. */ public class PostTupleSetup implements OperatorServletSetup { /** * Servlet that injects tuples based upon a application/x-www-form-urlencoded POST * Servlet that provides a basic HTML form for tuple injection. * @return */ @Override public List<ExposedPort> setup(OperatorContext context, ServletContextHandler haXXndler, ServletContextHandler ports) { Logger trace = Logger.getAnonymousLogger(); List<ExposedPort> exposed = new ArrayList<ExposedPort>(); for (StreamingOutput<OutputTuple> port : context .getStreamingOutputs()) { ExposedPort ep = new ExposedPort(context, port, ports.getContextPath()); exposed.add(ep); String path = "/output/" + port.getPortNumber() + "/inject"; ports.addServlet(new ServletHolder(new InjectTuple(port)), path); ep.addURL("inject", path); trace.info("Injection URL (application/x-www-form-urlencoded): " + ports.getContextPath() + path); path = "/output/" + port.getPortNumber() + "/form"; ports.addServlet(new ServletHolder(new InjectForm(port)), path); ep.addURL("form", path); trace.info("Injection FORM URL: " + ports.getContextPath() + path); } return exposed; } }