Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.7.0
-
None
-
linux
Description
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.