[JBoss JIRA] (ARQ-2152) Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
by Gerhard Poul (JIRA)
[ https://issues.jboss.org/browse/ARQ-2152?page=com.atlassian.jira.plugin.s... ]
Gerhard Poul updated ARQ-2152:
------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
> ----------------------------------------------------------------------------------------------
>
> Key: ARQ-2152
> URL: https://issues.jboss.org/browse/ARQ-2152
> Project: Arquillian
> Issue Type: Feature Request
> Components: WebSphere Containers
> Affects Versions: was_1.0.0.next
> Environment: Testing Microprofile TCKs on WebSphere Liberty
> (Apologies for setting the priority.)
> (Apologies if the version is incorrect for https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> Reporter: Gordon Hutchison
> Assignee: Gerhard Poul
> Priority: Minor
>
> (I have to thank my colleague Kevin Grigorenko for this patch which I integrated into
> my local clone. The text below is pasted from text written by him: )
> "Added support for injecting a Tracer into the TCK: For the CDI injection to work, the TCK application's classloader must be configured with apiTypeVisibility="spec, ibm-api, third-party". The WAS Arquillian container's default deployType is dropins and I couldn't find a way to configure the classloader for that. The WAS Arquiallian container also supports deployType=xml which puts the WAR into apps and dynamically adds configuration to Liberty's server.xml with the <application /> element and some sub-elements. I forked that code to also add support for apiTypeVisibility and also submitted a pull request. Now, running with that fork and specifying <property name="deployType">xml</property> and <property name="apiTypeVisibility">spec, ibm-api, third-party</property> in mpOpentracingTckRunner/tck/src/test/resources/arquillian.xml allows the TCK to inject the Tracer."
> This WLP feature is discussed here:
> https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websp...
> I have Kevin's code patch that does this and am only raising this issue
> in order to reference it in a pull request I am going to make
> at
> https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> I have checked with Kevin that he is happy for me to do this:
> (On IBM Sametime)
> gordon_hutchison(a)uk.ibm.com - Gordon Hutchison/UK/IBM:
> 4:17:28 PM: Hi Kevin, is it OK with you if I create an issue and then a PR to integrate the 'apiTypeVisibility' change you did to the public upstream repo?
> Kevin GRIGORENKO:
> 4:17:54 PM: Yes, absolutely. Thanks very much!
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2153) Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
by Gerhard Poul (JIRA)
[ https://issues.jboss.org/browse/ARQ-2153?page=com.atlassian.jira.plugin.s... ]
Gerhard Poul commented on ARQ-2153:
-----------------------------------
[~hutchig] Is it fair to say that this is mostly useful only in the case of this particular TCK?
Normally I would not assume that exceptions thrown in the application server are directly also thrown in the managed container implementation.
We can definitely add this, but I might want to bind this to a configuration parameter being set.
I'll also add a few comments to the pull request as well.
> Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
> ----------------------------------------------------------------------------------------------------------
>
> Key: ARQ-2153
> URL: https://issues.jboss.org/browse/ARQ-2153
> Project: Arquillian
> Issue Type: Feature Request
> Components: WebSphere Containers
> Affects Versions: 1.0.0.Final
> Environment: MicroProfile FaultTolerance TCK testing with arquillian-wlp-managed-8.5 container.
> For example testing
> https://github.com/eclipse/microprofile-fault-tolerance/blob/master/tck/s...
> with open Liberty or any other Arquillian test testing for DefinitionExceptions that cause
> Deployment Exceptions.
> Reporter: Gordon Hutchison
> Assignee: Gerhard Poul
> Priority: Minor
>
> When running the MicroProfile Fault Tolerance TCK there are numerous tests'
> deploy methods that have:
> {code:java}
> @Deployment
> @ShouldThrowException(DefinitionException.class)
> public static WebArchive deploy() {...
> {code}
> The current wlp-managed-8.5 container return these as Deployment
> Exceptions to the test client which makes the TCK tests fail even if the server
> has raised a definition exception.
> I have a code patch from an IBM colleague Nathan Mittlestat (whose permission I have to
> make this 'issue' and a pull request from on his behalf ) along the lines of:
> {code:java}
> private void checkForDefinitionExceptions(String applicationName)
> {
> String messagesFile = containerConfiguration.getWlpHome() + "/usr/servers/" + containerConfiguration.getServerName() + "/logs/messages.log";
> BufferedReader br = null;
> try {
> br = new BufferedReader(new InputStreamReader(new FileInputStream(messagesFile)));
> String line;
> while ((line = br.readLine()) != null) {
> if (line.contains("CWWKZ0002E: An exception occurred while starting the application " + applicationName + ".")
> && (line.contains("org.jboss.weld.exceptions.DefinitionException") || line.contains("javax.enterprise.inject.spi.DefinitionException"))) {
> System.out.println("############DEBUG found CWWKZ0002E for application: " + applicationName);
> System.out.println(line);
> throw new DefinitionException(line);
> }
> }
> } catch (IOException e) {
> System.err.println("Exception while reading messages.log" + e.toString());
> e.printStackTrace();
> // } catch (FileNotFoundException e) {
> // System.err.println("Exception while reading messages.log" + e.toString());
> // e.printStackTrace();
> } finally {
> try {
> if (br != null)
> br.close();
> } catch (Exception e) {
> System.err.println("Exception while closing bufferedreader " + e.toString());
> e.printStackTrace();
> }
> }
> }
> {code}
> This method is called in waitForApplicationTargetState if a wrapping Deployment exception
> is observed:
>
> {code:java}
> } catch (Exception e) {
> checkForDefinitionExceptions(applicationName);
> throw new DeploymentException("Exception while checking application state.", e);
> }
> {code}
> I will do a PR shortly.
>
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2152) Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
by Gerhard Poul (JIRA)
[ https://issues.jboss.org/browse/ARQ-2152?page=com.atlassian.jira.plugin.s... ]
Gerhard Poul commented on ARQ-2152:
-----------------------------------
[~hutchig] I've now added this to our documentation at https://docs.jboss.org/author/display/ARQ/WLP+V8.5+-+Managed
> Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
> ----------------------------------------------------------------------------------------------
>
> Key: ARQ-2152
> URL: https://issues.jboss.org/browse/ARQ-2152
> Project: Arquillian
> Issue Type: Feature Request
> Components: WebSphere Containers
> Affects Versions: was_1.0.0.next
> Environment: Testing Microprofile TCKs on WebSphere Liberty
> (Apologies for setting the priority.)
> (Apologies if the version is incorrect for https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> Reporter: Gordon Hutchison
> Assignee: Gerhard Poul
> Priority: Minor
>
> (I have to thank my colleague Kevin Grigorenko for this patch which I integrated into
> my local clone. The text below is pasted from text written by him: )
> "Added support for injecting a Tracer into the TCK: For the CDI injection to work, the TCK application's classloader must be configured with apiTypeVisibility="spec, ibm-api, third-party". The WAS Arquillian container's default deployType is dropins and I couldn't find a way to configure the classloader for that. The WAS Arquiallian container also supports deployType=xml which puts the WAR into apps and dynamically adds configuration to Liberty's server.xml with the <application /> element and some sub-elements. I forked that code to also add support for apiTypeVisibility and also submitted a pull request. Now, running with that fork and specifying <property name="deployType">xml</property> and <property name="apiTypeVisibility">spec, ibm-api, third-party</property> in mpOpentracingTckRunner/tck/src/test/resources/arquillian.xml allows the TCK to inject the Tracer."
> This WLP feature is discussed here:
> https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websp...
> I have Kevin's code patch that does this and am only raising this issue
> in order to reference it in a pull request I am going to make
> at
> https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> I have checked with Kevin that he is happy for me to do this:
> (On IBM Sametime)
> gordon_hutchison(a)uk.ibm.com - Gordon Hutchison/UK/IBM:
> 4:17:28 PM: Hi Kevin, is it OK with you if I create an issue and then a PR to integrate the 'apiTypeVisibility' change you did to the public upstream repo?
> Kevin GRIGORENKO:
> 4:17:54 PM: Yes, absolutely. Thanks very much!
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2154) phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
by Karl-Philipp Richter (JIRA)
[ https://issues.jboss.org/browse/ARQ-2154?page=com.atlassian.jira.plugin.s... ]
Karl-Philipp Richter updated ARQ-2154:
--------------------------------------
Description:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
{code:java}
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
{code}
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
I asked https://stackoverflow.com/questions/47217087/why-does-my-arquillian-drone... for support which might contain more details.
was:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
{code:java}
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
{code}
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
> phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
> --------------------------------------------------------------------------------------------------------------
>
> Key: ARQ-2154
> URL: https://issues.jboss.org/browse/ARQ-2154
> Project: Arquillian
> Issue Type: Bug
> Affects Versions: 1.1.14.Final
> Reporter: Karl-Philipp Richter
>
> Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
> {code:java}
> java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
> at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
> at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
> at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
> at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
> at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
> at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
> ... 12 more
> Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
> at java.io.FileOutputStream.open0(Native Method)
> at java.io.FileOutputStream.open(FileOutputStream.java:270)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
> at org.arquillian.spacelift.task.Task.run(Task.java:100)
> at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
> ... 4 more
> {code}
> I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
> I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
> I asked https://stackoverflow.com/questions/47217087/why-does-my-arquillian-drone... for support which might contain more details.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2154) phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
by Karl-Philipp Richter (JIRA)
[ https://issues.jboss.org/browse/ARQ-2154?page=com.atlassian.jira.plugin.s... ]
Karl-Philipp Richter updated ARQ-2154:
--------------------------------------
Description:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
{code:java}
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
{code}
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
was:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
```
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
```
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
> phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
> --------------------------------------------------------------------------------------------------------------
>
> Key: ARQ-2154
> URL: https://issues.jboss.org/browse/ARQ-2154
> Project: Arquillian
> Issue Type: Bug
> Affects Versions: 1.1.14.Final
> Reporter: Karl-Philipp Richter
>
> Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
> {code:java}
> java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
> at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
> at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
> at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
> at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
> at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
> at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
> ... 12 more
> Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
> at java.io.FileOutputStream.open0(Native Method)
> at java.io.FileOutputStream.open(FileOutputStream.java:270)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
> at org.arquillian.spacelift.task.Task.run(Task.java:100)
> at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
> ... 4 more
> {code}
> I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
> I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2154) phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
by Karl-Philipp Richter (JIRA)
[ https://issues.jboss.org/browse/ARQ-2154?page=com.atlassian.jira.plugin.s... ]
Karl-Philipp Richter updated ARQ-2154:
--------------------------------------
Description:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
```
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
```
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
was:
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
{{{
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
}}}
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
> phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
> --------------------------------------------------------------------------------------------------------------
>
> Key: ARQ-2154
> URL: https://issues.jboss.org/browse/ARQ-2154
> Project: Arquillian
> Issue Type: Bug
> Affects Versions: 1.1.14.Final
> Reporter: Karl-Philipp Richter
>
> Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
> ```
> java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
> at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
> at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
> at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
> at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
> at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
> at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
> at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
> at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
> at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
> at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
> ... 12 more
> Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
> at java.io.FileOutputStream.open0(Native Method)
> at java.io.FileOutputStream.open(FileOutputStream.java:270)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
> at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
> at org.arquillian.spacelift.task.Task.run(Task.java:100)
> at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
> ... 4 more
> ```
> I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
> I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2154) phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
by Karl-Philipp Richter (JIRA)
Karl-Philipp Richter created ARQ-2154:
-----------------------------------------
Summary: phantomjs download and extraction remains without effect if Maven is started in a parent or aggregator project
Key: ARQ-2154
URL: https://issues.jboss.org/browse/ARQ-2154
Project: Arquillian
Issue Type: Bug
Affects Versions: 1.1.14.Final
Reporter: Karl-Philipp Richter
Arquillian Spacelift and Arquillian Drone Webdriver don't resolve the directory where to findd the downloaded Selenium driver for phantomjs consistently. They seem to use the working directory which isn't changed if Maven is started in an aggregator project root and the Maven basedir property so that the `@Deployment` method fails due to
{{{
java.lang.IllegalStateException: Something bad happened when Drone was trying to download and prepare a binary. For more information see the cause.
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:62)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.getCapabilities(PhantomJSDriverFactory.java:99)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:72)
at org.jboss.arquillian.drone.webdriver.factory.PhantomJSDriverFactory.createInstance(PhantomJSDriverFactory.java:37)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:127)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:38)
at org.jboss.arquillian.drone.impl.DroneConfigurator$1.createInstance(DroneConfigurator.java:112)
at org.jboss.arquillian.drone.impl.CachingCallableImpl.call(CachingCallableImpl.java:44)
at org.jboss.arquillian.core.impl.threading.ThreadedExecutorService$ContextualCallable.call(ThreadedExecutorService.java:88)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.arquillian.spacelift.execution.ExecutionException: Execution of a task failed. Unable to execute task UntarTool
at org.arquillian.spacelift.execution.ExecutionException.prependMessage(ExecutionException.java:63)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.unwrapException(FutureBasedExecution.java:71)
at org.arquillian.spacelift.execution.impl.FutureBasedExecution.await(FutureBasedExecution.java:130)
at org.jboss.arquillian.drone.webdriver.binary.BinaryFilesUtils.extract(BinaryFilesUtils.java:58)
at org.jboss.arquillian.drone.webdriver.binary.handler.PhantomJSDriverBinaryHandler.prepare(PhantomJSDriverBinaryHandler.java:43)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:226)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:208)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.downloadAndPrepare(AbstractBinaryHandler.java:175)
at org.jboss.arquillian.drone.webdriver.binary.handler.AbstractBinaryHandler.checkAndSetBinary(AbstractBinaryHandler.java:60)
... 12 more
Caused by: java.io.FileNotFoundException: target/drone/1c947d57fce2f21ce0b43fe2ed7cd361/phantomjs-2.1.1-linux-x86_64/examples/colorwheel.js (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:118)
at org.arquillian.spacelift.task.archive.UncompressTool.process(UncompressTool.java:36)
at org.arquillian.spacelift.task.Task.run(Task.java:100)
at org.arquillian.spacelift.task.Task$1.call(Task.java:71)
... 4 more
}}}
I don't know how this usecase is specified in the requirements specification. If it's unspecified, maybe there's a way to make both invokations of Maven in the project and its parent or aggregator work. In case this is not supported it'd be nice to fail with a clear feedback similar to `the invokation of Maven has to take place in the project containing the Arquillian @Deployment method, see [documentation link] for an explanation` since it took me for example several days and 100 stackoverflow bounty points to figure out what the exception above is meaning.
I provided https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/ referencing https://gitlab.com/krichter/gitlab-ci-file-creation as module which demonstrates the issue, e.g. at https://gitlab.com/krichter/gitlab-ci-file-creation-aggregator/-/jobs/408.... It performs the compilation skipping integration tests and then runs `mvn verify` in the submodule's directory which succeeds and then in the aggregator directory which fails (see `.gitlab-ci.yml`). The essence of these three calls is to invoke `mvn install` in the aggregator directory which should succeed, but doesn't.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2153) Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
by Gordon Hutchison (JIRA)
[ https://issues.jboss.org/browse/ARQ-2153?page=com.atlassian.jira.plugin.s... ]
Gordon Hutchison updated ARQ-2153:
----------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/arquillian/arquillian-container-was/pull/33
> Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
> ----------------------------------------------------------------------------------------------------------
>
> Key: ARQ-2153
> URL: https://issues.jboss.org/browse/ARQ-2153
> Project: Arquillian
> Issue Type: Feature Request
> Components: WebSphere Containers
> Affects Versions: 1.0.0.Final
> Environment: MicroProfile FaultTolerance TCK testing with arquillian-wlp-managed-8.5 container.
> For example testing
> https://github.com/eclipse/microprofile-fault-tolerance/blob/master/tck/s...
> with open Liberty or any other Arquillian test testing for DefinitionExceptions that cause
> Deployment Exceptions.
> Reporter: Gordon Hutchison
> Assignee: Gerhard Poul
> Priority: Minor
>
> When running the MicroProfile Fault Tolerance TCK there are numerous tests'
> deploy methods that have:
> {code:java}
> @Deployment
> @ShouldThrowException(DefinitionException.class)
> public static WebArchive deploy() {...
> {code}
> The current wlp-managed-8.5 container return these as Deployment
> Exceptions to the test client which makes the TCK tests fail even if the server
> has raised a definition exception.
> I have a code patch from an IBM colleague Nathan Mittlestat (whose permission I have to
> make this 'issue' and a pull request from on his behalf ) along the lines of:
> {code:java}
> private void checkForDefinitionExceptions(String applicationName)
> {
> String messagesFile = containerConfiguration.getWlpHome() + "/usr/servers/" + containerConfiguration.getServerName() + "/logs/messages.log";
> BufferedReader br = null;
> try {
> br = new BufferedReader(new InputStreamReader(new FileInputStream(messagesFile)));
> String line;
> while ((line = br.readLine()) != null) {
> if (line.contains("CWWKZ0002E: An exception occurred while starting the application " + applicationName + ".")
> && (line.contains("org.jboss.weld.exceptions.DefinitionException") || line.contains("javax.enterprise.inject.spi.DefinitionException"))) {
> System.out.println("############DEBUG found CWWKZ0002E for application: " + applicationName);
> System.out.println(line);
> throw new DefinitionException(line);
> }
> }
> } catch (IOException e) {
> System.err.println("Exception while reading messages.log" + e.toString());
> e.printStackTrace();
> // } catch (FileNotFoundException e) {
> // System.err.println("Exception while reading messages.log" + e.toString());
> // e.printStackTrace();
> } finally {
> try {
> if (br != null)
> br.close();
> } catch (Exception e) {
> System.err.println("Exception while closing bufferedreader " + e.toString());
> e.printStackTrace();
> }
> }
> }
> {code}
> This method is called in waitForApplicationTargetState if a wrapping Deployment exception
> is observed:
>
> {code:java}
> } catch (Exception e) {
> checkForDefinitionExceptions(applicationName);
> throw new DeploymentException("Exception while checking application state.", e);
> }
> {code}
> I will do a PR shortly.
>
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2152) Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
by Gordon Hutchison (JIRA)
[ https://issues.jboss.org/browse/ARQ-2152?page=com.atlassian.jira.plugin.s... ]
Gordon Hutchison updated ARQ-2152:
----------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/arquillian/arquillian-container-was/pull/32
> Add support for setting 'apiTypeVisibility' in Websphere Liberty Application Server Container
> ----------------------------------------------------------------------------------------------
>
> Key: ARQ-2152
> URL: https://issues.jboss.org/browse/ARQ-2152
> Project: Arquillian
> Issue Type: Feature Request
> Components: WebSphere Containers
> Affects Versions: was_1.0.0.next
> Environment: Testing Microprofile TCKs on WebSphere Liberty
> (Apologies for setting the priority.)
> (Apologies if the version is incorrect for https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> Reporter: Gordon Hutchison
> Assignee: Gerhard Poul
> Priority: Minor
>
> (I have to thank my colleague Kevin Grigorenko for this patch which I integrated into
> my local clone. The text below is pasted from text written by him: )
> "Added support for injecting a Tracer into the TCK: For the CDI injection to work, the TCK application's classloader must be configured with apiTypeVisibility="spec, ibm-api, third-party". The WAS Arquillian container's default deployType is dropins and I couldn't find a way to configure the classloader for that. The WAS Arquiallian container also supports deployType=xml which puts the WAR into apps and dynamically adds configuration to Liberty's server.xml with the <application /> element and some sub-elements. I forked that code to also add support for apiTypeVisibility and also submitted a pull request. Now, running with that fork and specifying <property name="deployType">xml</property> and <property name="apiTypeVisibility">spec, ibm-api, third-party</property> in mpOpentracingTckRunner/tck/src/test/resources/arquillian.xml allows the TCK to inject the Tracer."
> This WLP feature is discussed here:
> https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websp...
> I have Kevin's code patch that does this and am only raising this issue
> in order to reference it in a pull request I am going to make
> at
> https://github.com/arquillian/arquillian-container-was/tree/master/wlp-ma...
> I have checked with Kevin that he is happy for me to do this:
> (On IBM Sametime)
> gordon_hutchison(a)uk.ibm.com - Gordon Hutchison/UK/IBM:
> 4:17:28 PM: Hi Kevin, is it OK with you if I create an issue and then a PR to integrate the 'apiTypeVisibility' change you did to the public upstream repo?
> Kevin GRIGORENKO:
> 4:17:54 PM: Yes, absolutely. Thanks very much!
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months
[JBoss JIRA] (ARQ-2153) Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
by Gordon Hutchison (JIRA)
Gordon Hutchison created ARQ-2153:
-------------------------------------
Summary: Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
Key: ARQ-2153
URL: https://issues.jboss.org/browse/ARQ-2153
Project: Arquillian
Issue Type: Feature Request
Components: WebSphere Containers
Affects Versions: 1.0.0.Final
Environment:
MicroProfile FaultTolerance TCK testing with arquillian-wlp-managed-8.5 container.
For example testing
https://github.com/eclipse/microprofile-fault-tolerance/blob/master/tck/s...
with open Liberty or any other Arquillian test testing for DefinitionExceptions that cause
Deployment Exceptions.
Reporter: Gordon Hutchison
Assignee: Gerhard Poul
Priority: Minor
When running the MicroProfile Fault Tolerance TCK there are numerous tests'
deploy methods that have:
{code:java}
@Deployment
@ShouldThrowException(DefinitionException.class)
public static WebArchive deploy() {...
{code}
The current wlp-managed-8.5 container return these as Deployment
Exceptions to the test client which makes the TCK tests fail even if the server
has raised a definition exception.
I have a code patch from an IBM colleague Nathan Mittlestat (whose permission I have to
make this 'issue' and a pull request from on his behalf ) along the lines of:
{code:java}
private void checkForDefinitionExceptions(String applicationName)
{
String messagesFile = containerConfiguration.getWlpHome() + "/usr/servers/" + containerConfiguration.getServerName() + "/logs/messages.log";
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(messagesFile)));
String line;
while ((line = br.readLine()) != null) {
if (line.contains("CWWKZ0002E: An exception occurred while starting the application " + applicationName + ".")
&& (line.contains("org.jboss.weld.exceptions.DefinitionException") || line.contains("javax.enterprise.inject.spi.DefinitionException"))) {
System.out.println("############DEBUG found CWWKZ0002E for application: " + applicationName);
System.out.println(line);
throw new DefinitionException(line);
}
}
} catch (IOException e) {
System.err.println("Exception while reading messages.log" + e.toString());
e.printStackTrace();
// } catch (FileNotFoundException e) {
// System.err.println("Exception while reading messages.log" + e.toString());
// e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (Exception e) {
System.err.println("Exception while closing bufferedreader " + e.toString());
e.printStackTrace();
}
}
}
{code}
This method is called in waitForApplicationTargetState if a wrapping Deployment exception
is observed:
{code:java}
} catch (Exception e) {
checkForDefinitionExceptions(applicationName);
throw new DeploymentException("Exception while checking application state.", e);
}
{code}
I will do a PR shortly.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 2 months