Hi,
In the WAR-based Tuscany deployment, the TuscanyServletFilter is responsible
to start/stop the SCADomain. At this moment, most of our itest cases create
the SCADomain using SCADomain.newInstance() during the setup. If we run
itests as a webapp, it ends up with two different domain instances.
To really test the webapp scheme, the itests should use the SCADomain
created by the TuscanyServletFilter. I propose that we convert the itests
using the following pattern so that they can be run under both J2SE and
Webapp.
For the test case:
1) Declare a static field typed by SCADomain
2) Test if it is null before creating a new instance (it will be injected
under Webapp)
For the runtime:
1) WebAppServletHost will subclass SCADomain so that SCADomain.close() will
only happen during the TuscanyServletFilter.destroy() and the
SCADomain.close() statement in itest doesn't really shutdown the domain.
2) The JUnitServletFilter will get the SCADomain attribute from the
ServletContext and try to inject it into the test case class.
Here is an example of the itest.
public class XYZServiceTestCase extends TestCase {
private static SCADomain scaDomain; // A static field which can be
injected
private MyService service;
protected void setUp() throws Exception {
if (scaDomain == null) {
// J2SE case
scaDomain = SCADomain.newInstance("XYZ.composite");
}
service = scaDomain.getService(MyService.class, "MyComponent");
}
protected void tearDown() throws Exception {
scaDomain.close();
}
}
What do you guys think?
Thanks,
Raymond
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]