com.google.appengine.api.datastore.dev
Class LocalDatastoreService

java.lang.Object
  extended by com.google.appengine.api.datastore.dev.LocalDatastoreService

@ServiceProvider(value=)
public final class LocalDatastoreService
extends java.lang.Object

A local implementation of the Datastore service interface. This is a memory-based implementation which can persist itself to disk through a batch operation. TODO(tobyr) Improve this implementation such that it's backed by something like Derby (which is bundled with the JDK), perhaps in "iteration 2".


Field Summary
static java.lang.String BACKING_STORE_PROPERTY
          Where to read/store the datastore from/to.
static java.lang.String HIGH_REP_JOB_POLICY_CLASS_PROPERTY
          The fully-qualifed name of a class that implements HighRepJobPolicy and has a no-arg constructor.
static java.lang.String MAX_QUERY_LIFETIME_PROPERTY
          How long a query can stay "live" before we expire it.
static java.lang.String MAX_TRANSACTION_LIFETIME_PROPERTY
          How long a transaction can stay "live" before we expire it.
static java.lang.String NO_INDEX_AUTO_GEN_PROP
          True to prevent the datastore from writing com.google.apphosting.utils.config.IndexesXmlReader#GENERATED_INDEX_FILENAME.
static java.lang.String NO_STORAGE_PROPERTY
          True to put the datastore into "memory-only" mode.
static java.lang.String PACKAGE
          The package name for this service.
static java.lang.String STORE_DELAY_PROPERTY
          How long to wait before updating the persistent store in milliseconds.
 
Constructor Summary
LocalDatastoreService()
           
 
Method Summary
 VoidProto addActions(Status status, TaskQueueBulkAddRequest request)
           
 AllocateIdsResponse allocateIds(Status status, AllocateIdsRequest req)
           
 Transaction beginTransaction(Status status, BeginTransactionRequest req)
           
 void clearProfiles()
          Clear out the in-memory datastore.
 CommitResponse commit(Status status, Transaction req)
           
 Integer64Proto count(Status status, Query request)
           
 Integer64Proto createIndex(Status status, CompositeIndex req)
           
 DeleteResponse delete(Status status, DeleteRequest request)
           
 VoidProto deleteCursor(Status status, Cursor request)
           
 DeleteResponse deleteImpl(Status status, DeleteRequest request)
           
 VoidProto deleteIndex(Status status, CompositeIndex req)
           
 GetResponse get(Status status, GetRequest request)
           
 CompositeIndices getIndices(Status status, StringProto req)
           
 java.lang.String getPackage()
           
 Schema getSchema(Status status, GetSchemaRequest req)
           
 void init(LocalServiceContext context, java.util.Map<java.lang.String,java.lang.String> properties)
           
 QueryResult next(Status status, NextRequest request)
           
 PutResponse put(Status status, PutRequest request)
           
 PutResponse putImpl(Status status, PutRequest request)
           
 VoidProto rollback(Status status, Transaction req)
           
 QueryResult runQuery(Status status, Query query)
           
 void setBackingStore(java.lang.String backingStore)
           
 void setMaxQueryLifetime(int milliseconds)
           
 void setMaxTransactionLifetime(int milliseconds)
           
 void setNoStorage(boolean noStorage)
           
 void setStoreDelay(int delayMs)
           
 void start()
           
 void stop()
           
 VoidProto updateIndex(Status status, CompositeIndex req)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PACKAGE

public static final java.lang.String PACKAGE
The package name for this service.

See Also:
Constant Field Values

MAX_QUERY_LIFETIME_PROPERTY

public static final java.lang.String MAX_QUERY_LIFETIME_PROPERTY
How long a query can stay "live" before we expire it.

See Also:
Constant Field Values

MAX_TRANSACTION_LIFETIME_PROPERTY

public static final java.lang.String MAX_TRANSACTION_LIFETIME_PROPERTY
How long a transaction can stay "live" before we expire it.

See Also:
Constant Field Values

STORE_DELAY_PROPERTY

public static final java.lang.String STORE_DELAY_PROPERTY
How long to wait before updating the persistent store in milliseconds.

See Also:
Constant Field Values

BACKING_STORE_PROPERTY

public static final java.lang.String BACKING_STORE_PROPERTY
Where to read/store the datastore from/to.

See Also:
Constant Field Values

NO_INDEX_AUTO_GEN_PROP

public static final java.lang.String NO_INDEX_AUTO_GEN_PROP
True to prevent the datastore from writing com.google.apphosting.utils.config.IndexesXmlReader#GENERATED_INDEX_FILENAME.

See Also:
Constant Field Values

NO_STORAGE_PROPERTY

public static final java.lang.String NO_STORAGE_PROPERTY
True to put the datastore into "memory-only" mode.

See Also:
Constant Field Values

HIGH_REP_JOB_POLICY_CLASS_PROPERTY

public static final java.lang.String HIGH_REP_JOB_POLICY_CLASS_PROPERTY
The fully-qualifed name of a class that implements HighRepJobPolicy and has a no-arg constructor. If not provided we use a DefaultHighRepJobPolicy. See the javadoc for this class for information on its configurable properties.

See Also:
Constant Field Values
Constructor Detail

LocalDatastoreService

public LocalDatastoreService()
Method Detail

clearProfiles

public void clearProfiles()
Clear out the in-memory datastore. Note that this does not clear out any data that has been persisted on disk.


init

public void init(LocalServiceContext context,
                 java.util.Map<java.lang.String,java.lang.String> properties)

start

public void start()

stop

public void stop()

setMaxQueryLifetime

public void setMaxQueryLifetime(int milliseconds)

setMaxTransactionLifetime

public void setMaxTransactionLifetime(int milliseconds)

setBackingStore

public void setBackingStore(java.lang.String backingStore)

setStoreDelay

public void setStoreDelay(int delayMs)

setNoStorage

public void setNoStorage(boolean noStorage)

getPackage

public java.lang.String getPackage()

get

public GetResponse get(Status status,
                       GetRequest request)

put

public PutResponse put(Status status,
                       PutRequest request)

putImpl

public PutResponse putImpl(Status status,
                           PutRequest request)

delete

public DeleteResponse delete(Status status,
                             DeleteRequest request)

addActions

public VoidProto addActions(Status status,
                            TaskQueueBulkAddRequest request)

deleteImpl

public DeleteResponse deleteImpl(Status status,
                                 DeleteRequest request)

runQuery

public QueryResult runQuery(Status status,
                            Query query)

next

public QueryResult next(Status status,
                        NextRequest request)

count

public Integer64Proto count(Status status,
                            Query request)

deleteCursor

public VoidProto deleteCursor(Status status,
                              Cursor request)

beginTransaction

public Transaction beginTransaction(Status status,
                                    BeginTransactionRequest req)

commit

public CommitResponse commit(Status status,
                             Transaction req)

rollback

public VoidProto rollback(Status status,
                          Transaction req)

getSchema

public Schema getSchema(Status status,
                        GetSchemaRequest req)

createIndex

public Integer64Proto createIndex(Status status,
                                  CompositeIndex req)

updateIndex

public VoidProto updateIndex(Status status,
                             CompositeIndex req)

getIndices

public CompositeIndices getIndices(Status status,
                                   StringProto req)

deleteIndex

public VoidProto deleteIndex(Status status,
                             CompositeIndex req)

allocateIds

public AllocateIdsResponse allocateIds(Status status,
                                       AllocateIdsRequest req)