Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update EbeanLocalDao constuctors with urnClass & minor update #331

Merged
merged 2 commits into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ public static class AspectUpdateLambda<ASPECT extends RecordTemplate> {
* @param aspectUnionClass containing union of all supported aspects. Must be a valid aspect union defined in
* com.linkedin.metadata.aspect
* @param producer {@link BaseMetadataEventProducer} for the metadata event producer
* @param urnClass class of the URN type
*/
public BaseLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass, @Nonnull BaseMetadataEventProducer producer,
@Nonnull Class<URN> urnClass) {
Expand All @@ -205,6 +206,7 @@ public BaseLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass, @Nonnull Base
* com.linkedin.metadata.aspect
* @param trackingProducer {@link BaseTrackingMetadataEventProducer} for producing metadata events with tracking
* @param trackingManager {@link BaseTrackingManager} for managing tracking requests
* @param urnClass class of the URN type
*/
public BaseLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass, @Nonnull BaseTrackingMetadataEventProducer trackingProducer,
@Nonnull BaseTrackingManager trackingManager, @Nonnull Class<URN> urnClass) {
Expand All @@ -222,15 +224,17 @@ public BaseLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass, @Nonnull Base
*
* @param producer {@link BaseMetadataEventProducer} for the metadata event producer
* @param storageConfig {@link LocalDAOStorageConfig} containing storage config of full list of supported aspects
* @param urnClass class of the URN type
*/
public BaseLocalDAO(@Nonnull BaseMetadataEventProducer producer, @Nonnull LocalDAOStorageConfig storageConfig) {
public BaseLocalDAO(@Nonnull BaseMetadataEventProducer producer, @Nonnull LocalDAOStorageConfig storageConfig,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this break any existing constructor calls? i.e. are these constructors in use by anyone? If so they will have to update right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No in my theory. Basically BaseLocalDao only has 2 implementations: EbeanLocalDao and EspressoDao (not in this repo).

The constructor used in EspressoDao was already updated.

In EbeanLocalDao, all the super.constructor() will be updated after this PR.

I don't think there is any other dependency on BaseLocalDao. WDYT

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. Thanks for explaining

@Nonnull Class<URN> urnClass) {
super(storageConfig.getAspectStorageConfigMap().keySet());
_producer = producer;
_storageConfig = storageConfig;
_aspectUnionClass = producer.getAspectUnionClass();
_trackingManager = null;
_trackingProducer = null;
_urnClass = null;
_urnClass = urnClass;
}

/**
Expand All @@ -239,17 +243,18 @@ public BaseLocalDAO(@Nonnull BaseMetadataEventProducer producer, @Nonnull LocalD
* @param trackingProducer {@link BaseTrackingMetadataEventProducer} for producing metadata events with tracking
* @param storageConfig {@link LocalDAOStorageConfig} containing storage config of full list of supported aspects
* @param trackingManager {@link BaseTrackingManager} for managing tracking requests
* @param urnClass class of the URN type
*
*/
public BaseLocalDAO(@Nonnull BaseTrackingMetadataEventProducer trackingProducer, @Nonnull LocalDAOStorageConfig storageConfig,
@Nonnull BaseTrackingManager trackingManager) {
@Nonnull BaseTrackingManager trackingManager, @Nonnull Class<URN> urnClass) {
super(storageConfig.getAspectStorageConfigMap().keySet());
_producer = null;
_storageConfig = storageConfig;
_aspectUnionClass = trackingProducer.getAspectUnionClass();
_trackingManager = trackingManager;
_trackingProducer = trackingProducer;
_urnClass = null;
_urnClass = urnClass;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ private EbeanLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass,
EbeanLocalDAO(@Nonnull BaseMetadataEventProducer producer, @Nonnull EbeanServer server,
@Nonnull LocalDAOStorageConfig storageConfig, @Nonnull Class<URN> urnClass,
@Nonnull UrnPathExtractor<URN> urnPathExtractor) {
super(producer, storageConfig);
super(producer, storageConfig, urnClass);
_server = server;
_urnClass = urnClass;
_urnPathExtractor = urnPathExtractor;
Expand All @@ -441,7 +441,7 @@ private EbeanLocalDAO(@Nonnull Class<ASPECT_UNION> aspectUnionClass,
private EbeanLocalDAO(@Nonnull BaseTrackingMetadataEventProducer producer, @Nonnull EbeanServer server,
@Nonnull LocalDAOStorageConfig storageConfig, @Nonnull Class<URN> urnClass,
@Nonnull UrnPathExtractor<URN> urnPathExtractor, @Nonnull BaseTrackingManager trackingManager) {
super(producer, storageConfig, trackingManager);
super(producer, storageConfig, trackingManager, urnClass);
_server = server;
_urnClass = urnClass;
_urnPathExtractor = urnPathExtractor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public abstract class BaseEntityAgnosticResource {
*
* @param backfillRequests an array of {@link BackfillItem} to be backfilled. Empty aspect list means backfill all aspects.
* @param ingestionMode {@link IngestionMode} to indicate the processing strategy. Live mode together with no-change
* should represent no-op, empty map will be returned. Backfill is to redo
* should represent no-op, empty array will be returned. Backfill is to redo
* any metadata update that is missed or skipped in the past.
* Bootstrap indicates building the metadata from scratch.
* @return an array of {@link BackfillItem} that is backfilled, failed urns and aspects will be filtered out
Expand Down
Loading