The source code for Implementing Domain-driven Design is annotated below: gitee.com/actual-comb…

  • DDD: Strategic domain drives design
  • DDD: Tactical domain driven design
  • DDD: Domain-driven design and hexagonal architecture
  • DDD: Hexagonal architecture [Onion] — Domain services
  • DDD: Bounded Context and Java modules — domain events
  • DDD: Build aggregations using Spring data
  • DDD: Build the repository using Spring data
  • DDD: Use value objects in JPA
  • DDD: Use value objects as Hibernate’s aggregation identifiers

1. Tree structure of Module

└─com
    └─saasovation
        └─agilepm---------------------------------------------------------<<敏捷项目管理上下文>>
            ├─application------------------------------------------------------------[应用层]
            │  │  ApplicationServiceLifeCycle.java
            │  │  
            │  ├─notification
            │  │      NotificationApplicationService.java
            │  │      
            │  ├─process
            │  │      ProcessApplicationService.java
            │  │      
            │  ├─product
            │  │  │  InitiateDiscussionCommand.java
            │  │  │  NewProductCommand.java
            │  │  │  ProductApplicationService.java
            │  │  │  ProductApplicationService_1_initiateDiscussion_calls.puml
            │  │  │  ProductApplicationService_2_newProduct_calls.puml
            │  │  │  ProductApplicationService_3_newProductWithDiscussion_calls.puml
            │  │  │  ProductApplicationService_4_requestProductDiscussion_calls.puml
            │  │  │  ProductApplicationService_5_retryProductDiscussionRequest_calls.puml
            │  │  │  ProductApplicationService_6_startDiscussionInitiation_calls.puml
            │  │  │  ProductApplicationService_7_timeOutProductDiscussionRequest_calls.puml
            │  │  │  RequestProductDiscussionCommand.java
            │  │  │  RetryProductDiscussionRequestCommand.java
            │  │  │  StartDiscussionInitiationCommand.java
            │  │  │  TimeOutProductDiscussionRequestCommand.java
            │  │  │  
            │  │  └─backlogitem
            │  │          BacklogItemApplicationService.java
            │  │          
            │  ├─sprint
            │  │      CommitBacklogItemToSprintCommand.java
            │  │      SprintApplicationService.java
            │  │      
            │  └─team
            │          ChangeTeamMemberEmailAddressCommand.java
            │          ChangeTeamMemberNameCommand.java
            │          DisableMemberCommand.java
            │          DisableProductOwnerCommand.java
            │          DisableTeamMemberCommand.java
            │          EnableMemberCommand.java
            │          EnableProductOwnerCommand.java
            │          EnableTeamMemberCommand.java
            │          TeamApplicationService.java
            │          
            ├─domain-----------------------------------------------------------------[领域层]
            │  └─model---------------------------------------------------------------模型
            │      │  Entity.java----------------------------------------------------实体(基类)
            │      │  ValueObject.java-----------------------------------------------值对象(基类)
            │      │  
            │      ├─discussion------------------------------------------------------讨论模型
            │      │      DiscussionAvailability.java--------------------------------枚举
            │      │      DiscussionDescriptor.java----------------------------------值对象
            │      │      
            │      ├─product---------------------------------------------------------产品模型
            │      │  │  Product.java------------------------------------------------实体(聚合根)
            │      │  │  ProductBacklogItem.java-------------------------------------实体
            │      │  │  ProductBacklogItemPlanned.java------------------------------领域事件
            │      │  │  ProductCreated.java-----------------------------------------领域事件
            │      │  │  ProductDiscussion.java--------------------------------------值对象
            │      │  │  ProductDiscussionInitiated.java-----------------------------领域事件
            │      │  │  ProductDiscussionRequested.java-----------------------------领域事件
            │      │  │  ProductDiscussionRequestTimedOut.java-----------------------领域事件
            │      │  │  ProductId.java----------------------------------------------值对象
            │      │  │  ProductReleaseScheduled.java--------------------------------领域事件
            │      │  │  ProductRepository.java--------------------------------------存储库接口
            │      │  │  ProductSprintScheduled.java---------------------------------领域事件
            │      │  │  
            │      │  ├─backlogitem--------------------------------------------------待办事项模型
            │      │  │      BacklogItem.java----------------------------------------实体(聚合根)
            │      │  │      BacklogItemCategoryChanged.java-------------------------领域事件
            │      │  │      BacklogItemCommitted.java-------------------------------领域事件
            │      │  │      BacklogItemDiscussion.java------------------------------值对象
            │      │  │      BacklogItemDiscussionInitiated.java---------------------领域事件
            │      │  │      BacklogItemDiscussionRequested.java---------------------领域事件
            │      │  │      BacklogItemId.java--------------------------------------值对象
            │      │  │      BacklogItemMarkedAsRemoved.java-------------------------领域事件
            │      │  │      BacklogItemRepository.java------------------------------存储库接口
            │      │  │      BacklogItemScheduled.java-------------------------------领域事件
            │      │  │      BacklogItemStatus.java----------------------------------枚举
            │      │  │      BacklogItemStatusChanged.java---------------------------领域事件
            │      │  │      BacklogItemStoryPointsAssigned.java---------------------领域事件
            │      │  │      BacklogItemStoryTold.java-------------------------------领域事件
            │      │  │      BacklogItemSummarized.java------------------------------领域事件
            │      │  │      BacklogItemType.java------------------------------------枚举
            │      │  │      BacklogItemTypeChanged.java-----------------------------领域事件
            │      │  │      BacklogItemUncommitted.java-----------------------------领域事件
            │      │  │      BacklogItemUnscheduled.java-----------------------------领域事件
            │      │  │      BusinessPriority.java-----------------------------------值对象
            │      │  │      BusinessPriorityAssigned.java---------------------------领域事件
            │      │  │      BusinessPriorityCalculator.java-------------------------领域服务
            │      │  │      BusinessPriorityRatings.java----------------------------值对象
            │      │  │      BusinessPriorityTotals.java-----------------------------值对象
            │      │  │      EstimationLogEntry.java---------------------------------实体
            │      │  │      StoryPoints.java----------------------------------------枚举
            │      │  │      Task.java-----------------------------------------------实体
            │      │  │      TaskDefined.java----------------------------------------领域事件
            │      │  │      TaskDescribed.java--------------------------------------领域事件
            │      │  │      TaskHoursRemainingEstimated.java------------------------领域事件
            │      │  │      TaskId.java---------------------------------------------值对象
            │      │  │      TaskRemoved.java----------------------------------------领域事件
            │      │  │      TaskRenamed.java----------------------------------------领域事件
            │      │  │      TaskStatus.java-----------------------------------------枚举
            │      │  │      TaskStatusChanged.java----------------------------------领域事件
            │      │  │      TaskVolunteerAssigned.java------------------------------领域事件
            │      │  │      
            │      │  ├─release-------------------------------------------------------发布模型
            │      │  │      Release.java---------------------------------------------实体(聚合根)
            │      │  │      ReleaseId.java-------------------------------------------值对象
            │      │  │      ReleaseRepository.java-----------------------------------存储库接口
            │      │  │      ScheduledBacklogItem.java--------------------------------实体
            │      │  │      
            │      │  └─sprint--------------------------------------------------------冲刺模型
            │      │          CommittedBacklogItem.java-------------------------------实体
            │      │          Sprint.java---------------------------------------------实体
            │      │          SprintId.java-------------------------------------------值对象
            │      │          SprintRepository.java-----------------------------------存储库接口
            │      │          
            │      ├─team-------------------------------------------------------------团队模型
            │      │      Member.java-------------------------------------------------实体
            │      │      MemberChangeTracker.java------------------------------------值对象
            │      │      ProductOwner.java-------------------------------------------实体
            │      │      ProductOwnerId.java-----------------------------------------值对象
            │      │      ProductOwnerRepository.java---------------------------------存储库接口
            │      │      Team.java---------------------------------------------------实体
            │      │      TeamMember.java---------------------------------------------实体
            │      │      TeamMemberId.java-------------------------------------------值对象
            │      │      TeamMemberRepository.java-----------------------------------存储库接口
            │      │      TeamRepository.java-----------------------------------------存储库接口
            │      │      
            │      └─tenant-----------------------------------------------------------租户模型
            │              TenantId.java----------------------------------------------值对象
            │              
            └─port--------------------------------------------------------------[端口层]
                └─adapter-------------------------------------------------------[适配器层]
                    ├─messaging
                    │  │  ProductDiscussionExclusiveOwnerId.java
                    │  │  
                    │  ├─rabbitmq-----------------------------------------------MQ
                    │  │      RabbitMQBacklogItemCommittedListener.java
                    │  │      RabbitMQDiscussionStartedListener.java
                    │  │      RabbitMQProductDiscussionRequestedListener.java
                    │  │      RabbitMQProductDiscussionRetryListener.java
                    │  │      RabbitMQTeamMemberDisablerListener.java
                    │  │      RabbitMQTeamMemberEmailAddressChangedListener.java
                    │  │      RabbitMQTeamMemberEnablerListener.java
                    │  │      RabbitMQTeamMemberNameChangedListener.java
                    │  │      
                    │  └─sloth--------------------------------------------------MQ
                    │          SlothMQDiscussionStartedListener.java
                    │          SlothMQProductDiscussionRequestedListener.java
                    │          SlothMQProductDiscussionRetryListener.java
                    │          SlothMQTeamMemberDisablerListener.java
                    │          SlothMQTeamMemberEmailAddressChangedListener.java
                    │          SlothMQTeamMemberEnablerListener.java
                    │          SlothMQTeamMemberNameChangedListener.java
                    │          
                    └─persistence----------------------------------------------[持久层]
                            LevelDBBacklogItemRepository.java
                            LevelDBDatabasePath.java
                            LevelDBProductOwnerRepository.java
                            LevelDBProductRepository.java
                            LevelDBReleaseRepository.java
                            LevelDBSprintRepository.java
                            LevelDBTeamMemberRepository.java
                            LevelDBTeamRepository.java
