All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Move
\Heptacom\HeptaConnect\Portal\Base\Emission\EmitterStack
out ofheptaconnect/portal-base
into this package as\Heptacom\HeptaConnect\Core\Emission\EmitterStack
- Move
\Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerStack
out ofheptaconnect/portal-base
into this package as\Heptacom\HeptaConnect\Core\Exploration\ExplorerStack
- Add
$entityType
parameter to\Heptacom\HeptaConnect\Core\Exploration\ExplorerStack::__construct
to implement new\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerStackInterface::supports
- Move
\Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverStack
out ofheptaconnect/portal-base
into this package as\Heptacom\HeptaConnect\Core\Reception\ReceiverStack
- Add implementation
\Heptacom\HeptaConnect\Core\Job\Transition\EmittedEntitiesToReceiveJobsConverter
and its interface\Heptacom\HeptaConnect\Core\Job\Transition\Contract\EmittedEntitiesToJobsConverterInterface
to convert results of an emission into receive jobs - Add log message code
1661091900
to\Heptacom\HeptaConnect\Core\Job\Transition\EmittedEntitiesToReceiveJobsConverter::convert
when conversion resulted in no jobs, which can be ok, but is important to know, when looking into failing transfer - Add implementation
\Heptacom\HeptaConnect\Core\Job\Transition\ExploredPrimaryKeysToEmissionJobsConverter
and its interface\Heptacom\HeptaConnect\Core\Job\Transition\Contract\ExploredPrimaryKeysToJobsConverterInterface
to convert results of an exploration into emission jobs - Add log message code
1661091901
to\Heptacom\HeptaConnect\Core\Job\Transition\ExploredPrimaryKeysToEmissionJobsConverter::convert
when conversion resulted in no jobs, which can be ok, but is important to know, when looking into failing transfer - Add log message code
1661818271
to\Heptacom\HeptaConnect\Core\Reception\LockingReceiver
when unlocking of a lock failed - Add log message code
1661818272
to\Heptacom\HeptaConnect\Core\Reception\LockingReceiver
when even after retrying the reception could not be locked - Add log message code
1662200022
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serialize
when the auditable data object fails at exposing auditable data - Add log message code
1662200023
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serialize
when json_encode can not compose a JSON string - Add log message code
1662200024
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serialize
when auditable data throws an exception during serialization - Add
\Heptacom\HeptaConnect\Core\Storage\PrimaryKeyToEntityHydrator
to create instances of entities with any primary key. This code is not useful for long and therefore does not receive an interface and is just an extraction refactoring of already existing code - Add
\Heptacom\HeptaConnect\Core\Emission\ReceiveJobDispatchingEmitter
to dispatch receive jobs from any emission stack, where this emitter is pushed onto - Add
\Heptacom\HeptaConnect\Core\Exploration\AbstractBufferedResultProcessingExplorer
as base class for explorer, which capture stack processing and process the captured data in batches - Add
\Heptacom\HeptaConnect\Core\Emission\AbstractBufferedResultProcessingEmitter
as base class for emitter, which capture stack processing and process the captured data in batches - Add
\Heptacom\HeptaConnect\Core\Emission\EmissionFlowEmittersFactory
described in\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionFlowEmittersFactoryInterface
to return emitters, that provide core functionality for the emission flow - Add
\Heptacom\HeptaConnect\Core\Exploration\DirectEmissionFlowEmittersFactory
described in\Heptacom\HeptaConnect\Core\Exploration\Contract\DirectEmissionFlowEmittersFactoryInterface
to return emitters, that provide core functionality for the direct emission flow - Add
\Heptacom\HeptaConnect\Core\Exploration\ExplorationFlowExplorersFactory
described in\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationFlowExplorersFactoryInterface
to return explorers, that provide core functionality for the exploration flow - Add
\Heptacom\HeptaConnect\Core\Reception\ReceptionFlowReceiversFactory
described in\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionFlowReceiversFactoryInterface
to return receivers, that provide core functionality for the reception flow - Add
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleFlowHttpHandlersFactory
described in\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleFlowHttpHandlersFactoryInterface
to return HTTP handlers, that provide core functionality for the HTTP handle flow - Add implementation
\Heptacom\HeptaConnect\Core\Portal\PortalNodeContainerFacade
and its contract\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContract
to have a typed interface onto\Psr\Container\ContainerInterface
- Add exception code
1666461305
to\Heptacom\HeptaConnect\Core\Portal\PortalNodeContainerFacade::__construct
when the given container does not contain all necessary services, that explicitly are exposed by the facade - Extract query matching from
\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessor
into\Heptacom\HeptaConnect\Core\Portal\PackageQueryMatcher
described by\Heptacom\HeptaConnect\Core\Portal\Contract\PackageQueryMatcherInterface
- Add UI audit trail class to stateful log a UI actions behaviour described in
\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\Contract\AuditTrailInterface
, implemented in\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrail
,\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\NullAuditTrail
and factorized by\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory
described in\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\Contract\AuditTrailFactoryInterface
- Add
\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer
described in\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\Contract\AuditableDataSerializerInterface
to transform auditable data into a string for storing later - Add
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparator
described by\Heptacom\HeptaConnect\Core\Ui\Admin\Support\Contract\PortalNodeExistenceSeparatorInterface
with\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResult
to split portal nodes into the groups: preview portal node keys, portal node keys found in the storage and those, which are missing - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\Context\UiActionContext
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\UiActionContextInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\Context\UiActionContextFactory
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\UiActionContextFactoryInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeAliasResolver
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Support\PortalNodeAliasResolverInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Support\StorageKeyAccessorInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Job\JobRunUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobScheduleUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Job\JobScheduleUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalEntityListUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Portal\PortalEntityListUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeEntityListUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeEntityListUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionBrowseUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionBrowseUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStatusReportUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeStatusReportUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionActivateUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionDeactivateUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeStorageGetUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeAddUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeRemoveUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeConfigurationGetUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationRenderUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeConfigurationRenderUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteAddUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteBrowseUiActionInterface
- Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi
for\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteRemoveUiActionInterface
- Add exception code
1655051115
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeAliasResolver::resolve
when resolving the give portal node alias has no result - Add exception code
1650732001
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResult::throwWhenKeysAreMissing
when a portal node key does not refer to a known portal node - Add exception code
1650732002
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResult::throwWhenPreviewKeysAreGiven
when a portal node key does not refer to a known portal node but a preview portal instead - Add exception code
1660417907
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::deserialize
when the given storage key data is not compatible with the storage implementation - Add exception code
1660417908
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::serialize
when the given storage key is not compatible with the storage implementation - Add exception code
1660417909
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::exists
when the given storage key is not compatible with the storage implementation - Add exception code
1660417910
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::exists
when the given storage key is not supported in existence checks - Add exception code
1660417911
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::exists
when the given storage key existence check failed in the storage implementation - Add exception code
1660417912
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::serialize
when serialization failed in the storage implementation - Add exception code
1660417913
to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::deserialize
when deserialization failed in the storage implementation - Add exception code
1659721163
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUi::run
when one of the given jobs are not found in the job storage - Add exception code
1659721164
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUi::run
when running the jobs fails at one point - Add exception code
1677424700
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobScheduleUi::schedule
when one of the given jobs are not found in the job storage - Add exception code
1663051795
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalEntityListUi::list
when reading entity support fails - Add exception code
1650142326
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUi::activate
when the given query does not match any supporting portal extension - Add exception code
1650142327
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUi::activate
when all matched portal extensions are already active on the portal node - Add exception code
1650731999
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUi::deactivate
when the given query does not match any supporting portal extension - Add exception code
1650732000
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUi::deactivate
when all matched portal extensions are already inactive on the portal node - Add exception code
1673129100
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::get
when looking up a portal node key failed in the storage implementation - Add exception code
1673129102
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::get
when a requested storage key is not a scalar value - Add exception code
1673129103
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::get
when accessing data from the portal node storage failed - Add exception code
1650718860
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::add
when portal node alias validation fails due to a storage exception - Add exception code
1650718861
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::add
when the portal node alias is already taken - Add exception code
1650718862
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::add
when portal node creation fails due to a storage exception - Add exception code
1650718863
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::add
when portal node creation did not create a portal node - Add exception code
1650758000
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUi::remove
when reading known portal nodes from storage fails - Add exception code
1650758002
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUi::remove
when deleting portal nodes fails in storage - Add exception code
1670832600
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUi::get
when reading portal nodes to validate their existence fails due to a storage exception - Add exception code
1670832602
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUi::get
when reading portal node configuration fails due to a storage exception - Add exception code
1654573095
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::add
when one of the requested route payloads already exists - Add exception code
1654573097
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::add
when route creation did not create the expected routes - Add exception code
1654573098
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::add
when route creation fails due to a storage exception - Add exception code
1670625000
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUi::browse
when the given sorting direction is not supported - Add exception code
1670625001
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUi::browse
when the given field to sort by is not supported - Add exception code
1659293800
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::remove
when reading known routes from storage fails - Add exception code
1659293801
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::remove
when route that does not exist is tried to be deleted - Add exception code
1659293802
to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::remove
when deleting routes fails in storage - Add exception code
1663677420
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::create
when starting an audit trail failed and a no-op trail is used instead - Add exception code
1663677421
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::create
when logging any output to an audit trail failed - Add exception code
1663677422
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::create
when logging any exception to an audit trail failed - Add exception code
1663677423
to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::create
when marking an audit trail as finished - Extract deserialization logic of
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizer
into\Heptacom\HeptaConnect\Core\Web\Http\RequestDeserializer
described by\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestDeserializerInterface
and\Heptacom\HeptaConnect\Core\Web\Http\Exception\RequestDeserializationException
to be explicitly used independent from\Heptacom\HeptaConnect\Core\Storage\NormalizationRegistry
- Add exception code
1666451009
to\Heptacom\HeptaConnect\Core\Web\Http\RequestDeserializer::deserialize
when the given request data is not valid JSON - Extract serialization logic of
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizer
into\Heptacom\HeptaConnect\Core\Web\Http\RequestSerializer
described by\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestSerializerInterface
and\Heptacom\HeptaConnect\Core\Web\Http\Exception\RequestSerializationException
to be explicitly used independent from\Heptacom\HeptaConnect\Core\Storage\NormalizationRegistry
- Add exception code
1666451010
to\Heptacom\HeptaConnect\Core\Web\Http\RequestSerializer::serialize
when the given request cannot be serialized into JSON - Add constant
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder::PORTAL_CONFIGURATION_PARAMETER_PREFIX
, that is preceding a portal node configuration binding aliases
- Argument of type
\Psr\Container\ContainerInterface
in\Heptacom\HeptaConnect\Core\Portal\AbstractPortalNodeContext::__construct
,\Heptacom\HeptaConnect\Core\Exploration\ExploreContext::__construct
,\Heptacom\HeptaConnect\Core\Emission\EmitContext::__construct
,\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::__construct
,\Heptacom\HeptaConnect\Core\StatusReporting\StatusReportingContext::__construct
and\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext::__construct
is expected of type\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContract
instead - Return type of
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerFactory::create
is now\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContract
which inherits the previous return type - Change
$entityType
parameter in\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackBuilderFactoryInterface::createEmitterStackBuilder
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::__construct
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilderFactory::createEmitterStackBuilder
,\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter::__construct
,\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface::performExploration
,\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor::performExploration
,\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackBuilderFactoryInterface
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::__construct
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilderFactory::createExplorerStackBuilder
,\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::__construct
,\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::setEntityType
,\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiverStackBuilderFactoryInterface::createReceiverStackBuilder
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::__construct
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilderFactory::createReceiverStackBuilder
and\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::__construct
to be a\Heptacom\HeptaConnect\Dataset\Base\EntityType
instead of a string for better type safe class strings - Change
$dataTypes
parameter in\Heptacom\HeptaConnect\Core\Exploration\ExploreService::explore
,\Heptacom\HeptaConnect\Core\Exploration\ExploreService::dispatchExploreJob
,\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::explore
and\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::dispatchExploreJob
to be a\Heptacom\HeptaConnect\Dataset\Base\EntityTypeCollection
instead of an array of string for better type safe class strings - Change return type of
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::getEntityType
,\Heptacom\HeptaConnect\Core\Mapping\MappingStruct::getEntityType
and\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignEntityType
to be\Heptacom\HeptaConnect\Dataset\Base\EntityType
instead of a string for better type safe class strings - Update implementation
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable
to match changes in\Heptacom\HeptaConnect\Dataset\Base\Contract\ForeignKeyAwareInterface
- Change
$class
parameter in\Heptacom\HeptaConnect\Core\Portal\Contract\PortalFactoryContract::instantiatePortal
to be a\Heptacom\HeptaConnect\Portal\Base\Portal\PortalType
instead of a string for better type safe class strings - Change
$class
parameter in\Heptacom\HeptaConnect\Core\Portal\Contract\PortalFactoryContract::instantiatePortalExtension
to be a\Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionType
instead of a string for better type safe class strings - Change
$emissionActor
parameter in\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::__construct
to be a\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackProcessorInterface
and a\Heptacom\HeptaConnect\Core\Exploration\Contract\DirectEmissionFlowEmittersFactoryInterface
instead of a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterface
to control the contents of the direct emission stack - Change
$emissionActor
parameter in\Heptacom\HeptaConnect\Core\Emission\EmitService::__construct
to be a\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackProcessorInterface
and a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionFlowEmittersFactoryInterface
instead of a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterface
to control the contents of the emission stack - Change
$explorationActor
parameter in\Heptacom\HeptaConnect\Core\Exploration\ExploreService::__construct
to be a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackProcessorInterface
and a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationFlowExplorersFactoryInterface
instead of a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
to control the contents of the exploration stack - Replace
\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterface
partially with stack processing service described in\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackProcessorInterface
, that is implemented by\Heptacom\HeptaConnect\Core\Emission\EmitterStackProcessor
- Replace
\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterface
partially with job dispatching from emitter stacks in\Heptacom\HeptaConnect\Core\Emission\ReceiveJobDispatchingEmitter
- Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
partially with stack processing service described in\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackProcessorInterface
, that is implemented by\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackProcessor
- Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
partially with job dispatching from explorer stacks in\Heptacom\HeptaConnect\Core\Exploration\EmissionJobDispatchingExplorer
- Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
partially with triggering emission stack processing for direct emission in\Heptacom\HeptaConnect\Core\Exploration\DirectEmittingExplorer
- Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
partially with entities' identities existence ensuring explorer in\Heptacom\HeptaConnect\Core\Exploration\IdentityMappingExplorer
- Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface
partially with entities' identities existence ensuring emitter for direct emission in\Heptacom\HeptaConnect\Core\Emission\IdentityMappingEmitter
- Rename interface
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionActorInterface
to\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiverStackProcessorInterface
to match restructure of other flow components into same pattern - Rename class
\Heptacom\HeptaConnect\Core\Reception\ReceptionActor
to\Heptacom\HeptaConnect\Core\Reception\ReceiverStackProcessor
to match restructure of other flow components into same pattern - Rename interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlingActorInterface
to\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackProcessorInterface
to match restructure of other flow components into same pattern - Rename class
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlingActor
to\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackProcessor
to match restructure of other flow components into same pattern - Add parameter of
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleFlowHttpHandlersFactoryInterface
to\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleService
to extend HTTP handle flow by core HTTP handlers - Add parameter of
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionFlowReceiversFactoryInterface
to\Heptacom\HeptaConnect\Core\Reception\ReceiveService
to extend reception flow by core receivers - Extract reception locking and release from
\Heptacom\HeptaConnect\Core\Reception\ReceiveService
into\Heptacom\HeptaConnect\Core\Reception\LockingReceiver
and\Heptacom\HeptaConnect\Core\Reception\Support\LockAttachable
- Change composer dependency
composer/composer:>=1.9
tocomposer/composer:^2.2.6
to ensure\Composer\Repository\InstalledRepositoryInterface::getDevMode
exists and always support loading dev-packages - Use
\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestSerializerInterface
and\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestDeserializerInterface
in\Heptacom\HeptaConnect\Core\Storage\RequestStorage
instead of\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizer
and\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizer
to allow for implementation change - Add exception code
1647801830
in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::json
when the JSON file can not be read from the filesystem - Add exception code
1637432096
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressNormalizer::normalize
when original normalized value is not a string - Make classes final:
\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfiguration
and\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler
- Implement
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalNodeContextInterface::getLogger
in\Heptacom\HeptaConnect\Core\Portal\AbstractPortalNodeContext::getLogger
by looking up the service in the container - Implement
\Heptacom\HeptaConnect\Dataset\Base\Contract\AttachmentAwareInterface
in\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfiguration
- Removed logger dependency from
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor
- Replace union type hints to real union types in
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config::replace
,\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config::merge
,\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config::set
and\Heptacom\HeptaConnect\Core\Exploration\AbstractBufferedResultProcessingExplorer::pushBuffer
- Split
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddPortalConfigurationBindingsCompilerPass
into\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddConfigurationBindingsCompilerPass
and\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\SetConfigurationAsParameterCompilerPass
to separate parameter assignment and generating name bindings - Extract processing of portal node configuration processors from
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService
into\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationProcessorService
described by\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorServiceInterface
- Change composer dependency
symfony/dependency-injection: ^4.4 || ^5.0
tosymfony/dependency-injection: ^4.4.11 || ^5.0
to ensure auto wiring works with PHP 8 union types - Extract packing and unpacking storage related structs from
\Heptacom\HeptaConnect\Core\Portal\PortalStorage
into\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemPacker
described by\Heptacom\HeptaConnect\Core\Portal\Storage\Contract\PortalNodeStorageItemPackerInterface
and\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemUnpacker
described by\Heptacom\HeptaConnect\Core\Portal\Storage\Contract\PortalNodeStorageItemUnpackerInterface
and with it moving the dependency\Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\NormalizationRegistryContract
- Move log message codes
1631562097
,1631562285
and1631562928
from\Heptacom\HeptaConnect\Core\Portal\PortalStorage
to\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemPacker
without change in meaning - Move log message codes
1651338621
and1631565257
from\Heptacom\HeptaConnect\Core\Portal\PortalStorage
to\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemUnpacker
without change in meaning - Make
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::__construct
final as packages are stateless - Combine
portalNodeKey
andpath
parameter in\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackBuilderFactoryInterface::createHttpHandlerStackBuilder
and\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderFactory::createHttpHandlerStackBuilder
using\Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
- Remove support for
php: 7.4
as it will not receive any updates anymore, it is unlikely to be used. By raising the minimum PHP version we also make use of features introduced by PHP 8.0, which mainly have no effect on public API - Remove composer dependency
symfony/polyfill-php80
as minimum PHP version is raised to PHP 8.0 - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\UnexpectedClassInheritanceOnInstantionException
and\Heptacom\HeptaConnect\Core\Portal\Exception\ClassNotFoundOnInstantionException
as their condition origin will occur earlier related to either\Heptacom\HeptaConnect\Dataset\Base\Exception\InvalidClassNameException
,\Heptacom\HeptaConnect\Dataset\Base\Exception\InvalidSubtypeClassNameException
or\Heptacom\HeptaConnect\Dataset\Base\Exception\UnexpectedLeadingNamespaceSeparatorInClassNameException
will be thrown instead - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\DelegatingLoaderLoadException
as\Heptacom\HeptaConnect\Portal\Base\Portal\Exception\DelegatingLoaderLoadException
will be thrown instead - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\UnexpectedRequiredParameterInConstructorOnInstantionException
as\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::__construct
is final and therefore has no unexpected parameters
- Add exception code
1693671570
in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\BuildDefinitionForFlowComponentRegistryCompilerPass::getServiceReferencesGroupedBySource
when a flow component service is missing a source attribute on its tag - Add exception code
1693698154
in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\BuildDefinitionForFlowComponentRegistryCompilerPass::getSourcePackage
when a referenced flow component package is not found in known packages
- Sort flow components by priority, if the service definition tag has a priority attribute
- Deprecate parameter
$source
in method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getExplorers
- Deprecate parameter
$source
in method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getEmitters
- Deprecate parameter
$source
in method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getReceivers
- Deprecate parameter
$source
in method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getStatusReporters
- Deprecate parameter
$source
in method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getWebHttpHandlers
- Deprecate method
\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getOrderedSources
- Add log message code
1686752874
when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
- Add log message code
1686752879
when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
- Add log message code
1686752889
when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
- Fix a bug in
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystem
that occurred when adapters don't populate thepath
key in metadata. - Fix a bug in
\Heptacom\HeptaConnect\Core\Web\Http\HttpKernel
that broke sub-requests when the request contains noCookie
header. - Fix order of packages when building a portal-container in
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
. Packages can now access services of other packages in their service definition, if they list that package in\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::getAdditionalPackages
. - Fix emission check in
\Heptacom\HeptaConnect\Core\Support\EntityStatus::isMappedByEmitter
by validating external id instead of foreign key
- Add service
Heptacom\HeptaConnect\Portal\Base\Portal\PackageCollection
to portal-container, containing the portal, all portal-extensions and all packages involved in building the container - Add service
Psr\Http\Message\ServerRequestFactoryInterface
to portal-container - Add service
Psr\Http\Message\UploadedFileFactoryInterface
to portal-container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpKernelInterface
to portal-container to execute a\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterface
from inside a portal - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext::forward
for\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandleContextInterface::forward
- Add composer dependency
riverline/multipart-parser:^2.1
to support parsing body-data of\Psr\Http\Message\ServerRequestInterface
in\Heptacom\HeptaConnect\Core\Web\Http\HttpKernel
- Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Psr7MessageMultiPartFormDataBuilder
forHeptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageMultiPartFormDataBuilderInterface
to build HTTP payloads for multipart messages - Add exception code
1682806294
in\Heptacom\HeptaConnect\Core\Web\Http\Psr7MessageMultiPartFormDataBuilder::build
when an input parameter is of an illegal type
- Use
\Psr\Http\Message\StreamInterface::__toString
instead of\Psr\Http\Message\StreamInterface::getContents
to retrieve stream contents in\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReference
,\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedPublicUrlFileReference
and\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedRequestFileReference
. This way, all stream contents are retrieved, regardless of the position of the stream pointer. - Add dependency on
\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFailActionInterface
into\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
,\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
and\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
to set job-states tofailed
in case of an error - Allow handling of HTTP requests, even when no HTTP handler exists for the requested path. This means, middlewares for HTTP handlers will run for every request.
- Add argument
bool $isStackEmpty
to\Heptacom\HeptaConnect\Core\Web\Http\Handler\HttpMiddlewareChainHandler
to indicate whether the related instance of\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterface
is empty. - Change log level of code
1636845086
fromcritical
tonotice
- Remove a step in building a portal-container that would remove all services that extend
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract
- Catch exceptions when running jobs and setting the affected jobs to failed state. Also change behavior in
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
,\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
and\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
to continue with the remaining jobs.
- Add
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Support\HeaderUtility
described by\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Support\Contract\HeaderUtilityInterface
to work with PSR-7 message headers - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatter
extending\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageRawHttpFormatter
to provide raw HTTP message formatting - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatter
extending\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageCurlShellFormatterContract
to provide cURL shell command formatting - Add exception code
1674950000
in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatter::formatMessage
when the given message is neither a request nor a response - Add exception code
1674950001
in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatter::getFileExtension
when the given message is neither a request nor a response - Add exception code
1674950002
in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatter::formatMessage
when the given message is neither a request nor a response - Add exception code
1674950003
in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatter::getFileExtension
when the given message is neither a request nor a response - Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\HttpHandlerDumpPathProviderInterface
, that needs to be implemented by bridges and integrations, to return the path for placing HTTP handler dumps - Add constant
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleServiceInterface::REQUEST_ATTRIBUTE_PREFIX
to identify all request attributes, that can be used as value holders for additional parameters attached to requests to the core layer - Add constant
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleServiceInterface::REQUEST_ATTRIBUTE_ORIGINAL_REQUEST
as request attribute key holding an instance of\Psr\Http\Message\ServerRequestInterface
of the original inbound HTTP request used for debugging purposes - Add
\Heptacom\HeptaConnect\Core\Web\Http\Dump\ServerRequestCycleDumper
described by\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumperInterface
to dump a request cycle in a way, that they can be associated, when accessing the dumps - Add sample rate strategy implementation
\Heptacom\HeptaConnect\Core\Web\Http\Dump\SampleRateServerRequestCycleDumpChecker
for new interface\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumpCheckerInterface
using configurationdump-sample-rate
for HTTP handlers, which can be an integer between 0 and 100, that will be used to determine whether a request-cycle will be dumped. Use value 100 for a request-response dump on every request
- Add dependency on
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageCurlShellFormatterContract
into\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
to provide service for raw HTTP message formatting - Add dependency on
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageRawHttpFormatterContract
into\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
to provide service for cURL shell command formatting - Add dependency on
\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumpCheckerInterface
and\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumperInterface
into\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleService
to dump requests and responses from HTTP handling
- Deprecate class
\Heptacom\HeptaConnect\Core\Portal\Exception\DelegatingLoaderLoadException
. Use\Heptacom\HeptaConnect\Portal\Base\Portal\Exception\DelegatingLoaderLoadException
instead.
- Fix issue in
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
when a composer package with a portal has multiple PSR-4 entries in itscomposer.json
- Fix container compile error when an excluded service has an automatic alias from its interface.
- Add
\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter
described by\Heptacom\HeptaConnect\Core\File\Filesystem\Contract\StreamUriSchemePathConverterInterface
to convert between URIs and paths when using paths as contextualized URIs - Add exception code
1666942800
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUri
when the path is not a compatible URI - Add exception code
1666942801
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUri
when the path already has a protocol - Add exception code
1666942802
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUri
when the path has a port - Add exception code
1666942803
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUri
when the path has query parameters - Add exception code
1666942804
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUri
when the path has a URI fragment - Add exception code
1666942810
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPath
when the URI is not a URI - Add exception code
1666942811
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPath
when the URI has no host - Add exception code
1666942812
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPath
when the URI has a port - Add exception code
1666942813
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPath
when the URI has query parameters - Add exception code
1666942814
in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPath
when the URI has a URI fragment - Add
\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Filesystem
as implementation of\Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface
to provide a path conversion for portals - Add interface
\Heptacom\HeptaConnect\Core\File\Filesystem\Contract\StreamWrapperInterface
to describe, what the PHP documentation describes as signatures for a class to use as a stream wrapper - Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\PortalNodeFilesystemStreamProtocolProviderInterface
, that needs to be implemented by bridges and integrations, to create portal node specific stream protocols - Add
\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\FilesystemFactory
described by\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Contract\FilesystemFactoryInterface
to create portal node specific instances of\Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface
- Add stream wrapper implementation
\Heptacom\HeptaConnect\Core\File\Filesystem\RewritePathStreamWrapper
to rewrite requested paths to a new protocol while changing the protocol and the path itself
- Add
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystem::getConfig
to forward the decorated filesystem config - Wrap result of
\Heptacom\HeptaConnect\Core\Storage\Filesystem\PrefixFilesystem::getAdapter
into an adaptor decorator of\Heptacom\HeptaConnect\Core\Storage\Filesystem\PrefixAdapter
to ensure that adapter usage will apply same path rewrites like the filesystem itself - Add dependency on
\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Contract\FilesystemFactoryInterface
into\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
to provide aHeptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface
service for portal nodes
- Changed return type of
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystem::getAdapter
from\League\Flysystem\FilesystemInterface
to\League\Flysystem\AdapterInterface
by returning the decorated filesystem adapter instead of the filesystem itself
- Add
\Heptacom\HeptaConnect\Core\Web\Http\HttpMiddlewareClient
to execute a chain of\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientMiddlewareInterface
services for outbound HTTP requests via\Psr\Http\Client\ClientInterface
from a portal-node context. - Add
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddHttpMiddlewareClientCompilerPass
to automatically tag services implementing\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientMiddlewareInterface
withheptaconnect.http.client.middleware
. - Execute a chain of
\Psr\Http\Server\MiddlewareInterface
services for inbound HTTP request via\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
- Add
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddHttpMiddlewareCollectorCompilerPass
to automatically tag services implementing\Psr\Http\Server\MiddlewareInterface
withheptaconnect.http.handler.middleware
. - Add
\Heptacom\HeptaConnect\Core\Support\HttpMiddlewareCollector
as a service in the portal-node container. It is used to retrieve tagged middleware services from the container. - Add
\Heptacom\HeptaConnect\Core\Web\Http\Handler\HttpMiddlewareChainHandler
and\Heptacom\HeptaConnect\Core\Web\Http\HttpMiddlewareHandler
to wrap execution of middleware chain - Add composer dependency
psr/http-server-handler: ^1.0
andpsr/http-server-middleware: ^1.0
to support PSR-15 middlewares for HTTP handlers - Add exception code
1651338559
in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::list
when unpacking a single entry fails - Add exception code
1651338621
in\Heptacom\HeptaConnect\Core\Portal\PortalStorage
when denormalizing any stored value fails
- Only load dev-packages from
composer.lock
file when dev-mode is active in\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfigurationLoader
- Only check for dev-mode in
\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfigurationLoader
, if the installed version of composer supports it. - Skip broken entries in
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::list
instead of returning an empty list
- Load composer packages also from
require-dev
section ofcomposer.lock
file in\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfigurationLoader
- Move decision of exclusion by class for automatically created portal node container services from
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\RemoveAutoPrototypedDefinitionsCompilerPass
into\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::getContainerExcludedClasses
- Fix reception of multiple entities with the same identity within a single batch in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
- Add fallback value for the reported topic in
\Heptacom\HeptaConnect\Core\StatusReporting\StatusReportingService::reportSingleTopic
- Prevent parallelization lock from being released immediately after creating or checking it in
\Heptacom\HeptaConnect\Core\Parallelization\ResourceLockStorage
- Portal instances and portal extension instances are not shared across multiple portal node service containers anymore. If these instances are used stateful, portal node A can affect portal node B. All packages we provide have been checked negative against stateful usage of portal and portal extension instances.
- Portal extension stacks are now built for each portal node instead for each portal. This resulted in portal node service containers with active portal extension that have not been set active for the stack's portal node. It only occurs when more than one portal node service containers of the same portal is created in a single PHP process e.g. a message consumption process.
- Portal node configuration for preview portal nodes are now loaded statically again
- Portal node service container for preview portal nodes are now loaded statically again
- Fix order of portals and portal extensions in
\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry
- Fix creating identity error messages in
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor::handle
- Fix a critical error when writing portal node configuration
- Implement
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerCodeOriginFinderInterface
in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder
- Add exception code
1637607699
in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOrigin
when HTTP handler is a short-notation HTTP handler and has no configured callback - Add exception code
1637607700
in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOrigin
when HTTP handler class cannot be read via reflection - Add exception code
1637607701
in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOrigin
when HTTP handler class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterCodeOriginFinderInterface
in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder
- Add exception code
1637607653
in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOrigin
when emitter is a short-notation emitter and has no configured callback - Add exception code
1637607654
in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOrigin
when emitter class cannot be read via reflection - Add exception code
1637607655
in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOrigin
when emitter class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerCodeOriginFinderInterface
in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder
- Add exception code
1637421327
in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOrigin
when explorer is a short-notation explorer and has no configured callback - Add exception code
1637421328
in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOrigin
when explorer class cannot be read via reflection - Add exception code
1637421329
in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOrigin
when explorer class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverCodeOriginFinderInterface
in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder
- Add exception code
1641079368
in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOrigin
when receiver is a short-notation receiver and has no configured callback - Add exception code
1641079369
in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOrigin
when receiver class cannot be read via reflection - Add exception code
1641079370
in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOrigin
when receiver class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterCodeOriginFinderInterface
in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder
- Add exception code
1641079371
in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOrigin
when status reporter is a short-notation status reporter and has no configured callback - Add exception code
1641079372
in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOrigin
when status reporter class cannot be read via reflection - Add exception code
1641079373
in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOrigin
when status reporter class does not belong to a physical file - Add logger decorator
\Heptacom\HeptaConnect\Core\Component\Logger\FlowComponentCodeOriginFinderLogger
that replaces instances of\Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterContract
,\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerContract
,\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContract
,\Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterContract
and\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
within the context with their code origin - Add new service
Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientContract
to portal node container as an alternative toPsr\Http\Client\ClientInterface
with behaviour by configuration e.g. that can throw\Heptacom\HeptaConnect\Portal\Base\Web\Http\Exception\HttpException
on certain status code - Add class
\Heptacom\HeptaConnect\Core\Component\Logger\ExceptionCodeLogger
intended as a decorator to prepend the exception code to log messages if available - Add log message code
1647396033
in\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJob
when jobs from message cannot be loaded - Add log message code
1647396034
in\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJob
when jobs from message cannot be processed - Add contract
\Heptacom\HeptaConnect\Core\Parallelization\Contract\ResourceLockStorageContract
migrated from\Heptacom\HeptaConnect\Storage\Base\Contract\ResourceLockStorageContract
- Add implementation
\Heptacom\HeptaConnect\Core\Parallelization\ResourceLockStorage
for\Heptacom\HeptaConnect\Core\Parallelization\Contract\ResourceLockStorageContract
that depends onsymfony/lock
which is already required - Add log message code
1646383738
in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::list
when reading portal node storage entries fails - Add implementation
\Heptacom\HeptaConnect\Core\Portal\PreviewPortalNodeStorage
for the interface\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface
to support interactions on\Heptacom\HeptaConnect\Storage\Base\PreviewPortalNodeKey
- Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\FileContentsUrlProviderInterface
to provide public URLs for normalized streams - Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\FileRequestUrlProviderInterface
to prode public URLs for serialized requests - Add class
\Heptacom\HeptaConnect\Core\File\FileReferenceFactory
to create file references from public URLs, request objects or file contents - Add class
\Heptacom\HeptaConnect\Core\File\FileReferenceResolver
to resolve file references for read operations - Add class
\Heptacom\HeptaConnect\Core\File\Reference\ContentsFileReference
as implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContract
that is created from file contents - Add class
\Heptacom\HeptaConnect\Core\File\Reference\PublicUrlFileReference
as implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContract
that is created from a public URL - Add class
\Heptacom\HeptaConnect\Core\File\Reference\RequestFileReference
as implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContract
that is created from a PSR-7 request object - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReference
as implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContract
for file references that were created from file contents - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedPublicUrlFileReference
as implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContract
for file references that were created from a public URL - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedRequestFileReference
as implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContract
for file references that were created from a PSR-7 request object - Add class
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizer
to deserialize instances of\Psr\Http\Message\RequestInterface
- Add class
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizer
to serialize instances of\Psr\Http\Message\RequestInterface
- Add contract
\Heptacom\HeptaConnect\Core\Storage\Contract\RequestStorageContract
with implementation in\Heptacom\HeptaConnect\Core\Storage\RequestStorage
to persist and load instances of\Psr\Http\Message\RequestInterface
- Add exception code
1647788744
in\Heptacom\HeptaConnect\Core\File\FileReferenceFactory::fromContents
when the NormalizationRegistry is missing a normalizer for streams - Add exception code
1648315863
in\Heptacom\HeptaConnect\Core\File\FileReferenceFactory::fromContents
when the normalizer is unable to serialize the given file contents - Add exception code
1647788896
in\Heptacom\HeptaConnect\Core\File\FileReferenceResolver::resolve
when the NormalizationRegistry is missing a denormalizer for streams - Add exception code
1647789133
in\Heptacom\HeptaConnect\Core\File\FileReferenceResolver::resolve
when the FileReference has an unsupported source - Add exception code
1647789503
in\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReference::getContents
when denormalizing a normalized stream fails - Add exception code
1647789809
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizer::normalize
when trying to normalize anything other than a request object - Add exception code
1647790094
in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::load
when denormalizing a serialized request fails - Add exception code
1647791094
in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::load
when a serialized request is not found - Add exception code
1647791390
in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::persist
when persisting a serialized request fails - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContract
to define a contract for changing portal node configurations - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\ClosureInstructionToken
that changes portal node configuration by the given closure - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper
to generate closures for processing configuration sources like json files and environment variables - Add exception code
1647801828
in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::ini
when the ini file can not be loaded and parsed - Add exception code
1647801829
in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::json
when the JSON file can not be loaded and parsed - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config
to collect\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContract
in a short-notation manner - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionLoaderInterface
to identify services that provide\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContract
- Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\InstructionFileLoader
to provide\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContract
using\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config
- Add exception code
1645611612
in\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\InstructionFileLoader::loadInstructions
when referenced file can not be loaded - Add
\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessor
as\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorInterface
to change portal node configuration by instructions from given\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionLoaderInterface
instances - Add log message code
1647826121
in\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessor
when an error happens during instruction loading
- Replace dependencies in
\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
and\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobGetActionInterface
to improve performance by batching job reading - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterface
to improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterface
to improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterface
to improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\JobDispatcher
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
and\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobCreateActionInterface
to improve performance by batching job insertion - Switch storage access in
\Heptacom\HeptaConnect\Core\Portal\PortalRegistry
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNode\PortalNodeGetActionInterface
- Use portal node container tags
heptaconnect.flow_component.status_reporter_source
,heptaconnect.flow_component.emitter_source
,heptaconnect.flow_component.explorer_source
,heptaconnect.flow_component.receiver_source
,heptaconnect.flow_component.web_http_handler_source
instead ofheptaconnect.flow_component.emitter
,heptaconnect.flow_component.emitter_decorator
,heptaconnect.flow_component.explorer
,heptaconnect.flow_component.explorer_decorator
,heptaconnect.flow_component.receiver
,heptaconnect.flow_component.receiver_decorator
andheptaconnect.flow_component.web_http_handler
to collect flow component services - Short-noted flow components by portals load on first flow component usage instead of on container building using
\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry
- Add dependency onto
\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalExtension\PortalExtensionFindActionInterface
into\Heptacom\HeptaConnect\Core\Portal\PortalRegistry
for loading portal extension availability - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterContract
in log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder
logger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerContract
in log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder
logger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContract
in log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder
logger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract
in log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilder
logger usage - Replace dependencies in
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService
from\Heptacom\HeptaConnect\Storage\Base\Contract\ConfigurationStorageContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationGetActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationSetActionInterface
to improve performance on reading and writing portal node configuration - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\EntityMapperContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface
as previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\EntityReflectorContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityReflectActionInterface
as previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor
from\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface
- Replace dependencies in
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor
from\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityPersistActionInterface
as previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Portal\PortalStorageFactory
and\Heptacom\HeptaConnect\Core\Portal\PortalStorage
from\Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageClearActionInterface
,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageDeleteActionInterface
,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageGetActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageListActionInterface
,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageSetActionInterface
- Replace dependencies in
\Heptacom\HeptaConnect\Core\Emission\EmitContext
from\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterface
as previous services are removed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Emission\EmitContextFactory
from\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterface
as previous services are removed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor
from\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterface
to\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterface
as previous service is removed - Split argument in
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveServiceInterface::receive
of type\Heptacom\HeptaConnect\Portal\Base\Mapping\TypedMappedDatasetEntityCollection
into\Heptacom\HeptaConnect\Dataset\Base\TypedDatasetEntityCollection
and\Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\PortalNodeKeyInterface
to state target portal clearly - Extract caching of
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService
into new class\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationCacheProcessor
using the\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorInterface
interface - Make classes final:
\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfigurationLoader
,\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService
,\Heptacom\HeptaConnect\Core\Emission\EmissionActor
,\Heptacom\HeptaConnect\Core\Emission\EmitContext
,\Heptacom\HeptaConnect\Core\Emission\EmitContextFactory
,\Heptacom\HeptaConnect\Core\Emission\EmitService
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilderFactory
,\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter
,\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor
,\Heptacom\HeptaConnect\Core\Exploration\ExploreContext
,\Heptacom\HeptaConnect\Core\Exploration\ExploreContextFactory
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilderFactory
,\Heptacom\HeptaConnect\Core\Exploration\ExploreService
,\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow
,\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
,\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
,\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
,\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor
,\Heptacom\HeptaConnect\Core\Job\JobDispatcher
,\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct
,\Heptacom\HeptaConnect\Core\Mapping\MappingStruct
,\Heptacom\HeptaConnect\Core\Mapping\Publisher
,\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddPortalConfigurationBindingsCompilerPass
,\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AllDefinitionDefaultsCompilerPass
,\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\BuildDefinitionForFlowComponentRegistryCompilerPass
,\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\RemoveAutoPrototypedDefinitionsCompilerPass
,\Heptacom\HeptaConnect\Core\Portal\PortalConfiguration
,\Heptacom\HeptaConnect\Core\Portal\PortalFactory
,\Heptacom\HeptaConnect\Core\Portal\PortalRegistry
,\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
,\Heptacom\HeptaConnect\Core\Portal\PortalStorage
,\Heptacom\HeptaConnect\Core\Portal\PreviewPortalNodeStorage
,\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor
,\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor
,\Heptacom\HeptaConnect\Core\Reception\ReceiveContext
,\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilderFactory
,\Heptacom\HeptaConnect\Core\Reception\ReceiveService
,\Heptacom\HeptaConnect\Core\Reception\ReceptionActor
,\Heptacom\HeptaConnect\Core\StatusReporting\StatusReportingContext
,\Heptacom\HeptaConnect\Core\StatusReporting\StatusReportingContextFactory
,\Heptacom\HeptaConnect\Core\StatusReporting\StatusReportingService
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarDenormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarNormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressDenormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableDenormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableNormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer
,\Heptacom\HeptaConnect\Core\Storage\NormalizationRegistry
,\Heptacom\HeptaConnect\Core\Support\EntityStatus
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContextFactory
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilder
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderFactory
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleService
and\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlingActor
- Remove separation of source flow components and decorator flow components in
\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder
and\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilder
. First flow component in list is always the source - Remove portal node container service ids
Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection
,Heptacom\HeptaConnect\Portal\Base\Emission\EmitterCollection.decorator
,Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection
,Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerCollection.decorator
,Heptacom\HeptaConnect\Portal\Base\StatusReporting\StatusReporterCollection
,Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection
,Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverCollection.decorator
,Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection
andHeptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection.decorator
due to refactoring of flow component stack building - Remove dependency on
\Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponent
in\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
- Remove classes
\Heptacom\HeptaConnect\Core\Cronjob\CronjobContext
,\Heptacom\HeptaConnect\Core\Cronjob\CronjobContextFactory
and\Heptacom\HeptaConnect\Core\Cronjob\CronjobService
as the feature of cronjobs in its current implementation is removed - Remove composer dependency
dragonmantank/cron-expression
- Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::get
of\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::get
- Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::save
of\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::save
- Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::reflect
of\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::reflect
- Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::addException
of\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::addException
- Remove
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIds
in favour of\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface::map
- Remove
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::merge
,\Heptacom\HeptaConnect\Core\Mapping\Exception\MappingNodeAreUnmergableException
and\Heptacom\HeptaConnect\Core\Mapping\Exception\MappingNodeNotCreatedException
in favour of\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityOverviewActionInterface
and\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityPersistActionInterface
- Remove log message code
1631563639
,1631563699
,1631565446
and1631565376
from\Heptacom\HeptaConnect\Core\Portal\PortalStorage
- Remove deprecated methods
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::canSet
and\Heptacom\HeptaConnect\Core\Portal\PortalStorage::canGet
- Remove unused
\Heptacom\HeptaConnect\Core\Router\CumulativeMappingException
- Remove dependency on
\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContract
in\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
- Remove deprecated method
Heptacom\HeptaConnect\Core\Mapping\Publisher::publish
inherited fromHeptacom\HeptaConnect\Portal\Base\Publication\Contract\PublisherInterface::publish
- Portal node extensions can supply source flow components for data types that have not been introduced by the decorated portal
- All aliases in the dependency-injection container for portals are now public. This enables injection of aliased services in short-notation flow-components.
- Prevent leak of
\Heptacom\HeptaConnect\Portal\Base\Reception\Support\PostProcessorDataBag
into subsequent iterations of\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::performReception
. Every entry of\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedData
is now only handled once.
- Change composer dependency
bentools/iterable-functions: >=1 <2
tobentools/iterable-functions: >=1.4 <2
to ensure availability of\iterable_map
in a lowest-dependency-version installation - Change composer dependency
composer/composer: >=1
tocomposer/composer: >=1.9
to ensure correct composer project and library parsing in a lowest-dependency-version installation - Change composer dependency
php-http/discovery: ^1.0
tophp-http/discovery: ^1.11
to ensure availability of\Http\Discovery\Psr17FactoryDiscovery
and\Http\Discovery\Psr17FactoryDiscovery::findUriFactory
in a lowest-dependency-version installation - Add composer dependency
symfony/event-dispatcher-contracts: >=1.1
to ensure availability of\Symfony\Contracts\EventDispatcher\Event
in a lowest-dependency-version installation - Change composer dependency
symfony/polyfill-php80: >=1.15
tosymfony/polyfill-php80: >=1.16
to ensure availability of\str_starts_with
a php 7.4 and lowest-dependency-version installation - Amend signature of
\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarDenormalizer::denormalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarDenormalizer::supportsDenormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarNormalizer::normalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\ScalarNormalizer::supportsNormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressDenormalizer::denormalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressDenormalizer::supportsDenormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressNormalizer::normalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableDenormalizer::denormalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableDenormalizer::supportsDenormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableNormalizer::normalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableNormalizer::supportsNormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer::denormalize
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer::supportsDenormalization
,\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::normalize
and\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::supportsNormalization
to allow installations ofsymfony/serializer: >=4
andsymfony/serializer: >= 5
- Remove the code for unit tests, configuration for style checks as well as the Makefile
- Provide portal node container services as definition instead of synthetic service to allow decoration for service ids
Heptacom\HeptaConnect\Portal\Base\Support\Contract\DeepCloneContract
,Heptacom\HeptaConnect\Portal\Base\Support\Contract\DeepObjectIteratorContract
,Psr\Http\Client\ClientInterface
,Psr\Http\Message\RequestFactoryInterface
,Psr\Http\Message\UriFactoryInterface
,Psr\Http\Message\ResponseFactoryInterface
andPsr\Http\Message\StreamFactoryInterface
- Remove expired keys from the result of
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::getMultiple
- Fix auto-wiring array values from portal configuration
- Fix type error during reception when entity with numeric primary key is received
- Fix stack building to allow for decorators. Previously when a portal extension had provided a decorator for a flow component, the stack would only contain the decorator and would miss the source component. (
\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilder::pushSource
)
- Add calls to
\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::start
and\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::finish
in\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler::triggerEmission
,\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler::triggerExplorations
and\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
to track job states - Add caching layer to
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService::getPortalNodeConfiguration
- Add composer dependency
symfony/event-dispatcher: ^4.0 || ^5.0
- Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::MARK_AS_FAILED_ENTITY_IS_UNMAPPED
with log message code1637456198
for issues during logging error messages during reception - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::RECEIVE_NO_SAVE_MAPPINGS_NOT_PROCESSED
for issues after saving mappings after a reception - Introduce
\Heptacom\HeptaConnect\Core\Event\PostReceptionEvent
for reception new event dispatcher in reception - Add post-processing type
\Heptacom\HeptaConnect\Portal\Base\Reception\PostProcessing\MarkAsFailedData
- Implement new method
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiveContextInterface::getEventDispatcher
in\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::getEventDispatcher
- Implement new method
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiveContextInterface::getPostProcessingBag
in\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::getEventDispatcher
- Add post-processor base class
\Heptacom\HeptaConnect\Core\Reception\Contract\PostProcessorContract
- Add post-processing for failed receptions using
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedData
and handled in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor
- Add post-processing for saving mappings after receptions using
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsData
and handled in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor
- Extract path building from
\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer
and\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer
into new service\Heptacom\HeptaConnect\Core\Storage\Contract\StreamPathContract
- Add log messages codes
1634868818
,1634868819
to\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer
- Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::STORAGE_STREAM_NORMALIZER_CONVERTS_HINT_TO_FILENAME
with the message code1635462690
to track generated filenames from the stream file storage in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer
- Add log exception code
1636503503
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job has no related route - Add log exception code
1636503504
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job has no entity - Add log exception code
1636503505
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job refers a non-existing route - Add log exception code
1636503506
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job refers to a route that is not configured to allow receptions - Add log exception code
1636503507
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job has an entity, that is of a different type than the route's entity type - Add log exception code
1636503508
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
when job has an entity, that has a different primary key than the one saved on the job - Add web HTTP handler context factory interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleContextFactoryInterface
and implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContextFactory
as well as\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext
- Add web HTTP stack building interfaces
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackBuilderFactoryInterface
,\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackBuilderInterface
and implementations\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderFactory
,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilder
for acting with web HTTP handlers - Add web HTTP service interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleServiceInterface
and implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleService
to validate and handle requests - Add web HTTP actor interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlingActorInterface
and implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlingActor
to process any request through a web HTTP handler stack - Add interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerUrlProviderFactoryInterface
for bridges to provide implementation as bridges implement routing - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::WEB_HTTP_HANDLE_NO_THROW
used with log message code1636845126
when handling the web request triggered an exception in the flow component - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::WEB_HTTP_HANDLE_NO_HANDLER_FOR_PATH
used with log message code1636845086
when handling the web request could not match any flow component - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::WEB_HTTP_HANDLE_DISABLED
used with log message code1636845085
when route is disabled and still called - Add
\Heptacom\HeptaConnect\Core\Storage\Exception\GzipCompressException
for cases when gzip related methods fail - Add exception code
1637432095
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressNormalizer::normalize
whengzcompress
fails to compress - Add exception code
1637101289
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer::denormalize
when file to denormalize does not exist - Add exception code
1637432853
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::normalize
when object is no\Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream
- Add exception code
1637432854
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::normalize
when object does not hold a valid stream - Add exception code
1637433403
in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddPortalConfigurationBindingsCompilerPass::process
when an array_combine call fails that logically should not be able to fail - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::EMIT_NO_PRIMARY_KEY
used with log message code1637434358
when emitted entity has no primary key - Add parameter
$jobKey
in\Heptacom\HeptaConnect\Core\Job\JobData::__construct
- Add method
\Heptacom\HeptaConnect\Core\Job\JobData::getJobKey
- Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerUrlProviderInterface
to portal container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection
to portal container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection.decorator
to portal container - Add log message code
1637527920
in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handle
when an entity has been received with a primary key but has no mapping data - Add log message code
1637527921
in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handle
when an entity has been received with a primary key but has invalid mapping data
- Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\EmitContext::markAsFailed
from$datasetEntityClassName
to$entityType
- Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackBuilderFactoryInterface::createEmitterStackBuilder
from$entityClassName
to$entityType
, respective change in its implementing class\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilderFactory::createEmitterStackBuilder
- Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::__construct
from$entityClassName
to$entityType
. Change the field name in corresponding functions that use the field (\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::push
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushDecorators
) - Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\EmitService::getEmitterStack
from$entityClassName
to$entityType
- Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackBuilderFactoryInterface::createExplorerStackBuilder
from$entityClassName
to$entityType
, respective change in its implementing class\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilderFactory::createExplorerStackBuilder
- Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface::performExploration
from$entityClassName
to$entityType
, respective change in its implementing class\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor::performExploration
- Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::__construct
from$entityClassName
to$entityType
. Change the field name in corresponding functions that use the field (\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::push
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushDecorators
) - Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiverStackBuilderFactoryInterface::createReceiverStackBuilder
from$entityClassName
to$entityType
, respective change in its implementing class\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilderFactory::createReceiverStackBuilder
- Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::__construct
from$entityClassName
to$entityType
. Change the field name in corresponding functions that use the field (\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::push
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushSource
,\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushDecorators
) - Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\ReceiveService::getReceiverStack
from$entityClassName
to$entityType
- Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::get
from$datasetEntityClassName
to$entityType
, respective change in its implementing class for\Heptacom\HeptaConnect\Core\Mapping\MappingService::get
- Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIds
from$datasetEntityClassName
to$entityType
, respective change in its implementing class for\Heptacom\HeptaConnect\Core\Mapping\MappingService::getListByExternalIds
- Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::__construct
from$datasetEntityClassName
to$entityType
- Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Publisher::publish
from$datasetEntityClassName
to$entityType
- Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::__construct
from$datasetEntityClassName
to$entityType
- Change method name from
\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getDatasetEntityClassName
to\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getEntityType
- Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingStruct::getDatasetEntityClassName
to\Heptacom\HeptaConnect\Core\Mapping\MappingStruct::getEntityType
- Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::getDatasetEntityClassName
to\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::getEntityType
- Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::setDatasetEntityClassName
to\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::setEntityType
- Change method name from
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignDatasetEntityClassName
to\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignEntityType
- Change method name from
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::setForeignDatasetEntityClassName
to\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::setForeignEntityType
- Add dependency onto
\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract
into\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
,\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
and\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
for job tracking - Add dependency onto
\Psr\Cache\CacheItemPoolInterface
into\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService
for configuration caching - Remove parameter
$mappingService
from\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::__construct
and\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory::__construct
as it is no longer needed - Add parameter
$postProcessors
to\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::__construct
and\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory::__construct
to contain every post-processing handler for this context - Change
\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::markAsFailed
to add\Heptacom\HeptaConnect\Portal\Base\Reception\PostProcessing\MarkAsFailedData
to the post-processing data bag instead of directly passing to\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::addException
- Remove parameter
$mappingPersister
from\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::__construct
as its usage has been moved into\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor
- Move of saving mappings from
\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::performReception
into\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handle
- Add dependency onto
\Psr\Log\LoggerInterface
into\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer
for logging filename conversions - Change dependency in
\Heptacom\HeptaConnect\Core\Emission\EmissionActor
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContract
into\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListActionInterface
for more performant route lookup - Change dependency in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
from\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContract
into\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetActionInterface
for more performant route reading - Allow
\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterface::triggerReception
to throw\Heptacom\HeptaConnect\Core\Job\Exception\ReceptionJobHandlingException
- Add dependency onto
\Psr\Log\LoggerInterface
into\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
for logging exceptions - Add dependency onto
\Psr\Log\LoggerInterface
into\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor
for logging unclearmapping scenarios
- Move
\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::STORAGE_LOCATION
into\Heptacom\HeptaConnect\Core\Storage\Contract\StreamPathContract::STORAGE_LOCATION
- Remove
\Heptacom\HeptaConnect\Core\Webhook\Contract\UrlProviderInterface
- Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookContext
in favour of\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext
- Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookContextFactory
in favour of\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContextFactory
- Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookService
- Remove interface
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::ensurePersistence
and implementation\Heptacom\HeptaConnect\Core\Mapping\MappingService::ensurePersistence
in favour of\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract
- Provide callback-function to \array_filter in
Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::run
to only filter out primary keys with null and not 0 \Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer
rejects null and empty string as data- Usage of
\Ramsey\Uuid\Uuid
in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer
only supportedramsey/uuid: 3
but composer configuration allowed installation oframsey/uuid: 4
. Now it is used cross-compatible to work withramsey/uuid: 3 || 4
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationService::setPortalNodeConfiguration
removes nestednull
values and does not storenull
anymore- Fix automatic prototyping when a portal provides an interface in
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\RemoveAutoPrototypedDefinitionsCompilerPass::isPrototypable
- Change implementation for
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterface
in\Heptacom\HeptaConnect\Core\Portal\PortalStorage
to allow PSR simple cache compatibility - Add log messages codes
1631387202
,1631387363
,1631387430
,1631387448
,1631387470
,1631387510
,1631561839
,1631562097
,1631562285
,1631562928
,1631563058
,1631563639
,1631563699
,1631565257
,1631565376
,1631565446
to\Heptacom\HeptaConnect\Core\Portal\PortalStorage
- Add interface
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveContextFactoryInterface
to\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory
- Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterface
to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
- Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\ExplorationHandlerInterface
to\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
- Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\EmissionHandlerInterface
to\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
- Add interface
\Heptacom\HeptaConnect\Core\Emission\Contract\EmitContextFactoryInterface
to\Heptacom\HeptaConnect\Core\Emission\EmitContextFactory
- Add method
\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter::batch
for better performance in direct emissions
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::get
and\Heptacom\HeptaConnect\Core\Portal\PortalStorage::set
will now throw exceptions when normalization could not happen- Add parameter for
\Psr\Log\LoggerInterface
dependency in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::__construct
and\Heptacom\HeptaConnect\Core\Portal\PortalStorageFactory::__construct
- Change type of parameter
\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory
to its new interface\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveContextFactoryInterface
in\Heptacom\HeptaConnect\Core\Reception\ReceiveService::__construct
- Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler
to its new interface\Heptacom\HeptaConnect\Core\Job\Contract\EmissionHandlerInterface
in\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct
- Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
to its new interface\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterface
in\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct
- Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
to its new interface\Heptacom\HeptaConnect\Core\Job\Contract\ExplorationHandlerInterface
in\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct
- Change type of parameter
\Heptacom\HeptaConnect\Core\Emission\EmitContextFactory
to its new interface\Heptacom\HeptaConnect\Core\Emission\Contract\EmitContextFactoryInterface
in\Heptacom\HeptaConnect\Core\Emission\EmitService::__construct
- Change behavior of service
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow
to not create mappings anymore - Remove parameter
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface
from\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::__construct
- Change method
\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::saveMappings
to use new service\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract
\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushSource
and\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushDecorators
don't push explorers onto the stack when they are already in the stack\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushSource
and\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushDecorators
don't push emitters onto the stack when they already in the stack\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushSource
and\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushDecorators
don't push receivers onto the stack when they already in the stack
- Remove method
\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter::run
as it became obsolete
- Add
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::dispatchExploreJob
to start an exploration as a job via\Heptacom\HeptaConnect\Core\Job\Contract\JobDispatcherContract::dispatch
- Add
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
to handle exploration jobs\Heptacom\HeptaConnect\Core\Job\Type\Exploration
- Add support for handling exploration jobs in
\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor
with using\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler
- Add
\Psr\Http\Message\ResponseFactoryInterface
service to the portal containers in\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
for better HTTP and messaging PSR support for portal developers - Add
\Psr\Http\Message\StreamFactoryInterface
service to the portal containers in\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder
for better HTTP and messaging PSR support for portal developers
- Direct emission and explorations create mappings via
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIds
on\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface::performExploration
when implemented by\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor::performExploration
- Remove impact of entity primary keys on lock keys in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
- Add composer dependency
symfony/yaml: ^4.4|^5.0
- Add base class
\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\DirectEmissionFlowContract
to\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow
to expose service for portals - Add classes to hold job data for batch processing
\Heptacom\HeptaConnect\Core\Job\JobData
and\Heptacom\HeptaConnect\Core\Job\JobDataCollection
- Add class
\Heptacom\HeptaConnect\Core\Portal\PortalLogger
that can decorate any\Psr\Log\LoggerInterface
to apply any additional message prefix and context to all logs - Add
\Heptacom\HeptaConnect\Portal\Base\Publication\Contract\PublisherInterface
to portal node service container - Add
\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\DirectEmissionFlowContract
to portal node service container
- The acting to jobs in
\Heptacom\HeptaConnect\Core\Job\Contract\DelegatingJobActorContract::performJob
will now happen in batches in\Heptacom\HeptaConnect\Core\Job\Contract\DelegatingJobActorContract::performJobs
and expects different parameters - The trigger on emission jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler::triggerEmission
will now happen in batches and expects different parameters - The trigger on reception jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
will now happen in batches and expects different parameters - Change signature of
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionActorInterface::performReception
to not rely on previously entities bound to\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface
objects - Change signature of
\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::markAsFailed
to not rely on previously entities bound to\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterface
objects - Do most of the business logic for reception in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
to have job related logic less bound to reception processes in general
- Deprecate cronjobs and therefore mark
\Heptacom\HeptaConnect\Core\Cronjob\CronjobContext
,\Heptacom\HeptaConnect\Core\Cronjob\CronjobContextFactory
,\Heptacom\HeptaConnect\Core\Cronjob\CronjobService
as internal - Deprecate webhooks and therefore mark
\Heptacom\HeptaConnect\Core\Webhook\WebhookContext
,\Heptacom\HeptaConnect\Core\Webhook\WebhookContextFactory
,\Heptacom\HeptaConnect\Core\Webhook\WebhookService
,\Heptacom\HeptaConnect\Core\Webhook\Contact\UrlProviderInterface
as internal
- Move
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionResult
into the portal base package as\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\DirectEmissionResult
- Move
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\Exception\UnidentifiedEntityException
into the portal base package as\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\Exception\UnidentifiedEntityException
- The handling of jobs in
\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJob
does not republish failed jobs anymore. That feature will be added back again in a different form - The trigger on emission jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler::triggerEmission
will no longer report back success - The trigger on reception jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReception
will no longer report back success - Remove automatically registered services in
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\RemoveAutoPrototypedDefinitionsCompilerPass
that is based on\Throwable
,\Heptacom\HeptaConnect\Dataset\Base\Contract\AttachableInterface
,\Heptacom\HeptaConnect\Dataset\Base\Contract\CollectionInterface
and\Heptacom\HeptaConnect\Dataset\Base\Contract\DatasetEntityContract