[JBoss JIRA] Created: (ARQ-472) Metadata annotations should not be read directly from the Java Classes
by Aslak Knutsen (JIRA)
Metadata annotations should not be read directly from the Java Classes
----------------------------------------------------------------------
Key: ARQ-472
URL: https://issues.jboss.org/browse/ARQ-472
Project: Arquillian
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Base Implementation
Affects Versions: 1.0.0.Final
Reporter: Aslak Knutsen
Fix For: 1.1.0.CR1
To better support Alternative languages on the JVM we should move away from reading MetaData annotations directly from the Java Classes, instead create a MetaModel indirection that is replaceable and can be implemented to fit specific needs.
This goes for Metadata Annotations like @RunAsClient, @OperatesOnDeployment, @OperatesOnContainer, @Deployment etc
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 6 months
[JBoss JIRA] Created: (ARQ-320) ServiceLoader should honor vetoed extension implementations
by Dan Allen (JIRA)
ServiceLoader should honor vetoed extension implementations
-----------------------------------------------------------
Key: ARQ-320
URL: https://jira.jboss.org/browse/ARQ-320
Project: Arquillian
Issue Type: Feature Request
Affects Versions: 1.0.0.Alpha4
Reporter: Dan Allen
Fix For: 1.0.0.Beta1
The current ServiceLoader implementation makes it difficult (if not impossible) to extend an SPI implementation and have it take precedence over an implementation already on the classpath. In other words, it discourages being able to use an implementation as a library dependency.
The reason this happens is because the original implementation provides a ServiceLoader activation file under META-INF/services. This conflicts with the activation file used by the extended implementation in the case that Arquillian is looking for exactly one implementation. The only way to work around this at the moment is to copy all of the classes required by the original implementation into your own project, extend (or modify) the original implementation class, and package those classes with a service activation file. In effect, you have removed the original activation file and replaced it with your own.
Clearly what is missing is a mechanism to veto the original implementation. You know you which implementation you want and which one you don't want. So, in the activation file you simply mark the original implementation as vetoed (to reverse the effect of it being specified as an implementation). An implementation class would be vetoed by prefixing it with a ! symbol.
!org.jboss.arquillian.container.jbossas.remote_6.JBossASRemoteContainer
com.acme.arquillian.container.jbossas.remote_6.AcmeJBossASRemoteContainer
While this may seem very specific as you are referencing an implementation class, that's the whole point because your Java code is extending that class. It's about library reuse, so you don't have to import the entire package just to exclude the activation file.
Frankly, I feel like this is a critical missing piece in the JDK ServiceLoader model in general. It's like providing a light switch that only turns on, not off. Or a radio button with only one option. Once you press it, you can't unpress it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 6 months
[JBoss JIRA] Created: (ARQ-310) Add a post-construct method to ContainerConfiguration
by Dan Allen (JIRA)
Add a post-construct method to ContainerConfiguration
-----------------------------------------------------
Key: ARQ-310
URL: https://jira.jboss.org/browse/ARQ-310
Project: Arquillian
Issue Type: Feature Request
Components: Configuration
Affects Versions: 1.0.0.Alpha4
Reporter: Dan Allen
The ContainerConfiguration SPI should include a method that is invoked after all the properties have been set so that component properties can be calculated and perhaps validation can be performed. When you introduce a container-managed component type w/o a post-construct hook, it results in logic being performed in setter methods. We don't want that sort of thing. We want to keep it clean.
public interface ContainerConfiguration
{
ContainerProfile getContainerProfile();
void afterPropertiesSet(); // alternate: void postConstruct();
}
We could also entertain the possibility of honoring the @PostConstruct annotation.
An example use case is to assemble the JSR-88 deployment URI from various facts provided, such as the server host and port (or admin server host and port), if an explicit deployment URI is not provided.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 6 months
[JBoss JIRA] Created: (ARQ-469) ClassCastException: java.lang.String cannot be cast to [B
by Thomas Diesler (JIRA)
ClassCastException: java.lang.String cannot be cast to [B
---------------------------------------------------------
Key: ARQ-469
URL: https://issues.jboss.org/browse/ARQ-469
Project: Arquillian
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Thomas Diesler
14:43:37,404 ERROR [org.jboss.arquillian.protocol.jmx.JMXTestRunner] (RMI TCP Connection(2)-127.0.0.1) Failed: org.jboss.as.testsuite.integration.osgi.xservice.BundleAccessesModuleServiceTestCase.bundleInvokesModuleService: java.lang.ClassCastException: java.lang.String cannot be cast to [B
at org.jboss.arquillian.container.test.impl.client.deployment.ContainerDeployer.getDeployment(ContainerDeployer.java:58) [arquillian-service:]
at org.jboss.as.testsuite.integration.osgi.xservice.BundleAccessesModuleServiceTestCase.bundleInvokesModuleService(BundleAccessesModuleServiceTestCase.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_25]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_25]
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) [arquillian-service:]
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) [arquillian-service:]
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) [arquillian-service:]
at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:261) [arquillian-service:]
at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60) [arquillian-service:]
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 6 months