@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 2014 the original author or authors .
* Copyright 2012 - 2015 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -16,11 +16,21 @@
@@ -16,11 +16,21 @@
package org.springframework.boot.autoconfigure.orm.jpa ;
import java.util.Map ;
import javax.sql.DataSource ;
import javax.transaction.Synchronization ;
import javax.transaction.SystemException ;
import javax.transaction.Transaction ;
import javax.transaction.TransactionManager ;
import javax.transaction.UserTransaction ;
import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform ;
import org.junit.Test ;
import org.springframework.beans.factory.BeanCreationException ;
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration ;
import org.springframework.boot.autoconfigure.jta.JtaAutoConfiguration ;
import org.springframework.boot.autoconfigure.jta.JtaProperties ;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration ;
import org.springframework.boot.test.EnvironmentTestUtils ;
import org.springframework.jdbc.core.JdbcTemplate ;
@ -138,4 +148,52 @@ public class HibernateJpaAutoConfigurationTests extends AbstractJpaAutoConfigura
@@ -138,4 +148,52 @@ public class HibernateJpaAutoConfigurationTests extends AbstractJpaAutoConfigura
this . context . refresh ( ) ;
}
@Test
public void testCustomJtaPlatform ( ) throws Exception {
EnvironmentTestUtils . addEnvironment ( this . context ,
"spring.jpa.properties.hibernate.transaction.jta.platform:"
+ TestJtaPlatform . class . getName ( ) ) ;
this . context . register ( JtaProperties . class , JtaAutoConfiguration . class ) ;
setupTestConfiguration ( ) ;
this . context . refresh ( ) ;
Map < String , Object > jpaPropertyMap = this . context . getBean (
LocalContainerEntityManagerFactoryBean . class ) . getJpaPropertyMap ( ) ;
assertThat ( ( String ) jpaPropertyMap . get ( "hibernate.transaction.jta.platform" ) ,
equalTo ( TestJtaPlatform . class . getName ( ) ) ) ;
}
public static class TestJtaPlatform implements JtaPlatform {
@Override
public TransactionManager retrieveTransactionManager ( ) {
throw new UnsupportedOperationException ( ) ;
}
@Override
public UserTransaction retrieveUserTransaction ( ) {
throw new UnsupportedOperationException ( ) ;
}
@Override
public Object getTransactionIdentifier ( Transaction transaction ) {
throw new UnsupportedOperationException ( ) ;
}
@Override
public boolean canRegisterSynchronization ( ) {
throw new UnsupportedOperationException ( ) ;
}
@Override
public void registerSynchronization ( Synchronization synchronization ) {
throw new UnsupportedOperationException ( ) ;
}
@Override
public int getCurrentStatus ( ) throws SystemException {
throw new UnsupportedOperationException ( ) ;
}
}
}