IDS refactorings for architectural alignment #1893
juliapampus
started this conversation in
Ideas
Replies: 1 comment
-
These all sound like good things to do, particularly:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Originally discussed on 2021-10-22:
/request/handler
to/handler
. Retain/description
subpackage (seemingly minor but this created a lot of confusion)./http
to/message
(minor, but easy to do)ConfigurationProvider
and its implementations; replace with fail-fast POJOs that are specific to each requiring service. Remove this interface fromids.spi
.ids.spi.version
. There should be one version type (not separate inbound/outbound) and that should be explicitly set as a code constant, not obtained from an artifact assumed to be on the classpath or in a manifest.RejectionMultipartRequestHandler
andRejectionMessageFactory
DescriptionRequestMessageHandlerRegistry
and handle dispatching to Sub Handlers directly inDescriptionRequestHandler
.ResourceCatalogFactory
and place any logic in theConnectorDescriptionService
. If this logic needs to be factored out in the future, create another class and pass it to the ctor.DescriptionResponseMessageFactory
.BaseConnectorFactory
and remove one line methods.Discussion Points
IdsId
type is complicated and seems to do multiple things.a.
IdsId parse(String urn)
- Can that be moved to the Description sub handler for dispatching? Also, just take the URI, get the scheme-specific part and tokenize it. Don't convert to string first.b. The enum type does not appear to offer any value if the
DescriptionRequestHandler
handles dispatching to sub handlers.c. The id methods should be removed and handled by a
IdsTypeTransformer
.Method
handle(DescriptionRequestMessage descriptionRequestMessage, String payload)
- Why is payload a string, should it be a type (e.g. a materialized type or Void)? - Leave as string fro nowOther
gradle.properties
should not be inids-api-multipart-endpoint-v1
- there is one properties file with the info-model version in it in the root project (easy to do)ConnectorDescriptionService
ContractOffer
should use Unix Epoch longs instead ofZonedDateTime
SecurityProfile
should default to NONEConnectorDescriptionRequestHandler
should not return a nullMultipartResponse
:Beta Was this translation helpful? Give feedback.
All reactions