Wow! That's what I call a quick response! Thank you very much guys!! I'll test it and comment on the ticket for my findings
Merci! Fabian -----Ursprüngliche Nachricht----- Von: Jean-Louis MONTEIRO [mailto:[email protected]] Gesendet: Freitag, 3. Januar 2014 17:52 An: [email protected] Betreff: Re: Arquillian remote adapter not able to deploy to a "really remote" TomEE? All committed for you. Please test with the snapshot as soon as it gets deployed (at least 2h to reach the Maven repo). JLouis 2014/1/3 Romain Manni-Bucau <[email protected]> > attached a first patch to support it, didnt tested (I dont have a > remote host right now) and wrote "on the fly" so review welcomed > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2014/1/3 Romain Manni-Bucau <[email protected]>: > > btw, why not using a local tomee (just curiosity)? > > Romain Manni-Bucau > > Twitter: @rmannibucau > > Blog: http://rmannibucau.wordpress.com/ > > LinkedIn: http://fr.linkedin.com/in/rmannibucau > > Github: https://github.com/rmannibucau > > > > > > > > 2014/1/3 Fabian Schwarzer (Inxmail GmbH) <[email protected]>: > >> Ok, I've opened a ticket ( > https://issues.apache.org/jira/browse/TOMEE-1102). If time permits I > will try to code the fix, otherwise I have to switch to Wildfly ;( > >> > >> Fabian > >> > >> -----Ursprüngliche Nachricht----- > >> Von: Romain Manni-Bucau [mailto:[email protected]] > >> Gesendet: Freitag, 3. Januar 2014 15:56 > >> An: [email protected] > >> Betreff: Re: Arquillian remote adapter not able to deploy to a > >> "really > remote" TomEE? > >> > >> well if you want to try go for it (it would be very appreciated) > otherwise just open a ticket (in all cases a ticket will be needed). > >> > >> The client part needing to be hacked (properties to add) is in > https://github.com/apache/tomee/blob/tomee-1.6.0/arquillian/arquillian > -tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEE > Container.java > >> (deployer().deploy(...) invocation doesn't have properties), note > >> you > have to check if host is remote to do so, I think I'd prefer a new > property in TomEEConfiguration to set properties of the deploy > invocation (you can inspire from system properties for the usage) > Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> > >> 2014/1/3 Fabian Schwarzer (Inxmail GmbH) <[email protected]>: > >>> Thank you for your quick reply! > >>> I've set the property to true, but that just changes the > >>> FileNotFoundException to org.apache.openejb.OpenEJBRuntimeException: > >>> java.io.FileNotFoundException: > >>> /opt/tomee/conf/C:\0\62d2b262-795d-4597-a5e0-e2715737caea.war > >>> > >>> I searched for the string openejb.deployer.binaries.use in the > >>> whole > 1.6.0 code base and only had one hit in > https://github.com/apache/tomee/blob/tomee-1.6.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java. > So the Arquillian adapter does not seem to check if its set, does it? > >>> > >>> So how should I proceed? Try to fix it myself and open a pull > >>> request > or should I raise a JIRA ticket? > >>> > >>> Fabian > >>> > >>> -----Ursprüngliche Nachricht----- > >>> Von: Romain Manni-Bucau [mailto:[email protected]] > >>> Gesendet: Freitag, 3. Januar 2014 15:00 > >>> An: [email protected] > >>> Betreff: Re: Arquillian remote adapter not able to deploy to a > >>> "really > remote" TomEE? > >>> > >>> Did you try adding as system properties: > >>> openejb.deployer.binaries.use=true on the remote tomee > >>> > >>> That said I think we miss openejb.deployer.binaries.value support > >>> in adapter itself if the host is really remote > >>> > >>> Their would be workaround but not that arquillian complaint and we > >>> need to fix it in all cases so I prefer to not speak of them right > >>> now Romain Manni-Bucau > >>> Twitter: @rmannibucau > >>> Blog: http://rmannibucau.wordpress.com/ > >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >>> Github: https://github.com/rmannibucau > >>> > >>> > >>> > >>> 2014/1/3 Fabian Schwarzer (Inxmail GmbH) > >>> <[email protected] > >: > >>>> Hi everyone! > >>>> > >>>> I got following setup: > >>>> > >>>> - Development machine where I code > >>>> > >>>> - VM (started by Vagrant) on that dev machine that runs > TomEE 1.6.0 > >>>> > >>>> - Arquillian tests and the tomee-remote adapter > >>>> > >>>> Now I want to start the execution of my Arquillian tests on the > >>>> dev > machine which should use the remote TomeEE (on the VM) as the target > container. > >>>> This does not work due to the following exception: > >>>> > >>>> Caused by: org.apache.openejb.OpenEJBRuntimeException: > java.io.FileNotFoundException: > /home/vagrant/C:\Users\fsr\AppData\Local\Temp\arquillian-tomee-app-wor > king-dir\0\a3682ea3-16c1-44d6-b183-fd579872517a.war > (No such file or directory) > >>>> at > org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(Tomca > tWebappDeployer.java:46) > >>>> at > org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:168) > >>>> at > org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:133) > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>>> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > ava:57) > >>>> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > orImpl.java:43) > >>>> at java.lang.reflect.Method.invoke(Method.java:606) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoca > tion.invoke(ReflectionInvocationContext.java:182) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.procee > d(ReflectionInvocationContext.java:164) > >>>> at > org.apache.openejb.security.internal.InternalSecurityInterceptor.invok > e(InternalSecurityInterceptor.java:34) > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>>> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > ava:57) > >>>> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > orImpl.java:43) > >>>> at java.lang.reflect.Method.invoke(Method.java:606) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoca > tion.invoke(ReflectionInvocationContext.java:182) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.procee > d(ReflectionInvocationContext.java:164) > >>>> at > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor > .java:180) > >>>> at > org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor > .java:99) > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>>> at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > ava:57) > >>>> at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > orImpl.java:43) > >>>> at java.lang.reflect.Method.invoke(Method.java:606) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoca > tion.invoke(ReflectionInvocationContext.java:182) > >>>> at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.procee > d(ReflectionInvocationContext.java:164) > >>>> at > org.apache.openejb.core.interceptor.InterceptorStack.invoke(Intercepto > rStack.java:80) > >>>> at > org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateless > Container.java:212) > >>>> at > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessC > ontainer.java:181) > >>>> at > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_ > METHOD(EjbRequestHandler.java:370) > >>>> at > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbReq > uestHandler.java:181) > >>>> at > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.j > ava:344) > >>>> at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:240) > >>>> at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:86) > >>>> at > org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.ja > va:58) > >>>> at > javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > >>>> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:305) > >>>> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:210) > >>>> at > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) > >>>> at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:243) > >>>> at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:210) > >>>> at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa > lve.java:222) > >>>> at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa > lve.java:123) > >>>> at > org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) > >>>> at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticat > orBase.java:611) > >>>> at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja > va:171) > >>>> at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja > va:100) > >>>> at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:9 > 53) > >>>> at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValv > e.java:118) > >>>> at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :408) > >>>> at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp1 > 1Processor.java:1041) > >>>> at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A > bstractProtocol.java:603) > >>>> at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint > .java:312) > >>>> at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j > ava:1145) > >>>> at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. > java:615) > >>>> at java.lang.Thread.run(Thread.java:724) > >>>> Caused by: java.io.FileNotFoundException: > /home/vagrant/C:\Users\fsr\AppData\Local\Temp\arquillian-tomee-app-wor > king-dir\0\a3682ea3-16c1-44d6-b183-fd579872517a.war > (No such file or directory) > >>>> at java.util.zip.ZipFile.open(Native Method) > >>>> at java.util.zip.ZipFile.<init>(ZipFile.java:215) > >>>> at java.util.zip.ZipFile.<init>(ZipFile.java:145) > >>>> at java.util.jar.JarFile.<init>(JarFile.java:153) > >>>> at java.util.jar.JarFile.<init>(JarFile.java:117) > >>>> at > org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebA > ppBuilder.java:476) > >>>> at > org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(Tomca > tWebappDeployer.java:44) > >>>> ... 53 more > >>>> > >>>> As far as I understand from looking at the exception and the > >>>> relevant code (both deploy methods) on > >>>> > >>>> https://github.com/apache/tomee/blob/tomee-1.6.0/tomee/tomee-cata > >>>> lina > >>>> / > >>>> src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDe > >>>> ploy > >>>> e > >>>> r.java > >>>> > >>>> and > >>>> > >>>> https://github.com/apache/tomee/blob/tomee-1.6.0/arquillian/arqui > >>>> llia > >>>> n > >>>> -tomee-common/src/main/java/org/apache/openejb/arquillian/common/ > >>>> TomE > >>>> E > >>>> Container.java > >>>> > >>>> the TomEE remote adapter does not transfer the war file to the > >>>> remote > container like other remote adapters (e.g. the one for Glassfish) do. > Instead, the adapter just passes a path to the remote TomEE which then > goes and tries to fetch the war from that location. > >>>> > >>>> This works well in an environment where Arquillian tests and the > remote TomEE run on the same system, but fails in an setup like mine > were the remote container "really" is remote. > >>>> Are my observations correct? If not, what do I miss and how am I > >>>> able > to let the TomEE remote adapter transfer the whole war file? If they > are correct, how should I proceed since this is a very very crucial > feature for us that determines whether we can use TomEE or not. > >>>> We might be able to contribute to the project and implement that > feature...would be glad if you could point me to the right people in > order to get some sort of entry point... > >>>> > >>>> Thanks, > >>>> Fabian > >>>> > >>>> > >>>> > -- Jean-Louis
