[JBoss Transactions Development] - XTSTestingCurrentStatus
by Paul Robinson
Paul Robinson [http://community.jboss.org/people/paul.robinson] modified the document:
"XTSTestingCurrentStatus"
To view the document, visit: http://community.jboss.org/docs/DOC-17242
--------------------------------------------------------------
h1. XTS Testing
h1. Current Status and Roadmap
h1.
This Document describes the current status of the XTS tests and what technology they use. There are currently three sets of tests, Unit, Interop and recovery. Each of these is described in turn, and a list of required improvements is presented.
All improvements are targeted at Narayana 5.x unless specified otherwise.
h2. Unit tests
Each XTS component has a set of unit tests. These tests need to be ran within an instance of JBoss AS. These tests are fully automated by an Ant script ran by Hudson.
h3. Improvements
*High Priority (EAP 6.0)*
1. *Ensure AS 7 compatibility.*
2. *Move into the AS test suite*. https://issues.jboss.org/browse/JBQA-5191 https://issues.jboss.org/browse/JBQA-5191. This will ensure that changes to components, we depend upon (like JbossWS), that break XTS are spotted at QE time rather than after release. (EAP 6 requirement)
3. *Additional Testing*. XTS Demo tests ( https://issues.jboss.org/browse/JBQA-5194 https://issues.jboss.org/browse/JBQA-5194)
*Medium Priority (Post EAP 6)*
1. *Automate Emma and collate results*. Emma should be used to obtain coverage stats on the test run. Emma, produces individual reports per test, by default. It would be better to have these reports combined as we are concerned with the overall test coverage, rather than the coverage of each test. Ideally we would combine coverage stats over all sets of tests (unit, interop and recovery). Next step would be to improve the coverage where necessary.
*Low Priority* *(Post EAP 6)*
1. *Migrate to Maven*. For consistency with rest of the Narayna project
2. *Update to use Arquillian*. This would mean that that they can be ran from anywhere that can run JUnit tests, such as an IDE or maven. It would also automate the app server lifecycle and test deployment.
3. *Remove home-brew SOAP stack*. In the past these tests used a mock/simple SOAP stack developed specifically for the tests. This stack is no longer used as the tests run within JBoss AS. This code is redundant and should be removed.
h2. Interop Tests
We have two sets of interop tests that live in "XTS/interop". These are built with ant. They are each ran by deploying them as a war to a single JBoss instance which deploys the services needed by the test. This war also exposes a web interface that on request runs the tests and relays the results in the http response.
This process is automated by using ant to deploy the war and then making the http request and validating the response. See here in code for scripts: “XTS/localjunit/run-interop-tests.xml” and “XTS/localjunit/run-tests.xml”
h3. Improvements
*High Priority (EAP 6.0)*
1. *Ensure AS 7 compatibility.* List issues here...
2. *Move into the AS test suite*. ( https://issues.jboss.org/browse/JBQA-5192 https://issues.jboss.org/browse/JBQA-5192).
*Medium Priority (Post EAP 6.0)*
1. *Automate Emma and collate results*.
*Low Priority (Post EAP 6.0)*
1. *Update to use Arquillian*.
2. *Migrate to Maven*.
h2. Recovery Tests
The recovery tests are the tricky ones. At the moment we have a set of test scenarios that run in a single JBoss server invoked by a remote client. There are also a set of Byteman scripts that trigger failure at certain points in a scenario. There are many different permutations of scenario and Byteman scripts that each create a particular test.
The test scenarios log their progress through the protocol and recovery. On completion of a test run, a human needs to look over the trace and check that it looks right. This process is hard to automate as the trace produced can have many valid interleavings. This is due to the asynchronous nature of the application.
These tests are automated with a bash script, but the output traces must be verified manually by a human. The other problem is that they currently run in a single JBoss server which simulates the situation where every party in the protocol is located in the same app server and crashes & recovers at the same time (not that realistic!). In order to test with multiple servers. we would need a way of combining the traces from each server when verifying the outcome of the test. This could be done by implementing a Byteman helper class, but it would not be trivial.
h3. Improvements
*High Priority (EAP 6.0)*
1. *Move into AS test suite*. The tests are unlikely to be accepted in their current form, due to the level of manual intervention required. This improvement can not be made until we have sufficiently automated the process.
2. *Ensure AS 7 compatibility.* List issues here...
3. *Arquillian support*. Use Arquillian to automate the tests and hopefully remove the human verification step. https://issues.jboss.org/browse/JBQA-3926 https://issues.jboss.org/browse/JBQA-3926
*Medium priority (Post EAP 6.0)*
1. *Automate Emma and collate results*.
*Low Priority (Post EAP 6.0)
*
1. *Migrate to Maven*
2. *Multiple Server Tests*. If step 2) is successful, we could be able to build the more complex scenarios where each party runs in its own JBoss server.
3. *Additional Tests*. Andrew Dinn has provided a set of additional tests for us to consider implementing. These should be considered alongside the Emma coverage data for future work.
h2.
h2. Notes
* Arquillian supports multiple JBoss servers:* https://docs.jboss.org/author/display/ARQ/Multiple+Containers https://docs.jboss.org/author/display/ARQ/Multiple+Containers
* Arquillian doesn't yet support servers that crash. This feature is unlikely to make it into EAP 6.* https://issues.jboss.org/browse/ARQ-336 https://issues.jboss.org/browse/ARQ-336
--------------------------------------------------------------
Comment by going to Community
[http://community.jboss.org/docs/DOC-17242]
Create a new document in JBoss Transactions Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=102&co...]
14 years
[JBoss Transactions Development] - XTSTestingCurrentStatus
by Paul Robinson
Paul Robinson [http://community.jboss.org/people/paul.robinson] modified the document:
"XTSTestingCurrentStatus"
To view the document, visit: http://community.jboss.org/docs/DOC-17242
--------------------------------------------------------------
h1. XTS Testing
h1. Current Status and Roadmap
h1.
This Document describes the current status of the XTS tests and what technology they use. There are currently three sets of tests, Unit, Interop and recovery. Each of these is described in turn, and a list of required improvements is presented.
All improvements are targeted at Narayana 5.x unless specified otherwise.
h2. Unit tests
Each XTS component has a set of unit tests. These tests need to be ran within an instance of JBoss AS. These tests are fully automated by an Ant script ran by Hudson.
h3. Improvements
*High Priority (EAP 6.0)*
1. *Ensure AS 7 compatibility.*** List issues here...
2. *Move into the AS test suite*. ( https://issues.jboss.org/browse/JBQA-5191 https://issues.jboss.org/browse/JBQA-5191). This will ensure that changes to components, we depend upon (like JbossWS), that break XTS are spotted at QE time rather than after release. (EAP 6 requirement)
*Medium Priority (Post EAP 6)*
1. *Automate Emma and collate results*. Emma should be used to obtain coverage stats on the test run. Emma, produces individual reports per test, by default. It would be better to have these reports combined as we are concerned with the overall test coverage, rather than the coverage of each test. Ideally we would combine coverage stats over all sets of tests (unit, interop and recovery). Next step would be to improve the coverage where necessary.
*Low Priority* *(Post EAP 6)*
1. *Migrate to Maven*. For consistency with rest of the Narayna project
2. *Update to use Arquillian*. This would mean that that they can be ran from anywhere that can run JUnit tests, such as an IDE or maven. It would also automate the app server lifecycle and test deployment.
3. *Remove home-brew SOAP stack*. In the past these tests used a mock/simple SOAP stack developed specifically for the tests. This stack is no longer used as the tests run within JBoss AS. This code is redundant and should be removed.
h2. Interop Tests
We have two sets of interop tests that live in "XTS/interop". These are built with ant. They are each ran by deploying them as a war to a single JBoss instance which deploys the services needed by the test. This war also exposes a web interface that on request runs the tests and relays the results in the http response.
This process is automated by using ant to deploy the war and then making the http request and validating the response. See here in code for scripts: “XTS/localjunit/run-interop-tests.xml” and “XTS/localjunit/run-tests.xml”
h3. Improvements
*High Priority (EAP 6.0)*
1. *Ensure AS 7 compatibility.* List issues here...
2. *Move into the AS test suite*. ( https://issues.jboss.org/browse/JBQA-5192 https://issues.jboss.org/browse/JBQA-5192).
*Medium Priority (Post EAP 6.0)*
1. *Automate Emma and collate results*.
*Low Priority (Post EAP 6.0)*
1. *Update to use Arquillian*.
2. *Migrate to Maven*.
h2. Recovery Tests
The recovery tests are the tricky ones. At the moment we have a set of test scenarios that run in a single JBoss server invoked by a remote client. There are also a set of Byteman scripts that trigger failure at certain points in a scenario. There are many different permutations of scenario and Byteman scripts that each create a particular test.
The test scenarios log their progress through the protocol and recovery. On completion of a test run, a human needs to look over the trace and check that it looks right. This process is hard to automate as the trace produced can have many valid interleavings. This is due to the asynchronous nature of the application.
These tests are automated with a bash script, but the output traces must be verified manually by a human. The other problem is that they currently run in a single JBoss server which simulates the situation where every party in the protocol is located in the same app server and crashes & recovers at the same time (not that realistic!). In order to test with multiple servers. we would need a way of combining the traces from each server when verifying the outcome of the test. This could be done by implementing a Byteman helper class, but it would not be trivial.
h3. Improvements
*High Priority (EAP 6.0)*
1. *Move into AS test suite*. The tests are unlikely to be accepted in their current form, due to the level of manual intervention required. This improvement can not be made until we have sufficiently automated the process.
2. *Ensure AS 7 compatibility.* List issues here...
*Medium priority (Post EAP 6.0)*
1. *Automate Emma and collate results*.
*Low Priority (Post EAP 6.0)
*
1. *Migrate to Maven*
2. *Arquillian support*. Use Arquillian to automate the tests and hopefully remove the human verification step.
3. *Multiple Server Tests*. If step 2) is successful, we could be able to build the more complex scenarios where each party runs in its own JBoss server.
4. *Additional Tests*. Andrew Dinn has provided a set of additional tests for us to consider implementing. These should be considered alongside the Emma coverage data for future work.
h2.
h2. Notes
* Arquillian supports multiple JBoss servers:* https://docs.jboss.org/author/display/ARQ/Multiple+Containers https://docs.jboss.org/author/display/ARQ/Multiple+Containers
* Arquillian doesn't yet support servers that crash. This feature is unlikely to make it into EAP 6.* https://issues.jboss.org/browse/ARQ-336 https://issues.jboss.org/browse/ARQ-336
--------------------------------------------------------------
Comment by going to Community
[http://community.jboss.org/docs/DOC-17242]
Create a new document in JBoss Transactions Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=102&co...]
14 years
[JBoss AS7 Development] - Connection Factory as a Service
by Ramesh Reddy
Ramesh Reddy [http://community.jboss.org/people/rareddy] created the discussion
"Connection Factory as a Service"
To view the discussion, visit: http://community.jboss.org/message/626562#626562
--------------------------------------------------------------
Hi,
I am working with AS7 nightly as the it has fix to make the "connection-factories" work. The current behavior I see is that a "resource-adapter" is deployed as AS7 service, however all the "connection factories" underneath it get bounded to a JNDI name, but they are not available as a service. Is there a possibility for me to request to also deploy a service for each connection factory?
On the same token, each of the "data-source" is available as a service. Which is good.
The reason for my request is, in Teiid a virtual database (VDB) depends on both data-sources and connection-factories. I would like to tie these services as dependencies to my VDB service, with out "connection factories" available as services there is no clean way I can tie in lifecycle of VDB with just with JNDI names.
I am willing to contribute code for this, if this is a acceptable change. Otherwise, if anybody can suggest alternatives, I can really use it.
Thank you.
Ramesh..
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/626562#626562]
Start a new discussion in JBoss AS7 Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years
[JBoss Messaging Development] - Failed to write property - java.lang.NullPointerException - infinity messages
by Alexei J
Alexei J [http://community.jboss.org/people/a_subscriber] created the discussion
"Failed to write property - java.lang.NullPointerException - infinity messages"
To view the discussion, visit: http://community.jboss.org/message/565750#565750
--------------------------------------------------------------
JBoss AS 5.1 - success started
I have a simple jms application
private void run(String customerName) throws Exception {
try {
Context initial = new InitialContext();
ConnectionFactory cf = (ConnectionFactory) initial.lookup("/ConnectionFactory");
Destination notifyTopic = (Destination) initial.lookup("topic/testTopic");
Destination requestTopic = (Destination) initial.lookup("topic/testDurableTopic");
logger.trace("Creating Connection...");
connection = cf.createConnection();
connection.setClientID(customerName);
logger.trace("Creating Session...");
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
logger.trace("Creating MessageProducer to send messages to the specified destination. ...");
producer = session.createProducer(requestTopic);
logger.trace("Creating a MessageConsumer for the specified destination. ...");
consumer = session.createConsumer(notifyTopic);
logger.trace("Starts (or restarts) a connection's delivery of incoming messages...");
connection.start();
for (;;) {
listen(customerName);
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
} finally {
if (connection != null)
connection.close();
}
}
jndi.properties file:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
I create jar and deploy it to the %JBOSS_HOME%/server/default/messaging/myapplication/customers/Xavier/
run application on the jboss:
java -cp myproject.jar;%JBOSS_HOME%/client/jbossall-client.jar com.mycompany.myproject.Customer Xavier
and I get infinity the next messages:
[11 ieo 2010 12:03:00.963] com.mycompany.myproject.Customer.main(Customer.java:123) TRACE:
Start customer
[11 ieo 2010 12:03:01.041] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
createSocket, hostAddr: localhost/127.0.0.1, port: 1099, localAddr: null, localPort: 0, timeout: 0
[11 ieo 2010 12:03:01.713] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
org.jboss.aop.classpool.AOPClassPool@1389188011 [class path: sun.misc.Launcher$AppClassLoader@3326b249;] - dcl:sun.misc.Launcher$AppClassLoader@3326b249 creating pool for loader sun.misc.Launcher$AppClassLoader@3326b249 searchStrategy:org.jboss.aop.classpool.AOPClassPool$SearchAllRegisteredLoadersSearchStrategy@26302a05 isTemp:false
[11 ieo 2010 12:03:01.776] com.mycompany.myproject.Customer.run(Customer.java:69) TRACE:
Creating Connection...
[11 ieo 2010 12:03:01.807] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
Remoting version: 2.5.3.SP1 (Flounder)
[11 ieo 2010 12:03:01.822] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
Client[1699270891:5c4o56o-d5cpbk-gf547yym-1-gf547yym-2].connect(null)
[11 ieo 2010 12:03:01.822] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
Client[1699270891:5c4o56o-d5cpbk-gf547yym-1-gf547yym-2]: metadata = null
[11 ieo 2010 12:03:01.885] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
Mapping properties for bean: SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457]
[11 ieo 2010 12:03:01.885] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
Property editor found for: marshaller, editor: java.beans.PropertyDescriptor@40f7af00, setter: public void org.jboss.remoting.MicroRemoteClientInvoker.setMarshaller(org.jboss.remoting.marshal.Marshaller)
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
Failed to find property editor for: marshaller
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.trace(Logger.java:171) TRACE:
Failed to write property
java.lang.NullPointerException
at org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(PropertyEditors.java:377)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.mapJavaBeanProperties(MicroSocketClientInvoker.java:1359)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.setup(MicroSocketClientInvoker.java:533)
at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.<init>(MicroSocketClientInvoker.java:292)
at org.jboss.remoting.transport.socket.SocketClientInvoker.<init>(SocketClientInvoker.java:78)
at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.<init>(BisocketClientInvoker.java:166)
at org.jboss.remoting.transport.bisocket.TransportClientFactory.createClientInvoker(TransportClientFactory.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.remoting.InvokerRegistry.loadClientInvoker(InvokerRegistry.java:460)
at org.jboss.remoting.InvokerRegistry.createClientInvoker(InvokerRegistry.java:359)
at org.jboss.remoting.Client$6.run(Client.java:724)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.remoting.Client.connect(Client.java:720)
at org.jboss.remoting.Client.connect(Client.java:668)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createClient(ClientConnectionFactoryDelegate.java:343)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:246)
at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPStack(ClientConnectionFactoryDelegate.java)
at org.jboss.jms.client.ClientAOPStackLoader.load(ClientAOPStackLoader.java:75)
at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:192)
at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:87)
at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:82)
at com.mycompany.myproject.Customer.run(Customer.java:70)
at com.mycompany.myproject.Customer.main(Customer.java:127)
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
Property editor found for: timeout, editor: java.beans.PropertyDescriptor@5f20829f, setter: null
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting client socket wrapper class name to org.jboss.jms.client.remoting.ClientSocketWrapper
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting shouldCheckConnection to false
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting timeout to 300000
[11 ieo 2010 12:03:01.901] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] constructed
[11 ieo 2010 12:03:01.916] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting client socket wrapper class name to org.jboss.jms.client.remoting.ClientSocketWrapper
[11 ieo 2010 12:03:01.916] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting shouldCheckConnection to false
[11 ieo 2010 12:03:01.916] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] setting timeout to 300000
[11 ieo 2010 12:03:01.916] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] connecting
[11 ieo 2010 12:03:01.916] org.jboss.logging.Logger.debug(Logger.java:228) DEBUG:
Creating semaphore with size 50
[11 ieo 2010 12:03:01.932] org.jboss.logging.Logger.trace(Logger.java:160) TRACE:
SocketClientInvoker[2afa14cb, bisocket://127.0.0.1:4457] added new pool ([]) as ServerAddress[127.0.0.1:4457, NO enableTcpNoDelay timeout 300000 ms, maxPoolSize=50]
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/565750#565750]
Start a new discussion in JBoss Messaging Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years
[JBoss AS7 Development] - AS 7 Persistence Provider Problem
by prinzm
prinzm [http://community.jboss.org/people/prinzm] created the discussion
"AS 7 Persistence Provider Problem"
To view the discussion, visit: http://community.jboss.org/message/617308#617308
--------------------------------------------------------------
We wrote our own persistence provider which extends the HibernatePersistence class and used it in the persistence.xml
Unfortunately on server startup the following exception occurrs:
08:32:08,555 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.subunit."green-ear.ear"."green-ejb.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."green-ear.ear"."green-ejb.jar".INSTALL: Failed to process phase INSTALL of subdeployment "green-ejb.jar" of deployment "green-ear.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_25]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_25]
Caused by: java.lang.NullPointerException
at org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.addProviderProperties(PersistenceUnitDeploymentProcessor.java:346)
at org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.addPuService(PersistenceUnitDeploymentProcessor.java:253)
at org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.handleJarDeployment(PersistenceUnitDeploymentProcessor.java:115)
at org.jboss.as.jpa.processor.PersistenceUnitDeploymentProcessor.deploy(PersistenceUnitDeploymentProcessor.java:96)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
... 5 more
I looked into the source code and found the following entry in the class JPASubSystemAdd:
PersistenceProviderAdapterRegistry.putPersistenceProviderAdaptor(
"org.hibernate.ejb.HibernatePersistence", new HibernatePersistenceProviderAdaptor());
So Hibernate is set as the default persistence provider, and I could not find any other location in the code, where a persistence provider ist set. Therefore the method call "PersistenceProviderAdapterRegistry.getPersistenceProviderAdaptor(pu.getPersistenceProviderClassName())" in the method addProviderProperties in the class PersistenceUnitDeploymentProcessor always returns null since no other persistence provider than the default one seems to be registered. Or did I miss something? In JBoss AS 6 this worked as expected.
Thanks!
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/617308#617308]
Start a new discussion in JBoss AS7 Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years
[JBoss Transactions Development] - XTSTestingCurrentStatus
by Paul Robinson
Paul Robinson [http://community.jboss.org/people/paul.robinson] created the document:
"XTSTestingCurrentStatus"
To view the document, visit: http://community.jboss.org/docs/DOC-17242
--------------------------------------------------------------
* XTS Testing
h1. Current Status and Roadmap
h1.
This Document describes the current status of the XTS tests and what technology they use. There are currently three sets of tests, Unit, Interop and recovery. Each of these is described in turn, and a list of required improvements is presented.
All improvements are targeted at Narayana 5.x unless specified otherwise.
h2. Unit tests
Each XTS component has a set of unit tests. These tests need to be ran within an instance of JBoss AS. These tests are fully automated by an Ant script ran by Hudson.
h3. Improvements
1. Migrate to Maven. For consistency with rest of the Narayna project
2. Move into the AS test suite. ( https://issues.jboss.org/browse/JBQA-5191 https://issues.jboss.org/browse/JBQA-5191). This will ensure that changes to components, we depend upon (like JbossWS), that break XTS are spotted at QE time rather than after release. (EAP 6 requirement)
3. Update to use Arquillian. This would mean that that they can be ran from anywhere that can run JUnit tests, such as an IDE or maven. It would also automate the app server lifecycle and test deployment.
4. Remove home-brew SOAP stack. In the past these tests used a mock/simple SOAP stack developed specifically for the tests. This stack is no longer used as the tests run within JBoss AS. This code is redundant and should be removed.
5. Automate Emma and collate results. Emma should be used to obtain coverage stats on the test run. Emma, produces individual reports per test, by default. It would be better to have these reports combined as we are concerned with the overall test coverage, rather than the coverage of each test. Ideally we would combine coverage stats over all sets of tests (unit, interop and recovery). Next step would be to improve the coverage where necessary.
h2. Interop Tests
We have two sets of interop tests that live in "XTS/interop". These are built with ant. They are each ran by deploying them as a war to a single JBoss instance which deploys the services needed by the test. This war also exposes a web interface that on request runs the tests and relays the results in the http response.
This process is automated by using ant to deploy the war and then making the http request and validating the response. See here in code for script: “XTS/localjunit/run-interop-tests.xml”
h3. Improvements
1. Migrate to AS 7.x There is some confusion around what does and doesn't work in AS 7.x. It's possible that these tests have only been tested via the GUI and that it's the automated steps that don't work.
2. Move into the AS test suite. ( https://issues.jboss.org/browse/JBQA-5192 https://issues.jboss.org/browse/JBQA-5192). (EAP 6 requirement)
3. Update to use Arquillian. This would mean that that they can be ran from anywhere that can run JUnit tests, such as an IDE or maven. It would also automate the app server lifecycle and test deployment.
4. Migrate to Maven. For consistency with rest of the Narayna project.
5. Automate Emma and collate results.
h2. Recovery Tests
The recovery tests are the tricky ones. At the moment we have a set of test scenarios that run in a single JBoss server invoked by a remote client. There are also a set of Byteman scripts that trigger failure at certain points in a scenario. There are many different permutations of scenario and Byteman scripts that each create a particular test.
The test scenarios log their progress through the protocol and recovery. On completion of a test run, a human needs to look over the trace and check that it looks right. This process is hard to automate as the trace produced can have many valid interleavings. This is due to the asynchronous nature of the application.
These tests are automated with a bash script, but the output traces must be verified manually by a human. The other problem is that they currently run in a single JBoss server which simulates the situation where every party in the protocol crashes and recovers at the same time. Not that realistic. I assume this is the case because the current tests are hard enough to run without having many JBoss servers to deal with. We would also need a way of combining the traces from each server when verifying the outcome of the test. This could be done by implementing a Byteman helper class, but it would not be trivial.
h3. Improvements
1. *Migrate to Maven*. For consistency with rest of the Narayna project.
2. *Arquillian support*. Use Arquillian to automate the tests and hopefully remove the human verification step.
3. *Multiple Server Tests*. If step 2) is successful, we could be able to build the more complex scenarios where each party runs in its own JBoss server.
4. *Additional Tests*. Andrew Dinn has provided a set of additional tests for us to consider implementing. These should be considered alongside the Emma coverage data for future work.
5. *Move into AS test suite*. The tests are unlikely to be accepted in their current form, due to the level of manual intervention required. This improvement can not be made until we have sufficiently automated the process.
h2.
h2. Notes
* Arquillian supports multiple JBoss servers:* https://docs.jboss.org/author/display/ARQ/Multiple+Containers https://docs.jboss.org/author/display/ARQ/Multiple+Containers
* Arquillian doesn't yet support servers that crash. This feature is unlikely to make it into EAP 6.* https://issues.jboss.org/browse/ARQ-336 https://issues.jboss.org/browse/ARQ-336
--------------------------------------------------------------
Comment by going to Community
[http://community.jboss.org/docs/DOC-17242]
Create a new document in JBoss Transactions Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=102&co...]
14 years
[jBPM Development] - jbpm4 integration with webapp
by roxy1987
roxy1987 [http://community.jboss.org/people/roxy1987] created the discussion
"jbpm4 integration with webapp"
To view the discussion, visit: http://community.jboss.org/message/608062#608062
--------------------------------------------------------------
Hi,
I am trying to add workflow to an application.
I am able to deploy the process. But when I call the method to start the process, following trace appears :
javax.servlet.ServletException: Servlet execution threw an exception
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
*root cause*
java.lang.NoClassDefFoundError: de/odysseus/el/util/SimpleResolver
org.jbpm.pvm.internal.script.JuelScriptEngineFactory.getScriptEngine(JuelScriptEngineFactory.java:185)
javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:205)
org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:111)
org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)
org.jbpm.pvm.internal.model.ExecutionImpl.resolveAssignmentExpression(ExecutionImpl.java:772)
org.jbpm.pvm.internal.model.ExecutionImpl.initializeAssignments(ExecutionImpl.java:726)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:95)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:58)
org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)
org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:61)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceById(ExecutionServiceImpl.java:50)
action.AllMethods.startNewProcessInstance(AllMethods.java:31)
action.MainServlet.doPost(MainServlet.java:51)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
*root cause*
java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleResolver from BaseClassLoader@aee53f{VFSClassLoaderPolicy@4cbcaf{name=vfszip:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/CustomJBPM4.war domain=ClassLoaderDomain@17fc253{name=vfszip:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/CustomJBPM4.war parentPolicy=AFTER_BUT_JAVA_BEFORE parent=ClassLoaderDomain@1568654{DefaultDomain}} roots=[MemoryContextHandler@33014755[path= context=vfsmemory://3j001-x2aob1-godzmi30-1-godzmrc7-1x real=vfsmemory://3j001-x2aob1-godzmi30-1-godzmrc7-1x], ZipEntryHandler(a)22908657[path=CustomJBPM4.war/WEB-INF/classes context=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/ real=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/CustomJBPM4.war/WEB-INF/classes], DelegatingHandler(a)22253751[path=CustomJBPM4.war/WEB-INF/lib/jbpm.jar context=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/ real=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/CustomJBPM4.war/WEB-INF/lib/jbpm.jar], ZipEntryHandler(a)21097047[path=CustomJBPM4.war/WEB-INF context=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/ real=file:/home/Shobhit/Install/jboss-5.0.0.GA/server/default/deploy/CustomJBPM4.war/WEB-INF]] delegates=null exported=[, org.jbpm.jpdl.internal.repository, org.jbpm.pvm.internal.identity.cmd, META-INF.maven.org.jbpm.jbpm4.jbpm-log, org.jbpm.pvm.internal.job, org.jbpm.api.history, META-INF.maven.org.jbpm.jbpm4.jbpm-pvm, org.jbpm.pvm.internal.history, org.jbpm.pvm.internal.wire.usercode, org.jbpm.pvm.internal.wire, org.jbpm.api.model, org.jbpm.api.task, org.jbpm.jpdl.internal.rules, org.jbpm.pvm.internal.cal, org.jbpm.pvm.internal.wire.xml, org.jbpm.pvm.internal.wire.binding, org.jbpm.test, org.jbpm.pvm.internal.repository, action, org.jbpm.pvm.internal.lob, org.jbpm.bpmn.flownodes, META-INF.maven.org.jbpm.jbpm4.jbpm-enterprise, org.jbpm.api.activity, org.jbpm.pvm.internal.stream, org.jbpm.bpmn.model, org.jbpm.bpmn.parser, org.jbpm.bpmn.deployer, org.jbpm.test.assertion, org.jbpm.pvm.internal.spring, org.jbpm.pvm.internal.task, org.jbpm.pvm.internal.id, org.jbpm.enterprise.internal.ejb, org.jbpm.internal.log, org.jbpm.pvm.internal.query, org.jbpm.enterprise.internal.wire.binding, org.jbpm.pvm.internal.history.events, org.jbpm.pvm.internal.xml, org.jbpm.pvm.internal.env, org.jbpm.pvm.internal.wire.descriptor, org.jbpm.pvm.internal.util, org.jbpm.pvm.internal.cfg, org.jbpm.jpdl.internal.activity, org.jbpm.jpdl.internal.model, META-INF.maven.org.jbpm.jbpm4.jbpm-bpmn, META-INF.maven.org.jbpm.jbpm4.jbpm-jpdl, org.jbpm.api.jpdl, org.jbpm.pvm.internal.ant, org.jbpm.pvm.internal.type, META-INF.maven.org.jbpm.jbpm4.jbpm-api, org.jbpm.pvm.internal.model, org.jbpm.api.cmd, org.jbpm.bpmn.common, org.jbpm.pvm.internal.type.variable, org.jbpm.api, org.jbpm.api.listener, org.jbpm.pvm.internal.hibernate, org.jbpm.pvm.internal.migration, org.jbpm.pvm.internal.model.op, org.jbpm.pvm.internal.jobexecutor, org.jbpm.pvm.internal.test, org.jbpm.pvm.internal.email.impl, org.jbpm.pvm.internal.jms, org.jbpm.pvm.internal.history.model, org.jbpm.pvm.internal.svc, org.jbpm.pvm.internal.wire.operation, org.jbpm.pvm.internal.script, org.jbpm.pvm.internal.processengine, org.jbpm.pvm.internal.type.matcher, org.jbpm.pvm.internal.identity.impl, META-INF.maven.org.jbpm.jbpm4.jbpm-test-base, org.jbpm.pvm.internal.cmd, org.jbpm.jpdl.internal.xml, org.jbpm.pvm.internal.tx, org.jbpm.api.job, org.jbpm.pvm.internal.email.spi, org.jbpm.pvm.internal.type.converter, META-INF, org.jbpm.pvm.internal.builder, META-INF.services, org.jbpm.test.jms, org.jbpm.test.ejb, org.jbpm.pvm.internal.session, org.jbpm.pvm.internal.identity.spi, org.jbpm.api.identity, org.jbpm.pvm.internal.client] <IMPORT-ALL>NON_EMPTY}}
org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:385)
java.lang.ClassLoader.loadClass(ClassLoader.java:252)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
org.jbpm.pvm.internal.script.JuelScriptEngineFactory.getScriptEngine(JuelScriptEngineFactory.java:185)
javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:205)
org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:111)
org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)
org.jbpm.pvm.internal.model.ExecutionImpl.resolveAssignmentExpression(ExecutionImpl.java:772)
org.jbpm.pvm.internal.model.ExecutionImpl.initializeAssignments(ExecutionImpl.java:726)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:95)
org.jbpm.jpdl.internal.activity.TaskActivity.execute(TaskActivity.java:58)
org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)
org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:61)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceById(ExecutionServiceImpl.java:50)
action.AllMethods.startNewProcessInstance(AllMethods.java:31)
action.MainServlet.doPost(MainServlet.java:51)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
This is what the method to start the process looks like :
public String startNewProcessInstance(String processDefID)
{
ProcessEngine processEngine = Configuration.getProcessEngine();
ExecutionService executionService = processEngine.getExecutionService();
ProcessInstance processInstance = executionService.startProcessInstanceById(processDefID);
String processInstID = processInstance.getId();
return processInstID;
}
The process instance is however successfully initiated. Gets listed in the database.
Please help because I cant go ahead if this is nt resolved.
regds.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/608062#608062]
Start a new discussion in jBPM Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years