I’m thinking that we can our own Extension that loads before the MP ones and control some of the loading like that.
> On 20 Dec 2018, at 11:33, Roberto Cortez <[email protected]> wrote: > > For the moment, I’ve created this main task to report issues found with the > integration: > https://jira.apache.org/jira/browse/TOMEE-2407 > <https://jira.apache.org/jira/browse/TOMEE-2407> > > Report any issue you find as a subtask. > >> On 20 Dec 2018, at 11:14, Bruno Baptista <[email protected]> wrote: >> >> Hi, >> >> It makes sense to remove MP support from Plume and Plus while these issues >> are cleared. >> >> We should probably create a branch to fix those issues. >> >> Cheers. >> >> Bruno Baptista >> https://twitter.com/brunobat_ >> >> >> On 20/12/18 10:44, Roberto Cortez wrote: >>> Hey Ivan, >>> >>> Thank you. >>> >>> What TomEE and the Geronimo implementation actually do is to expose all of >>> these endpoints in the application context path being deployed. So for >>> instance if you have: >>> >>> app.war, you get: >>> - app/health >>> - app/metrics >>> - app/openapi >>> >>> movies.war, you get: >>> - movies/health >>> - movies/metrics >>> - movies/openapi >>> >>> The issue here, is that these endpoints get deployed with any Web >>> application. So if you have a web app with simple Servlet, you also get >>> these endpoints deployed with the app. This causes issues if the Servlet is >>> mapped to /*, because the REST service will override the base context path. >>> Again, to be able to expose the MP endpoints on the base app context root. >>> >>> I’m thinking that we may need to be more smart about this and not just >>> blindly expose or start MP behaviour without some additional checks. Things >>> like: >>> - Expose the specific MP REST endpoints if the app has other REST services. >>> - Expose the specific MP REST endpoints if using specific MP annotation on >>> the app (like @Metric that just need a CDI bean) >>> - Don’t any Filters if (for JWT and OpenTracing) if these are not in use. >>> >>> These are just some that came to my mind, but probably there are other >>> cases. I’ll probably suggest to remove MP support for Plume and Plus and >>> add the MP binary to TomEE TCK tests, disabled but with the ability for us >>> to run them, so we can start making adjustments. There are also issues with >>> EAR deployments and MP. >>> >>> Any thoughts? >>> >>> Cheers, >>> Roberto >>> >>>> On 20 Dec 2018, at 07:08, Ivan St. Ivanov <[email protected]> wrote: >>>> >>>> Hi everyone, >>>> >>>> TL; DR; the mentioned paths seem to be context roots, not subpaths. >>>> >>>> Let me chime in on the topic of MP spec paths. >>>> >>>> - The Health check spec in Appendix A states that /health is a context >>>> [path]. Which means that it is directly after the host, i.e. >>>> http://localhost:8080/health >>>> - The Metrics spec calls /metrics "base path" (not as specific as Health >>>> check calling it *context path*) >>>> - The Open API spec in its section 5.1 gives an example with /openapi >>>> being a context path too >>>> >>>> I remember a discussion in the MP mailing lists a few months ago, where >>>> someone questioned the fact that MP specs should not be considered just for >>>> microservices, where you have one context only. But also in classical app >>>> server scenarios with multiple applications per server. In that sense, the >>>> person starting the discussion asked for application specific health and >>>> metrics endpoints rather then app server specific. >>>> >>>> Cheers, >>>> Ivan >>>> >>>> On Thu, Dec 20, 2018 at 2:08 AM Roberto Cortez >>>> <[email protected]> >>>> wrote: >>>> >>>>> As far as I know, all their endpoints are on a subpath, but since a CXF >>>>> Rest Service needs to be created to expose these paths (/health, /openapi, >>>>> /metrics), I think that somehow the deployment service creates service and >>>>> overrides the "/". >>>>> >>>>> I will try to see what can be done in that regard. I was thinking that at >>>>> the very least, one thing we could do (not sure if possible) is to check >>>>> if >>>>> we have other REST endpoints in the app, and if not, complete skip the >>>>> additional MP endpoints deployment. >>>>> >>>>>> On 19 Dec 2018, at 20:31, Jonathan Gallimore < >>>>> [email protected]> wrote: >>>>>>> How did you got that NPE? I had to debug it and get it from a catch >>>>>> clause, because it was not showing up in the logs. >>>>>> >>>>>> Right. For the benefit of others reading this, I ran the test with >>>>>> -Dopenejb.server.debug, and put a breakpoint here: >>>>>> >>>>> https://github.com/apache/tomcat/blob/TOMCAT_9_0_12/java/org/apache/catalina/core/StandardContext.java#L4494 >>>>> . >>>>>> and then did a t.printStackTrace(). The output from the server does end >>>>> up >>>>>> in target/surefire-reports/dumpStream*. >>>>>> >>>>>>> It seems that when you are deploying a simple servlet in a MP enabled >>>>>> container using the /* as the url pattern, this will get overridden when >>>>> MP >>>>>> starts up and adds the endpoints to consume openapi, metrics, health, so >>>>>> the servlet call ends up in a 404. >>>>>> >>>>>> Yeah. That's what I was trying to say in my first message, but my coffee >>>>>> hadn't kicked in at that point. You phrased it way better. >>>>>> >>>>>> I think we have two issues - 1 is the URL pattern being taken over my MP, >>>>>> and 2 is certain things not being wired up for whatever reason e.g. the >>>>>> OpenTracing filter. >>>>>> >>>>>> Does MicroProfile have to have its endpoints directly off "/", or can >>>>> there >>>>>> be a sub path? >>>>>> >>>>>> Jon >>>>>> >>>>>> On Wed, Dec 19, 2018 at 6:38 PM Roberto Cortez >>>>> <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Ok, I think I got more info. >>>>>>> >>>>>>> It seems that when you are deploying a simple servlet in a MP enabled >>>>>>> container using the /* as the url pattern, this will get overridden >>>>> when MP >>>>>>> starts up and adds the endpoints to consume openapi, metrics, health, so >>>>>>> the servlet call ends up in a 404. >>>>>>> >>>>>>>> On 19 Dec 2018, at 18:27, Roberto Cortez <[email protected]> >>>>>>> wrote: >>>>>>>> Ah never mind. Forgot this is running in forked mode. >>>>>>>> >>>>>>>>> On 19 Dec 2018, at 18:18, Roberto Cortez <[email protected] >>>>>>> wrote: >>>>>>>>> I’m not completely sure if that library is the only problem. We may >>>>>>> need to remove it all together. For now, I’m just trying to figure out >>>>> the >>>>>>> test failures. For some reason, they are not very descriptive on what >>>>>>> failed. >>>>>>>>> How did you got that NPE? I had to debug it and get it from a catch >>>>>>> clause, because it was not showing up in the logs. >>>>>>>>>> On 19 Dec 2018, at 17:29, Jonathan Gallimore < >>>>>>> [email protected]> wrote: >>>>>>>>>> Interesting. Not sure what the best way is forward at the moment... >>>>>>>>>> thoughts appreciated. If I have a brainwave, I'll post here. >>>>> Currently >>>>>>> I'm >>>>>>>>>> wondering if we can just remove that library from TomEE for the tests >>>>>>> until >>>>>>>>>> we can figure it out. >>>>>>>>>> >>>>>>>>>> Jon >>>>>>>>>> >>>>>>>>>> On Wed, Dec 19, 2018 at 4:12 PM Roberto Cortez >>>>>>> <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> It seems that there is no single issue that you can use to fix all >>>>> the >>>>>>>>>>> tests. Adding MP apparently affected all tests in different ways. >>>>>>>>>>> >>>>>>>>>>> For instance AllFilterTest (the one I started looking), was not >>>>>>> starting >>>>>>>>>>> any CDI Extensions. Then I figure out that the web.xml had a >>>>>>> metadacomplete >>>>>>>>>>> = true that makes the container to not scan the libs folder. >>>>> Removing >>>>>>> that >>>>>>>>>>> line made it work. >>>>>>>>>>> >>>>>>>>>>> AppComposerTest for some reason it seems is not able to inject a CDI >>>>>>> bean. >>>>>>>>>>> This seems to be more tricky, since it is deploying an >>>>>>> ApplicationComposer >>>>>>>>>>> and you list the CDI beans explicitly on the test. >>>>>>>>>>> >>>>>>>>>>> In the end, the sources may be different but the cause seems to be >>>>>>> always >>>>>>>>>>> related with the init of the OpenTracing filter. There is a config >>>>> to >>>>>>>>>>> disable it, but I’m not sure if that is the best approach. Maybe the >>>>>>>>>>> initialiser should be more clever and not blindly add the Filter >>>>>>> without >>>>>>>>>>> checking in everything in the environment is set up >>>>>>>>>>> >>>>>>>>>>> I’ll keep investigating to have more details. >>>>>>>>>>> >>>>>>>>>>>> On 19 Dec 2018, at 15:19, Roberto Cortez >>>>> <[email protected] >>>>>>>>>>> wrote: >>>>>>>>>>>> Yes. That is because the CDI Extension is not executing. I’m trying >>>>>>> to >>>>>>>>>>> figure out why. >>>>>>>>>>>>> On 19 Dec 2018, at 14:45, Jonathan Gallimore < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> If it helps, here's the exception I'm getting, which is causing >>>>> the >>>>>>> app >>>>>>>>>>> to >>>>>>>>>>>>> fail to deploy: >>>>>>>>>>>>> >>>>>>>>>>>>> java.lang.NullPointerException >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.geronimo.microprofile.opentracing.microprofile.server.OpenTracingFilter.init(OpenTracingFilter.java:57) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:658) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:598) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:47) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:177) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:140) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:35) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:272) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:221) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:371) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:182) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:360) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:247) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:104) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:60) >>>>>>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) >>>>>>>>>>>>> at >>>>>>> org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.tomcat.util.net >>>>>>>>>>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.tomcat.util.net >>>>>>>>>>> .SocketProcessorBase.run(SocketProcessorBase.java:49) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:748) >>>>>>>>>>>>> java.lang.NullPointerException >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.geronimo.microprofile.opentracing.microprofile.server.OpenTracingFilter.init(OpenTracingFilter.java:57) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) >>>>>>>>>>>>> at >>>>>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:658) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:598) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:47) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:177) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:140) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:35) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102) >>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:498) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:272) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:221) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:371) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:182) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:360) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:247) >>>>>>>>>>>>> at >>>>>>> org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:104) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:60) >>>>>>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) >>>>>>>>>>>>> at >>>>>>> org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.tomcat.util.net >>>>>>>>>>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) >>>>>>>>>>>>> at >>>>>>>>>>>>> org.apache.tomcat.util.net >>>>>>>>>>> .SocketProcessorBase.run(SocketProcessorBase.java:49) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:748) >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Dec 19, 2018 at 2:33 PM Roberto Cortez >>>>>>>>>>> <[email protected]> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> It seems that the CDI Extensions are not running. I first thought >>>>>>> that >>>>>>>>>>> it >>>>>>>>>>>>>> was because of this setting: openejb.cdi.activated-on-ejb, but it >>>>>>>>>>> seems to >>>>>>>>>>>>>> have the same effect. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I’ll keep looking. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 19 Dec 2018, at 13:21, Jonathan Gallimore < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> I see the issue with surefire:test@test-tomee-remote-plus too. >>>>>>>>>>> Trying to >>>>>>>>>>>>>>> get some more information. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Jon >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, Dec 19, 2018 at 12:39 PM Jonathan Gallimore < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Here's my full output: >>>>>>>>>>>>>>>> >>>>>>> https://gist.github.com/jgallimore/ead9d0a218d862596858d7dc72bd6f62 >>>>>>>>>>>>>>>> There's a few failures for test-tomee-remote-plus, and it gets >>>>>>> worse >>>>>>>>>>>>>> when >>>>>>>>>>>>>>>> testing test-tomee-webapp-* executions. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hope that helps. Neat trick with the command line >>>>>>>>>>>>>> @test-tomee-remote-plume >>>>>>>>>>>>>>>> - thanks for that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Jon >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Dec 19, 2018 at 12:15 PM Roberto Cortez >>>>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I’m using this sample command now: >>>>>>>>>>>>>>>>> mvn -Pall-adapters clean test-compile >>>>>>>>>>>>>>>>> surefire:test@test-tomee-remote-plume >>>>>>>>>>>>>>>>> >>>>> -Dtest=org.apache.openejb.arquillian.tests.filter.AllFilterTest >>>>>>>>>>>>>>>>> It seems to run fine on plus but not on plume. >>>>> Investigating... >>>>>>>>>>>>>>>>>> On 19 Dec 2018, at 11:44, Roberto Cortez >>>>>>>>>>> <[email protected] >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> Maybe it does run first. The problem is that the build is >>>>>>> killed, >>>>>>>>>>> so >>>>>>>>>>>>>>>>> you don’t have a test report output. You have to go and >>>>> manually >>>>>>>>>>>>>> search the >>>>>>>>>>>>>>>>> logs. >>>>>>>>>>>>>>>>>> What is the exact test you see failing? I see a failure in >>>>> the >>>>>>> JMS >>>>>>>>>>>>>>>>> project with a simple clean install: >>>>>>>>>>>>>>>>>> JMSInjectionTest.testJMSInjection:68->validateTest:74 » IO >>>>>>> Server >>>>>>>>>>>>>>>>> returned HTT >>>>>>>>>>>>>>>>>>> On 19 Dec 2018, at 11:18, Jonathan Gallimore < >>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>> I'm not sure of the module ordering, but I thought this ran >>>>>>> first. >>>>>>>>>>>>>> I'll >>>>>>>>>>>>>>>>>>> check the CI output. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> If you run a build without tests, and then run `mvn >>>>>>> -Pall-adapters >>>>>>>>>>>>>>>>> clean >>>>>>>>>>>>>>>>>>> install` >>>>>>>>>>>>>>>>>>> in >>>>>>> arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests, >>>>>>>>>>>>>>>>>>> you'll see the issue. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Jon >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Wed, Dec 19, 2018 at 11:00 AM Roberto Cortez >>>>>>>>>>>>>>>>> <[email protected]> >>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi Jon, >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I can have a look. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> It’s been hard to figure issues out, since we were not able >>>>>>> to >>>>>>>>>>>>>>>>> stabilize >>>>>>>>>>>>>>>>>>>> the TomEE build in build bot. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Apparently, it just keeps getting stuck in CDI TCK and >>>>>>> timeouts. >>>>>>>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>>>>>>> Roberto >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On 19 Dec 2018, at 10:28, Jonathan Gallimore < >>>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>>>> I'm not sure if this is being discussed on other threads, >>>>>>> but it >>>>>>>>>>>>>>>>> looks >>>>>>>>>>>>>>>>>>>> like >>>>>>>>>>>>>>>>>>>>> we have an issue with our arquillian tests failing. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I did a git bisect late last night, and it looks like it >>>>> was >>>>>>>>>>>>>>>>> introduced >>>>>>>>>>>>>>>>>>>>> with the addition of microprofile to the plume and plus >>>>>>>>>>>>>>>>> distributions. >>>>>>>>>>>>>>>>>>>> I'm >>>>>>>>>>>>>>>>>>>>> still going through my build output, but it looks like we >>>>>>> have a >>>>>>>>>>>>>>>>> couple >>>>>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>>>>> issues. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Firstly, it looks like something in microprofile adds >>>>>>> JAX-RS to >>>>>>>>>>> the >>>>>>>>>>>>>>>>> app, >>>>>>>>>>>>>>>>>>>>> and that seems to get priority over everything, so, for >>>>>>> example, >>>>>>>>>>>>>> if I >>>>>>>>>>>>>>>>>>>>> deploy a servlet with a URL mapping of "/" I can't get to >>>>>>> it - >>>>>>>>>>> I'll >>>>>>>>>>>>>>>>>>>> always >>>>>>>>>>>>>>>>>>>>> get a 404. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> There seems to be another issue that prevents apps from >>>>>>>>>>> deploying >>>>>>>>>>>>>>>>> too. >>>>>>>>>>>>>>>>>>>>> I'll continue analysis and post further details, but also >>>>>>> don't >>>>>>>>>>>>>> want >>>>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>>> tread on toes, so if you're already looking at this, >>>>> please >>>>>>>>>>> shout! >>>>>>>>>>>>>>>>>>>>> Cheers >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Jon >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>> >>>>> >