└─com
    └─saasovation
        └─collaboration-----------------------------------------------------<<协作上下文>>
            ├─application
            │  ├─calendar
            │  │  │  CalendarApplicationService.java
            │  │  │  CalendarEntryApplicationService.java
            │  │  │  CalendarEntryQueryService.java
            │  │  │  CalendarQueryService.java
            │  │  │  
            │  │  └─data
            │  │          CalendarCommandResult.java
            │  │          CalendarData.java
            │  │          CalendarEntryData.java
            │  │          CalendarEntryInviteeData.java
            │  │          CalendarSharerData.java
            │  │          
            │  └─forum
            │      │  DiscussionApplicationService.java
            │      │  DiscussionQueryService.java
            │      │  ForumApplicationService.java
            │      │  ForumQueryService.java
            │      │  PostApplicationService.java
            │      │  PostQueryService.java
            │      │  
            │      └─data
            │              DiscussionCommandResult.java
            │              DiscussionData.java
            │              DiscussionPostsData.java
            │              ForumCommandResult.java
            │              ForumData.java
            │              ForumDiscussionsData.java
            │              PostData.java
            │              
            ├─domain
            │  └─model
            │      │  DomainRegistry.java
            │      │  
            │      ├─calendar
            │      │      Alarm.java
            │      │      AlarmUnitsType.java
            │      │      Calendar.java
            │      │      CalendarCreated.java
            │      │      CalendarDescriptionChanged.java
            │      │      CalendarEntry.java
            │      │      CalendarEntryDescriptionChanged.java
            │      │      CalendarEntryId.java
            │      │      CalendarEntryParticipantInvited.java
            │      │      CalendarEntryParticipantUninvited.java
            │      │      CalendarEntryRelocated.java
            │      │      CalendarEntryRepository.java
            │      │      CalendarEntryRescheduled.java
            │      │      CalendarEntryScheduled.java
            │      │      CalendarId.java
            │      │      CalendarIdentityService.java
            │      │      CalendarRenamed.java
            │      │      CalendarRepository.java
            │      │      CalendarShared.java
            │      │      CalendarSharer.java
            │      │      CalendarUnshared.java
            │      │      RepeatType.java
            │      │      Repetition.java
            │      │      TimeSpan.java
            │      │      
            │      ├─collaborator
            │      │      Author.java
            │      │      Collaborator.java
            │      │      CollaboratorService.java
            │      │      Creator.java
            │      │      Moderator.java
            │      │      Owner.java
            │      │      Participant.java
            │      │      
            │      ├─forum
            │      │      Discussion.java
            │      │      DiscussionClosed.java
            │      │      DiscussionId.java
            │      │      DiscussionReopened.java
            │      │      DiscussionRepository.java
            │      │      DiscussionStarted.java
            │      │      Forum.java
            │      │      ForumClosed.java
            │      │      ForumDescriptionChanged.java
            │      │      ForumId.java
            │      │      ForumIdentityService.java
            │      │      ForumModeratorChanged.java
            │      │      ForumReopened.java
            │      │      ForumRepository.java
            │      │      ForumStarted.java
            │      │      ForumSubjectChanged.java
            │      │      Post.java
            │      │      PostContentAltered.java
            │      │      PostedToDiscussion.java
            │      │      PostId.java
            │      │      PostRepository.java
            │      │      
            │      └─tenant
            │              Tenant.java
            │              
            └─port
                └─adapter
                    ├─event
                    │      FollowStoreEventDispatcher.java
                    │      
                    ├─messaging
                    │      ExclusiveDiscussionCreationListener.java
                    │      RabbitMQEventDispatcher.java
                    │      RabbitMQEventDispatcher_0_RabbitMQEventDispatcher_calls.puml
                    │      RabbitMQEventDispatcher_1_dispatch_calls.puml
                    │      RabbitMQEventDispatcher_2_registerEventDispatcher_calls.puml
                    │      RabbitMQEventDispatcher_3_understands_calls.puml
                    │      
                    ├─persistence
                    │  │  EventStoreProvider.java
                    │  │  
                    │  ├─repository
                    │  │      EventStoreCalendarEntryRepository.java
                    │  │      EventStoreCalendarRepository.java
                    │  │      EventStoreDiscussionRepository.java
                    │  │      EventStoreForumRepository.java
                    │  │      EventStorePostRepository.java
                    │  │      
                    │  └─view
                    │          MySQLCalendarEntryProjection.java
                    │          MySQLCalendarProjection.java
                    │          MySQLDiscussionProjection.java
                    │          MySQLForumProjection.java
                    │          MySQLPostProjection.java
                    │          MySQLProjectionDispatcher.java
                    │          
                    └─service
                            CollaboratorTranslator.java
                            HttpUserInRoleAdapter.java
                            TranslatingCollaboratorService.java
                            UserInRoleAdapter.java
