[arquillian-issues] [JBoss JIRA] (ARQ-2153) Enable @Deployment @ShouldThrowException(DefinitionException.class) in WebSphere Liberty Managed Container
Gordon Hutchison (JIRA)
issues at jboss.org
Thu Nov 16 12:35:00 EST 2017
[ https://issues.jboss.org/browse/ARQ-2153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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/src/main/java/org/eclipse/microprofile/fault/tolerance/tck/invalidParameters/InvalidCircuitBreakerDelayTest.java
> 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)
More information about the arquillian-issues
mailing list