diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/AbstractNativeApplication.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/AbstractNativeApplication.java index 8660eb2ed9f..a784860d6bb 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/AbstractNativeApplication.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/AbstractNativeApplication.java @@ -1,11 +1,10 @@ package org.openmetadata.service.apps; import static org.openmetadata.service.apps.scheduler.AbstractOmAppJobListener.JOB_LISTENER_NAME; -import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_ID_KEY; +import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_NAME; import static org.openmetadata.service.exception.CatalogExceptionMessage.LIVE_APP_SCHEDULE_ERR; import java.util.List; -import java.util.UUID; import lombok.Getter; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -212,8 +211,8 @@ public class AbstractNativeApplication implements NativeApplication { @Override public void execute(JobExecutionContext jobExecutionContext) { // This is the part of the code that is executed by the scheduler - UUID appID = (UUID) jobExecutionContext.getJobDetail().getJobDataMap().get(APP_ID_KEY); - App jobApp = collectionDAO.applicationDAO().findEntityById(appID); + String appName = (String) jobExecutionContext.getJobDetail().getJobDataMap().get(APP_NAME); + App jobApp = collectionDAO.applicationDAO().findEntityByName(appName); ApplicationHandler.getInstance().setAppRuntimeProperties(jobApp); // Initialise the Application this.init(jobApp); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java index dbf65c59579..6aaec8d8bf4 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java @@ -8,7 +8,7 @@ import static org.openmetadata.schema.entity.events.SubscriptionDestination.Subs import static org.openmetadata.schema.type.DataReportIndex.ENTITY_REPORT_DATA_INDEX; import static org.openmetadata.service.Entity.KPI; import static org.openmetadata.service.Entity.TEAM; -import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_ID_KEY; +import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_NAME; import static org.openmetadata.service.util.SubscriptionUtil.getAdminsData; import static org.openmetadata.service.util.Utilities.getMonthAndDateFromEpoch; @@ -25,7 +25,6 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.TreeMap; -import java.util.UUID; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.Pair; import org.openmetadata.common.utils.CommonUtil; @@ -71,8 +70,8 @@ public class DataInsightsReportApp extends AbstractNativeApplication { @Override public void execute(JobExecutionContext jobExecutionContext) { - UUID appID = (UUID) jobExecutionContext.getJobDetail().getJobDataMap().get(APP_ID_KEY); - App app = collectionDAO.applicationDAO().findEntityById(appID); + String appName = (String) jobExecutionContext.getJobDetail().getJobDataMap().get(APP_NAME); + App app = collectionDAO.applicationDAO().findEntityByName(appName); // Calculate time diff long currentTime = Instant.now().toEpochMilli(); long scheduleTime = currentTime - 604800000L; diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AbstractOmAppJobListener.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AbstractOmAppJobListener.java index 00ebaf06bc3..ef5fff42ec7 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AbstractOmAppJobListener.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AbstractOmAppJobListener.java @@ -1,6 +1,6 @@ package org.openmetadata.service.apps.scheduler; -import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_ID_KEY; +import static org.openmetadata.service.apps.scheduler.AppScheduler.APP_NAME; import java.util.HashMap; import java.util.Map; @@ -139,7 +139,8 @@ public abstract class AbstractOmAppJobListener implements JobListener { dataMap.put(SCHEDULED_APP_RUN_EXTENSION, JsonUtils.pojoToJson(runRecord)); // Push Updates to the Database - UUID appId = (UUID) context.getJobDetail().getJobDataMap().get(APP_ID_KEY); + String appName = (String) context.getJobDetail().getJobDataMap().get(APP_NAME); + UUID appId = collectionDAO.applicationDAO().findEntityByName(appName).getId(); updateStatus(appId, runRecord, update); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AppScheduler.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AppScheduler.java index 9aa7085d9e5..6abefec69fd 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AppScheduler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/scheduler/AppScheduler.java @@ -66,7 +66,7 @@ public class AppScheduler { public static final String APPS_JOB_GROUP = "OMAppsJobGroup"; public static final String APPS_TRIGGER_GROUP = "OMAppsJobGroup"; public static final String APP_INFO_KEY = "applicationInfoKey"; - public static final String APP_ID_KEY = "appID"; + public static final String APP_NAME = "appName"; private static AppScheduler instance; private static volatile boolean initialized = false; @Getter private final Scheduler scheduler; @@ -169,7 +169,7 @@ public class AppScheduler { private JobDetail jobBuilder(App app, String jobIdentity) throws ClassNotFoundException { JobDataMap dataMap = new JobDataMap(); - dataMap.put(APP_ID_KEY, app.getId()); + dataMap.put(APP_NAME, app.getFullyQualifiedName()); dataMap.put("triggerType", app.getAppSchedule().getScheduleTimeline().value()); Class clz = (Class) Class.forName(app.getClassName()); @@ -240,7 +240,7 @@ public class AppScheduler { JobDetail newJobDetail = jobBuilder(application, String.format("%s-%s", application.getName(), ON_DEMAND_JOB)); newJobDetail.getJobDataMap().put("triggerType", ON_DEMAND_JOB); - newJobDetail.getJobDataMap().put(APP_ID_KEY, application.getId()); + newJobDetail.getJobDataMap().put(APP_NAME, application.getFullyQualifiedName()); Trigger trigger = TriggerBuilder.newTrigger() .withIdentity(