After some delay (almost 6 months :-)) I finally refactored this a bit, wrote a testcase for it and commited it as org.apache.avalon.fortress.tools.FortressBean.
It can be used as an Ant task or it can also be used to simplify embedding scenarios. The testcase is the best example of this, but it basically boils down to:
FortressBean bean = new FortressBean();
bean.setRoleManagerConfiguration("resource://org/apache/avalon/fortress/tools/FortressBeanTestCase.roles");
bean.setContainerConfiguration("resource://org/apache/avalon/fortress/tools/FortressBeanTestCase.xconf");
bean.setLoggerManagerConfiguration("resource://org/apache/avalon/fortress/tools/FortressBeanTestCase.xlog");
bean.setLookupComponentRole(TestInterface.ROLE); //optional, see below
bean.setInvokeMethod("run"); //optional, see below
bean.setSystemExitOnDispose(false); //optional, defaults to true
bean.initialize();
//do something useful, if you configured lookup role and invoke method, then you can use bean.run();
//otherwise, if you use it straight from java code then just get the servicemanager and do whatever
this.bean.dispose(); //clean up
Rgds, Neeme
Berin Loritsch wrote:
Neeme Praks wrote:
I have written an Ant task for running Fortress (see attachment). If this is of general interest then I can beef up the JavaDocs and commit it. However, the question is then: where should it go? Under fortress source tree?
Excellent. It should go under src/tools along with the MetaInfoCollector. BTW, the all important question is: Can you run JUnit tests against it?
Example of usage:
<target name="run" depends="compile">
<taskdef name="fortress" classname="org.apache.avalon.fortress.ant.FortressRunner">
<classpath refid="classpath"/>
</taskdef>
<fortress
containerClass="org.apache.avalon.fortress.impl.DefaultContainer"
contextDirectory="./"
workDirectory="./"
containerConfiguration="resource://app.xconf"
loggerManagerConfiguration="resource://app.xlog"
roleManagerConfiguration="resource://app.roles"
lookupComponentRole="com.mycompany.ui.swing.Runnable/gui" invokeMethod="run" /> </target>
Rgds, Neeme
------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
