Automatically enable transaction management for Neo4j
This commit makes sure that `@EnableTransactionManagement` is auto-configured with Neo4j. It actually reuses what was done in #8434, making sure that the `Neo4jDataAutoConfiguration` is ordered properly. Closes gh-8587
This commit is contained in:
parent
db33a75484
commit
0163731043
|
|
@ -23,14 +23,12 @@ import org.neo4j.ogm.session.event.EventListener;
|
||||||
|
|
||||||
import org.springframework.beans.factory.ObjectProvider;
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
|
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|
||||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||||
import org.springframework.boot.autoconfigure.domain.EntityScanPackages;
|
import org.springframework.boot.autoconfigure.domain.EntityScanPackages;
|
||||||
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
|
|
||||||
import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
|
import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
|
@ -55,7 +53,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
|
||||||
* @since 1.4.0
|
* @since 1.4.0
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@AutoConfigureAfter(TransactionAutoConfiguration.class)
|
|
||||||
@ConditionalOnClass({ SessionFactory.class, PlatformTransactionManager.class })
|
@ConditionalOnClass({ SessionFactory.class, PlatformTransactionManager.class })
|
||||||
@ConditionalOnMissingBean(SessionFactory.class)
|
@ConditionalOnMissingBean(SessionFactory.class)
|
||||||
@EnableConfigurationProperties(Neo4jProperties.class)
|
@EnableConfigurationProperties(Neo4jProperties.class)
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
|
||||||
|
import org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration;
|
import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration;
|
||||||
|
|
@ -46,7 +47,8 @@ import org.springframework.transaction.support.TransactionTemplate;
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnClass(PlatformTransactionManager.class)
|
@ConditionalOnClass(PlatformTransactionManager.class)
|
||||||
@AutoConfigureAfter({ JtaAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
|
@AutoConfigureAfter({ JtaAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
|
||||||
DataSourceTransactionManagerAutoConfiguration.class })
|
DataSourceTransactionManagerAutoConfiguration.class,
|
||||||
|
Neo4jDataAutoConfiguration.class })
|
||||||
@EnableConfigurationProperties(TransactionProperties.class)
|
@EnableConfigurationProperties(TransactionProperties.class)
|
||||||
public class TransactionAutoConfiguration {
|
public class TransactionAutoConfiguration {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ public class Neo4jDataAutoConfigurationTests {
|
||||||
ctx.register(config);
|
ctx.register(config);
|
||||||
}
|
}
|
||||||
ctx.register(PropertyPlaceholderAutoConfiguration.class,
|
ctx.register(PropertyPlaceholderAutoConfiguration.class,
|
||||||
TransactionAutoConfiguration.class, Neo4jDataAutoConfiguration.class);
|
Neo4jDataAutoConfiguration.class, TransactionAutoConfiguration.class);
|
||||||
ctx.refresh();
|
ctx.refresh();
|
||||||
this.context = ctx;
|
this.context = ctx;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue