[JBoss JIRA] Created: (ARQ-585) Support for adding a beans.xml without discarding the original beans.xml with .mergeAsResource()
by Geoffrey De Smet (JIRA)
Support for adding a beans.xml without discarding the original beans.xml with .mergeAsResource()
------------------------------------------------------------------------------------------------
Key: ARQ-585
URL: https://issues.jboss.org/browse/ARQ-585
Project: Arquillian
Issue Type: Enhancement
Security Level: Public (Everyone can see)
Reporter: Geoffrey De Smet
Priority: Critical
Presume these 2 beans.xml files:
Production code: beans.xml:
{code}
<beans xmlns="http://java.sun.com/xml/ns/javaee" ...>
<!-- 100 lines that change regularly during development -->
</beans>
{code}
Test addition: test-beans.xml:
{code}
<beans xmlns="http://java.sun.com/xml/ns/javaee" ...>
<alternatives>
<class>org.drools.guvnor.server.repository.TestRepositoryStartupService</class>
</alternatives>
</beans>
{code}
Now, for non-test runs (such as in the IDE or in production), only the beans.xml is activated through weld and the test-only alternative should not be activated.
For test runs, the test-only alternative should be activated, yet the rest of the content from beans.xml should be in there too.
So it should be merged to something like this:
{code}
<beans xmlns="http://java.sun.com/xml/ns/javaee" ...>
<!-- 100 lines that change regularly during development -->
<alternatives>
<class>org.drools.guvnor.server.repository.TestRepositoryStartupService</class>
</alternatives>
</beans>
{code}
It would be nice if we do something like mergeAsResource(), shown in this example:
{code}
public static WebArchive createDeployment() {
WebArchive webArchive = ShrinkWrap.create(ExplodedImporter.class, "guvnor-webapp-5.3.0-SNAPSHOT.war")
.importDirectory(new File("target/guvnor-webapp-5.3.0-SNAPSHOT/"))
.as(WebArchive.class)
.mergeAsResource(new File("target/test-classes/META-INF/test-beans.xml"), "META-INF/beans.xml")
.addAsResource(new File("target/test-classes/"), ArchivePaths.create(""))
.addAsLibraries(
DependencyResolvers.use(MavenDependencyResolver.class)
.includeDependenciesFromPom("pom.xml")
.resolveAsFiles(new ScopeFilter("test")));
return webArchive;
}
{code}
Because of maintenance, copying everything from beans.xml to test-beans.xml on every change to beans.xml is NOT an option.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] Created: (ARQ-615) Arquillian must scale to a high number of full-layer integration tests
by Geoffrey De Smet (JIRA)
Arquillian must scale to a high number of full-layer integration tests
----------------------------------------------------------------------
Key: ARQ-615
URL: https://issues.jboss.org/browse/ARQ-615
Project: Arquillian
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Geoffrey De Smet
Priority: Critical
A full-layer integration test is an arquillian test which deploys the entire war of a webapp (for example guvnor-webapp) and then runs a higher number of test classes and test methods on it.
Currently arquillian doesn't scale out to that. For different reasons.
The main reason is ARQ-197: every test case starts the container again and after a while tomcat6-managed goes out of memory.
But there are other reasons. This should be tested.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] (ARQ-700) Properties in arqullian.xml should handle new lines
by Hardy Ferentschik (Created) (JIRA)
Properties in arqullian.xml should handle new lines
----------------------------------------------------
Key: ARQ-700
URL: https://issues.jboss.org/browse/ARQ-700
Project: Arquillian
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Configuration
Affects Versions: 1.0.0.CR6
Reporter: Hardy Ferentschik
When trying to add _javaVmArguments_ to _arquillian.xml_ in order to debug the container new lines in the property will cause the container start to fail.
For example, the following works:
{code}
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<engine>
<property name="deploymentExportPath">target/</property>
</engine>
<container qualifier="jboss" default="true">
<protocol type="jmx-as7">
<property name="executionType">REMOTE</property>
</protocol>
<configuration>
<property name="jbossHome">target/jboss-as-7.1.0.Beta1</property>
<property name="javaVmArguments">-Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -Xmx512m -XX:MaxPermSize=128m</property>
</configuration>
</container>
</arquillian>
{code}
whereas this fails:
{code}
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<engine>
<property name="deploymentExportPath">target/</property>
</engine>
<container qualifier="jboss" default="true">
<protocol type="jmx-as7">
<property name="executionType">REMOTE</property>
</protocol>
<configuration>
<property name="jbossHome">target/jboss-as-7.1.0.Beta1</property>
<property name="javaVmArguments">
-Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -Xmx512m -XX:MaxPermSize=128m
</property>
</configuration>
</container>
</arquillian>
{code}
given that often people use auto-formatting for xml the parser should take care of this and trim the configuration value. Also the resulting exception for the case where the value is on a new line is very confusing:
{noformat}
org.jboss.arquillian.container.spi.client.container.LifecycleException: Could not start container
at org.jboss.as.arquillian.container.managed.ManagedDeployableContainer.startInternal(ManagedDeployableContainer.java:180)
at org.jboss.as.arquillian.container.CommonDeployableContainer.start(CommonDeployableContainer.java:78)
at org.jboss.arquillian.container.impl.ContainerImpl.start(ContainerImpl.java:198)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:163)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:157)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainer(ContainerLifecycleController.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:77)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:70)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachSuiteContainer(ContainerLifecycleController.java:221)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startSuiteContainers(ContainerLifecycleController.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:97)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.util.concurrent.TimeoutException: Managed server was not started within [30] s
at org.jboss.as.arquillian.container.managed.ManagedDeployableContainer.startInternal(ManagedDeployableContainer.java:176)
... 65 more
{noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] Created: (ARQ-442) Change Examples modules to a container sanity test suite
by Aslak Knutsen (JIRA)
Change Examples modules to a container sanity test suite
--------------------------------------------------------
Key: ARQ-442
URL: https://issues.jboss.org/browse/ARQ-442
Project: Arquillian
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Affects Versions: 1.0.0.Beta1
Reporter: Aslak Knutsen
The current examples modules should be recreated as a sanity test suite for the containers. Currently all containers have their own simple tests for validating the functionality. These container tests should be merged with the examples and created as a test suite.
The test suite needs to be split up by package / module based on EE v / technology to support all containers(easy maven filtering). The containers should depend on this test suite and not the other way around.
todo: research how to include a external module as a test suite for a module. (copy-dependencies / extract ? / container config etc)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months