Class AdaptrisMessageFactory
- java.lang.Object
-
- com.adaptris.core.AdaptrisMessageFactory
-
- Direct Known Subclasses:
DefaultMessageFactory
,MultiPayloadMessageFactory
public abstract class AdaptrisMessageFactory extends java.lang.Object
A
static
factory which returns implementations ofAdaptrisMessage
.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
OVERRIDE_DEFAULT_MSG_FACTORY_ENV
If set as an env var then the fully qualified classname is used as the default message factory.static java.lang.String
OVERRIDE_DEFAULT_MSG_FACTORY_PROP
If set as as system property then the fully qualified classname is used as the default message factory.static java.lang.String
OVERRIDE_DEFAULT_MSGID_GEN_KEY
If set as an env var then the fully qualified classname is used as the default ID Generatorstatic java.lang.String
OVERRIDE_DEFAULT_MSGID_GEN_PROP
If set as as system property then the fully qualified classname is used as the default ID generator.
-
Constructor Summary
Constructors Constructor Description AdaptrisMessageFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static AdaptrisMessageFactory
createDefaultFactory()
protected static IdGenerator
createDefaultIdGenerator()
static AdaptrisMessageFactory
defaultIfNull(AdaptrisMessageFactory f)
Convenience method for null protection.abstract java.lang.String
getDefaultCharEncoding()
Return the default character encoding for the message.static AdaptrisMessageFactory
getDefaultInstance()
Get the default implementationion of AdaptrisMessageFactory.IdGenerator
getUniqueIdGenerator()
abstract AdaptrisMessage
newMessage()
Returns a newAdaptrisMessage
.abstract AdaptrisMessage
newMessage(byte[] payload)
Returns a newAdaptrisMessage
with the specified payload and metadata.abstract AdaptrisMessage
newMessage(byte[] payload, java.util.Set metadata)
Returns a newAdaptrisMessage
with the specified payload and metadata.abstract AdaptrisMessage
newMessage(AdaptrisMessage source, java.util.Collection<java.lang.String> metadataKeysToPreserve)
Returns a newAdaptrisMessage
with an empty payload but with selected metadata from the source.abstract AdaptrisMessage
newMessage(java.lang.String payload)
Returns a newAdaptrisMessage
with the specified payload and metadata.abstract AdaptrisMessage
newMessage(java.lang.String payload, java.lang.String charEncoding)
Returns a newAdaptrisMessage
with the specified payload and metadata.abstract AdaptrisMessage
newMessage(java.lang.String payload, java.lang.String charEncoding, java.util.Set metadata)
Returns a newAdaptrisMessage
with the specified payload and metadata.abstract AdaptrisMessage
newMessage(java.lang.String payload, java.util.Set metadata)
Returns a newAdaptrisMessage
with the specified payload and metadata.protected static java.lang.String
resolve(java.lang.String envKey, java.lang.String sysPropKey, java.lang.String defaultValue)
Resolve a value from an environment variable or system property.abstract void
setDefaultCharEncoding(java.lang.String s)
Set the default character encoding to be applied to the message upon creation.void
setUniqueIdGenerator(IdGenerator s)
Set the unique id generator used for messages.protected IdGenerator
uniqueIdGenerator()
-
-
-
Field Detail
-
OVERRIDE_DEFAULT_MSG_FACTORY_PROP
public static final java.lang.String OVERRIDE_DEFAULT_MSG_FACTORY_PROP
If set as as system property then the fully qualified classname is used as the default message factory.- See Also:
- Constant Field Values
-
OVERRIDE_DEFAULT_MSG_FACTORY_ENV
public static final java.lang.String OVERRIDE_DEFAULT_MSG_FACTORY_ENV
If set as an env var then the fully qualified classname is used as the default message factory.This will take precedence over the system property
-
OVERRIDE_DEFAULT_MSGID_GEN_PROP
public static final java.lang.String OVERRIDE_DEFAULT_MSGID_GEN_PROP
If set as as system property then the fully qualified classname is used as the default ID generator.- See Also:
- Constant Field Values
-
OVERRIDE_DEFAULT_MSGID_GEN_KEY
public static final java.lang.String OVERRIDE_DEFAULT_MSGID_GEN_KEY
If set as an env var then the fully qualified classname is used as the default ID GeneratorThis will take precedence over the system property
-
-
Method Detail
-
getDefaultInstance
public static AdaptrisMessageFactory getDefaultInstance()
Get the default implementationion of AdaptrisMessageFactory.Generally speaking, the appropriate message factory should be already be configured explicitly and available to be used. This method is simply here for those instances where no AdaptrisMessageFactory is available.
- Returns:
- a AdaptrisMessageFactory implementation
- See Also:
AdaptrisMessageWorker.getMessageFactory()
,AdaptrisMessageTranslator.currentMessageFactory()
,DefaultMessageFactory
-
defaultIfNull
public static AdaptrisMessageFactory defaultIfNull(AdaptrisMessageFactory f)
Convenience method for null protection.- Parameters:
f
- the configured message factory.- Returns:
- the configured message factory or the default instance if it is null.
-
newMessage
public abstract AdaptrisMessage newMessage(byte[] payload, java.util.Set metadata)
Returns a new
AdaptrisMessage
with the specified payload and metadata.- Parameters:
payload
- thebyte[]
payloadmetadata
- aSet
ofMetadataElement
s- Returns:
- a new
AdaptrisMessage
-
newMessage
public abstract AdaptrisMessage newMessage(byte[] payload)
Returns a new
AdaptrisMessage
with the specified payload and metadata.- Parameters:
payload
- thebyte[]
payload- Returns:
- a new
AdaptrisMessage
-
newMessage
public abstract AdaptrisMessage newMessage(java.lang.String payload, java.util.Set metadata)
Returns a new
AdaptrisMessage
with the specified payload and metadata. Uses default platform character encoding.- Parameters:
payload
- theString
payloadmetadata
- aSet
ofMetadataElement
s- Returns:
- a new
AdaptrisMessage
-
newMessage
public abstract AdaptrisMessage newMessage(java.lang.String payload)
Returns a new
AdaptrisMessage
with the specified payload and metadata. Uses default platform character encoding.- Parameters:
payload
- theString
payload- Returns:
- a new
AdaptrisMessage
-
newMessage
public abstract AdaptrisMessage newMessage(java.lang.String payload, java.lang.String charEncoding, java.util.Set metadata) throws java.io.UnsupportedEncodingException
Returns a new
AdaptrisMessage
with the specified payload and metadata. Uses default platform character encoding.- Parameters:
payload
- theString
payloadmetadata
- aSet
ofMetadataElement
scharEncoding
- theString
's character encoding- Returns:
- a new
AdaptrisMessage
- Throws:
java.io.UnsupportedEncodingException
- if the passed character encoding is not supported
-
newMessage
public abstract AdaptrisMessage newMessage(java.lang.String payload, java.lang.String charEncoding) throws java.io.UnsupportedEncodingException
Returns a new
AdaptrisMessage
with the specified payload and metadata. Uses default platform character encoding.- Parameters:
payload
- theString
payloadcharEncoding
- theString
's character encoding- Returns:
- a new
AdaptrisMessage
- Throws:
java.io.UnsupportedEncodingException
- if the passed character encoding is not supported
-
newMessage
public abstract AdaptrisMessage newMessage(AdaptrisMessage source, java.util.Collection<java.lang.String> metadataKeysToPreserve) throws java.lang.CloneNotSupportedException
Returns a newAdaptrisMessage
with an empty payload but with selected metadata from the source.The new AdaptrisMessage will have the same message id and MessageLifecycleEvent will be cloned from the original. Object metadata will also be preserved.
- Parameters:
source
- the original AdaptrisMessagemetadataKeysToPreserve
- a list of keys to transfer to the new Message; if null, then all keys.- Returns:
- a new
AdaptrisMessage
- Throws:
java.lang.CloneNotSupportedException
- if the MleMarkers could not be cloned.
-
getDefaultCharEncoding
public abstract java.lang.String getDefaultCharEncoding()
Return the default character encoding for the message.- Returns:
- the defaultCharEncoding
-
setDefaultCharEncoding
public abstract void setDefaultCharEncoding(java.lang.String s)
Set the default character encoding to be applied to the message upon creation.If not explicitly configured, then the platform default character encoding should be used.
- Parameters:
s
- the defaultCharEncoding to set- See Also:
AdaptrisMessage.setCharEncoding(String)
,InterlokMessage.setContentEncoding(String)
-
newMessage
public abstract AdaptrisMessage newMessage()
Returns a new
AdaptrisMessage
. Payload and metadata are null.- Returns:
- a new
AdaptrisMessage
with the specified payload and metadata
-
getUniqueIdGenerator
public IdGenerator getUniqueIdGenerator()
- Returns:
- the uniqueIdGenerator
-
setUniqueIdGenerator
public void setUniqueIdGenerator(IdGenerator s)
Set the unique id generator used for messages.In some situations you may not want to use the default
GuidGenerator
instance when assigning unique ids to messages. This allows you to change theIdGenerator
used both for message ids unique ids associated withMessageLifecycleEvent
.- Parameters:
s
- the uniqueIdGenerator to set
-
uniqueIdGenerator
protected IdGenerator uniqueIdGenerator()
-
createDefaultIdGenerator
protected static IdGenerator createDefaultIdGenerator()
-
createDefaultFactory
protected static AdaptrisMessageFactory createDefaultFactory()
-
resolve
protected static java.lang.String resolve(java.lang.String envKey, java.lang.String sysPropKey, java.lang.String defaultValue)
Resolve a value from an environment variable or system property.- Parameters:
envKey
- the environment variable, this takes precedence over system properties.sysPropKey
- the system property.defaultValue
- the default value if neither keys exist.- Returns:
- the resolved value.
-
-