Contact Us 1-800-596-4880

Object Store Connector

Support Category: Select

The Object Store Connector lets you connect to the object storage facility in Mule and exposes convenient methods for exploiting the capabilities of Mule Object Stores. Internally, Mule uses object stores in various filters, routers, and other message processors that need to store state between messages. The Object Store connector works with the Object Store through references. Any transformations a user applies to an object store using the Object Store connector propagate to all references of that object store.

Before You Begin

This document assumes that you are familiar with Object Store, Mule, Anypoint Connectors, Anypoint Studio essentials, elements in a Mule flow, and global elements. See the See Also section of this document for additional links.

For information on object store data limits, see:

To Install this Connector

  1. In Anypoint Studio, click the Exchange icon in the Studio taskbar.

  2. Click Login in Anypoint Exchange.

  3. Search for the connector and click Install.

  4. Follow the prompts to install the connector.

When Studio has an update, a message displays in the lower right corner, which you can click to install the update.

Namespace and Schema

When designing your application in Studio, the act of dragging the connector from the palette onto the Anypoint Studio canvas populates the XML code with the connector namespace and schema location.

For XML or standalone, include this information:

Item URL

Namespace

xmlns:objectstore="http://www.mulesoft.org/schema/mule/objectstore"

Schema Location

http://www.mulesoft.org/schema/mule/object/current/mule-objectstore.xsd

Include the connector namespace and schema location in an application:

<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:objectstore="http://www.mulesoft.org/schema/mule/objectstore"
      xsi:schemaLocation="
               http://www.mulesoft.org/schema/mule/core
               http://www.mulesoft.org/schema/mule/core/current/mule.xsd
               http://www.mulesoft.org/schema/mule/objectstore
               http://www.mulesoft.org/schema/mule/objectstore/current/mule-objectstore.xsd">

      <!-- Insert your configuration elements and your flow here -->
</mule>

Compatibility

The Object Store connector is compatible with:

Application/Service Version

Mule Runtime

3.6.0 or newer

Anypoint Studio

5.2 or newer

Starting with version 2.0.0, the Object Store connector is licensed commercially with Anypoint Platform as with other Select connectors. Prior versions remain freely available to the community.

To Install this Connector

  1. In Anypoint Studio, click the Exchange icon in the Studio taskbar.

  2. Click Login in Anypoint Exchange.

  3. Search for the connector and click Install.

  4. Follow the prompts to install the connector.

When Studio has an update, a message displays in the lower right corner, which you can click to install the update.

About the Object Store Spring Bean Instances

By default, Mule includes three default object stores instantiated every time you run Mule both on premises and on Runtime Manager.

Each Mule runtime includes these three spring bean instances:

  • _defaultInMemoryObjectStore

  • _defaultUserObjectStore

  • _defaultTransientUserObjectStore

You can also code your own object store Java class, then include an instance in your application as a Spring bean. You can then reference your custom object store when you define a new Object Store global element.

Object Store version 2 overrides the _defaultUserObjectStore object store. See Object Store v2.

About Persisting Object Stores in Runtime Manager

The Persistent option persists data in on premises applications; however to persist data in Runtime Manager’s Application Data user interface, you need to use the _defaultUserObjectStore spring bean instance in your ObjectStore configuration.

The _defaultUserObjectStore spring bean instance ensures that an Object Store in a Runtime Manager application survives across redeployments. When you use this bean instance, data persists outside the Runtime Manager worker (but in the cloud), which is why the data is available after restarts.

Reference the Spring bean instance using the Object Store Reference field.

For XML or standalone use, add the objectStore-ref="_defaultUserObjectStore" parameter, for example:

<objectstore:config ... objectStore-ref="_defaultUserObjectStore" .../>

The Persistent option is declared as follows:

<objectstore:config ... persistent="true"/>

Setting up the Global Configuration Using Studio Visual Editor

Configure a global Object Store element that can be used by all instances of the Object Store connector in your application.

  1. Click the Global Elements tab at the base of the canvas.

  2. In the Global Mule Configuration Elements screen, click Create.

  3. In the Choose Global Type wizard, expand Connector Configuration and select ObjectStore: Configuration and click Ok.

    Global Element Configuration Wizard
  4. Configure the parameters according to your needs. This is the screen you configure the connector global element from:

    Global Element Configuration
    Parameter Description

    Name

    (Required) Enter a name for the configuration to reference it.

    Partition

    Name of the partition. If set, and a partitionable object store is specified in the objectstore-ref attribute, the partition name is used. Otherwise, the partition name is ignored.

    This means that:

    • If you define an objectstore-ref and the object store is partitionable, the connector uses the partition name.

    • If you define an objectstore-ref and the object store is NOT partitionable, the connector ignores the partition name.

    • If you don’t define an objectstore-ref, but supply a partition name, the connector applies the partition name to the default object store.

    Object Store Reference

    Specify the Object Store spring bean instance. This is optional and if not specified, the default in-memory or persistent store is used. See About the Object Store Spring Bean Instances.

    Entry Ttl

    TimeToLive for stored values in milliseconds. Max Entries and Expiration Interval are mandatory for using this param. You must either provide all Entry TTL, Max Entries, and Expiration Interval, or none of them.

    Updating the data (for example, by overwriting the key) resets the TTL.

    For information about TTL behavior, see How long can data persist in Object Store v2?.

    Expiration Interval

    Specifies the expiration check interval in milliseconds.

    Max Entries

    Specifies the maximum number of entries.

    Persistent

    Specified whenever the required store needs to be persistent or not. See About Persisting Object Stores in Runtime Manager.

    Note: In the image above, the placeholder values refer to a configuration file placed in the src folder of your project.

    You can either enter your credentials into the global configuration properties, or reference a configuration file that contains these values. For simpler maintenance and better re-usability of your project, Mule recommends that you use a configuration file. Keeping these values in a separate file is useful if you need to deploy to different environments, such as production, development, and QA, where your access credentials differ.

  5. Click OK to save the global connector configurations.

Setting up the Global Configuration Using XML

Follow these steps to configure the connector in your application: Create a global Object Store configuration outside and above your flows, using the following global configuration code.

<objectstore:config name="ObjectStore__Configuration" partition="${objectstore.partition.counter}" doc:name="ObjectStore: Configuration"/>

When you manually code the Mule application in Studio’s XML editor or another text editor, paste these into the header of your Configuration XML inside the <mule> tag as in the example below.

Name Description

name

The identifier of the object store configuration. Other components must reference this configuration via this name.

Studio Field: Name
Default: none
Java Type: String
MIME Type: /
Encoding: UTF-8

doc:name

The string displayed in Anypoint Studio.

Studio Field: Name
Default: none
Java Type: String
MIME Type: /
Encoding: UTF-8

partition

Name of the partition. If set, and a partitionable object store is specified in the objectstore-ref attribute, the partition name is used. Otherwise, the partition name is ignored.

This means that:

  • If you define an objectstore-ref and the object store is partitionable, the connector uses the partition name.

  • If you define an objectstore-ref and the object store is NOT partitionable, the connector ignores the partition name.

  • If you don’t define an objectstore-ref, but supply a partition name, the connector applies the partition name to the default object store.

Studio Field: Partition
Default: none
Java Type: String
MIME Type: /
Encoding: UTF-8

objectStore-ref

Optional. Reference to an object store spring bean instance. Use an instance depending on the context (stand-alone Mule runtime, Mule runtime cluster, or CloudHub cluster). You can also specify one of the default object stores by name _defaultInMemoryObjectStore, _defaultUserObjectStore, or _defaultTransientUserObjectStore. See About the Object Store Spring Bean Instances. Note: You must specify _defaultUserObjectStore to get data to display in Runtime Manager’s Application Data user interface.

Studio Field: Object Store Reference
Default: none
Java Type: String
MIME Type: none
Encoding: none

entryTtl

Time To Live for stored values in milliseconds. If using this parameter, maxEntries, and expirationInterval are mandatory.

Studio Field: Entry Ttl
Default: none
Java Type: Int
MIME Type: /
Encoding: UTF-8

expirationInterval

Specifies the expiration check interval in milliseconds.

Studio Field: Expiration Interval
Default: none
Java Type: Int
MIME Type: /
Encoding: none

maxEntries

Specifies the maximum number of entries. The entryTTL and expirationInterval attributes are required when using this parameter. Valid values: 0 for unlimited, values greater than 0 are the maximum number of entries - after this number an exception is thrown.

Studio Field: Max Entries
Default: none
Java Type: Int
MIME Type: /
Encoding: none

persistent

Specifies if the required store needs to be persistent or not (this argument is ignored if the object store is passed by reference using the objectStore-ref attribute, or if no partition name is defined). If persistent is false, then data may be lost when a Mule runtime restarts. See About Persisting Object Stores in Runtime Manager.

Studio Field: Persistent (checkbox)
Default: false
Java Type: boolean
MIME Type: /
Encoding: none

The following is an example objectstore configuration that specifies a partition named customers within the defaultUserObjectStore, and specifying that the object store should be persistent.

<objectstore:config name="ObjectStore__Configuration" partition="customer"  persistent="true"/>

If you do not specify a value for the objectstore-ref, the _defaultUserObjectStore is used, which is equivalent to this configuration:

<objectstore:config ... objectstore-ref="_defaultUserObjectStore"  persistent="true"/>

If you don’t want to use one of the default object stores, you can define your own Java bean and reference it instead in the objectstore-ref attribute.

Using the Connector in a Mavenized Mule App

If you are coding a Mavenized Mule application, this XML snippet must be included in your pom.xml file.

<dependency>
  <groupId>org.mule.modules</groupId>
  <artifactId>mule-module-objectstore</artifactId>
  <version>x.x.x</version>
</dependency>

Inside the <version> tags, put the desired version number, the word RELEASE for the latest release, or SNAPSHOT for the latest available version. See the Exchange Object Store connector for specific versions.

Using This Connector

The Object Store connector is an operation-based connector, which means that when you add the connector to your flow, you need to configure a specific operation for the connector to perform. See the entire operation processors list in the github.io or click individually on the listed operations below. The connector currently supports the following list of operations, each requiring certain attributes to be set:

The Dual store operation may be misleading. The function of this operation is to do two writes to object store, the first with objectStore.store(key, value) and the second with the objectStore.store(value, key) operation.

Adding to a Flow

  1. Create a new Mule Project in Anypoint Studio.

  2. Add a suitable Mule Inbound Endpoint, such as the HTTP listener or File endpoint, to begin the flow.

  3. Drag and drop the Object Store connector onto the canvas.

  4. Click on the connector component to open the Properties Editor.

    Flow Settings
  5. Configure the following parameters:

    Field Description

    Basic Settings

    Display Name

    Enter a unique label for the connector in your application.

    Connector Configuration

    Connect to a global element linked to this connector. Global elements encapsulate reusable data about the connection to the target resource or service. Select the global Object Store connector element that you just created.

    Operation

    Select Store from the drop-down menu.

    General

    Key

    The identifier of the object to store.

    Value Reference

    The object to store.

  6. Save your configurations.

Example Use Case

After installing and configuring the Object Store connector, use it in a Mule flow to store and retrieve employee data.

The following Mule App stores employee data containing employee identifier, first name, last name and age in JSON format using the Object Store connector. The Mule app has two HTTP endpoints.

  • /store: Used to store employee data

  • /retrieve: Get employee data for the identifier mentioned.

Store and Retrieve Employee data

Let’s start with the flow to store employee data.

  1. Create a new Mule Project in Anypoint Studio.

  2. Drag a HTTP connector onto the canvas and configure the following parameters:

    objectstore http config props for store endpoint
    Parameter Value

    Display Name

    HTTP

    Connector Configuration

    If no HTTP element has been created yet, click the plus sign to add a new HTTP Listener Configuration and click OK (leave the values to its defaults).

    Path

    /store

  3. Next, drag the Object Store connector next to the Transform Message component and configure it according to the steps below:

  4. Click the plus sign next to the Connector Configuration field to add a new Object Store Global Element.

  5. Configure the global element according to the table below:

    Parameter Description Value

    Name

    Enter a name for the configuration to reference it.

    <Configuration_Name>

    Partition

    Name of the partition

    employees

  6. The corresponding XML configuration should be as follows:

    <objectstore:config name="ObjectStore__Configuration" partition="employees" doc:name="ObjectStore: Configuration"/>
  7. Back in the properties editor of the Object Store connector, configure the remaining parameters:

    Parameter Value

    Basic Settings:

    Display Name

    Store employee (or any other name you prefer).

    Connector Configuration

    ObjectStore__Configuration (the reference name to the global element you have created).

    Operation

    Store

    General:

    Key

    #[message.inboundProperties.'http.query.params'.id]

    Value Reference

    #[payload]

  8. Check that your XML looks as follows:

    <objectstore:store config-ref="ObjectStore__Configuration" key="#[message.inboundProperties.'http.query.params'.id]" value-ref="#[payload]" doc:name="Store employee"/>
  9. Similarly, drag another Object Store connector to get all keys from Store.

  10. Configure the properties editor accordingly to the table below:

    Parameter Value

    Basic Settings:

    Display Name

    Get all keys (or any other name you prefer).

    Connector Configuration

    ObjectStore__Configuration (the reference name to the global element you have created).

    Operation

    All keys

  11. Check that your XML looks as follows:

    <objectstore:retrieve-all-keys config-ref="ObjectStore__Configuration" doc:name="Get all keys"/>
  12. Add a Logger scope after the Object Store connector to print the data that is being passed by the All keys operation in the Mule Console. Configure the Logger according to the table below.

    Parameter Value

    Display Name

    Log Employee IDs (or any other name you prefer)

    Message

    Keys : #[payload]

    Level

    INFO

  13. Add a Set Payload after the logger component. Configure the component according to the table below.

    Parameter Value

    Display Name

    Show Employee IDs (or any other name you prefer)

    Message

    Keys : #[payload]

    Level

    INFO

Now lets add another flow to retrieve employee data stored previously.

  1. Drag a Flow Component below the above flow.

  2. Drag a HTTP connector onto the canvas and configure the following parameters:

    objectstore http config props for retrieve endpoint
    Parameter Value

    Display Name

    HTTP

    Connector Configuration

    Use the already available configuration .

    Path

    /retrieve

  3. Drag the Object Store connector and configure it according to the steps below:

    Parameter Value

    Basic Settings:

    Display Name

    Store employee (or any other name you prefer).

    Connector Configuration

    ObjectStore__Configuration (the reference name to the global element you have created).

    Operation

    Retrieve

    General:

    Key

    #[message.inboundProperties.'http.query.params'.id]

  4. Check that your XML looks as follows:

    <objectstore:retrieve config-ref="ObjectStore__Configuration" key="#[message.inboundProperties.'http.query.params'.id]" doc:name="Retrieve Employee"/>
  5. Add a Logger scope after the Object Store connector to print the data that is being retrieved in the previous operation to the Mule Console. Configure the Logger according to the table below.

    Parameter Value

    Display Name

    Log Employee data (or any other name you prefer)

    Message

    Keys : #[payload]

    Level

    INFO

  6. Add a Set Payload after the logger component. Configure the component according to the table below.

    Parameter Value

    Display Name

    Show Employee data (or any other name you prefer)

    Message

    Keys : #[payload]

    Level

    INFO

Example Code

Paste this code into your XML Editor to quickly load the flow for this example use case into your Mule application.

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:objectstore="http://www.mulesoft.org/schema/mule/objectstore"
xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/objectstore
http://www.mulesoft.org/schema/mule/objectstore/current/mule-objectstore.xsd
http://www.mulesoft.org/schema/mule/ee/dw
http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/ee/tracking
http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
    <objectstore:config name="ObjectStore__Configuration"
      partition="employees"
      doc:name="ObjectStore: Configuration"/>
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0"
    port="8081" doc:name="HTTP Listener Configuration"/>
    <flow name="objectstore-store-employee-flow">
        <http:listener config-ref="HTTP_Listener_Configuration"
	  path="/store" doc:name="HTTP"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
		id: inboundProperties.'http.query.params'.id,
		name: inboundProperties.'http.query.params'.name,
		lname: inboundProperties.'http.query.params'.lname,
		age: inboundProperties.'http.query.params'.age
}]]></dw:set-payload>
        </dw:transform-message>
        <objectstore:store config-ref="ObjectStore__Configuration"
	key="#[message.inboundProperties.'http.query.params'.id]"
	value-ref="#[payload]" doc:name="Store employee"/>
        <objectstore:retrieve-all-keys config-ref="ObjectStore__Configuration" doc:name="Get all keys"/>
        <logger message="Keys : #[payload]" level="INFO" doc:name="Log Employee Id's"/>
        <set-payload value="Keys : #[payload]" doc:name="Show Employee Id's"/>
    </flow>
    <flow name="objectstore-retrieve-employee-flow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/retrieve" doc:name="HTTP"/>
        <objectstore:retrieve config-ref="ObjectStore__Configuration"
	key="#[message.inboundProperties.'http.query.params'.id]" doc:name="Retrieve Employee"/>
        <logger message="Employee: #[payload]" level="INFO" doc:name="Log Employee"/>
        <set-payload value="Employee : #[payload]" doc:name="Show Employee"/>
    </flow>
</mule>

Run Time

  1. Save and run the project as a Mule Application.

  2. Open a web browser and enter a URL to check the response.

    To store a employee record enter the URL:

    http://localhost:8081/store?id=1&name=David&lname=Malhar&age=10.

    To retrieve a employee record enter the URL:

    http://localhost:8081/retrieve?id=1

    The logger displays the employee record in JSON format in the browser.

  • The object store throws an exception when an attempt is made to overwrite an existing key; this is expected behavior. The object store throws an exception when an attempt to read is made using a key that does not exist in the object store; this too is expected; this is also expected behavior.

  • This example uses a simple in-memory store; to clear the contents of this store, restart Mule runtime.

Object Store Connector Reference

Generic module for accessing Object Stores.

This can be used with Mule default implementations or one can be passed via ref. It allows you to store, retrieve, and remove objects from the store.

Additional Info:

  • Requires Mule Enterprise License

  • Does not require an entitlement

  • Mule Version: 3.6.0 or higher

Connector Configuration

<objectstore:config>

Configuration Object Store global configuration settings.

Attribute Description

name

The name of this configuration for later reference.

Type: String
Default: None
Required: Yes

partition

Name of the partition. If set, and a partitionable object store is specified in the objectstore-ref attribute, the partition name is used. Otherwise, the partition name is ignored.

This means that:

* If you define an objectstore-ref and the object store is partitionable, the connector uses the partition name. * If you define an objectstore-ref and the object store is NOT partitionable, the connector ignores the partition name. * If you don’t define an objectstore-ref, but supply a partition name, the connector applies the partition name to the default object store.

Type: String
Default: None
Required: No

persistent

Specified whenever the required store needs to be persistent or not (this argument has no meaning if the object store is passed by ref using objectStore-ref or no partition name is defined).

Type: Boolean
Default: false
Required: No

objectStore

Reference to an Object Store bean. This is optional and if it is not specified, the default in-memory or persistent store is used.

Type: ObjectStore<Serializable>
Default: None
Required: No

entryTtl

Time to live for stored values in milliseconds. The maxEntries and expirationInterval attributes are required when using this parameter. Valid values: 0 for never expires, values greater than 0 expire in milliseconds.

Type: Integer
Default: None
Required: No

maxEntries

Specifies the maximum number of entries. The entryTTL and expirationInterval attributes are required when using this parameter. Valid values: 0 for unlimited, values greater than 0 are the maximum number of entries - after this number an exception is thrown.

Type: Integer
Default: None
Required: No

expirationInterval

Specifies the expiration check interval in milliseconds. The entryTTL and maxEntries attributes are required when using this parameter.

Type: Integer
Default: None
Required: No

Contains Processor

<objectstore:contains>

Checks whether the object store contains the given key.

XML Sample:

<objectstore:contains key="MUL0001" config-ref="config-name"/>

Attribute Description

config-ref

Specifies which configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to validate.

Type: String
Default: None
Required: Yes

Returns:

Java Type Description

Boolean

True if the object store contains the key, or false if it doesn’t.

Dispose Store Processor

<objectstore:dispose-store>

Removes a given partition without disposing the entirely Object Store. Whether using a persistent store or not, internally, this operation performs a clear() of the items, so a user should still be able perform other operations. For persistent stores, this operation only deletes the contents of the folder but not the folder itself.

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

partitionName

The name of the object store.

Type: String
Default: #[payload]
Required: No

Dual Store Processor

<objectstore:dual-store>

Stores a value using key and also stores a key using value. If an exception is thrown rolls back both operations. This allows an option to indicate if key would be overwritten or not.

XML Sample:

<objectstore:dual-store key="MUL0001" value-ref="#[string:Jason Goldfish]" config-ref="config-name"/>

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to store.

Type: String
Default: None
Required: Yes

value

The object to store. If you want this to be the payload, use value-ref="#[payload]".

Type: Serializable
Default: None
Required: Yes

overwrite

True if you want to overwrite the existing object.

Type: Boolean
Default: false
Required: No

Remove Processor

<objectstore:remove>

Remove the object for the respective key. This operation can fail silently based on the value passed in ignoreNotExists.

XML Sample:

<objectstore:remove key="MUL0001" config-ref="config-name"/>

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to remove.

Type: String
Default: None
Required: Yes

ignoreNotExists

Indicates whether or not the operation ignores NotExistsException from ObjectStore.

Type: Boolean
Default: false
Required: No

Returns:

Java Type Description

Serializable

The object that was previously stored for the given key. If the key does not exist and ignoreNotExists is true, the operation returns a null object.

Retrieve Processor

<objectstore:retrieve>

