Parameter Macros

Parameter Macros

Cache Configuration Deployment Descriptor supports parameter 'macros' to minimize custom coding and enable specification of commonly used attributes when configuring class constructor parameters. The macros should be entered enclosed in curly braces as shown below without any quotes or spaces.

The following parameter macros may be specified:

<param-type> <param-value> Description
java.lang.String {cache-name} Used to pass the current cache name as a constructor parameter

For example:

<class-name>com.mycompany.cache.CustomCacheLoader</class-name>
<init-params>
    <init-param>
        <param-type>java.lang.String</param-type>
        <param-value>{cache-name}</param-value>
    </init-param>
</init-params>

java.lang.ClassLoader {class-loader} Used to pass the current classloader as a constructor parameter.

For example:

<class-name>com.mycompany.cache.CustomCacheLoader</class-name>
<init-params>
    <init-param>
        <param-type>java.lang.ClassLoader</param-type>
        <param-value>{class-loader}</param-value>
    </init-param>
</init-params>

com.tangosol.net.BackingMapManagerContext {manager-context} Used to pass the current BackingMapManagerContext object as a constructor parameter.

For example:

<class-name>com.mycompany.cache.CustomCacheLoader</class-name>
<init-params>
    <init-param>
        <param-type>com.tangosol.net.BackingMapManagerContext</param-type>
        <param-value>{manager-context}</param-value>
    </init-param>
</init-params>

{scheme-ref} scheme name Instantiates an object defined by the <class-scheme>, <local-scheme> or <file-scheme> with the specified <scheme-name> value and uses it as a constructor parameter.

For example:

<class-scheme>
    <scheme-name>dbconnection</scheme-name>
    <class-name>com.mycompany.dbConnection</class-name>
    <init-params>
        <init-param>
            <param-name>driver</param-name>
            <param-type>String</param-type>
            <param-value>org.gjt.mm.mysql.Driver</param-value>
        </init-param>
        <init-param>
            <param-name>url</param-name>
            <param-type>String</param-type>
            <param-value>jdbc:mysql://dbserver:3306/companydb</param-value>
        </init-param>
        <init-param>
            <param-name>user</param-name>
            <param-type>String</param-type>
            <param-value>default</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-type>String</param-type>
            <param-value>default</param-value>
        </init-param>
    </init-params>
</class-scheme>
...
<class-name>com.mycompany.cache.CustomCacheLoader</class-name>
<init-params>
    <init-param>
        <param-type>{scheme-ref}</param-type>
        <param-value>dbconnection</param-value>
    </init-param>
</init-params>