jcasgen: load the descriptor from the classpath
-----------------------------------------------
Key: UIMA-1793
URL: https://issues.apache.org/jira/browse/UIMA-1793
Project: UIMA
Issue Type: Improvement
Components: Tools
Affects Versions: 2.2.2, 2.2.1, 2.2, 2.1, 2.2.2S, 2.2.2AS, 2.2.2CE
Reporter: Daniel Truemper
Priority: Critical
Fix For: 2.3.1
Hi,
I would like to propose a small patch to the Jg class
(org.apache.uima.tools.jcasgen.Jg). At the moment it is only possible to
generate the source code for the typesystem when the corresponding descriptor
file is located somewhere on your disk. I have the use case, where I want the
typesystem descriptor to be contained inside a (company wide) jar. That means,
I need to load the typesystem descriptor from the classpath.
The attached patch adds a little bit of extra info to the "-jcasgeninput"
parameter ind the "main1" method. If the value starts with "classpath:" the
patch will try to look for everything after "classpath:" with its ClassLoader.
If the ClassLoader can find the resource and the "outputDirectory" is not null,
everything works. If the ClassLoader cannot find the resource, the
corresponding error is generated.
If the "-jcasgeninput" parameter does not start with "classpath:" everything
works as before, only that the file is being converted to an URL instance that
is given to the XMLInputSource object.
What I am not sure about it the use of the "xmlSourceFileName" member variable
and what it should contain if the descriptor is loaded from the classpath.
Actually I don't even know what this variable does...
I have not found any unittest for this class. So the code is tested with my
maven mojo and works as expected. If anyone can provide me with more info about
how to test the Eclipse plugin I could also test this, but I certainly need
help there...
Any comments? Best
Daniel
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.