Como configurar o modo de hibernação para usar o pool de conexão Glassfish?

Eu configurei um pool de conexão no Glassfish com um recurso jndi para configurar também. Eu estou perplexo em como configurar o hibernate para ir buscá-lo.

Eu vi um monte de write-ups para configurá-lo para usar o pool de conexão C3P0. Bem eu estou perdido. Eu descobri que preciso definir:

hibernate.connection.datasource hibernate.jndi.url hibernate.jndi.class hibernate.connection.username hibernate.connection.password 
  • A fonte de dados seria a mesma que o conjunto hibernate.connection.datasource no conjunto de conexões?
  • O que seria o hibernate.jndi.class?
  • Hibernate.connection.username e hibernate.connection.password para a conexão com o database ou com o appserver? Eu suponho que isso é para o database, mas por que eu preciso deles desde que tudo está definido no appserver?