Issue #1189: Remove camel http header copy overhead

Change-Id: I00dcf2d41972359b36c7485425f61cb6fc74759a

Former-commit-id: 59b12a2eaa [formerly bc28c38ef4] [formerly 85c2977c00 [formerly 4818be92cdeb4bc9a4064f59d2c4a773aca5f1aa]]
Former-commit-id: 85c2977c00
Former-commit-id: 210a8734f5
This commit is contained in:
Richard Peter 2012-09-19 10:04:30 -05:00
parent 1a4c7a760e
commit 8141fe33fc
2 changed files with 92 additions and 90 deletions

View file

@ -1,82 +1,85 @@
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="uEngine" class="com.raytheon.edex.services.ProductSrv" />
<bean id="uEngine" class="com.raytheon.edex.services.ProductSrv" />
<!-- uEngineWeb -->
<bean id="uengineWebServer" class="org.eclipse.jetty.server.Server" init-method="start" destroy-method="stop">
<property name="threadPool">
<bean id="ThreadPool" class="org.eclipse.jetty.util.thread.OldQueuedThreadPool">
<property name="minThreads" value="25"/>
<property name="lowThreads" value="25"/>
<property name="maxThreads" value="50"/>
</bean>
</property>
<property name="connectors">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="port" value="${web.port}"/>
<property name="maxIdleTime" value="30000"/>
<property name="acceptors" value="2"/>
<property name="confidentialPort" value="${confidential.port}"/>
</bean>
</list>
</property>
<property name="handler">
<bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<bean id="contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
<property name="handlers">
<list>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/uEngineWeb"/>
<property name="war" value="file:///${edex.home}/webapps/uEngineWeb"/>
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/uEngineProducts"/>
<property name="war" value="file:///${edex.home}/data/uEngine"/>
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/activemqAdmin"/>
<property name="war" value="file:///${edex.home}/webapps/admin"/>
</bean>
</list>
</property>
</bean>
<bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
<bean id="requestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</list>
</property>
</bean>
</property>
</bean>
<camelContext id="uengine-camel" xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="errorHandler">
<endpoint id="uEngineHttpThrift_from"
uri="jetty:http://0.0.0.0:${http.port}/services/pyproductthrift?disableStreamCache=true&amp;chunked=false&amp;httpBindingRef=#binaryHttpBinding" />
<endpoint id="uEngineHttpJaxb_from"
uri="jetty:http://0.0.0.0:${http.port}/services/pyproductjaxb" />
<!-- UEngine routes -->
<route id="uEngineHttpThrift">
<from uri="ref:uEngineHttpThrift_from" />
<bean ref="uEngine" method="executePython" />
<bean ref="serializationUtil" method="transformToThrift" />
</route>
<route id="uEngineHttpJaxb">
<from uri="ref:uEngineHttpJaxb_from" />
<bean ref="uEngine" method="executePython" />
<bean ref="serializationUtil" method="marshalToXml" />
</route>
</camelContext>
<!-- uEngineWeb -->
<bean id="uengineWebServer" class="org.eclipse.jetty.server.Server"
init-method="start" destroy-method="stop">
<property name="threadPool">
<bean id="ThreadPool" class="org.eclipse.jetty.util.thread.OldQueuedThreadPool">
<property name="minThreads" value="25" />
<property name="lowThreads" value="25" />
<property name="maxThreads" value="50" />
</bean>
</property>
<property name="connectors">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="port" value="${web.port}" />
<property name="maxIdleTime" value="30000" />
<property name="acceptors" value="2" />
<property name="confidentialPort" value="${confidential.port}" />
</bean>
</list>
</property>
<property name="handler">
<bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<bean id="contexts"
class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
<property name="handlers">
<list>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/uEngineWeb" />
<property name="war"
value="file:///${edex.home}/webapps/uEngineWeb" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/uEngineProducts" />
<property name="war" value="file:///${edex.home}/data/uEngine" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/activemqAdmin" />
<property name="war" value="file:///${edex.home}/webapps/admin" />
</bean>
</list>
</property>
</bean>
<bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler" />
<bean id="requestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler" />
</list>
</property>
</bean>
</property>
</bean>
<camelContext id="uengine-camel" xmlns="http://camel.apache.org/schema/spring"
errorHandlerRef="errorHandler">
<endpoint id="uEngineHttpThrift_from"
uri="jetty:http://0.0.0.0:${http.port}/services/pyproductthrift?disableStreamCache=true&amp;chunked=false&amp;httpBindingRef=#binaryHttpBinding" />
<endpoint id="uEngineHttpJaxb_from"
uri="jetty:http://0.0.0.0:${http.port}/services/pyproductjaxb" />
<!-- UEngine routes -->
<route id="uEngineHttpThrift" streamCache="false">
<from uri="ref:uEngineHttpThrift_from" />
<removeHeaders pattern="CamelHttp*" />
<bean ref="uEngine" method="executePython" />
<bean ref="serializationUtil" method="transformToThrift" />
</route>
<route id="uEngineHttpJaxb" streamCache="false">
<from uri="ref:uEngineHttpJaxb_from" />
<removeHeaders pattern="CamelHttp*" />
<bean ref="uEngine" method="executePython" />
<bean ref="serializationUtil" method="marshalToXml" />
</route>
</camelContext>
</beans>

View file

@ -1,28 +1,27 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="binaryHttpBinding" class="com.raytheon.uf.edex.esb.camel.http.BinaryHttpBinding"/>
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="binaryHttpBinding" class="com.raytheon.uf.edex.esb.camel.http.BinaryHttpBinding" />
<camelContext id="server-camel"
xmlns="http://camel.apache.org/schema/spring"
<camelContext id="server-camel" xmlns="http://camel.apache.org/schema/spring"
errorHandlerRef="errorHandler">
<endpoint id="thriftService_from"
uri="jetty:http://0.0.0.0:${http.port}/services/thrift?disableStreamCache=true&amp;chunked=false&amp;httpBindingRef=#binaryHttpBinding" />
<route id="thriftService">
<route id="thriftService" streamCache="false">
<from uri="ref:thriftService_from" />
<bean ref="routeWrapper" method="executeThrift"/>
<removeHeaders pattern="CamelHttp*" />
<bean ref="routeWrapper" method="executeThrift" />
</route>
</camelContext>
<bean id="webservice" class="com.raytheon.uf.edex.auth.RemoteServiceRequestHandler"/>
<bean id="webservice" class="com.raytheon.uf.edex.auth.RemoteServiceRequestHandler" />
<bean factory-bean="handlerRegistry" factory-method="register">
<constructor-arg value="com.raytheon.uf.common.serialization.comm.RemoteServiceRequest"/>
<constructor-arg ref="webservice"/>
</bean>
<constructor-arg
value="com.raytheon.uf.common.serialization.comm.RemoteServiceRequest" />
<constructor-arg ref="webservice" />
</bean>
</beans>