└─com
    └─saasovation
        └─identityaccess-----------------------------------------------------<<身份与访问上下文>>
            ├─application
            │  │  AccessApplicationService.java
            │  │  ApplicationServiceRegistry.java
            │  │  IdentityAccessEventProcessor.java
            │  │  IdentityApplicationService.java
            │  │  NotificationApplicationService.java
            │  │  
            │  ├─command│ │ ActivateTenantCommand. Java │ │ AddGroupToGroupCommand. Java │ │ AddUserToGroupCommand. Java │ │ AssignUserToRoleCommand. Java │ │ AuthenticateUserCommand. Java │ │ ChangeContactInfoCommand. Java │ │ ChangeEmailAddressCommand. Java │ │ ChangePostalAddressCommand. Java │ │ ChangePrimaryTelephoneCommand. Java │ │ ChangeSecondaryTelephoneCommand. Java │ │ ChangeUserPasswordCommand. Java │ │ ChangeUserPersonalNameCommand. Java │ │ DeactivateTenantCommand. Java │ │ DefineUserEnablementCommand. Java │ │ ProvisionGroupCommand. Java │ │ ProvisionRoleCommand. Java │ │ ProvisionTenantCommand. Java │ │ RegisterUserCommand. Java │ │ RemoveGroupFromGroupCommand. Java │ │ RemoveUserFromGroupCommand. Java │ │ │ └ ─ representation │ NotificationLogRepresentation. Java │ UserInRoleRepresentation. Java │ UserRepresentation. Java │ ├ ─ domain -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ layer [field] └ ─ model -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- model │ │ DomainRegistry. Java │ │ │ ├ ─ access -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- access model │ │ AuthorizationService. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ field service │ GroupAssignedToRole. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ │ GroupUnassignedFromRole. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - field events │ │ Role. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- entity │ │ RoleProvisioned. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - field events │ │ RoleRepository. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- the repository interface │ │ UserAssignedToRole. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - field events │ │ UserUnassignedFromRole. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ │ │ └ ─ identity -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - identity model │ AuthenticationService. Java │ ContactInformation. Java │ EmailAddress. Java │ Enablement. Java │ EncryptionService. Java │ FullName. Java │ Group. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- entity │ GroupGroupAdded. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - field events │ GroupGroupRemoved. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ GroupMember. Java │ GroupMemberService. Java │ Java │ GroupMemberType. Java │ GroupProvisioned. Java │ grouprepository.java │ GroupMemberType GroupUserAdded. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ GroupUserRemoved. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - │ field events InvitationDescriptor. Java │ PasswordService. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ field service Person. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- entity │ PersonContactInformationChanged. Java -- -- -- -- -- -- -- -- -- -- - │ field events PersonNameChanged. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ PostalAddress. Java │ RegistrationInvitation. Java │ Telephone. Java │ Tenant. Java │ TenantActivated. Java │ TenantAdministratorRegistered. Java │ TenantDeactivated. Java │ TenantId. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ TenantProvisioned. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ field events TenantProvisioningService. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - field service │ TenantRepository. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ repository interface User. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- entity │ UserDescriptor. Java │ UserEnablementChanged. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ UserPasswordChanged. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ field events UserRegistered. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- field events │ UserRepository. Java -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ repository interface ├ ─ infrastructure -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- layer [infrastructure] │ ├ ─ persistence -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- the persistence layer │ │ GroupMemberTypeUserType. Java │ │ HibernateGroupRepository. Java │ │ HibernateRoleRepository. Java │ │ HibernateTenantRepository. Java │ │ HibernateUserRepository. Java │ │ │ └ ─ services -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- │ service layer MD5EncryptionService. Java │ └ ─ resource AbstractResource. Java GroupResource. Java NotificationResource. Java TenantResource.java UserResource.javaCopy the code

