Skip to content

Commit

Permalink
Test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
hugofirth committed Apr 3, 2019
1 parent 214c116 commit 1515a6b
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 18 deletions.
Expand Up @@ -65,10 +65,6 @@ public class ImpermanentGraphDatabase extends EmbeddedGraphDatabase


protected static final File PATH = new File( "target/test-data/impermanent-db" ); protected static final File PATH = new File( "target/test-data/impermanent-db" );


/* No-op availabilityGuardInstaller by default
*/
private AvailabilityGuardInstaller availabilityGuardInstaller = availabilityGuard -> {};

/** /**
* This is deprecated. Use {@link TestGraphDatabaseFactory} instead * This is deprecated. Use {@link TestGraphDatabaseFactory} instead
*/ */
Expand Down Expand Up @@ -151,22 +147,14 @@ public ImpermanentGraphDatabase( File storeDir, Config config,


public ImpermanentGraphDatabase( File storeDir, Config config, Dependencies dependencies, AvailabilityGuardInstaller guardInstaller ) public ImpermanentGraphDatabase( File storeDir, Config config, Dependencies dependencies, AvailabilityGuardInstaller guardInstaller )
{ {
super( storeDir, config, dependencies ); super( storeDir, config, dependencies, guardInstaller );
trackUnclosedUse( storeDir ); trackUnclosedUse( storeDir );
this.availabilityGuardInstaller = guardInstaller;
} }


@Override @Override
protected void create( File storeDir, Map<String, String> params, Dependencies dependencies ) protected void create( File storeDir, Map<String, String> params, Dependencies dependencies )
{ {
Function<PlatformModule,AbstractEditionModule> factory = platform -> new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, this::editionModuleFactory )
{
CommunityEditionModule edition = new CommunityEditionModule( platform );
AvailabilityGuard guard = edition.getGlobalAvailabilityGuard( platform.clock, platform.logging, platform.config );
availabilityGuardInstaller.install( guard );
return edition;
};
new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, factory )
{ {
@Override @Override
protected PlatformModule createPlatform( File storeDir, Config config, Dependencies dependencies ) protected PlatformModule createPlatform( File storeDir, Config config, Dependencies dependencies )
Expand Down
Expand Up @@ -26,7 +26,11 @@
import org.neo4j.graphdb.facade.GraphDatabaseDependencies; import org.neo4j.graphdb.facade.GraphDatabaseDependencies;
import org.neo4j.graphdb.facade.GraphDatabaseFacadeFactory; import org.neo4j.graphdb.facade.GraphDatabaseFacadeFactory;
import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.graphdb.factory.module.PlatformModule;
import org.neo4j.graphdb.factory.module.edition.AbstractEditionModule;
import org.neo4j.graphdb.factory.module.edition.CommunityEditionModule; import org.neo4j.graphdb.factory.module.edition.CommunityEditionModule;
import org.neo4j.kernel.availability.AvailabilityGuard;
import org.neo4j.kernel.availability.AvailabilityGuardInstaller;
import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.factory.DatabaseInfo; import org.neo4j.kernel.impl.factory.DatabaseInfo;
import org.neo4j.kernel.impl.factory.GraphDatabaseFacade; import org.neo4j.kernel.impl.factory.GraphDatabaseFacade;
Expand All @@ -53,13 +57,19 @@
*/ */
public class EmbeddedGraphDatabase extends GraphDatabaseFacade public class EmbeddedGraphDatabase extends GraphDatabaseFacade
{ {
/**
* No-op availability guard installer by default
*/
private final AvailabilityGuardInstaller availabilityGuardInstaller;

/** /**
* Internal constructor used by {@link org.neo4j.graphdb.factory.GraphDatabaseFactory} * Internal constructor used by {@link org.neo4j.graphdb.factory.GraphDatabaseFactory}
*/ */
public EmbeddedGraphDatabase( File storeDir, public EmbeddedGraphDatabase( File storeDir,
Map<String, String> params, Map<String, String> params,
GraphDatabaseFacadeFactory.Dependencies dependencies ) GraphDatabaseFacadeFactory.Dependencies dependencies )
{ {
this.availabilityGuardInstaller = availabilityGuard -> {};
create( storeDir, params, dependencies ); create( storeDir, params, dependencies );
} }


Expand All @@ -70,6 +80,13 @@ protected EmbeddedGraphDatabase( File storeDir,
Config config, Config config,
GraphDatabaseFacadeFactory.Dependencies dependencies ) GraphDatabaseFacadeFactory.Dependencies dependencies )
{ {
this( storeDir, config, dependencies, availabilityGuard -> {} );
}

protected EmbeddedGraphDatabase( File storeDir, Config config, GraphDatabaseFacadeFactory.Dependencies dependencies,
AvailabilityGuardInstaller availabilityGuardInstaller )
{
this.availabilityGuardInstaller = availabilityGuardInstaller;
create( storeDir, config, dependencies ); create( storeDir, config, dependencies );
} }


Expand All @@ -78,15 +95,23 @@ protected void create( File storeDir, Map<String,String> params,
{ {
GraphDatabaseDependencies newDependencies = newDependencies( dependencies ) GraphDatabaseDependencies newDependencies = newDependencies( dependencies )
.settingsClasses( asList( append( GraphDatabaseSettings.class, dependencies.settingsClasses() ) ) ); .settingsClasses( asList( append( GraphDatabaseSettings.class, dependencies.settingsClasses() ) ) );
new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, CommunityEditionModule::new ) new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, this::editionModuleFactory )
.initFacade( storeDir, params, newDependencies, this ); .initFacade( storeDir, params, newDependencies, this );
} }


protected void create( File storeDir, Config config, GraphDatabaseFacadeFactory.Dependencies dependencies ) protected void create( File storeDir, Config config, GraphDatabaseFacadeFactory.Dependencies dependencies )
{ {
GraphDatabaseDependencies newDependencies = newDependencies( dependencies ) GraphDatabaseDependencies newDependencies = newDependencies( dependencies )
.settingsClasses( asList( append( GraphDatabaseSettings.class, dependencies.settingsClasses() ) ) ); .settingsClasses( asList( append( GraphDatabaseSettings.class, dependencies.settingsClasses() ) ) );
new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, CommunityEditionModule::new ) new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, this::editionModuleFactory )
.initFacade( storeDir, config, newDependencies, this ); .initFacade( storeDir, config, newDependencies, this );
} }

protected AbstractEditionModule editionModuleFactory( PlatformModule platform )
{
CommunityEditionModule edition = new CommunityEditionModule( platform );
AvailabilityGuard guard = edition.getGlobalAvailabilityGuard( platform.clock, platform.logging, platform.config );
availabilityGuardInstaller.install( guard );
return edition;
}
} }
Expand Up @@ -44,8 +44,6 @@ public GraphDatabaseFacade newGraphDatabase( Config config, GraphDatabaseFacadeF
public GraphDatabaseFacade newGraphDatabase( Config config, GraphDatabaseFacadeFactory.Dependencies dependencies, public GraphDatabaseFacade newGraphDatabase( Config config, GraphDatabaseFacadeFactory.Dependencies dependencies,
AvailabilityGuardInstaller guardInstaller ) AvailabilityGuardInstaller guardInstaller )
{ {
AvailabilityGuard guard = db.getDependencyResolver().resolveDependency( AvailabilityGuard.class );
guardInstaller.install( guard );
return db; return db;
} }
} }

0 comments on commit 1515a6b

Please sign in to comment.