@Override public void connect(HttpConsumer consumer) throws Exception { ServletConsumer sc = (ServletConsumer) consumer; String name = sc.getEndpoint().getServletName(); HttpRegistry registry = httpRegistry; if (registry == null) { registry = DefaultHttpRegistry.getHttpRegistry(name); } registry.register(consumer); }
@Override public void disconnect(HttpConsumer consumer) throws Exception { ServletConsumer sc = (ServletConsumer) consumer; String name = sc.getEndpoint().getServletName(); HttpRegistry registry = httpRegistry; if (registry == null) { registry = DefaultHttpRegistry.getHttpRegistry(name); } registry.unregister(consumer); }
@Override public Consumer createConsumer(Processor processor) throws Exception { ServletConsumer answer = new ServletConsumer(this, processor); configureConsumer(answer); return answer; }
@Validate public void start() throws ServletException, NamespaceException { CamelHttpTransportServlet srvlet = new CamelHttpTransportServlet(); httpSevlet.registerServlet("/sally", srvlet, null, null); httpSevlet.registerResources("/sally/jobad", "/app/jobad", null); httpSevlet.registerResources("/sally/client", "/app/client", null); ServletComponent servletComponent = new ServletComponent(); servletComponent.setServletName(srvlet.getServletName()); camelContextProvider.registerGlobalComponent("sallyservlet", servletComponent); }
@Bean public ServletRegistrationBean servletRegistrationBean() { CamelHttpTransportServlet servlet = new CamelHttpTransportServlet("CamelServlet"); servlet.setServletName(); return new ServletRegistrationBean(servlet,"/foo/*"); }
@Bean ServletRegistrationBean camelServlet() { // use a @Bean to register the Camel servlet which we need to do // because we want to use the camel-servlet component for the Camel REST service ServletRegistrationBean mapping = new ServletRegistrationBean(); mapping.setName("CamelServlet"); mapping.setLoadOnStartup(1); // CamelHttpTransportServlet is the name of the Camel servlet to use mapping.setServlet(new CamelHttpTransportServlet()); mapping.addUrlMappings("/camel/*"); return mapping; }
@Override public void destroy() { DefaultHttpRegistry.removeHttpRegistry(getServletName()); if (httpRegistry != null) { httpRegistry.unregister(this); httpRegistry = null; } LOG.info("Destroyed CamelHttpTransportServlet[{}]", getServletName()); }
@Override public void connect(HttpConsumer consumer) { ServletEndpoint endpoint = getServletEndpoint(consumer); if (endpoint.getServletName() != null && endpoint.getServletName().equals(getServletName())) { super.connect(consumer); } }
@Override public String toString() { String name = getServletName(); if (name != null) { return "CamelHttpTransportServlet[name=" + getServletName() + "]"; } else { return "CamelHttpTransportServlet"; } } }
@Override public void destroy() { DefaultHttpRegistry.removeHttpRegistry(getServletName()); if (httpRegistry != null) { httpRegistry.unregister(this); httpRegistry = null; } LOGGER.debug("Destroyed CamelHttpTransportServlet[{}]", getServletName()); }
@Override public WebsocketEndpoint getEndpoint() { return (WebsocketEndpoint)super.getEndpoint(); }
@Override public Consumer doCreateConsumer(Processor processor) throws Exception { return super.createConsumer(processor); }
@Override public Consumer createApiConsumer(CamelContext camelContext, Processor processor, String contextPath, RestConfiguration configuration, Map<String, Object> parameters) throws Exception { // reuse the createConsumer method we already have. The api need to use GET and match on uri prefix return doCreateConsumer(camelContext, processor, "GET", contextPath, null, null, null, configuration, parameters, true); }
/** * Strategy to create the servlet endpoint. */ protected ServletEndpoint createServletEndpoint(String endpointUri, ServletComponent component, URI httpUri) throws Exception { return new ServletEndpoint(endpointUri, component, httpUri); }
@Override public void connect(HttpConsumer consumer) throws Exception { super.connect(consumer); } }
@Override public Producer doCreateProducer() throws Exception { return super.createProducer(); }
public void unregister(CamelServlet provider, Map<String, Object> properties) { unregister(provider); }
/** * Lookup or create a new registry if none exists with the given name */ public static synchronized HttpRegistry getHttpRegistry(String name) { HttpRegistry answer = registries.get(name); if (answer == null) { answer = new DefaultHttpRegistry(); registries.put(name, answer); } return answer; }
@Override public void init(ServletConfig config) throws ServletException { super.init(config); initParameters(config); enrichConsumers(config); }
@Override public Consumer createConsumer(CamelContext camelContext, Processor processor, String verb, String basePath, String uriTemplate, String consumes, String produces, RestConfiguration configuration, Map<String, Object> parameters) throws Exception { return doCreateConsumer(camelContext, processor, verb, basePath, uriTemplate, consumes, produces, configuration, parameters, false); }