2. List of collected classes and interfaces

com.saasovation.agilepm.domain.model.DomainTest
com.saasovation.agilepm.domain.model.DomainRegistry
com.saasovation.agilepm.domain.model.DomainEvent
com.saasovation.agilepm.domain.model.DomainEventPublisher
com.saasovation.agilepm.domain.model.product.BacklogItemRepository
com.saasovation.agilepm.domain.model.product.BacklogItem
com.saasovation.agilepm.domain.model.product.Tenant
com.saasovation.agilepm.domain.model.product.SprintId
com.saasovation.agilepm.domain.model.product.BusinessPriority
com.saasovation.agilepm.domain.model.product.BusinessPriorityRatings
com.saasovation.agilepm.domain.model.product.BusinessPriorityTest
com.saasovation.agilepm.domain.model.product.BusinessPriorityCalculator
com.saasovation.agilepm.domain.model.product.BacklogItemComitted
com.saasovation.agilepm.domain.model.product.Product
com.saasovation.agilepm.domain.model.product.backlogitem.BacklogItem
com.saasovation.agilepm.domain.model.product.release.Release
com.saasovation.agilepm.domain.model.product.sprint.Sprint
com.saasovation.agilepm.domain.model.product.impl.InMemoryProductRepository
com.saasovation.agilepm.domain.model.product.ProductRepository
com.saasovation.agilepm.domain.model.product.ProductDiscussion
com.saasovation.agilepm.domain.model.product.ProductDiscussionRequested
com.saasovation.agilepm.domain.model.product.ProductDiscussionRequestTimeOut
com.saasovation.agilepm.domain.model.tenant.TenantId
com.saasovation.agilepm.domain.model.team.MemberService
com.saasovation.agilepm.domain.model.team.ProductOwner
com.saasovation.agilepm.domain.model.team.Team
com.saasovation.agilepm.domain.model.team.TeamMember
com.saasovation.agilepm.domain.model.team.Member
com.saasovation.agilepm.domain.model.team.MemberChangeTracker
com.saasovation.agilepm.infrastructure.persistence.CoherenceProductRepository
com.saasovation.agilepm.infrastructure.messaging.TeamMemberEnablerListener
com.saasovation.agilepm.infrastrcuture.messaging.ProductDiscussionRequestedListener
com.saasovation.agilepm.infrastructure.messaging.DiscussionStartedListener
com.saasovation.agilepm.infrastructure.messaging.ProductDiscussionRetryListener
com.saasovation.agilepm.infrastructure.HibernateBacklogItemRepository
com.saasovation.agilepm.application.TeamService
com.saasovation.agilepm.application.ProductService
com.saasovation.agilepm.application.ProcessService
com.saasovation.identityaccess.domain.model.DomainRegistry
com.saasovation.identityaccess.domain.model.identity.User 
com.saasovation.identityaccess.domain.model.identity.GroupMemberType 
com.saasovation.identityaccess.domain.model.identity.Group
com.saasovation.identityaccess.domain.model.identity.GroupMember
com.saasovation.identityaccess.domain.model.identity.TenantId
com.saasovation.identityaccess.domain.model.identity.AuthenticationService
com.saasovation.identityaccess.domain.model.identity.Tenant
com.saasovation.identityaccess.domain.model.identity.UserDescriptor
com.saasovation.identityaccess.domain.model.access.Role
com.saasovation.identityaccess.application.eventStore.EventStore
com.saasovation.identityaccess.application.eventStore.StoredEvent
com.saasovation.identityaccess.application.NotificationService
com.saasovation.identityaccess.application.AccessService
com.saasovation.identityaccess.application.TenantIdentityService
com.saasovation.identityaccess.application.notifications.PublishedMessageTracker
com.saasovation.identityaccess.infrastructure.persistence.HibernateUserRepository
com.saasovation.identityaccess.infrastructure.servicies.DefaultEncryptionAuthenticationService
com.saasovation.identityaccess.infrastructure.persistence.GroupMemberTypeUserType
com.saasovation.identityaccess.infrastructure.persistence.SpringHibernateSessionProvider
com.saasovation.collaboration.domain.model.tenant.Tenant
com.saasovation.collaboration.domain.model.forum.Forum
com.saasovation.collaboration.domain.model.calendar.Calendar
com.saasovation.collaboration.domain.model.calendar.CalendarEntityRepository
com.saasovation.collaboration.domain.model.collaborator.CollaboratorService
com.saasovation.collaboration.domain.model.collaborator.Author
com.saasovation.collaboration.domain.model.collaborator.Collaborator
com.saasovation.collaboration.infrastructure.persistence.HibernateCalendarEntityRepository
com.saasovation.collaboration.infrastructure.persistence.SpringHibernateSessionProvider
com.saasovation.collaboration.infrastructure.servicies.UserRoleToCollaboratorService
com.saasovation.collaboration.infrastructure.services.TranslatingCollaboratorService
com.saasovation.collaboration.infrastructure.services.UserInRoleAdapter
com.saasovation.collaboration.infrastructure.services.CollaboratorTranslator
com.saasovation.collaboration.infrastructure.messaging.ExclusiveDiscussionCreationListener
com.saasovation.collaboration.application.ForumService
com.saasovation.collaboration.application.AccessService
com.saasovation.common.media.OvationMediaType
com.saasovation.common.media.ReprensentationReader
com.saasovation.common.port.adapter.messaging.rabbitmq.ExchangeListener
com.saasovation.common.domain.model.process.ProcessId
com.saasovation.common.domain.model.process.ProcessTimeOut
com.saasovation.common.domain.model.process.Process

Copy the code
  • DDD: Bounded Context and Java modules — domain events
  • DDD: Hexagonal architecture [Onion] — Domain services