Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-10513

Getting JTA Datasource (Wildfly 13)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Minor
    • None
    • 13.0.0.Final
    • JPA / Hibernate
    • None

    Description

      In Wildfly 12 it ,was possible to get the DataSource via :

      @ApplicationScoped
      public class ExamplePersistenceContextConfiguration {
      
       
      
         @PersistenceContext(unitName = "examplePersistenceUnit")
      
         @Produces
         private EntityManager entityManager;
      
       
      
         @Produces
         public DataSource getDataSource() {
      
        EntityManagerFactory entityManagerFactory = entityManager.getEntityManagerFactory();
      
        Map<String, Object> properties = entityManagerFactory.getProperties();
      
         return (DataSource) properties.get("javax.persistence.jtaDataSource");
      
        }
      
       
      
         @Produces
         public SessionFactory getSessionFactory() {
      
        Session session = entityManager.unwrap(Session.class);
      
         return session.getSessionFactory();
      
        }
      
      }
      
      

      Currently it's returning null in Wildfly 13, however :

        (DataSource) properties.get("hibernate.connection.datasource");
      

      does work (instead of :

       (DataSource) properties.get("javax.persistence.jtaDataSource")
      

      Persistence.XML :

      // Some comments here
      public String getFoo()
      {
          return foo;
      }
      
      <?xml version="1.0" encoding="UTF-8"?>
      <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
         version="2.1">
      
         <!-- HBM files in this module will be loaded automatically -->
         <persistence-unit name="examplePersistenceUnit" transaction-type="JTA">
      
         <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
      
         <jta-data-source>jdbc/ExampleXADataSource</jta-data-source>
      
         <properties>
      
         <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
      
         <property name="hibernate.show_sql" value="true"/>
      
         <property name="hibernate.order_inserts" value="true"/>
      
         <property name="hibernate.jdbc.wrap_result_sets" value="true"/>
      
         <property name="hibernate.integration.envers.enabled" value="false"/>
      
         </properties>
      
         </persistence-unit>
      
      </persistence>
      

      Is there any way to get it via the properties.get("javax.persistence.jtaDataSource") and not via Hibernate ?

      Thanks in advance,

      David

      Attachments

        Activity

          People

            smarlow1@redhat.com Scott Marlow
            david.tierens David Tierens (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: