simplified configuration without rewiring in post-construct
This commit is contained in:
@@ -47,10 +47,4 @@ public class Neo4jAspectConfiguration extends Neo4jConfiguration
|
||||
aspect.setNodeEntityStateFactory(entityStateFactory);
|
||||
return aspect;
|
||||
}
|
||||
|
||||
@Override
|
||||
@PostConstruct
|
||||
public void wireEntityStateFactories() throws Exception {
|
||||
super.wireEntityStateFactories();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.springframework.orm.jpa.JpaTransactionManager;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.jta.JtaTransactionManager;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
|
||||
/**
|
||||
@@ -57,7 +56,7 @@ public class CrossStoreNeo4jConfiguration extends Neo4jAspectConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
protected EntityInstantiator<Node> graphEntityInstantiator() {
|
||||
protected EntityInstantiator<Node> graphEntityInstantiator() throws Exception {
|
||||
if (isUsingCrossStorePersistence()) {
|
||||
return new CrossStoreNodeEntityInstantiator(new NodeEntityInstantiator(entityStateHandler()), entityManagerFactory);
|
||||
} else {
|
||||
@@ -79,14 +78,8 @@ public class CrossStoreNeo4jConfiguration extends Neo4jAspectConfiguration {
|
||||
|
||||
@Bean
|
||||
public CrossStoreNodeEntityStateFactory nodeEntityStateFactory() throws Exception {
|
||||
return new CrossStoreNodeEntityStateFactory();
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
@Override
|
||||
public void wireEntityStateFactories() throws Exception {
|
||||
super.wireEntityStateFactories();
|
||||
nodeEntityStateFactory().setEntityManagerFactory(entityManagerFactory);
|
||||
nodeEntityStateFactory().postConstruct();
|
||||
final CrossStoreNodeEntityStateFactory nodeEntityStateFactory = new CrossStoreNodeEntityStateFactory();
|
||||
nodeEntityStateFactory.setEntityManagerFactory(entityManagerFactory);
|
||||
return nodeEntityStateFactory;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.data.neo4j.aspects.core.NodeBacked;
|
||||
import org.springframework.data.neo4j.core.EntityState;
|
||||
import org.springframework.data.neo4j.fieldaccess.DetachedEntityState;
|
||||
import org.springframework.data.neo4j.mapping.Neo4jPersistentEntity;
|
||||
import org.springframework.data.neo4j.support.Neo4jTemplate;
|
||||
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
@@ -68,7 +69,9 @@ public class CrossStoreNodeEntityStateFactory extends NodeEntityStateFactory {
|
||||
this.entityManagerFactory = entityManagerFactory;
|
||||
}
|
||||
|
||||
public void postConstruct() {
|
||||
@Override
|
||||
public void setTemplate(Neo4jTemplate template) {
|
||||
super.setTemplate(template);
|
||||
this.delegatingFieldAccessorFactory = new CrossStoreNodeEntityState.CrossStoreNodeDelegatingFieldAccessorFactory(template);
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
<bean id="nodeTypeRepresentationStrategy" factory-bean="typeRepresentationStrategyFactory" factory-method="getNodeTypeRepresentationStrategy" />
|
||||
<bean id="relationshipTypeRepresentationStrategy" factory-bean="typeRepresentationStrategyFactory" factory-method="getRelationshipTypeRepresentationStrategy"/>
|
||||
|
||||
<bean id="nodeEntityStateFactory" class="org.springframework.data.neo4j.cross_store.support.node.CrossStoreNodeEntityStateFactory" init-method="postConstruct">
|
||||
<bean id="nodeEntityStateFactory" class="org.springframework.data.neo4j.cross_store.support.node.CrossStoreNodeEntityStateFactory">
|
||||
<property name="nodeDelegatingFieldAccessorFactory">
|
||||
<bean class="org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory">
|
||||
<constructor-arg ref="neo4jTemplate"/>
|
||||
|
||||
@@ -36,8 +36,11 @@ import org.springframework.data.neo4j.fieldaccess.DelegatingFieldAccessorFactory
|
||||
import org.springframework.data.neo4j.fieldaccess.Neo4jConversionServiceFactoryBean;
|
||||
import org.springframework.data.neo4j.fieldaccess.NodeDelegatingFieldAccessorFactory;
|
||||
import org.springframework.data.neo4j.fieldaccess.RelationshipDelegatingFieldAccessorFactory;
|
||||
import org.springframework.data.neo4j.mapping.*;
|
||||
import org.springframework.data.neo4j.support.*;
|
||||
import org.springframework.data.neo4j.mapping.EntityInstantiator;
|
||||
import org.springframework.data.neo4j.support.DelegatingGraphDatabase;
|
||||
import org.springframework.data.neo4j.support.MappingInfrastructure;
|
||||
import org.springframework.data.neo4j.support.Neo4jExceptionTranslator;
|
||||
import org.springframework.data.neo4j.support.Neo4jTemplate;
|
||||
import org.springframework.data.neo4j.support.mapping.*;
|
||||
import org.springframework.data.neo4j.support.node.NodeEntityInstantiator;
|
||||
import org.springframework.data.neo4j.support.node.NodeEntityStateFactory;
|
||||
@@ -45,12 +48,10 @@ import org.springframework.data.neo4j.support.relationship.RelationshipEntityIns
|
||||
import org.springframework.data.neo4j.support.relationship.RelationshipEntityStateFactory;
|
||||
import org.springframework.data.neo4j.support.typerepresentation.ClassValueTypeInformationMapper;
|
||||
import org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory;
|
||||
import org.springframework.data.neo4j.support.Neo4jExceptionTranslator;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.jta.JtaTransactionManager;
|
||||
import org.springframework.transaction.jta.UserTransactionAdapter;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.validation.Validator;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
@@ -106,6 +107,8 @@ public abstract class Neo4jConfiguration {
|
||||
public Neo4jTemplate neo4jTemplate() throws Exception {
|
||||
final Neo4jTemplate neo4jTemplate = new Neo4jTemplate();
|
||||
neo4jTemplate.setInfrastructure(mappingInfrastructure());
|
||||
nodeEntityStateFactory().setTemplate(neo4jTemplate);
|
||||
relationshipEntityStateFactory().setTemplate(neo4jTemplate);
|
||||
return neo4jTemplate;
|
||||
}
|
||||
|
||||
@@ -125,7 +128,7 @@ public abstract class Neo4jConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public EntityStateHandler entityStateHandler() {
|
||||
public EntityStateHandler entityStateHandler() throws Exception {
|
||||
return new EntityStateHandler(mappingContext(),graphDatabase());
|
||||
}
|
||||
|
||||
@@ -152,6 +155,7 @@ public abstract class Neo4jConfiguration {
|
||||
return new SourceStateTransmitter<Node>(nodeEntityStateFactory());
|
||||
}
|
||||
|
||||
//@Scope(BeanDefinition.SCOPE_PROTOTYPE)
|
||||
@Bean
|
||||
protected ConversionService conversionService() throws Exception {
|
||||
return new Neo4jConversionServiceFactoryBean().getObject();
|
||||
@@ -168,8 +172,12 @@ public abstract class Neo4jConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Neo4jMappingContext mappingContext() {
|
||||
return new Neo4jMappingContext();
|
||||
public Neo4jMappingContext mappingContext() throws Exception {
|
||||
final Neo4jMappingContext mappingContext = new Neo4jMappingContext();
|
||||
nodeEntityStateFactory().setMappingContext(mappingContext);
|
||||
relationshipEntityStateFactory().setMappingContext(mappingContext);
|
||||
|
||||
return mappingContext;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -182,28 +190,18 @@ public abstract class Neo4jConfiguration {
|
||||
return new NodeEntityStateFactory();
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void wireEntityStateFactories() throws Exception {
|
||||
final NodeEntityStateFactory nodeEntityStateFactory = nodeEntityStateFactory();
|
||||
nodeEntityStateFactory.setTemplate(neo4jTemplate());
|
||||
nodeEntityStateFactory.setMappingContext(mappingContext());
|
||||
nodeEntityStateFactory.setNodeDelegatingFieldAccessorFactory(nodeDelegatingFieldAccessorFactory());
|
||||
|
||||
final RelationshipEntityStateFactory relationshipEntityStateFactory = relationshipEntityStateFactory();
|
||||
relationshipEntityStateFactory.setTemplate(neo4jTemplate());
|
||||
relationshipEntityStateFactory.setMappingContext(mappingContext());
|
||||
relationshipEntityStateFactory.setRelationshipDelegatingFieldAccessorFactory(relationshipDelegatingFieldAccessorFactory());
|
||||
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory() throws Exception {
|
||||
return new NodeDelegatingFieldAccessorFactory(neo4jTemplate());
|
||||
final NodeDelegatingFieldAccessorFactory nodeDelegatingFieldAccessorFactory = new NodeDelegatingFieldAccessorFactory(neo4jTemplate());
|
||||
nodeEntityStateFactory().setNodeDelegatingFieldAccessorFactory(nodeDelegatingFieldAccessorFactory);
|
||||
return nodeDelegatingFieldAccessorFactory;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DelegatingFieldAccessorFactory relationshipDelegatingFieldAccessorFactory() throws Exception {
|
||||
return new RelationshipDelegatingFieldAccessorFactory(neo4jTemplate());
|
||||
final RelationshipDelegatingFieldAccessorFactory relationshipDelegatingFieldAccessorFactory = new RelationshipDelegatingFieldAccessorFactory(neo4jTemplate());
|
||||
relationshipEntityStateFactory().setRelationshipDelegatingFieldAccessorFactory(relationshipDelegatingFieldAccessorFactory);
|
||||
return relationshipDelegatingFieldAccessorFactory;
|
||||
}
|
||||
|
||||
@Bean(name = {"neo4jTransactionManager","transactionManager"})
|
||||
|
||||
Reference in New Issue
Block a user