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\EmitterStackout ofheptaconnect/portal-baseinto this package as\Heptacom\HeptaConnect\Core\Emission\EmitterStack - Move
\Heptacom\HeptaConnect\Portal\Base\Exploration\ExplorerStackout ofheptaconnect/portal-baseinto this package as\Heptacom\HeptaConnect\Core\Exploration\ExplorerStack - Add
$entityTypeparameter to\Heptacom\HeptaConnect\Core\Exploration\ExplorerStack::__constructto implement new\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerStackInterface::supports - Move
\Heptacom\HeptaConnect\Portal\Base\Reception\ReceiverStackout ofheptaconnect/portal-baseinto this package as\Heptacom\HeptaConnect\Core\Reception\ReceiverStack - Add implementation
\Heptacom\HeptaConnect\Core\Job\Transition\EmittedEntitiesToReceiveJobsConverterand its interface\Heptacom\HeptaConnect\Core\Job\Transition\Contract\EmittedEntitiesToJobsConverterInterfaceto convert results of an emission into receive jobs - Add log message code
1661091900to\Heptacom\HeptaConnect\Core\Job\Transition\EmittedEntitiesToReceiveJobsConverter::convertwhen 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\ExploredPrimaryKeysToEmissionJobsConverterand its interface\Heptacom\HeptaConnect\Core\Job\Transition\Contract\ExploredPrimaryKeysToJobsConverterInterfaceto convert results of an exploration into emission jobs - Add log message code
1661091901to\Heptacom\HeptaConnect\Core\Job\Transition\ExploredPrimaryKeysToEmissionJobsConverter::convertwhen conversion resulted in no jobs, which can be ok, but is important to know, when looking into failing transfer - Add log message code
1661818271to\Heptacom\HeptaConnect\Core\Reception\LockingReceiverwhen unlocking of a lock failed - Add log message code
1661818272to\Heptacom\HeptaConnect\Core\Reception\LockingReceiverwhen even after retrying the reception could not be locked - Add log message code
1662200022to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serializewhen the auditable data object fails at exposing auditable data - Add log message code
1662200023to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serializewhen json_encode can not compose a JSON string - Add log message code
1662200024to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializer::serializewhen auditable data throws an exception during serialization - Add
\Heptacom\HeptaConnect\Core\Storage\PrimaryKeyToEntityHydratorto 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\ReceiveJobDispatchingEmitterto dispatch receive jobs from any emission stack, where this emitter is pushed onto - Add
\Heptacom\HeptaConnect\Core\Exploration\AbstractBufferedResultProcessingExploreras base class for explorer, which capture stack processing and process the captured data in batches - Add
\Heptacom\HeptaConnect\Core\Emission\AbstractBufferedResultProcessingEmitteras base class for emitter, which capture stack processing and process the captured data in batches - Add
\Heptacom\HeptaConnect\Core\Emission\EmissionFlowEmittersFactorydescribed in\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionFlowEmittersFactoryInterfaceto return emitters, that provide core functionality for the emission flow - Add
\Heptacom\HeptaConnect\Core\Exploration\DirectEmissionFlowEmittersFactorydescribed in\Heptacom\HeptaConnect\Core\Exploration\Contract\DirectEmissionFlowEmittersFactoryInterfaceto return emitters, that provide core functionality for the direct emission flow - Add
\Heptacom\HeptaConnect\Core\Exploration\ExplorationFlowExplorersFactorydescribed in\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationFlowExplorersFactoryInterfaceto return explorers, that provide core functionality for the exploration flow - Add
\Heptacom\HeptaConnect\Core\Reception\ReceptionFlowReceiversFactorydescribed in\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionFlowReceiversFactoryInterfaceto return receivers, that provide core functionality for the reception flow - Add
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleFlowHttpHandlersFactorydescribed in\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleFlowHttpHandlersFactoryInterfaceto return HTTP handlers, that provide core functionality for the HTTP handle flow - Add implementation
\Heptacom\HeptaConnect\Core\Portal\PortalNodeContainerFacadeand its contract\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContractto have a typed interface onto\Psr\Container\ContainerInterface - Add exception code
1666461305to\Heptacom\HeptaConnect\Core\Portal\PortalNodeContainerFacade::__constructwhen the given container does not contain all necessary services, that explicitly are exposed by the facade - Extract query matching from
\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessorinto\Heptacom\HeptaConnect\Core\Portal\PackageQueryMatcherdescribed 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\NullAuditTrailand factorized by\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactorydescribed in\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\Contract\AuditTrailFactoryInterface - Add
\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditableDataSerializerdescribed in\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\Contract\AuditableDataSerializerInterfaceto transform auditable data into a string for storing later - Add
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparatordescribed by\Heptacom\HeptaConnect\Core\Ui\Admin\Support\Contract\PortalNodeExistenceSeparatorInterfacewith\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResultto 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\UiActionContextfor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\UiActionContextInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\Context\UiActionContextFactoryfor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\UiActionContextFactoryInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeAliasResolverfor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Support\PortalNodeAliasResolverInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessorfor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Support\StorageKeyAccessorInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Job\JobRunUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobScheduleUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Job\JobScheduleUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalEntityListUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Portal\PortalEntityListUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeEntityListUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeEntityListUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionBrowseUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionBrowseUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStatusReportUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeStatusReportUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionActivateUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeExtensionDeactivateUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeStorageGetUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeAddUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeRemoveUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeConfigurationGetUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationRenderUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\PortalNode\PortalNodeConfigurationRenderUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteAddUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteBrowseUiActionInterface - Add implementation
\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUifor\Heptacom\HeptaConnect\Ui\Admin\Base\Contract\Action\Route\RouteRemoveUiActionInterface - Add exception code
1655051115to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeAliasResolver::resolvewhen resolving the give portal node alias has no result - Add exception code
1650732001to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResult::throwWhenKeysAreMissingwhen a portal node key does not refer to a known portal node - Add exception code
1650732002to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\PortalNodeExistenceSeparationResult::throwWhenPreviewKeysAreGivenwhen a portal node key does not refer to a known portal node but a preview portal instead - Add exception code
1660417907to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::deserializewhen the given storage key data is not compatible with the storage implementation - Add exception code
1660417908to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::serializewhen the given storage key is not compatible with the storage implementation - Add exception code
1660417909to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::existswhen the given storage key is not compatible with the storage implementation - Add exception code
1660417910to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::existswhen the given storage key is not supported in existence checks - Add exception code
1660417911to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::existswhen the given storage key existence check failed in the storage implementation - Add exception code
1660417912to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::serializewhen serialization failed in the storage implementation - Add exception code
1660417913to\Heptacom\HeptaConnect\Core\Ui\Admin\Support\StorageKeyAccessor::deserializewhen deserialization failed in the storage implementation - Add exception code
1659721163to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUi::runwhen one of the given jobs are not found in the job storage - Add exception code
1659721164to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobRunUi::runwhen running the jobs fails at one point - Add exception code
1677424700to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\JobScheduleUi::schedulewhen one of the given jobs are not found in the job storage - Add exception code
1663051795to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalEntityListUi::listwhen reading entity support fails - Add exception code
1650142326to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUi::activatewhen the given query does not match any supporting portal extension - Add exception code
1650142327to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionActivateUi::activatewhen all matched portal extensions are already active on the portal node - Add exception code
1650731999to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUi::deactivatewhen the given query does not match any supporting portal extension - Add exception code
1650732000to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeExtensionDeactivateUi::deactivatewhen all matched portal extensions are already inactive on the portal node - Add exception code
1673129100to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::getwhen looking up a portal node key failed in the storage implementation - Add exception code
1673129102to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::getwhen a requested storage key is not a scalar value - Add exception code
1673129103to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeStorageGetUi::getwhen accessing data from the portal node storage failed - Add exception code
1650718860to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::addwhen portal node alias validation fails due to a storage exception - Add exception code
1650718861to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::addwhen the portal node alias is already taken - Add exception code
1650718862to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::addwhen portal node creation fails due to a storage exception - Add exception code
1650718863to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeAddUi::addwhen portal node creation did not create a portal node - Add exception code
1650758000to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUi::removewhen reading known portal nodes from storage fails - Add exception code
1650758002to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeRemoveUi::removewhen deleting portal nodes fails in storage - Add exception code
1670832600to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUi::getwhen reading portal nodes to validate their existence fails due to a storage exception - Add exception code
1670832602to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\PortalNodeConfigurationGetUi::getwhen reading portal node configuration fails due to a storage exception - Add exception code
1654573095to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::addwhen one of the requested route payloads already exists - Add exception code
1654573097to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::addwhen route creation did not create the expected routes - Add exception code
1654573098to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteAddUi::addwhen route creation fails due to a storage exception - Add exception code
1670625000to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUi::browsewhen the given sorting direction is not supported - Add exception code
1670625001to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteBrowseUi::browsewhen the given field to sort by is not supported - Add exception code
1659293800to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::removewhen reading known routes from storage fails - Add exception code
1659293801to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::removewhen route that does not exist is tried to be deleted - Add exception code
1659293802to\Heptacom\HeptaConnect\Core\Ui\Admin\Action\RouteRemoveUi::removewhen deleting routes fails in storage - Add exception code
1663677420to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::createwhen starting an audit trail failed and a no-op trail is used instead - Add exception code
1663677421to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::createwhen logging any output to an audit trail failed - Add exception code
1663677422to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::createwhen logging any exception to an audit trail failed - Add exception code
1663677423to\Heptacom\HeptaConnect\Core\Ui\Admin\Audit\AuditTrailFactory::createwhen marking an audit trail as finished - Extract deserialization logic of
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizerinto\Heptacom\HeptaConnect\Core\Web\Http\RequestDeserializerdescribed by\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestDeserializerInterfaceand\Heptacom\HeptaConnect\Core\Web\Http\Exception\RequestDeserializationExceptionto be explicitly used independent from\Heptacom\HeptaConnect\Core\Storage\NormalizationRegistry - Add exception code
1666451009to\Heptacom\HeptaConnect\Core\Web\Http\RequestDeserializer::deserializewhen the given request data is not valid JSON - Extract serialization logic of
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizerinto\Heptacom\HeptaConnect\Core\Web\Http\RequestSerializerdescribed by\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestSerializerInterfaceand\Heptacom\HeptaConnect\Core\Web\Http\Exception\RequestSerializationExceptionto be explicitly used independent from\Heptacom\HeptaConnect\Core\Storage\NormalizationRegistry - Add exception code
1666451010to\Heptacom\HeptaConnect\Core\Web\Http\RequestSerializer::serializewhen 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\ContainerInterfacein\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::__constructand\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext::__constructis expected of type\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContractinstead - Return type of
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerFactory::createis now\Heptacom\HeptaConnect\Core\Portal\Contract\PortalNodeContainerFacadeContractwhich inherits the previous return type - Change
$entityTypeparameter 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::createReceiverStackBuilderand\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::__constructto be a\Heptacom\HeptaConnect\Dataset\Base\EntityTypeinstead of a string for better type safe class strings - Change
$dataTypesparameter in\Heptacom\HeptaConnect\Core\Exploration\ExploreService::explore,\Heptacom\HeptaConnect\Core\Exploration\ExploreService::dispatchExploreJob,\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::exploreand\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::dispatchExploreJobto be a\Heptacom\HeptaConnect\Dataset\Base\EntityTypeCollectioninstead 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::getEntityTypeand\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignEntityTypeto be\Heptacom\HeptaConnect\Dataset\Base\EntityTypeinstead of a string for better type safe class strings - Update implementation
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachableto match changes in\Heptacom\HeptaConnect\Dataset\Base\Contract\ForeignKeyAwareInterface - Change
$classparameter in\Heptacom\HeptaConnect\Core\Portal\Contract\PortalFactoryContract::instantiatePortalto be a\Heptacom\HeptaConnect\Portal\Base\Portal\PortalTypeinstead of a string for better type safe class strings - Change
$classparameter in\Heptacom\HeptaConnect\Core\Portal\Contract\PortalFactoryContract::instantiatePortalExtensionto be a\Heptacom\HeptaConnect\Portal\Base\Portal\PortalExtensionTypeinstead of a string for better type safe class strings - Change
$emissionActorparameter in\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::__constructto be a\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackProcessorInterfaceand a\Heptacom\HeptaConnect\Core\Exploration\Contract\DirectEmissionFlowEmittersFactoryInterfaceinstead of a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterfaceto control the contents of the direct emission stack - Change
$emissionActorparameter in\Heptacom\HeptaConnect\Core\Emission\EmitService::__constructto be a\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackProcessorInterfaceand a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionFlowEmittersFactoryInterfaceinstead of a\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterfaceto control the contents of the emission stack - Change
$explorationActorparameter in\Heptacom\HeptaConnect\Core\Exploration\ExploreService::__constructto be a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackProcessorInterfaceand a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationFlowExplorersFactoryInterfaceinstead of a\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterfaceto control the contents of the exploration stack - Replace
\Heptacom\HeptaConnect\Core\Emission\Contract\EmissionActorInterfacepartially 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\EmissionActorInterfacepartially with job dispatching from emitter stacks in\Heptacom\HeptaConnect\Core\Emission\ReceiveJobDispatchingEmitter - Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterfacepartially 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\ExplorationActorInterfacepartially with job dispatching from explorer stacks in\Heptacom\HeptaConnect\Core\Exploration\EmissionJobDispatchingExplorer - Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterfacepartially with triggering emission stack processing for direct emission in\Heptacom\HeptaConnect\Core\Exploration\DirectEmittingExplorer - Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterfacepartially with entities' identities existence ensuring explorer in\Heptacom\HeptaConnect\Core\Exploration\IdentityMappingExplorer - Replace
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterfacepartially with entities' identities existence ensuring emitter for direct emission in\Heptacom\HeptaConnect\Core\Emission\IdentityMappingEmitter - Rename interface
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionActorInterfaceto\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiverStackProcessorInterfaceto match restructure of other flow components into same pattern - Rename class
\Heptacom\HeptaConnect\Core\Reception\ReceptionActorto\Heptacom\HeptaConnect\Core\Reception\ReceiverStackProcessorto match restructure of other flow components into same pattern - Rename interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlingActorInterfaceto\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackProcessorInterfaceto match restructure of other flow components into same pattern - Rename class
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlingActorto\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackProcessorto match restructure of other flow components into same pattern - Add parameter of
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleFlowHttpHandlersFactoryInterfaceto\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleServiceto extend HTTP handle flow by core HTTP handlers - Add parameter of
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionFlowReceiversFactoryInterfaceto\Heptacom\HeptaConnect\Core\Reception\ReceiveServiceto extend reception flow by core receivers - Extract reception locking and release from
\Heptacom\HeptaConnect\Core\Reception\ReceiveServiceinto\Heptacom\HeptaConnect\Core\Reception\LockingReceiverand\Heptacom\HeptaConnect\Core\Reception\Support\LockAttachable - Change composer dependency
composer/composer:>=1.9tocomposer/composer:^2.2.6to ensure\Composer\Repository\InstalledRepositoryInterface::getDevModeexists and always support loading dev-packages - Use
\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestSerializerInterfaceand\Heptacom\HeptaConnect\Core\Web\Http\Contract\RequestDeserializerInterfacein\Heptacom\HeptaConnect\Core\Storage\RequestStorageinstead of\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizerand\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizerto allow for implementation change - Add exception code
1647801830in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::jsonwhen the JSON file can not be read from the filesystem - Add exception code
1637432096in\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressNormalizer::normalizewhen original normalized value is not a string - Make classes final:
\Heptacom\HeptaConnect\Core\Component\Composer\PackageConfigurationand\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler - Implement
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalNodeContextInterface::getLoggerin\Heptacom\HeptaConnect\Core\Portal\AbstractPortalNodeContext::getLoggerby looking up the service in the container - Implement
\Heptacom\HeptaConnect\Dataset\Base\Contract\AttachmentAwareInterfacein\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::setand\Heptacom\HeptaConnect\Core\Exploration\AbstractBufferedResultProcessingExplorer::pushBuffer - Split
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddPortalConfigurationBindingsCompilerPassinto\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddConfigurationBindingsCompilerPassand\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\SetConfigurationAsParameterCompilerPassto separate parameter assignment and generating name bindings - Extract processing of portal node configuration processors from
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationServiceinto\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationProcessorServicedescribed by\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorServiceInterface - Change composer dependency
symfony/dependency-injection: ^4.4 || ^5.0tosymfony/dependency-injection: ^4.4.11 || ^5.0to ensure auto wiring works with PHP 8 union types - Extract packing and unpacking storage related structs from
\Heptacom\HeptaConnect\Core\Portal\PortalStorageinto\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemPackerdescribed by\Heptacom\HeptaConnect\Core\Portal\Storage\Contract\PortalNodeStorageItemPackerInterfaceand\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemUnpackerdescribed by\Heptacom\HeptaConnect\Core\Portal\Storage\Contract\PortalNodeStorageItemUnpackerInterfaceand with it moving the dependency\Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\NormalizationRegistryContract - Move log message codes
1631562097,1631562285and1631562928from\Heptacom\HeptaConnect\Core\Portal\PortalStorageto\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemPackerwithout change in meaning - Move log message codes
1651338621and1631565257from\Heptacom\HeptaConnect\Core\Portal\PortalStorageto\Heptacom\HeptaConnect\Core\Portal\Storage\PortalNodeStorageItemUnpackerwithout change in meaning - Make
\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::__constructfinal as packages are stateless - Combine
portalNodeKeyandpathparameter in\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerStackBuilderFactoryInterface::createHttpHandlerStackBuilderand\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderFactory::createHttpHandlerStackBuilderusing\Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerStackIdentifier
- Remove support for
php: 7.4as 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-php80as minimum PHP version is raised to PHP 8.0 - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\UnexpectedClassInheritanceOnInstantionExceptionand\Heptacom\HeptaConnect\Core\Portal\Exception\ClassNotFoundOnInstantionExceptionas their condition origin will occur earlier related to either\Heptacom\HeptaConnect\Dataset\Base\Exception\InvalidClassNameException,\Heptacom\HeptaConnect\Dataset\Base\Exception\InvalidSubtypeClassNameExceptionor\Heptacom\HeptaConnect\Dataset\Base\Exception\UnexpectedLeadingNamespaceSeparatorInClassNameExceptionwill be thrown instead - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\DelegatingLoaderLoadExceptionas\Heptacom\HeptaConnect\Portal\Base\Portal\Exception\DelegatingLoaderLoadExceptionwill be thrown instead - Remove
\Heptacom\HeptaConnect\Core\Portal\Exception\UnexpectedRequiredParameterInConstructorOnInstantionExceptionas\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PackageContract::__constructis final and therefore has no unexpected parameters
- Add exception code
1693671570in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\BuildDefinitionForFlowComponentRegistryCompilerPass::getServiceReferencesGroupedBySourcewhen a flow component service is missing a source attribute on its tag - Add exception code
1693698154in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\BuildDefinitionForFlowComponentRegistryCompilerPass::getSourcePackagewhen 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
$sourcein method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getExplorers - Deprecate parameter
$sourcein method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getEmitters - Deprecate parameter
$sourcein method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getReceivers - Deprecate parameter
$sourcein method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getStatusReporters - Deprecate parameter
$sourcein method\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getWebHttpHandlers - Deprecate method
\Heptacom\HeptaConnect\Core\Portal\FlowComponentRegistry::getOrderedSources
- Add log message code
1686752874when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler - Add log message code
1686752879when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler - Add log message code
1686752889when handling of job failed in\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler
- Fix a bug in
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystemthat occurred when adapters don't populate thepathkey in metadata. - Fix a bug in
\Heptacom\HeptaConnect\Core\Web\Http\HttpKernelthat broke sub-requests when the request contains noCookieheader. - 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::isMappedByEmitterby validating external id instead of foreign key
- Add service
Heptacom\HeptaConnect\Portal\Base\Portal\PackageCollectionto portal-container, containing the portal, all portal-extensions and all packages involved in building the container - Add service
Psr\Http\Message\ServerRequestFactoryInterfaceto portal-container - Add service
Psr\Http\Message\UploadedFileFactoryInterfaceto portal-container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpKernelInterfaceto portal-container to execute a\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterfacefrom inside a portal - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext::forwardfor\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandleContextInterface::forward - Add composer dependency
riverline/multipart-parser:^2.1to support parsing body-data of\Psr\Http\Message\ServerRequestInterfacein\Heptacom\HeptaConnect\Core\Web\Http\HttpKernel - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Psr7MessageMultiPartFormDataBuilderforHeptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageMultiPartFormDataBuilderInterfaceto build HTTP payloads for multipart messages - Add exception code
1682806294in\Heptacom\HeptaConnect\Core\Web\Http\Psr7MessageMultiPartFormDataBuilder::buildwhen an input parameter is of an illegal type
- Use
\Psr\Http\Message\StreamInterface::__toStringinstead of\Psr\Http\Message\StreamInterface::getContentsto retrieve stream contents in\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReference,\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedPublicUrlFileReferenceand\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\JobFailActionInterfaceinto\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler,\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandlerand\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerto set job-states tofailedin 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 $isStackEmptyto\Heptacom\HeptaConnect\Core\Web\Http\Handler\HttpMiddlewareChainHandlerto indicate whether the related instance of\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerStackInterfaceis empty. - Change log level of code
1636845086fromcriticaltonotice
- 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\EmissionHandlerand\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerto continue with the remaining jobs.
- Add
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Support\HeaderUtilitydescribed by\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Support\Contract\HeaderUtilityInterfaceto work with PSR-7 message headers - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatterextending\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageRawHttpFormatterto provide raw HTTP message formatting - Add implementation
\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatterextending\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageCurlShellFormatterContractto provide cURL shell command formatting - Add exception code
1674950000in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatter::formatMessagewhen the given message is neither a request nor a response - Add exception code
1674950001in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageRawHttpFormatter::getFileExtensionwhen the given message is neither a request nor a response - Add exception code
1674950002in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatter::formatMessagewhen the given message is neither a request nor a response - Add exception code
1674950003in\Heptacom\HeptaConnect\Core\Web\Http\Formatter\Psr7MessageCurlShellFormatter::getFileExtensionwhen 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_PREFIXto 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_REQUESTas request attribute key holding an instance of\Psr\Http\Message\ServerRequestInterfaceof the original inbound HTTP request used for debugging purposes - Add
\Heptacom\HeptaConnect\Core\Web\Http\Dump\ServerRequestCycleDumperdescribed by\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumperInterfaceto 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\SampleRateServerRequestCycleDumpCheckerfor new interface\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumpCheckerInterfaceusing configurationdump-sample-ratefor 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\Psr7MessageCurlShellFormatterContractinto\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderto provide service for raw HTTP message formatting - Add dependency on
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\Psr7MessageRawHttpFormatterContractinto\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderto provide service for cURL shell command formatting - Add dependency on
\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumpCheckerInterfaceand\Heptacom\HeptaConnect\Core\Web\Http\Dump\Contract\ServerRequestCycleDumperInterfaceinto\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleServiceto dump requests and responses from HTTP handling
- Deprecate class
\Heptacom\HeptaConnect\Core\Portal\Exception\DelegatingLoaderLoadException. Use\Heptacom\HeptaConnect\Portal\Base\Portal\Exception\DelegatingLoaderLoadExceptioninstead.
- Fix issue in
\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderwhen 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\StreamUriSchemePathConverterdescribed by\Heptacom\HeptaConnect\Core\File\Filesystem\Contract\StreamUriSchemePathConverterInterfaceto convert between URIs and paths when using paths as contextualized URIs - Add exception code
1666942800in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUriwhen the path is not a compatible URI - Add exception code
1666942801in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUriwhen the path already has a protocol - Add exception code
1666942802in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUriwhen the path has a port - Add exception code
1666942803in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUriwhen the path has query parameters - Add exception code
1666942804in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToUriwhen the path has a URI fragment - Add exception code
1666942810in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPathwhen the URI is not a URI - Add exception code
1666942811in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPathwhen the URI has no host - Add exception code
1666942812in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPathwhen the URI has a port - Add exception code
1666942813in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPathwhen the URI has query parameters - Add exception code
1666942814in\Heptacom\HeptaConnect\Core\File\Filesystem\StreamUriSchemePathConverter::convertToPathwhen the URI has a URI fragment - Add
\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Filesystemas implementation of\Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterfaceto provide a path conversion for portals - Add interface
\Heptacom\HeptaConnect\Core\File\Filesystem\Contract\StreamWrapperInterfaceto 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\FilesystemFactorydescribed by\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Contract\FilesystemFactoryInterfaceto create portal node specific instances of\Heptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterface - Add stream wrapper implementation
\Heptacom\HeptaConnect\Core\File\Filesystem\RewritePathStreamWrapperto rewrite requested paths to a new protocol while changing the protocol and the path itself
- Add
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystem::getConfigto forward the decorated filesystem config - Wrap result of
\Heptacom\HeptaConnect\Core\Storage\Filesystem\PrefixFilesystem::getAdapterinto an adaptor decorator of\Heptacom\HeptaConnect\Core\Storage\Filesystem\PrefixAdapterto ensure that adapter usage will apply same path rewrites like the filesystem itself - Add dependency on
\Heptacom\HeptaConnect\Core\Portal\File\Filesystem\Contract\FilesystemFactoryInterfaceinto\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderto provide aHeptacom\HeptaConnect\Portal\Base\File\Filesystem\Contract\FilesystemInterfaceservice for portal nodes
- Changed return type of
\Heptacom\HeptaConnect\Core\Storage\Filesystem\AbstractFilesystem::getAdapterfrom\League\Flysystem\FilesystemInterfaceto\League\Flysystem\AdapterInterfaceby returning the decorated filesystem adapter instead of the filesystem itself
- Add
\Heptacom\HeptaConnect\Core\Web\Http\HttpMiddlewareClientto execute a chain of\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientMiddlewareInterfaceservices for outbound HTTP requests via\Psr\Http\Client\ClientInterfacefrom a portal-node context. - Add
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddHttpMiddlewareClientCompilerPassto automatically tag services implementing\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientMiddlewareInterfacewithheptaconnect.http.client.middleware. - Execute a chain of
\Psr\Http\Server\MiddlewareInterfaceservices for inbound HTTP request via\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContract - Add
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddHttpMiddlewareCollectorCompilerPassto automatically tag services implementing\Psr\Http\Server\MiddlewareInterfacewithheptaconnect.http.handler.middleware. - Add
\Heptacom\HeptaConnect\Core\Support\HttpMiddlewareCollectoras 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\HttpMiddlewareChainHandlerand\Heptacom\HeptaConnect\Core\Web\Http\HttpMiddlewareHandlerto wrap execution of middleware chain - Add composer dependency
psr/http-server-handler: ^1.0andpsr/http-server-middleware: ^1.0to support PSR-15 middlewares for HTTP handlers - Add exception code
1651338559in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::listwhen unpacking a single entry fails - Add exception code
1651338621in\Heptacom\HeptaConnect\Core\Portal\PortalStoragewhen denormalizing any stored value fails
- Only load dev-packages from
composer.lockfile 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::listinstead of returning an empty list
- Load composer packages also from
require-devsection ofcomposer.lockfile 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\RemoveAutoPrototypedDefinitionsCompilerPassinto\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\HttpHandlerCodeOriginFinderInterfacein\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder - Add exception code
1637607699in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOriginwhen HTTP handler is a short-notation HTTP handler and has no configured callback - Add exception code
1637607700in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOriginwhen HTTP handler class cannot be read via reflection - Add exception code
1637607701in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerCodeOriginFinder::findOriginwhen HTTP handler class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterCodeOriginFinderInterfacein\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder - Add exception code
1637607653in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOriginwhen emitter is a short-notation emitter and has no configured callback - Add exception code
1637607654in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOriginwhen emitter class cannot be read via reflection - Add exception code
1637607655in\Heptacom\HeptaConnect\Core\Emission\EmitterCodeOriginFinder::findOriginwhen emitter class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerCodeOriginFinderInterfacein\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder - Add exception code
1637421327in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOriginwhen explorer is a short-notation explorer and has no configured callback - Add exception code
1637421328in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOriginwhen explorer class cannot be read via reflection - Add exception code
1637421329in\Heptacom\HeptaConnect\Core\Exploration\ExplorerCodeOriginFinder::findOriginwhen explorer class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverCodeOriginFinderInterfacein\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder - Add exception code
1641079368in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOriginwhen receiver is a short-notation receiver and has no configured callback - Add exception code
1641079369in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOriginwhen receiver class cannot be read via reflection - Add exception code
1641079370in\Heptacom\HeptaConnect\Core\Reception\ReceiverCodeOriginFinder::findOriginwhen receiver class does not belong to a physical file - Implement
\Heptacom\HeptaConnect\Portal\Base\StatusReporting\Contract\StatusReporterCodeOriginFinderInterfacein\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder - Add exception code
1641079371in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOriginwhen status reporter is a short-notation status reporter and has no configured callback - Add exception code
1641079372in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOriginwhen status reporter class cannot be read via reflection - Add exception code
1641079373in\Heptacom\HeptaConnect\Core\StatusReporting\StatusReporterCodeOriginFinder::findOriginwhen status reporter class does not belong to a physical file - Add logger decorator
\Heptacom\HeptaConnect\Core\Component\Logger\FlowComponentCodeOriginFinderLoggerthat 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\StatusReporterContractand\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContractwithin the context with their code origin - Add new service
Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpClientContractto portal node container as an alternative toPsr\Http\Client\ClientInterfacewith behaviour by configuration e.g. that can throw\Heptacom\HeptaConnect\Portal\Base\Web\Http\Exception\HttpExceptionon certain status code - Add class
\Heptacom\HeptaConnect\Core\Component\Logger\ExceptionCodeLoggerintended as a decorator to prepend the exception code to log messages if available - Add log message code
1647396033in\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJobwhen jobs from message cannot be loaded - Add log message code
1647396034in\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJobwhen jobs from message cannot be processed - Add contract
\Heptacom\HeptaConnect\Core\Parallelization\Contract\ResourceLockStorageContractmigrated from\Heptacom\HeptaConnect\Storage\Base\Contract\ResourceLockStorageContract - Add implementation
\Heptacom\HeptaConnect\Core\Parallelization\ResourceLockStoragefor\Heptacom\HeptaConnect\Core\Parallelization\Contract\ResourceLockStorageContractthat depends onsymfony/lockwhich is already required - Add log message code
1646383738in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::listwhen reading portal node storage entries fails - Add implementation
\Heptacom\HeptaConnect\Core\Portal\PreviewPortalNodeStoragefor the interface\Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalStorageInterfaceto support interactions on\Heptacom\HeptaConnect\Storage\Base\PreviewPortalNodeKey - Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\FileContentsUrlProviderInterfaceto provide public URLs for normalized streams - Add interface
\Heptacom\HeptaConnect\Core\Bridge\File\FileRequestUrlProviderInterfaceto prode public URLs for serialized requests - Add class
\Heptacom\HeptaConnect\Core\File\FileReferenceFactoryto create file references from public URLs, request objects or file contents - Add class
\Heptacom\HeptaConnect\Core\File\FileReferenceResolverto resolve file references for read operations - Add class
\Heptacom\HeptaConnect\Core\File\Reference\ContentsFileReferenceas implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContractthat is created from file contents - Add class
\Heptacom\HeptaConnect\Core\File\Reference\PublicUrlFileReferenceas implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContractthat is created from a public URL - Add class
\Heptacom\HeptaConnect\Core\File\Reference\RequestFileReferenceas implementation of\Heptacom\HeptaConnect\Dataset\Base\File\FileReferenceContractthat is created from a PSR-7 request object - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReferenceas implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContractfor file references that were created from file contents - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedPublicUrlFileReferenceas implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContractfor file references that were created from a public URL - Add class
\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedRequestFileReferenceas implementation of\Heptacom\HeptaConnect\Portal\Base\File\ResolvedFileReferenceContractfor file references that were created from a PSR-7 request object - Add class
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestDenormalizerto deserialize instances of\Psr\Http\Message\RequestInterface - Add class
\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizerto serialize instances of\Psr\Http\Message\RequestInterface - Add contract
\Heptacom\HeptaConnect\Core\Storage\Contract\RequestStorageContractwith implementation in\Heptacom\HeptaConnect\Core\Storage\RequestStorageto persist and load instances of\Psr\Http\Message\RequestInterface - Add exception code
1647788744in\Heptacom\HeptaConnect\Core\File\FileReferenceFactory::fromContentswhen the NormalizationRegistry is missing a normalizer for streams - Add exception code
1648315863in\Heptacom\HeptaConnect\Core\File\FileReferenceFactory::fromContentswhen the normalizer is unable to serialize the given file contents - Add exception code
1647788896in\Heptacom\HeptaConnect\Core\File\FileReferenceResolver::resolvewhen the NormalizationRegistry is missing a denormalizer for streams - Add exception code
1647789133in\Heptacom\HeptaConnect\Core\File\FileReferenceResolver::resolvewhen the FileReference has an unsupported source - Add exception code
1647789503in\Heptacom\HeptaConnect\Core\File\ResolvedReference\ResolvedContentsFileReference::getContentswhen denormalizing a normalized stream fails - Add exception code
1647789809in\Heptacom\HeptaConnect\Core\Storage\Normalizer\Psr7RequestNormalizer::normalizewhen trying to normalize anything other than a request object - Add exception code
1647790094in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::loadwhen denormalizing a serialized request fails - Add exception code
1647791094in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::loadwhen a serialized request is not found - Add exception code
1647791390in\Heptacom\HeptaConnect\Core\Storage\RequestStorage::persistwhen persisting a serialized request fails - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContractto define a contract for changing portal node configurations - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\ClosureInstructionTokenthat changes portal node configuration by the given closure - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelperto generate closures for processing configuration sources like json files and environment variables - Add exception code
1647801828in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::iniwhen the ini file can not be loaded and parsed - Add exception code
1647801829in return callable from\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\PortalNodeConfigurationHelper::jsonwhen the JSON file can not be loaded and parsed - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Configto collect\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContractin a short-notation manner - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionLoaderInterfaceto identify services that provide\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContract - Add
\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\InstructionFileLoaderto provide\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionTokenContractusing\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Config - Add exception code
1645611612in\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\InstructionFileLoader::loadInstructionswhen referenced file can not be loaded - Add
\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessoras\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorInterfaceto change portal node configuration by instructions from given\Heptacom\HeptaConnect\Core\Bridge\PortalNode\Configuration\Contract\InstructionLoaderInterfaceinstances - Add log message code
1647826121in\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationInstructionProcessorwhen an error happens during instruction loading
- Replace dependencies in
\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractand\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobGetActionInterfaceto improve performance by batching job reading - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterfaceto improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterfaceto improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobStartActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobFinishActionInterfaceto improve performance by batching job state changes - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\JobDispatcherfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractand\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobPayloadRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Job\JobCreateActionInterfaceto improve performance by batching job insertion - Switch storage access in
\Heptacom\HeptaConnect\Core\Portal\PortalRegistryfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\PortalNodeRepositoryContractto\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_sourceinstead 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_decoratorandheptaconnect.flow_component.web_http_handlerto 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\PortalExtensionFindActionInterfaceinto\Heptacom\HeptaConnect\Core\Portal\PortalRegistryfor loading portal extension availability - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Emission\Contract\EmitterContractin log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilderlogger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Exploration\Contract\ExplorerContractin log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilderlogger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiverContractin log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilderlogger usage - Use instance of
\Heptacom\HeptaConnect\Portal\Base\Web\Http\Contract\HttpHandlerContractin log context instead of its class in the message in\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderlogger usage - Replace dependencies in
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationServicefrom\Heptacom\HeptaConnect\Storage\Base\Contract\ConfigurationStorageContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationGetActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeConfiguration\PortalNodeConfigurationSetActionInterfaceto improve performance on reading and writing portal node configuration - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\EntityMapperContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterfaceas previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\EntityReflectorContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityReflectActionInterfaceas previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Exploration\ExplorationActorfrom\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterfaceto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface - Replace dependencies in
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessorfrom\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityPersistActionInterfaceas previous service is renamed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Portal\PortalStorageFactoryand\Heptacom\HeptaConnect\Core\Portal\PortalStoragefrom\Heptacom\HeptaConnect\Storage\Base\Contract\PortalStorageContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageClearActionInterface,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageDeleteActionInterface,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageGetActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageListActionInterface,\Heptacom\HeptaConnect\Storage\Base\Contract\Action\PortalNodeStorage\PortalNodeStorageSetActionInterface - Replace dependencies in
\Heptacom\HeptaConnect\Core\Emission\EmitContextfrom\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterfaceas previous services are removed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Emission\EmitContextFactoryfrom\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContractto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterfaceas previous services are removed - Replace dependencies in
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessorfrom\Heptacom\HeptaConnect\Storage\Core\Mapping\Contract\MappingServiceInterfaceto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\IdentityError\IdentityErrorCreateActionInterfaceas previous service is removed - Split argument in
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveServiceInterface::receiveof type\Heptacom\HeptaConnect\Portal\Base\Mapping\TypedMappedDatasetEntityCollectioninto\Heptacom\HeptaConnect\Dataset\Base\TypedDatasetEntityCollectionand\Heptacom\HeptaConnect\Portal\Base\StorageKey\Contract\PortalNodeKeyInterfaceto state target portal clearly - Extract caching of
\Heptacom\HeptaConnect\Core\Configuration\ConfigurationServiceinto new class\Heptacom\HeptaConnect\Core\Configuration\PortalNodeConfigurationCacheProcessorusing the\Heptacom\HeptaConnect\Core\Configuration\Contract\PortalNodeConfigurationProcessorInterfaceinterface - 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\HttpHandleServiceand\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\ReceiverStackBuilderand\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\HttpHandlerCollectionandHeptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection.decoratordue to refactoring of flow component stack building - Remove dependency on
\Heptacom\HeptaConnect\Portal\Base\Builder\FlowComponentin\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilder - Remove classes
\Heptacom\HeptaConnect\Core\Cronjob\CronjobContext,\Heptacom\HeptaConnect\Core\Cronjob\CronjobContextFactoryand\Heptacom\HeptaConnect\Core\Cronjob\CronjobServiceas the feature of cronjobs in its current implementation is removed - Remove composer dependency
dragonmantank/cron-expression - Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::getof\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::get - Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::saveof\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::save - Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::reflectof\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::reflect - Remove unused implementation
\Heptacom\HeptaConnect\Core\Mapping\MappingService::addExceptionof\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::addException - Remove
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIdsin favour of\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityMapActionInterface::map - Remove
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::merge,\Heptacom\HeptaConnect\Core\Mapping\Exception\MappingNodeAreUnmergableExceptionand\Heptacom\HeptaConnect\Core\Mapping\Exception\MappingNodeNotCreatedExceptionin favour of\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityOverviewActionInterfaceand\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Identity\IdentityPersistActionInterface - Remove log message code
1631563639,1631563699,1631565446and1631565376from\Heptacom\HeptaConnect\Core\Portal\PortalStorage - Remove deprecated methods
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::canSetand\Heptacom\HeptaConnect\Core\Portal\PortalStorage::canGet - Remove unused
\Heptacom\HeptaConnect\Core\Router\CumulativeMappingException - Remove dependency on
\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\MappingNodeRepositoryContractin\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler - Remove deprecated method
Heptacom\HeptaConnect\Core\Mapping\Publisher::publishinherited 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\PostProcessorDataBaginto subsequent iterations of\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::performReception. Every entry of\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedDatais now only handled once.
- Change composer dependency
bentools/iterable-functions: >=1 <2tobentools/iterable-functions: >=1.4 <2to ensure availability of\iterable_mapin a lowest-dependency-version installation - Change composer dependency
composer/composer: >=1tocomposer/composer: >=1.9to ensure correct composer project and library parsing in a lowest-dependency-version installation - Change composer dependency
php-http/discovery: ^1.0tophp-http/discovery: ^1.11to ensure availability of\Http\Discovery\Psr17FactoryDiscoveryand\Http\Discovery\Psr17FactoryDiscovery::findUriFactoryin a lowest-dependency-version installation - Add composer dependency
symfony/event-dispatcher-contracts: >=1.1to ensure availability of\Symfony\Contracts\EventDispatcher\Eventin a lowest-dependency-version installation - Change composer dependency
symfony/polyfill-php80: >=1.15tosymfony/polyfill-php80: >=1.16to ensure availability of\str_starts_witha 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::normalizeand\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::supportsNormalizationto allow installations ofsymfony/serializer: >=4andsymfony/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\ResponseFactoryInterfaceandPsr\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::startand\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContract::finishin\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler::triggerEmission,\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler::triggerExplorationsand\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionto 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_UNMAPPEDwith log message code1637456198for issues during logging error messages during reception - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::RECEIVE_NO_SAVE_MAPPINGS_NOT_PROCESSEDfor issues after saving mappings after a reception - Introduce
\Heptacom\HeptaConnect\Core\Event\PostReceptionEventfor 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::getEventDispatcherin\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::getEventDispatcher - Implement new method
\Heptacom\HeptaConnect\Portal\Base\Reception\Contract\ReceiveContextInterface::getPostProcessingBagin\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\MarkAsFailedDataand handled in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\MarkAsFailedPostProcessor - Add post-processing for saving mappings after receptions using
\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsDataand handled in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor - Extract path building from
\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizerand\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizerinto new service\Heptacom\HeptaConnect\Core\Storage\Contract\StreamPathContract - Add log messages codes
1634868818,1634868819to\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::STORAGE_STREAM_NORMALIZER_CONVERTS_HINT_TO_FILENAMEwith the message code1635462690to track generated filenames from the stream file storage in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer - Add log exception code
1636503503to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen job has no related route - Add log exception code
1636503504to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen job has no entity - Add log exception code
1636503505to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen job refers a non-existing route - Add log exception code
1636503506to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen job refers to a route that is not configured to allow receptions - Add log exception code
1636503507to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen job has an entity, that is of a different type than the route's entity type - Add log exception code
1636503508to\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwhen 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\HttpHandleContextFactoryInterfaceand implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContextFactoryas 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\HttpHandlerStackBuilderInterfaceand implementations\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderFactory,\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlerStackBuilderfor acting with web HTTP handlers - Add web HTTP service interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandleServiceInterfaceand implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleServiceto validate and handle requests - Add web HTTP actor interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlingActorInterfaceand implementation\Heptacom\HeptaConnect\Core\Web\Http\HttpHandlingActorto process any request through a web HTTP handler stack - Add interface
\Heptacom\HeptaConnect\Core\Web\Http\Contract\HttpHandlerUrlProviderFactoryInterfacefor bridges to provide implementation as bridges implement routing - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::WEB_HTTP_HANDLE_NO_THROWused with log message code1636845126when 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_PATHused with log message code1636845086when handling the web request could not match any flow component - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::WEB_HTTP_HANDLE_DISABLEDused with log message code1636845085when route is disabled and still called - Add
\Heptacom\HeptaConnect\Core\Storage\Exception\GzipCompressExceptionfor cases when gzip related methods fail - Add exception code
1637432095in\Heptacom\HeptaConnect\Core\Storage\Normalizer\SerializableCompressNormalizer::normalizewhengzcompressfails to compress - Add exception code
1637101289in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizer::denormalizewhen file to denormalize does not exist - Add exception code
1637432853in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::normalizewhen object is no\Heptacom\HeptaConnect\Portal\Base\Serialization\Contract\SerializableStream - Add exception code
1637432854in\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::normalizewhen object does not hold a valid stream - Add exception code
1637433403in\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\AddPortalConfigurationBindingsCompilerPass::processwhen an array_combine call fails that logically should not be able to fail - Add log message
\Heptacom\HeptaConnect\Core\Component\LogMessage::EMIT_NO_PRIMARY_KEYused with log message code1637434358when emitted entity has no primary key - Add parameter
$jobKeyin\Heptacom\HeptaConnect\Core\Job\JobData::__construct - Add method
\Heptacom\HeptaConnect\Core\Job\JobData::getJobKey - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerUrlProviderInterfaceto portal container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollectionto portal container - Add service
Heptacom\HeptaConnect\Portal\Base\Web\Http\HttpHandlerCollection.decoratorto portal container - Add log message code
1637527920in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handlewhen an entity has been received with a primary key but has no mapping data - Add log message code
1637527921in\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handlewhen an entity has been received with a primary key but has invalid mapping data
- Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\EmitContext::markAsFailedfrom$datasetEntityClassNameto$entityType - Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\Contract\EmitterStackBuilderFactoryInterface::createEmitterStackBuilderfrom$entityClassNameto$entityType, respective change in its implementing class\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilderFactory::createEmitterStackBuilder - Change parameter name of
\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::__constructfrom$entityClassNameto$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::getEmitterStackfrom$entityClassNameto$entityType - Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorerStackBuilderFactoryInterface::createExplorerStackBuilderfrom$entityClassNameto$entityType, respective change in its implementing class\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilderFactory::createExplorerStackBuilder - Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface::performExplorationfrom$entityClassNameto$entityType, respective change in its implementing class\Heptacom\HeptaConnect\Core\Exploration\ExplorationActor::performExploration - Change parameter name of
\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::__constructfrom$entityClassNameto$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::createReceiverStackBuilderfrom$entityClassNameto$entityType, respective change in its implementing class\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilderFactory::createReceiverStackBuilder - Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::__constructfrom$entityClassNameto$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::getReceiverStackfrom$entityClassNameto$entityType - Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getfrom$datasetEntityClassNameto$entityType, respective change in its implementing class for\Heptacom\HeptaConnect\Core\Mapping\MappingService::get - Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIdsfrom$datasetEntityClassNameto$entityType, respective change in its implementing class for\Heptacom\HeptaConnect\Core\Mapping\MappingService::getListByExternalIds - Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::__constructfrom$datasetEntityClassNameto$entityType - Change parameter name of
\Heptacom\HeptaConnect\Core\Mapping\Publisher::publishfrom$datasetEntityClassNameto$entityType - Change parameter name of
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::__constructfrom$datasetEntityClassNameto$entityType - Change method name from
\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getDatasetEntityClassNameto\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingComponentStructContract::getEntityType - Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingStruct::getDatasetEntityClassNameto\Heptacom\HeptaConnect\Core\Mapping\MappingStruct::getEntityType - Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::getDatasetEntityClassNameto\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::getEntityType - Change method name from
\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::setDatasetEntityClassNameto\Heptacom\HeptaConnect\Core\Mapping\MappingNodeStruct::setEntityType - Change method name from
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignDatasetEntityClassNameto\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::getForeignEntityType - Change method name from
\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::setForeignDatasetEntityClassNameto\Heptacom\HeptaConnect\Core\Reception\Support\PrimaryKeyChangesAttachable::setForeignEntityType - Add dependency onto
\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\JobRepositoryContractinto\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler,\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandlerand\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfor job tracking - Add dependency onto
\Psr\Cache\CacheItemPoolInterfaceinto\Heptacom\HeptaConnect\Core\Configuration\ConfigurationServicefor configuration caching - Remove parameter
$mappingServicefrom\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::__constructand\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory::__constructas it is no longer needed - Add parameter
$postProcessorsto\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::__constructand\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory::__constructto contain every post-processing handler for this context - Change
\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::markAsFailedto add\Heptacom\HeptaConnect\Portal\Base\Reception\PostProcessing\MarkAsFailedDatato the post-processing data bag instead of directly passing to\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::addException - Remove parameter
$mappingPersisterfrom\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::__constructas its usage has been moved into\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor - Move of saving mappings from
\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::performReceptioninto\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessor::handle - Add dependency onto
\Psr\Log\LoggerInterfaceinto\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizerfor logging filename conversions - Change dependency in
\Heptacom\HeptaConnect\Core\Emission\EmissionActorfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContractinto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Listing\ReceptionRouteListActionInterfacefor more performant route lookup - Change dependency in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfrom\Heptacom\HeptaConnect\Storage\Base\Contract\Repository\RouteRepositoryContractinto\Heptacom\HeptaConnect\Storage\Base\Contract\Action\Route\Get\RouteGetActionInterfacefor more performant route reading - Allow
\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterface::triggerReceptionto throw\Heptacom\HeptaConnect\Core\Job\Exception\ReceptionJobHandlingException - Add dependency onto
\Psr\Log\LoggerInterfaceinto\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerfor logging exceptions - Add dependency onto
\Psr\Log\LoggerInterfaceinto\Heptacom\HeptaConnect\Core\Reception\PostProcessing\SaveMappingsPostProcessorfor logging unclearmapping scenarios
- Move
\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizer::STORAGE_LOCATIONinto\Heptacom\HeptaConnect\Core\Storage\Contract\StreamPathContract::STORAGE_LOCATION
- Remove
\Heptacom\HeptaConnect\Core\Webhook\Contract\UrlProviderInterface - Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookContextin favour of\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContext - Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookContextFactoryin favour of\Heptacom\HeptaConnect\Core\Web\Http\HttpHandleContextFactory - Remove
\Heptacom\HeptaConnect\Core\Webhook\WebhookService - Remove interface
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::ensurePersistenceand implementation\Heptacom\HeptaConnect\Core\Mapping\MappingService::ensurePersistencein favour of\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract
- Provide callback-function to \array_filter in
Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::runto only filter out primary keys with null and not 0 \Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamDenormalizerrejects null and empty string as data- Usage of
\Ramsey\Uuid\Uuidin\Heptacom\HeptaConnect\Core\Storage\Normalizer\StreamNormalizeronly supportedramsey/uuid: 3but composer configuration allowed installation oframsey/uuid: 4. Now it is used cross-compatible to work withramsey/uuid: 3 || 4 \Heptacom\HeptaConnect\Core\Configuration\ConfigurationService::setPortalNodeConfigurationremoves nestednullvalues and does not storenullanymore- 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\PortalStorageInterfacein\Heptacom\HeptaConnect\Core\Portal\PortalStorageto allow PSR simple cache compatibility - Add log messages codes
1631387202,1631387363,1631387430,1631387448,1631387470,1631387510,1631561839,1631562097,1631562285,1631562928,1631563058,1631563639,1631563699,1631565257,1631565376,1631565446to\Heptacom\HeptaConnect\Core\Portal\PortalStorage - Add interface
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveContextFactoryInterfaceto\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactory - Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterfaceto\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler - Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\ExplorationHandlerInterfaceto\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler - Add interface
\Heptacom\HeptaConnect\Core\Job\Contract\EmissionHandlerInterfaceto\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler - Add interface
\Heptacom\HeptaConnect\Core\Emission\Contract\EmitContextFactoryInterfaceto\Heptacom\HeptaConnect\Core\Emission\EmitContextFactory - Add method
\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter::batchfor better performance in direct emissions
\Heptacom\HeptaConnect\Core\Portal\PortalStorage::getand\Heptacom\HeptaConnect\Core\Portal\PortalStorage::setwill now throw exceptions when normalization could not happen- Add parameter for
\Psr\Log\LoggerInterfacedependency in\Heptacom\HeptaConnect\Core\Portal\PortalStorage::__constructand\Heptacom\HeptaConnect\Core\Portal\PortalStorageFactory::__construct - Change type of parameter
\Heptacom\HeptaConnect\Core\Reception\ReceiveContextFactoryto its new interface\Heptacom\HeptaConnect\Core\Reception\Contract\ReceiveContextFactoryInterfacein\Heptacom\HeptaConnect\Core\Reception\ReceiveService::__construct - Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandlerto its new interface\Heptacom\HeptaConnect\Core\Job\Contract\EmissionHandlerInterfacein\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct - Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerto its new interface\Heptacom\HeptaConnect\Core\Job\Contract\ReceptionHandlerInterfacein\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct - Change type of parameter
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandlerto its new interface\Heptacom\HeptaConnect\Core\Job\Contract\ExplorationHandlerInterfacein\Heptacom\HeptaConnect\Core\Job\DelegatingJobActor::__construct - Change type of parameter
\Heptacom\HeptaConnect\Core\Emission\EmitContextFactoryto its new interface\Heptacom\HeptaConnect\Core\Emission\Contract\EmitContextFactoryInterfacein\Heptacom\HeptaConnect\Core\Emission\EmitService::__construct - Change behavior of service
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlowto not create mappings anymore - Remove parameter
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterfacefrom\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionFlow::__construct - Change method
\Heptacom\HeptaConnect\Core\Reception\ReceptionActor::saveMappingsto use new service\Heptacom\HeptaConnect\Storage\Base\MappingPersister\Contract\MappingPersisterContract \Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushSourceand\Heptacom\HeptaConnect\Core\Exploration\ExplorerStackBuilder::pushDecoratorsdon't push explorers onto the stack when they are already in the stack\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushSourceand\Heptacom\HeptaConnect\Core\Emission\EmitterStackBuilder::pushDecoratorsdon't push emitters onto the stack when they already in the stack\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushSourceand\Heptacom\HeptaConnect\Core\Reception\ReceiverStackBuilder::pushDecoratorsdon't push receivers onto the stack when they already in the stack
- Remove method
\Heptacom\HeptaConnect\Core\Exploration\DirectEmitter::runas it became obsolete
- Add
\Heptacom\HeptaConnect\Core\Exploration\Contract\ExploreServiceInterface::dispatchExploreJobto start an exploration as a job via\Heptacom\HeptaConnect\Core\Job\Contract\JobDispatcherContract::dispatch - Add
\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandlerto handle exploration jobs\Heptacom\HeptaConnect\Core\Job\Type\Exploration - Add support for handling exploration jobs in
\Heptacom\HeptaConnect\Core\Job\DelegatingJobActorwith using\Heptacom\HeptaConnect\Core\Job\Handler\ExplorationHandler - Add
\Psr\Http\Message\ResponseFactoryInterfaceservice to the portal containers in\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderfor better HTTP and messaging PSR support for portal developers - Add
\Psr\Http\Message\StreamFactoryInterfaceservice to the portal containers in\Heptacom\HeptaConnect\Core\Portal\PortalStackServiceContainerBuilderfor better HTTP and messaging PSR support for portal developers
- Direct emission and explorations create mappings via
\Heptacom\HeptaConnect\Core\Mapping\Contract\MappingServiceInterface::getListByExternalIdson\Heptacom\HeptaConnect\Core\Exploration\Contract\ExplorationActorInterface::performExplorationwhen 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\DirectEmissionFlowContractto\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlowto expose service for portals - Add classes to hold job data for batch processing
\Heptacom\HeptaConnect\Core\Job\JobDataand\Heptacom\HeptaConnect\Core\Job\JobDataCollection - Add class
\Heptacom\HeptaConnect\Core\Portal\PortalLoggerthat can decorate any\Psr\Log\LoggerInterfaceto apply any additional message prefix and context to all logs - Add
\Heptacom\HeptaConnect\Portal\Base\Publication\Contract\PublisherInterfaceto portal node service container - Add
\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\DirectEmissionFlowContractto portal node service container
- The acting to jobs in
\Heptacom\HeptaConnect\Core\Job\Contract\DelegatingJobActorContract::performJobwill now happen in batches in\Heptacom\HeptaConnect\Core\Job\Contract\DelegatingJobActorContract::performJobsand expects different parameters - The trigger on emission jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\EmissionHandler::triggerEmissionwill now happen in batches and expects different parameters - The trigger on reception jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwill now happen in batches and expects different parameters - Change signature of
\Heptacom\HeptaConnect\Core\Reception\Contract\ReceptionActorInterface::performReceptionto not rely on previously entities bound to\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterfaceobjects - Change signature of
\Heptacom\HeptaConnect\Core\Reception\ReceiveContext::markAsFailedto not rely on previously entities bound to\Heptacom\HeptaConnect\Portal\Base\Mapping\Contract\MappingInterfaceobjects - Do most of the business logic for reception in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandlerto 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\CronjobServiceas 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\UrlProviderInterfaceas internal
- Move
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\DirectEmissionResultinto the portal base package as\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\DirectEmissionResult - Move
\Heptacom\HeptaConnect\Core\Flow\DirectEmissionFlow\Exception\UnidentifiedEntityExceptioninto the portal base package as\Heptacom\HeptaConnect\Portal\Base\Flow\DirectEmission\Exception\UnidentifiedEntityException - The handling of jobs in
\Heptacom\HeptaConnect\Core\Flow\MessageQueueFlow\MessageHandler::handleJobdoes 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::triggerEmissionwill no longer report back success - The trigger on reception jobs in
\Heptacom\HeptaConnect\Core\Job\Handler\ReceptionHandler::triggerReceptionwill no longer report back success - Remove automatically registered services in
\Heptacom\HeptaConnect\Core\Portal\ServiceContainerCompilerPass\RemoveAutoPrototypedDefinitionsCompilerPassthat is based on\Throwable,\Heptacom\HeptaConnect\Dataset\Base\Contract\AttachableInterface,\Heptacom\HeptaConnect\Dataset\Base\Contract\CollectionInterfaceand\Heptacom\HeptaConnect\Dataset\Base\Contract\DatasetEntityContract