Class LocalDatastoreHelper
- java.lang.Object
-
- com.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
-
- com.google.cloud.datastore.testing.LocalDatastoreHelper
-
@InternalApi public class LocalDatastoreHelper extends com.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
Utility to start and stop local Google Cloud Datastore emulators.This class is unstable.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LocalDatastoreHelper.Builder
A builder forLocalDatastoreHelper
objects.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LocalDatastoreHelper
create()
Creates a local Datastore helper with a placeholder project ID and the default consistency setting of 0.9.static LocalDatastoreHelper
create(double consistency)
Creates a local Datastore helper with the specified settings for project ID and consistency.static LocalDatastoreHelper
create(double consistency, int port)
Creates a local Datastore helper with the specified settings for project ID and consistency.static LocalDatastoreHelper
create(int port)
Creates a local Datastore helper with a placeholder project ID and the default consistency setting of 0.9.double
getConsistency()
Returns the consistency setting for the local Datastore emulator.protected List<com.google.cloud.testing.BaseEmulatorHelper.EmulatorRunner>
getEmulatorRunners()
Path
getGcdPath()
Returns the data directory path of the local Datastore emulator.protected Logger
getLogger()
DatastoreOptions
getOptions()
Returns aDatastoreOptions
instance that sets the host to use the Datastore emulator on localhost.DatastoreOptions
getOptions(String namespace)
Returns aDatastoreOptions
instance that sets the host to use the Datastore emulator on localhost.boolean
isStoreOnDisk()
Returnstrue
data persist on disk, otherwisefalse
data not store on disk.static LocalDatastoreHelper.Builder
newBuilder()
Returns a builder forLocalDatastoreHelper
object.void
reset()
Resets the internal state of the Datastore emulator.DatastoreOptions.Builder
setNamespace(String namespace)
void
start()
Starts the local Datastore emulator throughgcloud
, downloads and caches the zip file if user does not havegcloud
or a compatible emulator version installed.void
stop()
Stops the Datastore emulator.void
stop(org.threeten.bp.Duration timeout)
Stops the Datastore emulator.LocalDatastoreHelper.Builder
toBuilder()
Returns a builder forLocalDatastoreHelper
object.
-
-
-
Method Detail
-
toBuilder
public LocalDatastoreHelper.Builder toBuilder()
Returns a builder forLocalDatastoreHelper
object.
-
newBuilder
public static LocalDatastoreHelper.Builder newBuilder()
Returns a builder forLocalDatastoreHelper
object.
-
getEmulatorRunners
protected List<com.google.cloud.testing.BaseEmulatorHelper.EmulatorRunner> getEmulatorRunners()
- Specified by:
getEmulatorRunners
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
-
getLogger
protected Logger getLogger()
- Specified by:
getLogger
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
-
getOptions
public DatastoreOptions getOptions()
Returns aDatastoreOptions
instance that sets the host to use the Datastore emulator on localhost.- Specified by:
getOptions
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
-
getOptions
public DatastoreOptions getOptions(String namespace)
Returns aDatastoreOptions
instance that sets the host to use the Datastore emulator on localhost. The default namespace is set tonamespace
.Please use setNamespace and then build() instead.
-
setNamespace
public DatastoreOptions.Builder setNamespace(String namespace)
-
getConsistency
public double getConsistency()
Returns the consistency setting for the local Datastore emulator.
-
getGcdPath
public Path getGcdPath()
Returns the data directory path of the local Datastore emulator.
-
isStoreOnDisk
public boolean isStoreOnDisk()
Returnstrue
data persist on disk, otherwisefalse
data not store on disk.
-
create
public static LocalDatastoreHelper create(double consistency)
Creates a local Datastore helper with the specified settings for project ID and consistency.- Parameters:
consistency
- the fraction of Datastore writes that are immediately visible to global queries, with 0.0 meaning no writes are immediately visible and 1.0 meaning all writes are immediately visible. Note that setting this to 1.0 may mask incorrect assumptions about the consistency of non-ancestor queries; non-ancestor queries are eventually consistent.
-
create
public static LocalDatastoreHelper create(double consistency, int port)
Creates a local Datastore helper with the specified settings for project ID and consistency.- Parameters:
consistency
- the fraction of Datastore writes that are immediately visible to global queries, with 0.0 meaning no writes are immediately visible and 1.0 meaning all writes are immediately visible. Note that setting this to 1.0 may mask incorrect assumptions about the consistency of non-ancestor queries; non-ancestor queries are eventually consistent.port
- the port to be used to start the emulator service. Note that setting this to 0 the emulator will search for a free random port.
-
create
public static LocalDatastoreHelper create(int port)
Creates a local Datastore helper with a placeholder project ID and the default consistency setting of 0.9.- Parameters:
port
- the port to be used to start the emulator service. Note that setting this to 0 the emulator will search for a free random port.
-
create
public static LocalDatastoreHelper create()
Creates a local Datastore helper with a placeholder project ID and the default consistency setting of 0.9. Consistency refers to the fraction of Datastore writes that are immediately visible to global queries, with 0.0 meaning no writes are immediately visible and 1.0 meaning all writes are immediately visible.
-
start
public void start() throws IOException, InterruptedException
Starts the local Datastore emulator throughgcloud
, downloads and caches the zip file if user does not havegcloud
or a compatible emulator version installed.Currently the emulator does not persist any state across runs.
- Specified by:
start
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
- Throws:
IOException
InterruptedException
-
reset
public void reset() throws IOException
Resets the internal state of the Datastore emulator.When running tests, one might
reset()
before each test, so earlier tests would not affect later ones.- Specified by:
reset
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
- Throws:
IOException
-
stop
public void stop(org.threeten.bp.Duration timeout) throws IOException, InterruptedException, TimeoutException
Stops the Datastore emulator.It is important to stop the emulator. Since the emulator runs in its own process, not stopping it might cause it to become orphan.
It is not required to call
reset()
beforestop
.- Specified by:
stop
in classcom.google.cloud.testing.BaseEmulatorHelper<DatastoreOptions>
- Parameters:
timeout
- The duration to wait for the emulator process to stop. It is recommended to set this value high to ensure proper shutdown, like 5 seconds or more.- Throws:
IOException
InterruptedException
TimeoutException
-
stop
public void stop() throws IOException, InterruptedException, TimeoutException
Stops the Datastore emulator. The same asstop(Duration)
but with timeout duration of 20 seconds.It is important to stop the emulator. Since the emulator runs in its own process, not stopping it might cause it to become orphan.
It is not required to call
reset()
beforestop()
.
-
-