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 String
COLLECTION_FIELD_DATA
static String
COLLECTION_FIELD_ID
static String
COLLECTION_FIELD_TIME
static String
DEFAULT_CONN_STR
static String
DEFAULT_DATABASE_NAME
static long
DEFAULT_MAX_COLLECTION_SIZE
static long
DEFAULT_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.MongoClient
buildMongoClient()
Build a newMongoClient
instance.void
destroy()
Clean-up method.protected IMessage<ID,DATA>
fromDocument(org.bson.Document doc)
String
getConnectionString()
Getter forconnectionString
(see http://mongodb.github.io/mongo-java-driver/3.7/driver/getting-started/quick-start/).protected com.mongodb.client.MongoDatabase
getDatabase()
String
getDatabaseName()
Getter fordatabaseName
.long
getMaxCollectionSize()
Max collection's size in bytes.long
getMaxDocuments()
Max number of document per pub/sub collection.protected com.mongodb.client.MongoClient
getMongoClient()
Getter formongoClient
.MongodbPubSubHub<ID,DATA>
init()
Initializing method.boolean
publish(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
.void
subscribe(String channel, ISubscriber<ID,DATA> subscriber)
Subscribe to a channel for messages.protected org.bson.Document
toDocument(IMessage<ID,DATA> msg)
void
unsubscribe(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 newMongoClient
instance.- Returns:
-
init
public MongodbPubSubHub<ID,DATA> init()
Initializing method.- Overrides:
init
in classAbstractPubSubHub<ID,DATA>
- Returns:
-
destroy
public void destroy()
Clean-up method.- Overrides:
destroy
in 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.
-
-