Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-1793

jcasgen: load the descriptor from the classpath



    • Improvement
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.2.2CE, 2.2.2AS, 2.2.2S, 2.1, 2.2, 2.2.1, 2.2.2
    • 2.3.1SDK
    • Tools
    • None



      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


        1. uimaj-tools-jg.patch
          3 kB
          Daniel Truemper
        2. uima-tools-jg2.patch
          3 kB
          Daniel Truemper



            schor Marshall Schor
            truemped Daniel Truemper
            1 Vote for this issue
            2 Start watching this issue