Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-19792

antlr packages and lib not exported in Hibernate Tools 4.0.1

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • 4.3.x
    • 4.2.3.Final
    • hibernate
    • None

      I am currently working on an Eclipse-Plugin that is built on top of the
      Hibernate Tools project. For example, I am using the following statements
      to get the AST of a named query:

      try {
       HqlParser parser = HqlParser.getInstance(statementString);
       parser.statement();
      } catch (RecognitionException | TokenStreamException e) {
       e.printStackTrace();
      }
      AST statementAst = parser.getAST();
      

      For this to work well with Hibernate Tools Version 4.0.0, I added bundle
      org.hibernate.eclipse.libs as required bundle to my plug-in configuration
      (which resolved to
      org.hibernate.eclipse.libs_4.0.0.Final-v20141016-1911-B82 so far).

      However, I now updated to Hiberate Tools 4.0.1
      (org.hibernate.eclipse.libs_4.0.1.Final-v20150324-2307-B95). The problem I
      have now is that the following imports cannot be resolved:
      import antlr.RecognitionException;
      import antlr.TokenStreamException;
      import antlr.collections.AST;

      The problem seems to arise from the fact, that in the new version's
      MANIFEST.MF, the antlr... packages are not exported and
      lib/hibernate/antlr-2.7.6.jar is not listed in the Bundle-ClassPath any
      more (I reformatted both MANIFEST.MFs, that you can find attached, to allow
      a convenient comparison). After manually adding the antlr-related entries
      to the new version's MANIFEST.MF, my code works pretty well again.

      I agree, that internal libraries should generally not be exported. However,
      org.hibernate.hql.ast.HqlParser is exported – so why not its prerequesites?

      (By the way, I'd be fine with integrating another library into my project.
      However, I tried to manally add antlr-2.7.6.jar as library to
      my project, which solved the compilation error, but yields a
      java.lang.ClassNotFoundException: antlr.LLkParser cannot be found by
      org.hibernate.eclipse.libs_4.0.1.Final-v20150324-2307-B95.)

        1. B95_MANIFEST.MF
          16 kB
          Bastian Ulke
        2. B82_MANIFEST.MF
          16 kB
          Bastian Ulke

            kaers@redhat.com Koen Aers
            ulkeba Bastian Ulke (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: