Tried to flush the ejb-jar xml and openejb xml files by setting the system
property openejb.descriptors.output to true as follows:

openejb start -Dopenejb.descriptors.output=true

However, this system property is not stored in the SystemInstance because of
a possible bug in org.apache.openejb.cli.MainImpl .
I have fixed it on my local machine, but since this is to do with system
properties, I do  not want to commit anything until somebody validates this
assertion of mine.

In MainImpl, we do the following:-
1. We set the system property openejb.base using System.setProperty
2. We read all system properties and store them in SystemInstance
3. We read all properties from conf/system.properties and store them using
System.getProperties().putAll() -- These properties are not stored in
SystemInstance
4. We now read the properties from the command line (passed using
-DpropName=propValue) and store them using
System.setProperty(propName,propValue)
-- These properties are also not stored in SystemInstance

This basically means that any commandline properties and any properties
specified in conf/system.properties never reach SystemInstance, correct?

So, when i try to set the system property while starting openejb, the
property always evaluates to false in
org.apache.openejb.config.OutputGeneratedDescriptors.deploy().

The fix to this would be simply moving code in step 2 above to after step 4.
But I am not sure if there is a reason behind not putting some properties in
SystemInstance.


I cannot find another reason of the xml not being flushed, if there is
something else I need to do instead of the fix above, please let me know.

Thanks

-- 
Karan Singh Malhi

Reply via email to