Le code de l'option 2 fonctionne correctement.
c'est-à-dire.
OracleConnection oracleConnection = connection.unwrap( OracleConnection.class );
Le problème était que nous avions 2 versions de ojbc.jar - une en tant que module Jboss et une dans l'EAR, d'où l'exception ClassCast.
Comme mentionné dans les commentaires, ce code fonctionne également
oracle.jdbc.driver.OracleConnection oc = (oracle.jdbc.driver.OracleConnection) connection.getMetaData().getConnection();