|
ActiveMQ example source code file (HttpTransportServer.java)
The ActiveMQ HttpTransportServer.java source code/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq.transport.http; import java.net.InetSocketAddress; import java.net.URI; import org.apache.activemq.command.BrokerInfo; import org.apache.activemq.transport.TransportServerSupport; import org.apache.activemq.transport.util.TextWireFormat; import org.apache.activemq.transport.xstream.XStreamWireFormat; import org.apache.activemq.util.ServiceStopper; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.bio.SocketConnector; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.session.SessionHandler; import org.eclipse.jetty.servlet.ServletHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.servlet.ServletMapping; /** * */ public class HttpTransportServer extends TransportServerSupport { private URI bindAddress; private TextWireFormat wireFormat; private Server server; private Connector connector; private HttpTransportFactory transportFactory; public HttpTransportServer(URI uri, HttpTransportFactory factory) { super(uri); this.bindAddress = uri; this.transportFactory = factory; } public void setBrokerInfo(BrokerInfo brokerInfo) { } // Properties // ------------------------------------------------------------------------- public TextWireFormat getWireFormat() { if (wireFormat == null) { wireFormat = createWireFormat(); } return wireFormat; } public void setWireFormat(TextWireFormat wireFormat) { this.wireFormat = wireFormat; } // Implementation methods // ------------------------------------------------------------------------- protected TextWireFormat createWireFormat() { return new XStreamWireFormat(); } protected void setConnector(Connector connector) { this.connector = connector; } protected void doStart() throws Exception { server = new Server(); if (connector == null) { connector = new SocketConnector(); } connector.setHost(bindAddress.getHost()); connector.setPort(bindAddress.getPort()); connector.setServer(server); server.setConnectors(new Connector[] { connector }); ContextHandler contextHandler = new ContextHandler(); contextHandler.setContextPath("/"); contextHandler.setServer(server); server.setHandler(contextHandler); SessionHandler sessionHandler = new SessionHandler(); contextHandler.setHandler(sessionHandler); ServletHandler servletHandler = new ServletHandler(); sessionHandler.setHandler(servletHandler); ServletHolder holder = new ServletHolder(); holder.setName("httpTunnel"); holder.setClassName(HttpTunnelServlet.class.getName()); servletHandler.setServlets(new ServletHolder[] { holder }); ServletMapping mapping = new ServletMapping(); mapping.setServletName("httpTunnel"); mapping.setPathSpec("/*"); servletHandler.setServletMappings(new ServletMapping[] { mapping }); contextHandler.setAttribute("acceptListener", getAcceptListener()); contextHandler.setAttribute("wireFormat", getWireFormat()); contextHandler.setAttribute("transportFactory", transportFactory); contextHandler.setAttribute("transportOptions", transportOptions); server.start(); } protected void doStop(ServiceStopper stopper) throws Exception { Server temp = server; server = null; if (temp != null) { temp.stop(); } } public InetSocketAddress getSocketAddress() { return null; } } Other ActiveMQ examples (source code examples)Here is a short list of links related to this ActiveMQ HttpTransportServer.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.