magicMethod is used in the integration plugin to dynamically update the values at
runtime. It is a useful functionality to manipulate the value of mapping attributes. magicMethod
converts value to the desired size-format before transferring to the target side. Based on
requirements, you can customize the magic method.
To configure magicMethod, complete the following procedure.
-
Create a Java function for your requirement, and define an appropriate method name. Following
example shows a basic code:
public static <returntype> methodName(String origValue){
return <manipulatedValue>;
}
-
Open the <Integration
Plugin>/resources/config/magicMethod/MagicMethod.txt file.
-
Copy the Java code that you have created and paste it in the MagicMethod.txt file.
-
In the <CI>.xml file, do the following:
-
Replace the magicMetod element value with the method name of the Java code. The following
example shows a few lines from the <CI>.Xml file:
<srcAttribute name="MemorySize" type="Long">
<targetAttribute>ram</targetAttribute>
<defaultValue></defaultValue>
<magicMethod>convertToMB</magicMethod>
</srcAttribute>
-
Make sure that the data type in the [type] attributes is the same as the data type defined in
the Java code.
If you need to pass the complete CI Object in the magic
method, pass “this” keyword in the name attribute as follows:
<srcAttribute name="this" type="Object">
<targetAttribute>attributes</targetAttribute>
<defaultValue></defaultValue>
<magicMethod>pacemakerResourceAttributes</magicMethod>
</srcAttribute>
-
Open the <Integration Plugin>/resources/config/plugin.properties file,
and configure the following properties:
useMagicMethod = true
By default the value is false, but the code executes only if the value is set to true.
Javahome= < Enter the same ibm Java path where the plugin is running/jre >
The following example shows a path:
/opt/IBM/taddm/dist/tools/IntegrationPlugin/IntegrationPlugin/external/jdk-Linux-x86_64/jre
-
Open the <IntegrationPlugin>/lib folder and locate the magic-method.jar
file.
-
Make a backup of the magic-method.jar file, and then delete the magic-method.jar from the lib
directory.
-
Restart the plugin.
The following example shows a Java code that converts the memory value from megabyte to
gigabyte:
“public static float convertMBToGB(Long value){
return value/1024;
}”
In this code, the value parameter denotes the original value received from the source. In the
backend, a magic-method.jar file is created; this jar file converts the value while transferring the
data to the target.
To test the plugin, do the following:
- Check the console.log for successful compilation.
- Check the plugin.log to ensure that magic method has started.
- Check the transform.log to confirm if values are changed according to magicMethod.
Important: Once the execution is complete, set the magicMethod property to false. If you
keep the value as true, each time you start the plugin, the magicMethod compilation starts
automatically in the backend.