anchor.diff:      }
   }
   ----
  -Note that we have added the `componentsHandler` attribute which will be injected by TCK to our test. This component handler
  -gives us access to the collected data.
  -
  -In `sourceTest` method we have instantiated the configuration of the source and fill it we the configuration of our hazelcast
  -test instance created before to let the source connect to it.
  -The Job API provide a simple way to build a DAG (directed acyclic graph) job using Talend components and then run it on
  -a specific runner (standalone, beam or spark). in this test we will first start using only the default runner which is the
  -standalone one.
  -
  -the `configurationByExample()` method create the `ByExample` factory which provide a simple way to convert the configuration
  -instance to an URI configuration that can be used with the Job API to configure the component correctly.
  -
  -At the end we run the job and check that the collected data size is equals to the initialized test data.
  -
  -Execute the unit test and check that it's passing. So our source is reading the data correctly from hazelcast.
  +<1> The `componentsHandler` attribute is injected to the test by TCK. This component handler gives access to the collected data.
  +<2> The `sourceTest` method instantiates the configuration of the Source and fills it with the configuration of the Hazelcast test instance created before to let the Source connect to it. +
  +The Job API provides a simple way to build a DAG (Directed Acyclic Graph) Job using Talend components and then runs it on a specific runner (standalone, Beam or Spark). This test starts using the default runner only, which is the standalone one.
  +<3> The `configurationByExample()` method creates the `ByExample` factory. It provides a simple way to convert the configuration instance to an URI configuration used with the Job API to configure the component.
  +<4> The job runs and checks that the collected data size is equal to the initialized test data.
  +. Execute the unit test and check that it passes, meaning that the Source is reading the data correctly from Hazelcast.
  ++
   ```
   $ mvn clean test
   ```
   
  -____
  -By that, our simple source is completed and tested. In the next section we will implement a the partition mapper for the source
  -which will be responsible of spiting the work (data reading) corresponding to the available cluster members to distribute
  -the work load.
  -____
  +The Source is now completed and tested. The next section shows how to implement the Partition Mapper for the Source. In this case, the Partition Mapper will split the work (data reading) between the available cluster members to distribute the workload.
   
   === Partition Mapper
  -The partition mapper will be responsible of calculating the number of Source that can be created and executed in parallel
  -on different available worker in a distributed system. (in hazelcast it will corresponds to the  cluster members counts)
  -
  -So, le's evolve our test environment to add more hazelcast members and initialize it with more data.
  -
  -For that, we will need to instantiate more hazelcast instance as every hazelcast instance correspond to one member
  -in a cluster. In our test this can be done as the following:
  +The Partition Mapper calculates the number of Sources that can be created and executed in parallel on the available workers of a distributed system. For Hazelcast, it corresponds to the cluster member count.
  +
  +To fully illustrate this concept, this section also shows how to enhance the test environment to add more Hazelcast cluster members and initialize it with more data.
  +
  +. Instantiate more Hazelcast instances, as every Hazelcast instance corresponds to one member in a cluster. In the test, it is reflected as follows:
  ++
   [source,java,indent=0,subs="verbatim,quotes,attributes"]
   ----
   package org.talend.components.hazelcast;
  
positive.code: 
      @Producer
      public Record next() {
          // provide a record every time it called. return null if there is no more data
          if (mapIterator == null) {
              // Get the Distributed Map from Cluster.
              IMap<String, String> map = hazelcastInstance.getMap(dataset.getMapName());
              mapIterator = map.entrySet().iterator();
          }
  
negative.code:     private static HazelcastInstance hazelcastInstance;
  
      @Injected
      protected BaseComponentsHandler componentsHandler; <1>
  
      @BeforeAll
      static void init() {
  