Retrieve an object from the object store and make it available in the specified property scope of a Mule Message.

XML Sample:

<objectstore:retrieve key="MUL0001" defaultValue-ref="#[string:MuleSoft Employee]" config-ref="config-name"/>

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to retrieve.

Type: String
Default: None
Required: Yes

defaultValue

The default value if the key does not exist.

Type: Serializable
Default: None
Required: No

targetProperty

The Mule Message property where the retrieved value is stored.

Type: String
Default: None
Required: No

targetScope

The Mule Message property scope, only used when targetProperty is specified.

Type: MulePropertyScope Enum
Default: INVOCATION
Required: No

Returns:

Java Type Description

Serializable

The object associated with the given key. If no object for the given key was found this method throws an ObjectDoesNotExistException.

Retrieve All Keys Processor

<objectstore:retrieve-all-keys>

Returns a list of all the keys in the object store.

Not all stores support this method. If the method is not supported, a java.lang.UnsupportedOperationException is thrown.
Attribute Description

config-ref

Specify which config to use.

Type: String
Default: None
Required: Yes

Returns:

Java Type Description

List<String>

A java.util.List with all the keys in the store.

Retrieve and Store Processor

<objectstore:retrieve-and-store>

Retrieves and stores in the same operation.

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to retrieve.

Type: String
Default: None
Required: Yes

defaultValue

The default value if the key does not exist.

Type: Serializable
Default: None
Required: No

storeValue

The object to store. If you want this to be the payload, use value-ref="#[payload]".

Type: Serializable
Default: None
Required: Yes

targetProperty

The Mule Message property where the retrieved value is stored.

Type: String
Default: None
Required: No

targetScope

The Mule Message property scope, only used when targetProperty is specified.

Type: MulePropertyScope Enum
Default: INVOCATION
Required: No

Returns:

Java Type Description

Serializable

The object associated with the given key. If no object for the given key was found this method throws an ObjectDoesNotExistException.

Store Processor

<objectstore:store>

Stores an object in the object store. This allows an option to indicate if key would be overwritten or not.

XML Sample:

<objectstore:store key="MUL0001" value-ref="#[string:Jason Goldie]" config-ref="config-name"/>

Attribute Description

config-ref

Specifies with configuration to use.

Type: String
Default: None
Required: Yes

key

The identifier of the object to store.

Type: String
Default: None
Required: Yes

value

The object to store. If you want this to be the payload, use value-ref="#[payload]".

Type: Serializable
Default: None
Required: Yes

overwrite

True if you want to overwrite the existing object.

Type: Boolean
Default: false
Required: No

MulePropertyScope Enum

java.lang.Object
      java.lang.Enum<MulePropertyScope>
            org.mule.modules.objectstore.MulePropertyScope

All Implemented Interfaces:

Serializable, Comparable<MulePropertyScope>

public enum MulePropertyScope
extends Enum<MulePropertyScope>

Enum for Mule Property Scopes used for improving the user experience in Anypoint Studio.

Enum Constant Summary:

  • INBOUND

  • INVOCATION

  • OUTBOUND

  • SESSION

Method Summary:

Modifier and Type Method and Description

String

toString()

String

value()

static MulePropertyScope

valueOf(String name)

Returns the enum constant of this type with the specified name.

static MulePropertyScope[]

values()

Returns an array containing the constants of this enum type, in the order they are declared.

Methods inherited from class java.lang.Enum: clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf

Methods inherited from class java.lang.Object: getClass, notify, notifyAll, wait, wait, wait

Enum Constant Detail:

Enum Detail

INBOUND

public static final MulePropertyScope INBOUND

INVOCATION

public static final MulePropertyScope INVOCATION

OUTBOUND

public static final MulePropertyScope OUTBOUND

SESSION

public static final MulePropertyScope SESSION

values Method Detail

public static MulePropertyScope[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

for (MulePropertyScope c : MulePropertyScope.values())
    System.out.println(c);

Returns:

An array containing the constants of this enum type, in the order they are declared.

valueOf Method Detail

public static MulePropertyScope valueOf(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. Extraneous whitespace characters are not permitted.

Parameters: name - The name of the enum constant to be returned.
Returns: The enum constant with the specified name.
Throws:
IllegalArgumentException - If this enum type has no constant with the specified. name
NullPointerException - If the argument is null.

Value Method Detail

public String value()

toString Method Detail

public String toString()

Overrides:

toString in class Enum<MulePropertyScope>