You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@geode.apache.org by GitBox <gi...@apache.org> on 2022/01/06 20:29:12 UTC
[GitHub] [geode] kirklund commented on pull request #7217: DRAFT: GEODE-9758: Add internal serial filter API
kirklund commented on pull request #7217:
URL: https://github.com/apache/geode/pull/7217#issuecomment-1006912891
Quick walkthrough of Geode's use of the serialization filter API in geode-serialization:
InternalDataSerializer uses DelegatingObjectInputFilterFactory which delegates to a reflective wrapper for Java's ObjectInputFilter API which changed in newer Java versions. InternalDataSerializer uses the following classes in the geode-serialization API:
{noformat}
InternalDataSerializer -uses-> DelegatingObjectInputFilterFactory
InternalDataSerializer -uses-> NullObjectInputFilter
InternalDataSerializer -uses-> ObjectInputFilter
InternalDataSerializer -uses-> ObjectInputFilterFactory
InternalDataSerializer -uses-> SanctionedSerializableService
InternalDataSerializer -uses-> SerializableObjectConfig
{noformat}
LocatorLauncher uses EnabledGlobalSerialFilterConfigurationFactory to decorate DelegatingObjectInputFilterFactory with extra logic for conditions that must be met in order for serialization filtering to be enabled. Note that EnabledGlobalSerialFilterConfigurationFactory decorates by composition rather than inheritance. This follows "Composition over inheritance (or composite reuse principle)".
{noformat}
LocatorLauncher -uses-> DistributedSerializableObjectConfig
LocatorLauncher -uses-> EnabledGlobalSerialFilterConfigurationFactory
{noformat}
DistributionConfig extends SerializableObjectConfig in order to be used as a SerializableObjectConfig by the serialization filter API. DistributedSerializableObjectConfig is only used when an instance of DistributionConfig cannot be available because there is no DistributedSystem connection (yet) in the local process.
{noformat}
DistributionConfig -uses-> SerializableObjectConfig
DistributedSerializableObjectConfig -uses-> SerializableObjectConfig
{noformat}
SystemManagementService uses EnabledJmxSerialFilterConfigurationFactory to inject an instance of FilterConfiguration into ManagementAgent. ManagementAgent then activates it by invoking configure when the agent starts.
{noformat}
ManagementAgent -uses-> FilterConfiguration
ManagementAgentFactory -uses-> FilterConfiguration
SystemManagementService -uses-> EnabledJmxSerialFilterConfigurationFactory
SystemManagementService -uses-> FilterConfiguration
{noformat}
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org