Package com.github.ddth.pubsub.impl
Class MongodbPubSubHub<ID,DATA>
- java.lang.Object
-
- com.github.ddth.pubsub.impl.AbstractPubSubHub<ID,DATA>
-
- com.github.ddth.pubsub.impl.MongodbPubSubHub<ID,DATA>
-
- All Implemented Interfaces:
IPubSubHub<ID,DATA>,AutoCloseable
- Direct Known Subclasses:
UniversalMongodbPubSubHub,UniversalMongodbPubSubHub
public class MongodbPubSubHub<ID,DATA> extends AbstractPubSubHub<ID,DATA>
(Experimental) MongoDB implementation ofIPubSubHub.- Since:
- 0.7.1
- Author:
- Thanh Ba Nguyen
-
-
Field Summary
Fields Modifier and Type Field Description static StringCOLLECTION_FIELD_DATAstatic StringCOLLECTION_FIELD_IDstatic StringCOLLECTION_FIELD_TIMEstatic StringDEFAULT_CONN_STRstatic StringDEFAULT_DATABASE_NAMEstatic longDEFAULT_MAX_COLLECTION_SIZEstatic longDEFAULT_MAX_DOCUMENTS
-
Constructor Summary
Constructors Constructor Description MongodbPubSubHub()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.mongodb.client.MongoClientbuildMongoClient()Build a newMongoClientinstance.voiddestroy()Clean-up method.protected IMessage<ID,DATA>fromDocument(org.bson.Document doc)StringgetConnectionString()Getter forconnectionString(see http://mongodb.github.io/mongo-java-driver/3.7/driver/getting-started/quick-start/).protected com.mongodb.client.MongoDatabasegetDatabase()StringgetDatabaseName()Getter fordatabaseName.longgetMaxCollectionSize()Max collection's size in bytes.longgetMaxDocuments()Max number of document per pub/sub collection.protected com.mongodb.client.MongoClientgetMongoClient()Getter formongoClient.MongodbPubSubHub<ID,DATA>init()Initializing method.booleanpublish(String channel, IMessage<ID,DATA> msg)Publish a message to a channel.MongodbPubSubHub<ID,DATA>setConnectionString(String connectionString)Setter forconnectionString(see http://mongodb.github.io/mongo-java-driver/3.7/driver/getting-started/quick-start/).MongodbPubSubHub<ID,DATA>setDatabaseName(String databaseName)Setter fordatabaseName.MongodbPubSubHub<ID,DATA>setMaxCollectionSize(long maxCollectionSize)Max number of document per pub/sub collection.MongodbPubSubHub<ID,DATA>setMaxDocuments(long maxDocuments)Max number of document per pub/sub collection.MongodbPubSubHub<ID,DATA>setMongoClient(com.mongodb.client.MongoClient mongoClient)Setter formongoClient.protected MongodbPubSubHub<ID,DATA>setMongoClient(com.mongodb.client.MongoClient mongoClient, boolean setMyOwnMongoClient)Setter formongoClient.voidsubscribe(String channel, ISubscriber<ID,DATA> subscriber)Subscribe to a channel for messages.protected org.bson.DocumenttoDocument(IMessage<ID,DATA> msg)voidunsubscribe(String channel, ISubscriber<ID,DATA> subscriber)Unsubscribe from a channel.-
Methods inherited from class com.github.ddth.pubsub.impl.AbstractPubSubHub
close, createMessage, createMessage, createMessage, deserialize, deserialize, getMessageFactory, getSerDeser, serialize, setMessageFactory, setSerDeser
-
-
-
-
Field Detail
-
DEFAULT_CONN_STR
public static final String DEFAULT_CONN_STR
- See Also:
- Constant Field Values
-
DEFAULT_DATABASE_NAME
public static final String DEFAULT_DATABASE_NAME
- See Also:
- Constant Field Values
-
DEFAULT_MAX_DOCUMENTS
public static final long DEFAULT_MAX_DOCUMENTS
-
DEFAULT_MAX_COLLECTION_SIZE
public static final long DEFAULT_MAX_COLLECTION_SIZE
-
COLLECTION_FIELD_ID
public static final String COLLECTION_FIELD_ID
- See Also:
- Constant Field Values
-
COLLECTION_FIELD_TIME
public static final String COLLECTION_FIELD_TIME
- See Also:
- Constant Field Values
-
COLLECTION_FIELD_DATA
public static final String COLLECTION_FIELD_DATA
- See Also:
- Constant Field Values
-
-
Method Detail
-
getMaxDocuments
public long getMaxDocuments()
Max number of document per pub/sub collection.To allow pub/sub, the collection must be capped with a max number of documents.
- Returns:
- See Also:
DEFAULT_MAX_DOCUMENTS
-
setMaxDocuments
public MongodbPubSubHub<ID,DATA> setMaxDocuments(long maxDocuments)
Max number of document per pub/sub collection.To allow pub/sub, the collection must be capped with a max number of documents.
- Parameters:
maxDocuments-- Returns:
- See Also:
DEFAULT_MAX_DOCUMENTS
-
getMaxCollectionSize
public long getMaxCollectionSize()
Max collection's size in bytes.To allow pub/sub, the collection must be capped with a max size.
- Returns:
- See Also:
DEFAULT_MAX_COLLECTION_SIZE
-
setMaxCollectionSize
public MongodbPubSubHub<ID,DATA> setMaxCollectionSize(long maxCollectionSize)
Max number of document per pub/sub collection.To allow pub/sub, the collection must be capped with a max size.
- Parameters:
maxCollectionSize-- Returns:
- See Also:
DEFAULT_MAX_COLLECTION_SIZE
-
getConnectionString
public String getConnectionString()
Getter forconnectionString(see http://mongodb.github.io/mongo-java-driver/3.7/driver/getting-started/quick-start/).- Returns:
-
setConnectionString
public MongodbPubSubHub<ID,DATA> setConnectionString(String connectionString)
Setter forconnectionString(see http://mongodb.github.io/mongo-java-driver/3.7/driver/getting-started/quick-start/).- Parameters:
connectionString-- Returns:
-
getDatabaseName
public String getDatabaseName()
Getter fordatabaseName.- Returns:
-
setDatabaseName
public MongodbPubSubHub<ID,DATA> setDatabaseName(String databaseName)
Setter fordatabaseName.- Parameters:
databaseName-- Returns:
-
getMongoClient
protected com.mongodb.client.MongoClient getMongoClient()
Getter formongoClient.- Returns:
-
setMongoClient
public MongodbPubSubHub<ID,DATA> setMongoClient(com.mongodb.client.MongoClient mongoClient)
Setter formongoClient.- Parameters:
mongoClient-- Returns:
-
setMongoClient
protected MongodbPubSubHub<ID,DATA> setMongoClient(com.mongodb.client.MongoClient mongoClient, boolean setMyOwnMongoClient)
Setter formongoClient.- Parameters:
mongoClient-setMyOwnMongoClient-- Returns:
-
getDatabase
protected com.mongodb.client.MongoDatabase getDatabase()
-
buildMongoClient
protected com.mongodb.client.MongoClient buildMongoClient()
Build a newMongoClientinstance.- Returns:
-
init
public MongodbPubSubHub<ID,DATA> init()
Initializing method.- Overrides:
initin classAbstractPubSubHub<ID,DATA>- Returns:
-
destroy
public void destroy()
Clean-up method.- Overrides:
destroyin classAbstractPubSubHub<ID,DATA>
-
publish
public boolean publish(String channel, IMessage<ID,DATA> msg)
Publish a message to a channel.- Returns:
-
subscribe
public void subscribe(String channel, ISubscriber<ID,DATA> subscriber)
Subscribe to a channel for messages.
-
unsubscribe
public void unsubscribe(String channel, ISubscriber<ID,DATA> subscriber)
Unsubscribe from a channel.
-
-