[jbosstools-issues] [JBoss JIRA] (JBIDE-19792) antlr packages and lib not exported in Hibernate Tools 4.0.1

Bastian Ulke (JIRA) issues at jboss.org
Fri May 22 05:13:19 EDT 2015


    [ https://issues.jboss.org/browse/JBIDE-19792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13070291#comment-13070291 ] 

Bastian Ulke commented on JBIDE-19792:
--------------------------------------

Hi Koen,

thanks for the explanation - things are much clearer for me now.

Declaring org.jboss.tools.hibernate.antlr as required plugin helped me to get the antlr.RecognitionException etc. classes imported again. Unfortunatly, requiring that one only (i.e., instead the org.hibernate.eclipse.libs) caused the problem, that the types generated by antlr for the Hibernate queries (e.g., org.hibernate.hql.antlr.HqlTokenTypes.ALIAS) could not be imported. This makes sense, as these classes belong to the Hibernate implementation and not to antlr. What I did then was adding org.hibernate.eclipse.libs as required plugin along with org.jboss.tools.hibernate.antlr which works well.

However, if I understood you correctly, this workaround will stop working when I upgrade to Eclipse Mars. Maybe, it is easier to include the antlr and Hibernate libraries into my plugin myself, rather than depending on the JBoss Tools - what would you think?

Bastian

> antlr packages and lib not exported in Hibernate Tools 4.0.1
> ------------------------------------------------------------
>
>                 Key: JBIDE-19792
>                 URL: https://issues.jboss.org/browse/JBIDE-19792
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: hibernate
>    Affects Versions: 4.2.3.Final
>         Environment: Eclipse Luna SR2
>            Reporter: Bastian Ulke
>            Assignee: Koen Aers
>         Attachments: B82_MANIFEST.MF, B95_MANIFEST.MF
>
>
> 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:
> {code}
> try {
>  HqlParser parser = HqlParser.getInstance(statementString);
>  parser.statement();
> } catch (RecognitionException | TokenStreamException e) {
>  e.printStackTrace();
> }
> AST statementAst = parser.getAST();
> {code}
> 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.)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the jbosstools-issues mailing list