meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sap_hybris_commerce:development_process:systemsetup_annotation_when_methods_run [2020/04/10 12:24] – All bash commands Antonio Robirosasap_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 all hybris version up to 1905 the essential and project data steps aren't run during the initialization of the junit tenant.** This prevented the import of common test data for complex integration tests if you weren't using the [[https://github.com/arobirosa/areco-deployment-script-manager|Areco deployment script manager]] as patch system. To get an updated picture of the current situation, I ran a test on the latest SAP hybris version 1905 and here are the results are the same as with old 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 the import of common test data for complex integration tests if you weren't using the [[https://github.com/arobirosa/areco-deployment-script-manager|Areco deployment script manager]] as patch system. To get an updated picture of the current situation, I ran a test on the latest SAP hybris version 1905 and here are the results are the same as with old versions:
  
 ^SystemSetup.Process^INIT^^^UPDATE^^^ALL^^^.^ ^SystemSetup.Process^INIT^^^UPDATE^^^ALL^^^.^
Line 18: Line 18:
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-Because the mayority of the SAP hybris projects use Jenkins and **ant targets** to deploy, update system and initialization using HAC wasn't tested.+Because the majority of the SAP hybris projects use Jenkins and **ant targets** to deploy, update system and initialization using HAC wasn't tested.
 </WRAP> </WRAP>
 +===== Cause of this behaviour =====
 +
 +The method de.hybris.ant.taskdefs.InitPlatformAntPerformableImpl#performImpl checks if the current tenant is named **junit** and runs an initialization without essential and project data. This also happens with the update system. Please see the code of UpdatePlatformAntPerformableImpl.
  
 ===== Test description ===== ===== Test description =====
-I created a new extension based on the templa yempty and added the property **initialpassword.admin=nimda** to the local.properies. Then I created a class for the test and annotated at class level with:+I created a new extension based on the templa yempty and added the property **initialpassword.admin=nimda** to the local.properies. Then I created a {{ :sap_hybris_commerce:development_process:systemsetupannotationcallstest.java | class for the test}} and annotated at class level with:
 <code java> <code java>
 @SystemSetup(extension = ArecosystemsetuptestConstants.EXTENSIONNAME) @SystemSetup(extension = ArecosystemsetuptestConstants.EXTENSIONNAME)
Line 34: Line 37:
 } }
 </code> </code>
-<WRAP center round important 100%>+<WRAP center round important 60%>
 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.
 +</WRAP>
 <code xml> <code xml>
     <bean id="systemSetupAnnotationCallsTest" class="org.areco.ecommerce.tests.systemsetup.setup.SystemSetupAnnotationCallsTest" />     <bean id="systemSetupAnnotationCallsTest" class="org.areco.ecommerce.tests.systemsetup.setup.SystemSetupAnnotationCallsTest" />
 </code> </code>
-</WRAP> 
  
  
 +I created a JSON configuration for the update running system which runs the create project data step: {{ :sap_hybris_commerce:development_process:updatesystemconfigfile.json | updatesystemconfigfile.json}} \\
 I ran the following commands and I analysed the log afterwards: I ran the following commands and I analysed the log afterwards:
 <code bash> <code bash>
Line 54: Line 58:
 </code> </code>
  
-Source code: +Source code: {{ :sap_hybris_commerce:development_process:systemsetupannotationcallstest.java | SystemSetupAnnotationCallsTest.java}} {{ :sap_hybris_commerce:development_process:updatesystemconfigfile.json | updatesystemconfigfile.json}}
  
 -- Based on SAP hybris 1905 -- Based on SAP hybris 1905