@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); switch (methodName) { case "equals": // Only consider equal when proxies are identical. return (proxy == args[0]); case "hashCode": // Use hashCode of Session proxy. return hashCode(); case "toString": // Deliver toString without touching a target Session. return "Shared Session proxy for target factory [" + sessionFactory + "]"; case "getMetaData": return this.sessionFactory.metaData(); case "beginTransaction": throw new IllegalStateException( "Not allowed to create transaction on shared Session - " + "use Spring transactions instead"); default: Function<Session, Object> methodCall = targetSession -> ReflectionUtils.invokeMethod(method, targetSession, args); return invokeInTransaction(methodName, methodCall); } }
@Override protected Neo4jMappingContext createInstance() { SessionFactory sessionFactory = beanFactory.getBean(this.sessionFactoryBeanName, SessionFactory.class); Neo4jMappingContext context = new Neo4jMappingContext(sessionFactory.metaData()); context.initialize(); return context; }
public Neo4jOgmEntityInstantiatorConfigurationBean(SessionFactory sessionFactory, Neo4jMappingContext mappingContext, ObjectProvider<ConversionService> conversionServiceObjectProvider) { MetaData metaData = sessionFactory.metaData(); ConversionService conversionService = conversionServiceObjectProvider .getIfUnique(() -> new MetaDataDrivenConversionService(metaData)); metaData.registerConversionCallback(new ConversionServiceBasedConversionCallback(conversionService)); sessionFactory.setEntityInstantiator(new Neo4jOgmEntityInstantiatorAdapter(mappingContext, conversionService)); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); switch (methodName) { case "equals": // Only consider equal when proxies are identical. return (proxy == args[0]); case "hashCode": // Use hashCode of Session proxy. return hashCode(); case "toString": // Deliver toString without touching a target Session. return "Shared Session proxy for target factory [" + sessionFactory + "]"; case "getMetaData": return this.sessionFactory.metaData(); case "beginTransaction": throw new IllegalStateException( "Not allowed to create transaction on shared Session - " + "use Spring transactions instead"); default: Function<Session, Object> methodCall = targetSession -> ReflectionUtils.invokeMethod(method, targetSession, args); return invokeInTransaction(methodName, methodCall); } }
@Override protected Neo4jMappingContext createInstance() { SessionFactory sessionFactory = beanFactory.getBean(this.sessionFactoryBeanName, SessionFactory.class); Neo4jMappingContext context = new Neo4jMappingContext(sessionFactory.metaData()); context.initialize(); return context; }
@Test public void shouldMergeBasePackages() { Configuration configuration = getBaseConfiguration() .withBasePackages(Bike.class.getPackage().getName()) .build(); SessionFactory sessionFactory = new SessionFactory(configuration, Author.class.getPackage().getName()); assertThat(sessionFactory.metaData().classInfo(Bike.class)).isNotNull(); assertThat(sessionFactory.metaData().classInfo(Author.class)).isNotNull(); assertThat(sessionFactory.metaData().classInfo(Pizza.class)).isNull(); }
public Neo4jOgmEntityInstantiatorConfigurationBean(SessionFactory sessionFactory, Neo4jMappingContext mappingContext, ObjectProvider<ConversionService> conversionServiceObjectProvider) { MetaData metaData = sessionFactory.metaData(); ConversionService conversionService = conversionServiceObjectProvider .getIfUnique(() -> new MetaDataDrivenConversionService(metaData)); metaData.registerConversionCallback(new ConversionServiceBasedConversionCallback(conversionService)); sessionFactory.setEntityInstantiator(new Neo4jOgmEntityInstantiatorAdapter(mappingContext, conversionService)); }
private Neo4jTransactionManager getNeo4jTransactionManager() { if (neo4jTransactionManager == null) { synchronized (this) { if (neo4jTransactionManager == null) { Builder configBuilder = new Builder() .uri(config.getUri()) .credentials(config.getLogin(), config.getPassword()); if (config.getConnectionPoolSize() > 0) { configBuilder.connectionPoolSize(config.getConnectionPoolSize()); } SessionFactory sessionFactory = new SessionFactory(configBuilder.build(), "org.openkilda.model"); sessionFactory.metaData().registerConversionCallback( new SimpleConversionCallback("org.openkilda.persistence.converters")); neo4jTransactionManager = new Neo4jTransactionManager(sessionFactory); } } } return neo4jTransactionManager; } }