The problem is now solved, it seems to be that hibernates parser does not support all that EJB-QL did previously. Most of the problems centered around using the AS keyword within a join:
SELECT DISTINCT OBJECT( p ) FROM Principal AS p, IN (p.roles) role AS r WHERE ......
This worked in EJB 2.1 finder methods but does not deploy with EJB3 hibernate, should be:
SELECT DISTINCT OBJECT( p ) FROM Principal AS p, IN (p.roles) role r WHERE ......