<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic WebConfigurer and deploying custom endpoints in Unit Test in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/webconfigurer-and-deploying-custom-endpoints-in-unit-test/m-p/18632#M8238</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Migrating from APS Version 1.5 to 1.9,&amp;nbsp; we have some Java classes that provide custom REST endpoints that get deployed alongside the standard REST endpoints and allow other systems to call these endpoints via HTTP to inform an process instance that something has happened (e.g message it)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These custom endpoints have Unit Tests, each test&lt;/P&gt;&lt;P&gt;- starts a Jetty server during the startup of the Unit Test,&lt;/P&gt;&lt;P&gt;- I assume the endpoints are then&amp;nbsp;magically deployed to this jetty instance (this is code we inherited)&amp;nbsp;&lt;/P&gt;&lt;P&gt;- The Unit Test then invokes the custom endpoints using Apache HTTP api, to test the endpoints&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem we're having is getting the endpoints deployed to the embedded Jetty, with Activiti V1.5 the following Spring @Configuration&amp;nbsp;class&amp;nbsp;worked. However with V1.9 the line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE style="font-size: 8.3pt;"&gt;contextHandler.addEventListener(configurer);&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;fails compile, as with v1.5 Activiti's "WebConfigurer" implemented the ServletContextListener interface, but the v1.9 one implements ServletContextInitializer. So the configurer can't be added as an event listener.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If we comment out the addEventListener line then the tests will run but I think find that neither activiti's own REST endpoints or our custom endpoints are deployed - as they return HTTP 404.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any advice how we can deploy to an embedded jetty during a Unit Test ?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Spring&amp;nbsp;&lt;SPAN&gt;@Configuration is shown below&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE style="color: #000000; background-color: #ffffff; font-size: 8.3pt;"&gt;&lt;PRE style="font-size: 8.3pt;"&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;package &lt;/SPAN&gt;com.alfresco.consulting.activiti.test.config;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;java.util.EventListener;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.eclipse.jetty.server.Server;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.eclipse.jetty.servlet.ServletContextHandler;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.beans.factory.DisposableBean;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.ApplicationContext;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.&lt;SPAN style="color: #808000;"&gt;Bean&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.&lt;SPAN style="color: #808000;"&gt;ComponentScan&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.&lt;SPAN style="color: #808000;"&gt;Configuration&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.FilterType;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.&lt;SPAN style="color: #808000;"&gt;Import&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.context.annotation.&lt;SPAN style="color: #808000;"&gt;Profile&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.core.env.Environment;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;org.springframework.web.context.support.AnnotationConfigWebApplicationContext;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;com.activiti.conf.Bootstrapper;&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;import &lt;/SPAN&gt;com.activiti.servlet.WebConfigurer;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color: #808000;"&gt;@Configuration&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808000;"&gt;@ComponentScan&lt;/SPAN&gt;(basePackages = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"com.activiti.runtime.bean"&lt;/SPAN&gt;,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"com.activiti.runtime.activiti.bean"&lt;/SPAN&gt;,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"com.activiti.reporting"&lt;/SPAN&gt;,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"com.activiti.rest" &lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;// Extra for testing: the dispatcher servlet is not found by default&lt;BR /&gt;&lt;/SPAN&gt;}, excludeFilters = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #808080;"&gt;// comment out this filter to enable default bootstrap code&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #808000;"&gt;@ComponentScan.Filter&lt;/SPAN&gt;(value = Bootstrapper.&lt;SPAN style="color: #000080; font-weight: bold;"&gt;class&lt;/SPAN&gt;, type = FilterType.&lt;SPAN style="color: #660e7a; font-weight: bold;"&gt;ASSIGNABLE_TYPE&lt;/SPAN&gt;) }&lt;BR /&gt;)&lt;BR /&gt;&lt;SPAN style="color: #808000;"&gt;@Import&lt;/SPAN&gt;(value = { CommonActivitiTestConfiguration.&lt;SPAN style="color: #000080; font-weight: bold;"&gt;class &lt;/SPAN&gt;})&lt;BR /&gt;&lt;SPAN style="color: #808000;"&gt;@Profile&lt;/SPAN&gt;(&lt;SPAN style="color: #008000; font-weight: bold;"&gt;"rest"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;public class &lt;/SPAN&gt;RestEndpointTestConfiguration {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000080; font-weight: bold;"&gt;public static final &lt;/SPAN&gt;Integer &lt;SPAN style="color: #660e7a; font-weight: bold;"&gt;DEFAULT_JETTY_PORT &lt;/SPAN&gt;= Integer.&lt;SPAN&gt;valueOf&lt;/SPAN&gt;(&lt;SPAN style="color: #0000ff;"&gt;9999&lt;/SPAN&gt;);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #808000;"&gt;@Bean&lt;/SPAN&gt;(initMethod = &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"start"&lt;/SPAN&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000080; font-weight: bold;"&gt;public &lt;/SPAN&gt;Server jettyServer(ApplicationContext applicationContext, Environment environment) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #808080;"&gt;// build AnnotationConfigWebApplicationContext&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;AnnotationConfigWebApplicationContext webApplicationContext = &lt;SPAN style="color: #000080; font-weight: bold;"&gt;null&lt;/SPAN&gt;;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000080; font-weight: bold;"&gt;if &lt;/SPAN&gt;(applicationContext &lt;SPAN style="color: #000080; font-weight: bold;"&gt;instanceof &lt;/SPAN&gt;AnnotationConfigWebApplicationContext) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webApplicationContext = (AnnotationConfigWebApplicationContext) applicationContext;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;SPAN style="color: #000080; font-weight: bold;"&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webApplicationContext = &lt;SPAN style="color: #000080; font-weight: bold;"&gt;new &lt;/SPAN&gt;AnnotationConfigWebApplicationContext();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webApplicationContext.setParent(applicationContext);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webApplicationContext.refresh();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #808080;"&gt;// build Activiti WebConfigurer using provided application context&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ServletContextHandler contextHandler = &lt;SPAN style="color: #000080; font-weight: bold;"&gt;new &lt;/SPAN&gt;ServletContextHandler();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebConfigurer configurer = &lt;SPAN style="color: #000080; font-weight: bold;"&gt;new &lt;/SPAN&gt;WebConfigurer();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configurer.setContext(webApplicationContext);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contextHandler.addEventListener(configurer);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #808080;"&gt;// create server&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;int &lt;/SPAN&gt;jettyPort = environment.getProperty(&lt;SPAN style="color: #008000; font-weight: bold;"&gt;"jetty.port"&lt;/SPAN&gt;, Integer.&lt;SPAN style="color: #000080; font-weight: bold;"&gt;class&lt;/SPAN&gt;, &lt;SPAN style="color: #660e7a; font-weight: bold;"&gt;DEFAULT_JETTY_PORT&lt;/SPAN&gt;).intValue();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Server server = &lt;SPAN style="color: #000080; font-weight: bold;"&gt;new &lt;/SPAN&gt;Server(jettyPort);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.setHandler(contextHandler);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000080; font-weight: bold;"&gt;return &lt;/SPAN&gt;server;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;}&lt;/PRE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Jan 2019 11:02:07 GMT</pubDate>
    <dc:creator>peteth</dc:creator>
    <dc:date>2019-01-15T11:02:07Z</dc:date>
    <item>
      <title>WebConfigurer and deploying custom endpoints in Unit Test</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/webconfigurer-and-deploying-custom-endpoints-in-unit-test/m-p/18632#M8238</link>
      <description>Migrating from APS Version 1.5 to 1.9,&amp;nbsp; we have some Java classes that provide custom REST endpoints that get deployed alongside the standard REST endpoints and allow other systems to call these endpoints via HTTP to inform an process instance that something has happened (e.g message it)&amp;nbsp;These custo</description>
      <pubDate>Tue, 15 Jan 2019 11:02:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/webconfigurer-and-deploying-custom-endpoints-in-unit-test/m-p/18632#M8238</guid>
      <dc:creator>peteth</dc:creator>
      <dc:date>2019-01-15T11:02:07Z</dc:date>
    </item>
  </channel>
</rss>

