/* # 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.StreamingInput; import com.ibm.streams.operator.Tuple; import com.ibm.streamsx.inet.rest.servlets.AccessXMLAttribute; public class XMLViewSetup implements OperatorServletSetup { @Override public List<ExposedPort> setup(OperatorContext context, ServletContextHandler staticContext, ServletContextHandler ports) { List<ExposedPort> exposed = new ArrayList<ExposedPort>(); Logger trace = Logger.getAnonymousLogger(); // The XMLView operator only supports a single port // at the moment, but code the ability to have multiple ports. for (StreamingInput<Tuple> port : context.getStreamingInputs()) { String path = "/input/" + port.getPortNumber() + "/attribute"; ports.addServlet(new ServletHolder(new AccessXMLAttribute(port)), path); ExposedPort ep = new ExposedPort(context, port, ports.getContextPath()); exposed.add(ep); ep.addURL("attribute", path); trace.info("Port XML Attribute URL: " + ports.getContextPath() + path); } return exposed; } }