Class SolaceJcsmpBaseTranslatorImp
- java.lang.Object
-
- com.adaptris.core.jcsmp.solace.translator.SolaceJcsmpBaseTranslatorImp
-
- All Implemented Interfaces:
SolaceJcsmpMessageTranslator
- Direct Known Subclasses:
SolaceJcsmpBytesMessageTranslator,SolaceJcsmpBytesXmlMessageTranslator,SolaceJcsmpTextMessageTranslator,SolaceJcsmpXmlContentMessageTranslator
public abstract class SolaceJcsmpBaseTranslatorImp extends java.lang.Object implements SolaceJcsmpMessageTranslator
Once a message has been consumed from Solace, this translator will generate an
AdaptrisMessagefrom the payload and headers of the consumed message.Reverse translation when producing a message to a Solace end-point will create a Solace XMLMessage again from the payload and metadata of the
AdaptrisMessageThe payload mapping is straight forward, but the metadata and header mapping does require a little configuration. In the advanced settings you can specify metadata keys against each Solace message property; when consuming we will copy the value from the Solace message into the specified metadata key and when producing we will source the value for the Solace header from the specified metadata key.
User data is slightly different however, when consuming we will copy all Solace User data into metadata, when producing you will set a metadata filter where we will copy metadata keys and values into the outgoing Solace message User data.
In the adapter configuration file this class is aliased as solace-jcsmp-bytes-message-translator which is the preferred alternative to the fully qualified classname when building your configuration.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classSolaceJcsmpBaseTranslatorImp.HeaderDataType
-
Constructor Summary
Constructors Constructor Description SolaceJcsmpBaseTranslatorImp()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleangetApplyPerMessagePropertiesOnConsume()Copy the JCSMP message properties into metadata when we consume a message.booleangetApplyPerMessagePropertiesOnProduce()Apply per message properties resolution when we produce a JCSMP message.java.lang.StringgetDeliveryMode()The mode of delivery; "PERSISTENT / NONPERSISTENT"@NotNull java.util.List<SolaceJcsmpMetadataMapping>getMappings()Deprecated.since 4.3 Use per-message-properties instead.@NotNull AdaptrisMessageFactorygetMessageFactory()Defaults to the standardDefaultMessageFactory.MetadataFiltergetMetadataFilter()SolaceJcsmpPerMessagePropertiesgetPerMessageProperties()MetadataFiltermetadataFilter()protected voidperformHeaderMappings(AdaptrisMessage message, com.solacesystems.jcsmp.XMLMessage xmlMessage)protected voidperformMetadataMappings(com.solacesystems.jcsmp.XMLMessage message, AdaptrisMessage adaptrisMessage)protected abstract com.solacesystems.jcsmp.XMLMessageperformPayloadTranslation(AdaptrisMessage source)protected abstract voidperformPayloadTranslation(com.solacesystems.jcsmp.XMLMessage source, AdaptrisMessage destination)voidsetApplyPerMessagePropertiesOnConsume(boolean applyPerMessagePropertiesOnConsume)Copy the JCSMP message properties into metadata when we consume a message.voidsetApplyPerMessagePropertiesOnProduce(boolean applyPerMessagePropertiesOnProduce)Apply per message properties resolution when we produce a JCSMP message.voidsetDeliveryMode(java.lang.String deliveryMode)The mode of delivery; "PERSISTENT / NONPERSISTENT"voidsetMappings(@NotNull java.util.List<SolaceJcsmpMetadataMapping> mappings)Deprecated.since 4.3 Use per-message-properties instead.voidsetMessageFactory(@NotNull AdaptrisMessageFactory messageFactory)Defaults to the standardDefaultMessageFactory.voidsetMetadataFilter(MetadataFilter metadataFilter)voidsetPerMessageProperties(SolaceJcsmpPerMessageProperties perMessageProperties)com.solacesystems.jcsmp.XMLMessagetranslate(AdaptrisMessage message)AdaptrisMessagetranslate(com.solacesystems.jcsmp.XMLMessage message)
-
-
-
Method Detail
-
translate
public AdaptrisMessage translate(com.solacesystems.jcsmp.XMLMessage message) throws java.lang.Exception
- Specified by:
translatein interfaceSolaceJcsmpMessageTranslator- Throws:
java.lang.Exception
-
translate
public com.solacesystems.jcsmp.XMLMessage translate(AdaptrisMessage message) throws java.lang.Exception
- Specified by:
translatein interfaceSolaceJcsmpMessageTranslator- Throws:
java.lang.Exception
-
performPayloadTranslation
protected abstract com.solacesystems.jcsmp.XMLMessage performPayloadTranslation(AdaptrisMessage source)
-
performPayloadTranslation
protected abstract void performPayloadTranslation(com.solacesystems.jcsmp.XMLMessage source, AdaptrisMessage destination)
-
performMetadataMappings
protected void performMetadataMappings(com.solacesystems.jcsmp.XMLMessage message, AdaptrisMessage adaptrisMessage) throws java.lang.Exception- Throws:
java.lang.Exception
-
performHeaderMappings
protected void performHeaderMappings(AdaptrisMessage message, com.solacesystems.jcsmp.XMLMessage xmlMessage) throws java.lang.Exception
- Throws:
java.lang.Exception
-
metadataFilter
public MetadataFilter metadataFilter()
-
getMessageFactory
@NotNull public @NotNull AdaptrisMessageFactory getMessageFactory()
Defaults to the standardDefaultMessageFactory.
-
setMessageFactory
public void setMessageFactory(@NotNull @NotNull AdaptrisMessageFactory messageFactory)Defaults to the standardDefaultMessageFactory.- Parameters:
messageFactory-
-
getDeliveryMode
public java.lang.String getDeliveryMode()
The mode of delivery; "PERSISTENT / NONPERSISTENT"
-
setDeliveryMode
public void setDeliveryMode(java.lang.String deliveryMode)
The mode of delivery; "PERSISTENT / NONPERSISTENT"- Parameters:
deliveryMode-
-
getMappings
@Deprecated @NotNull public @NotNull java.util.List<SolaceJcsmpMetadataMapping> getMappings()
Deprecated.since 4.3 Use per-message-properties instead.A list of mappings between Adaptris message metadata and Solace headers.
-
setMappings
@Deprecated public void setMappings(@NotNull @NotNull java.util.List<SolaceJcsmpMetadataMapping> mappings)Deprecated.since 4.3 Use per-message-properties instead.A list of mappings between Adaptris message metadata and Solace headers.- Parameters:
mappings-
-
getPerMessageProperties
public SolaceJcsmpPerMessageProperties getPerMessageProperties()
-
setPerMessageProperties
public void setPerMessageProperties(SolaceJcsmpPerMessageProperties perMessageProperties)
-
getApplyPerMessagePropertiesOnProduce
public boolean getApplyPerMessagePropertiesOnProduce()
Apply per message properties resolution when we produce a JCSMP message.
-
setApplyPerMessagePropertiesOnProduce
public void setApplyPerMessagePropertiesOnProduce(boolean applyPerMessagePropertiesOnProduce)
Apply per message properties resolution when we produce a JCSMP message.
-
getApplyPerMessagePropertiesOnConsume
public boolean getApplyPerMessagePropertiesOnConsume()
Copy the JCSMP message properties into metadata when we consume a message.
-
setApplyPerMessagePropertiesOnConsume
public void setApplyPerMessagePropertiesOnConsume(boolean applyPerMessagePropertiesOnConsume)
Copy the JCSMP message properties into metadata when we consume a message.
-
getMetadataFilter
public MetadataFilter getMetadataFilter()
-
setMetadataFilter
public void setMetadataFilter(MetadataFilter metadataFilter)
-
-