meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
sap_hybris_commerce:development_process:systemsetup_annotation_when_methods_run [2020/04/10 11:46] – per extension Antonio Robirosa | sap_hybris_commerce:development_process:systemsetup_annotation_when_methods_run [2020/04/10 14:03] (current) – Document the hybris classes Antonio Robirosa | ||
---|---|---|---|
Line 3: | Line 3: | ||
The SystemSetup annotation is used to run import data, synchronize catalogues, migrate CMS components and execute Java code during **every** project or essential data creation step. | The SystemSetup annotation is used to run import data, synchronize catalogues, migrate CMS components and execute Java code during **every** project or essential data creation step. | ||
- | **In past versions | + | **In all hybris version up to 1905 the essential and project data steps aren't run during the initialization of the junit tenant.** This prevents |
^SystemSetup.Process^INIT^^^UPDATE^^^ALL^^^.^ | ^SystemSetup.Process^INIT^^^UPDATE^^^ALL^^^.^ | ||
^SystemSetup.Type^ESSENTIAL^PROJECT^ALL^ESSENTIAL^PROJECT^ALL^ESSENTIAL^PROJECT^ALL^What Hybris impexes are imported?^ | ^SystemSetup.Type^ESSENTIAL^PROJECT^ALL^ESSENTIAL^PROJECT^ALL^ESSENTIAL^PROJECT^ALL^What Hybris impexes are imported?^ | ||
- | ^ant initialize -Dtenant=master|Called once with process INIT and type ESSENTIAL | + | ^ant initialize -Dtenant=master|Called once with process INIT and type ESSENTIAL|Called once with process INIT and type PROJECT|Called twice with process INIT and type ESSENTIAL \\ and with process INIT and type PROJECT|No call|||Called once with process INIT and type ESSENTIAL|Called once with process INIT and type PROJECT|Called twice with process INIT and type ESSENTIAL \\ and with process INIT and type PROJECT|Project and essential scripts| |
- | ^ant initialize -Dtenant=junit|No call|||||||||: | + | ^ant initialize -Dtenant=junit|:!: No call|||||||||: |
- | ^ant yunitinit|No call|||||||||: | + | ^ant yunitinit|:!: No call|||||||||: |
- | ^ant updatesystem -Dtenant=master((with a JSON configuration to run the project data))|No call|||Called once with process UPDATE and type ESSENTIAL | + | ^ant updatesystem -Dtenant=master((with a JSON configuration to run the project data))|No call|||Called once with process UPDATE and type ESSENTIAL|Called once with process UPDATE and type PROJECT|Called twice with process UPDATE and type ESSENTIAL and with process UPDATE and type PROJECT|Called once with process UPDATE and type ESSENTIAL|Called once with process UPDATE and type PROJECT|Called twice with process INIT and type ESSENTIAL and with process INIT and type PROJECT|Project and essential scripts| |
- | ^ant updatesystem -Dtenant=junit((with a JSON configuration to run the project data))|1|2|3|4|5|6|7|8|9| | + | ^ant updatesystem -Dtenant=junit((with a JSON configuration to run the project data))|:!: No call|||||||||:!: None| |
+ | ^ant yunitupdate|: | ||
- | When @SystemSetup(extension = ArecosystemsetuptestConstants.EXTENSIONNAME), | + | When @SystemSetup(extension = ArecosystemsetuptestConstants.EXTENSIONNAME), |
+ | When @SystemSetup(extension = " | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Because | + | Because |
</ | </ | ||
+ | ===== Cause of this behaviour ===== | ||
+ | |||
+ | The method de.hybris.ant.taskdefs.InitPlatformAntPerformableImpl# | ||
===== Test description ===== | ===== Test description ===== | ||
- | I created a new extension based on the templa yempty and added the property | + | I created a new extension based on the templa yempty and added the property |
<code java> | <code java> | ||
- | @SystemSetup(extension = " | + | @SystemSetup(extension = ArecosystemsetuptestConstants.EXTENSIONNAME) |
public class SystemSetupAnnotationCallsTest { | public class SystemSetupAnnotationCallsTest { | ||
</ | </ | ||
Line 32: | Line 37: | ||
} | } | ||
</ | </ | ||
- | <WRAP center round important | + | <WRAP center round important |
To make hybris call the methods, I had to create a bean definition in the spring application context. Autowiring without the XML bean definition wasn't working. | To make hybris call the methods, I had to create a bean definition in the spring application context. Autowiring without the XML bean definition wasn't working. | ||
</ | </ | ||
+ | <code xml> | ||
+ | <bean id=" | ||
+ | </ | ||
- | I ran all ant commands | + | |
- | < | + | I created a JSON configuration for the update running system which runs the create project data step: {{ : |
+ | I ran the following | ||
+ | < | ||
+ | rm -rf hybris/ | ||
+ | ant clean all | ||
ant initialize -Dtenant=master | tee initializeMaster.log | grep SystemSetupAnnotationCallsTest | ant initialize -Dtenant=master | tee initializeMaster.log | grep SystemSetupAnnotationCallsTest | ||
+ | ant initialize -Dtenant=junit | tee initializeJunit.log | grep SystemSetupAnnotationCallsTest | ||
+ | ant yunitinit | tee yunitinit.log | grep SystemSetupAnnotationCallsTest | ||
+ | ant updatesystem -Dtenant=master -DconfigFile=/ | ||
+ | ant updatesystem -Dtenant=yunit -DconfigFile=/ | ||
+ | ant yunitupdate -DconfigFile=/ | ||
</ | </ | ||
+ | |||
+ | Source code: {{ : | ||
-- Based on SAP hybris 1905 | -- Based on SAP hybris 1905 | ||