+Abstract class AcElementListenerV1
+----------------------------------
+This abstract class is introduced to help to maintain the java backward compatibility with AutomationCompositionElementListener implemented in 7.1.0 version.
+So developers can decide to align to new functionality later. Any new functionality in the future will be wrapped by this class.
+
+The Abstract class AcElementListenerV1 supports the follow methods.
+
+.. code-block:: java
+
+ 1. void undeploy(UUID instanceId, UUID elementId) throws PfModelException;
+ 2. void deploy(UUID instanceId, AcElementDeploy element, Map<String, Object> inProperties) throws PfModelException;
+ 3. void lock(UUID instanceId, UUID elementId) throws PfModelException;
+ 4. void unlock(UUID instanceId, UUID elementId) throws PfModelException;
+ 5. void delete(UUID instanceId, UUID elementId) throws PfModelException;
+ 6. void update(UUID instanceId, AcElementDeploy element, Map<String, Object> inProperties) throws PfModelException;
+ 7. void prime(UUID compositionId, List<AutomationCompositionElementDefinition> elementDefinitionList) throws PfModelException;
+ 8. void deprime(UUID compositionId) throws PfModelException;
+ 9. void handleRestartComposition(UUID compositionId, List<AutomationCompositionElementDefinition> elementDefinitionList, AcTypeState state) throws PfModelException;
+ 10. void handleRestartInstance(UUID instanceId, AcElementDeploy element, Map<String, Object> properties, DeployState deployState, LockState lockState) throws PfModelException;
+ 11. void migrate(UUID instanceId, AcElementDeploy element, UUID compositionTargetId, Map<String, Object> properties) throws PfModelException;
+
+**Note**: this class needs intermediaryApi and it should be passed by constructor. It is declared as protected and can be used.
+Default implementation are supported for the methods: lock, unlock, update, migrate, delete, prime, deprime, handleRestartComposition and handleRestartInstance.
+
+Un example of AutomationCompositionElementHandler implemented in 7.1.0 version and how to use AcElementListenerV1 abstract class:
+
+.. code-block:: java
+
+ @Component
+ @RequiredArgsConstructor
+ public class AutomationCompositionElementHandler implements AutomationCompositionElementListener {
+
+ private final ParticipantIntermediaryApi intermediaryApi;
+ private final otherService otherService;
+ ..............................
+ }
+
+ @Component
+ public class AutomationCompositionElementHandler extends AcElementListenerV1 {
+
+ private final OtherService otherService;
+
+ public AutomationCompositionElementHandler(ParticipantIntermediaryApi intermediaryApi, OtherService otherService) {
+ super(intermediaryApi);
+ this.otherService = otherService;
+ }
+ ..............................
+ }
+
+
+
+A second example:
+
+.. code-block:: java
+
+ @Component
+ public class AutomationCompositionElementHandler implements AutomationCompositionElementListener {
+
+ @Autowired
+ private ParticipantIntermediaryApi intermediaryApi;
+
+ @Autowired
+ private otherService otherService;
+ ..............................
+ }
+
+ @Component
+ public class AutomationCompositionElementHandler extends AcElementListenerV1 {
+
+ @Autowired
+ private otherService otherService;
+
+ public AutomationCompositionElementHandler(ParticipantIntermediaryApi intermediaryApi) {
+ super(intermediaryApi);
+ }
+ ..............................
+ }
+
+Abstract class AcElementListenerV2
+----------------------------------
+This abstract class is introduced to help to maintain the java backward compatibility with AutomationCompositionElementListener from new releases.
+Any new functionality in the future will be wrapped by this class.
+
+**Note**: this class needs intermediaryApi and it should be passed by constructor. It is declared as protected and can be used.
+Default implementation are supported for the methods: lock, unlock, update, migrate, delete, prime, deprime, handleRestartComposition and handleRestartInstance.
+