User Tools

Site Tools


airs_ci-408

AIRS_CI-408 Preventive Action 7.1 - Architecture Rule

AIRS_CI-408 Preventive Action 7.1 - Architecture Rule

Commit from Stefan, which defines architectural rules.

Commit from Burkhard, which reverts Commit from Stefan (because of a startup failure).

AIRS_CI-395 AIRS Escalation finding: Refactor CDI Beans to stateless beans

ArchUnit Documentation

ArchUnit Examples

Change in Gerrit (First Change in Gerrit) (Cherry Pick of Burkhard to release/rel_20)

Task Description
Implement architectural rule to ensure that concurrent import processes do not operate on shared memory.

Acceptance Criteria
An architectural rule has to be implemented:

  • The rule is implemented as static JUnit test
  • The rule checks for state in CDI beans
  • If the rule detects a violation, the complete build process must fail and report an error

Burkhard

  • the test is already existing (CDIandEJBArchitectureTest.beansMustNotHaveAnyState)
  • the goal is to refactor all classes which were excepted fromm this test

Refactor beans

  • - Refactor beans
    • - ConcessionCreateXMLHandler.class
      • - is not stateless as it keeps state in field cfg
      • - is not stateless as it keeps state in field currentCtrlArea
      • - is not stateless as it keeps state in field doc
      • - is not stateless as it keeps state in field isAirbusConcession
      • - is not stateless as it keeps state in field manager
      • - is not stateless as it keeps state in field mimeMessageImportProcessor
      • - is not stateless as it keeps state in field nCreationTimeStamp
      • - is not stateless as it keeps state in field nReceivingTimeStamp
      • - is not stateless as it keeps state in field ncrHeader
      • - is not stateless as it keeps state in field ncrPositions
      • - is not stateless as it keeps state in field procResult
      • - is not stateless as it keeps state in field props
      • - is not stateless as it keeps state in field protoNCRHeader
      • - is not stateless as it keeps state in field sExternalMessageId
      • - is not stateless as it keeps state in field sInternalMessageId
      • - is not stateless as it keeps state in field sReceiverInfo
      • - is not stateless as it keeps state in field sSenderInfo
      • - is not stateless as it keeps state in field sStatus
    • - NCRResponseXMLHandler
      • - is not stateless as it keeps state in field cfg
      • - is not stateless as it keeps state in field currentCtrlArea
      • - is not stateless as it keeps state in field doc
      • - is not stateless as it keeps state in field manager
      • - is not stateless as it keeps state in field mimeMessageImportProcessor
      • - is not stateless as it keeps state in field nCreationTimeStamp
      • - is not stateless as it keeps state in field nReceivingTimeStamp
      • - is not stateless as it keeps state in field ncrHeader
      • - is not stateless as it keeps state in field ncrPositions
      • - is not stateless as it keeps state in field procResult
      • - is not stateless as it keeps state in field props
      • - is not stateless as it keeps state in field sExternalMessageId
      • - is not stateless as it keeps state in field sInternalMessageId
      • - is not stateless as it keeps state in field sReceiverInfo
      • - is not stateless as it keeps state in field sSenderInfo
      • - is not stateless as it keeps state in field sStatus
    • - NcrQualityReportXmlHandler
      • - is not stateless as it keeps state in field includedAttachments
      • - is not stateless as it keeps state in field mimeHandlerMessageFormat
      • - is not stateless as it keeps state in field portalGroup
      • - is not stateless as it keeps state in field xmlDoc
    • - NcrQualityReportJob
      • - is not stateless as it keeps state in field stopped
    • - POFinalizerJob
      • - is not stateless as it keeps state in field bJobStopped
    • - POCustomerImportCSV
      • - is not stateless as it keeps state in field bCollabProcessed
      • - is not stateless as it keeps state in field changeVerifier
      • - is not stateless as it keeps state in field dbData
      • - is not stateless as it keeps state in field importData
      • - is not stateless as it keeps state in field userContext
    • - POCustomerImportXML
      • - is not stateless as it keeps state in field bCollabProcessed
      • - is not stateless as it keeps state in field changeVerifier
      • - is not stateless as it keeps state in field dbData
      • - is not stateless as it keeps state in field importData
      • - is not stateless as it keeps state in field userContext
    • - POSupplierImportCSV
      • - is not stateless as it keeps state in field bCollabProcessed
      • - is not stateless as it keeps state in field changeVerifier
      • - is not stateless as it keeps state in field dbData
      • - is not stateless as it keeps state in field importData
      • - is not stateless as it keeps state in field userContext
    • - POSupplierImportXML
      • - is not stateless as it keeps state in field bCollabProcessed
      • - is not stateless as it keeps state in field changeVerifier
      • - is not stateless as it keeps state in field dbData
      • - is not stateless as it keeps state in field importData
      • - is not stateless as it keeps state in field userContext
    • + EquipmentProcessDefinition
    • + NoeProcessDefinition
    • + NonAirbusProcessDefinition
    • + StandardPartProcessDefinition

Commit from Stefan

  • @ArchTest
    • airsupply/src/java-test/com/seeburger/airsupply/CDIandEJBArchitectureTest.java
  • Changed interface of class AbstractAlertCSVDownload (methods return void now)
    • airsupply-base/src/java/com/seeburger/airsupply/alertmon/control/AbstractAlertCSVDownload.java
    • airsupply/src/java-test/com/seeburger/airsupply/alertmon/control/ConcessionAlertCSVDownloadScreenTest.java
    • airsupply/src/java-test/com/seeburger/airsupply/alertmon/control/NOEAlertCSVDownloadScreenTest.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/ConcessionAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/ForecastAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/MDAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/NOEAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/POAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/SBIAlertCSVDownloadScreen.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/VMIAlertCSVDownloadScreen.java
  • Removed init() / super.init()
    • airsupply/src/java/com/seeburger/airsupply/ncr/manager/ConcessionNCRManagerEJB.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/manager/NOENCRManagerEJB.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/manager/NCRManagerEJB.java (removed init() )
  • Set @ApplicationScoped
    • airsupply/src/java/com/seeburger/airsupply/ncr/alertmon/NCRAlertMonitorConnector.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/BasicProcessDefinitionDeterminator.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/ConcessionTemplateDownloadScreenInfo.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NCRAttachmentCheckCreateRight.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NcrPrintActionScreenUtil.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NCRRedirectURL.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NCRRightFilterFactory.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NCRRightsCheck.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/control/NoeTemplateDownloadScreenInfo.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/exchange/NCRXMLImportUtil.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/manager/processes/AgnosticFieldDefinitions.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/shared/util/NCRCustomerConfigTypeProvider.java
  • Made class public
    • airsupply/src/java/com/seeburger/airsupply/po/manager/importprocessor/POCustomerImportCSV.java
    • airsupply/src/java/com/seeburger/airsupply/po/manager/importprocessor/POCustomerImportXML.java
    • airsupply/src/java/com/seeburger/airsupply/po/manager/importprocessor/POSupplierImportCSV.java
    • airsupply/src/java/com/seeburger/airsupply/po/manager/importprocessor/POSupplierImportXML.java
  • Misc
    • airsupply-base/src/java/com/seeburger/airsupply/alertmon/manager/SASAlertManagerEJB.java
    • airsupply/src/java/com/seeburger/airsupply/alertmon/control/ConcessionAlertOverviewScreen.java
    • airsupply/src/java/com/seeburger/airsupply/ncr/exchange/qualityreport/NcrQualityReportXmlHandler.java
airs_ci-408.txt · Last modified: by kalaschnikow