mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-936 - Move process variant info from schedule to process meta data
This commit is contained in:
@ -497,10 +497,10 @@ public class RunProcessAction
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// if backend specifies that it uses variants, look for that data in the session and append to our basepull key //
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
if(process.getSchedule() != null && process.getSchedule().getVariantBackend() != null)
|
||||
if(process.getSchedule() != null && process.getVariantBackend() != null)
|
||||
{
|
||||
QSession session = QContext.getQSession();
|
||||
QBackendMetaData backendMetaData = QContext.getQInstance().getBackend(process.getSchedule().getVariantBackend());
|
||||
QBackendMetaData backendMetaData = QContext.getQInstance().getBackend(process.getVariantBackend());
|
||||
if(session.getBackendVariants() == null || !session.getBackendVariants().containsKey(backendMetaData.getVariantOptionsTableTypeValue()))
|
||||
{
|
||||
LOG.info("Could not find Backend Variant information for Backend '" + backendMetaData.getName() + "'");
|
||||
|
@ -1417,12 +1417,16 @@ public class QInstanceValidator
|
||||
{
|
||||
QScheduleMetaData schedule = process.getSchedule();
|
||||
validateScheduleMetaData(schedule, qInstance, "Process " + processName + ", schedule: ");
|
||||
|
||||
if(schedule.getVariantBackend() != null)
|
||||
{
|
||||
assertCondition(qInstance.getBackend(schedule.getVariantBackend()) != null, "A variant backend was not found for " + schedule.getVariantBackend());
|
||||
assertCondition(schedule.getVariantRunStrategy() != null, "A variant run strategy was not set for " + schedule.getVariantBackend() + " on schedule in process " + processName);
|
||||
}
|
||||
|
||||
if(process.getVariantBackend() != null)
|
||||
{
|
||||
assertCondition(qInstance.getBackend(process.getVariantBackend()) != null, "Process " + processName + ", a variant backend was not found named " + process.getVariantBackend());
|
||||
assertCondition(process.getVariantRunStrategy() != null, "A variant run strategy was not set for process " + processName + " (which does specify a variant backend)");
|
||||
}
|
||||
else
|
||||
{
|
||||
assertCondition(process.getVariantRunStrategy() == null, "A variant run strategy was set for process " + processName + " (which isn't allowed, since it does not specify a variant backend)");
|
||||
}
|
||||
|
||||
for(QSupplementalProcessMetaData supplementalProcessMetaData : CollectionUtils.nonNullMap(process.getSupplementalMetaData()).values())
|
||||
|
@ -155,4 +155,26 @@ public class AbstractProcessMetaDataBuilder
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public AbstractProcessMetaDataBuilder withVariantRunStrategy(VariantRunStrategy variantRunStrategy)
|
||||
{
|
||||
processMetaData.setVariantRunStrategy(variantRunStrategy);
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public AbstractProcessMetaDataBuilder withVariantBackend(String variantBackend)
|
||||
{
|
||||
processMetaData.setVariantBackend(variantBackend);
|
||||
return (this);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -64,6 +64,9 @@ public class QProcessMetaData implements QAppChildMetaData, MetaDataWithPermissi
|
||||
|
||||
private QScheduleMetaData schedule;
|
||||
|
||||
private VariantRunStrategy variantRunStrategy;
|
||||
private String variantBackend;
|
||||
|
||||
private Map<String, QSupplementalProcessMetaData> supplementalMetaData;
|
||||
|
||||
|
||||
@ -671,4 +674,66 @@ public class QProcessMetaData implements QAppChildMetaData, MetaDataWithPermissi
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public VariantRunStrategy getVariantRunStrategy()
|
||||
{
|
||||
return (this.variantRunStrategy);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public void setVariantRunStrategy(VariantRunStrategy variantRunStrategy)
|
||||
{
|
||||
this.variantRunStrategy = variantRunStrategy;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public QProcessMetaData withVariantRunStrategy(VariantRunStrategy variantRunStrategy)
|
||||
{
|
||||
this.variantRunStrategy = variantRunStrategy;
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for variantBackend
|
||||
*******************************************************************************/
|
||||
public String getVariantBackend()
|
||||
{
|
||||
return (this.variantBackend);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for variantBackend
|
||||
*******************************************************************************/
|
||||
public void setVariantBackend(String variantBackend)
|
||||
{
|
||||
this.variantBackend = variantBackend;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for variantBackend
|
||||
*******************************************************************************/
|
||||
public QProcessMetaData withVariantBackend(String variantBackend)
|
||||
{
|
||||
this.variantBackend = variantBackend;
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* QQQ - Low-code Application Framework for Engineers.
|
||||
* Copyright (C) 2021-2024. Kingsrook, LLC
|
||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||
* contact@kingsrook.com
|
||||
* https://github.com/Kingsrook/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.kingsrook.qqq.backend.core.model.metadata.processes;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public enum VariantRunStrategy
|
||||
{
|
||||
PARALLEL,
|
||||
SERIAL
|
||||
}
|
@ -37,11 +37,8 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||
*******************************************************************************/
|
||||
public class QScheduleMetaData
|
||||
{
|
||||
public enum RunStrategy
|
||||
{PARALLEL, SERIAL}
|
||||
|
||||
|
||||
private String schedulerName;
|
||||
private String description;
|
||||
|
||||
private Integer repeatSeconds;
|
||||
private Integer repeatMillis;
|
||||
@ -51,8 +48,6 @@ public class QScheduleMetaData
|
||||
private String cronExpression;
|
||||
private String cronTimeZoneId;
|
||||
|
||||
private RunStrategy variantRunStrategy;
|
||||
private String variantBackend;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
@ -201,67 +196,6 @@ public class QScheduleMetaData
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for variantBackend
|
||||
*******************************************************************************/
|
||||
public String getVariantBackend()
|
||||
{
|
||||
return (this.variantBackend);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for variantBackend
|
||||
*******************************************************************************/
|
||||
public void setVariantBackend(String variantBackend)
|
||||
{
|
||||
this.variantBackend = variantBackend;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for variantBackend
|
||||
*******************************************************************************/
|
||||
public QScheduleMetaData withBackendVariant(String backendVariant)
|
||||
{
|
||||
this.variantBackend = backendVariant;
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public RunStrategy getVariantRunStrategy()
|
||||
{
|
||||
return (this.variantRunStrategy);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public void setVariantRunStrategy(RunStrategy variantRunStrategy)
|
||||
{
|
||||
this.variantRunStrategy = variantRunStrategy;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for variantRunStrategy
|
||||
*******************************************************************************/
|
||||
public QScheduleMetaData withVariantRunStrategy(RunStrategy variantRunStrategy)
|
||||
{
|
||||
this.variantRunStrategy = variantRunStrategy;
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for cronExpression
|
||||
*******************************************************************************/
|
||||
@ -354,4 +288,34 @@ public class QScheduleMetaData
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for description
|
||||
*******************************************************************************/
|
||||
public String getDescription()
|
||||
{
|
||||
return (this.description);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for description
|
||||
*******************************************************************************/
|
||||
public void setDescription(String description)
|
||||
{
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for description
|
||||
*******************************************************************************/
|
||||
public QScheduleMetaData withDescription(String description)
|
||||
{
|
||||
this.description = description;
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionInputMet
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionOutputMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QStepMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.VariantRunStrategy;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.scheduleing.QScheduleMetaData;
|
||||
import com.kingsrook.qqq.backend.core.processes.implementations.basepull.BasepullConfiguration;
|
||||
|
||||
@ -488,5 +489,28 @@ public class StreamedETLWithFrontendProcess
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@Override
|
||||
public Builder withVariantRunStrategy(VariantRunStrategy variantRunStrategy)
|
||||
{
|
||||
processMetaData.setVariantRunStrategy(variantRunStrategy);
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@Override
|
||||
public Builder withVariantBackend(String variantBackend)
|
||||
{
|
||||
processMetaData.setVariantBackend(variantBackend);
|
||||
return (this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.processes.VariantRunStrategy;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.scheduleing.QScheduleMetaData;
|
||||
import com.kingsrook.qqq.backend.core.processes.implementations.basepull.BasepullConfiguration;
|
||||
import com.kingsrook.qqq.backend.core.processes.implementations.basepull.ExtractViaBasepullQueryStep;
|
||||
@ -248,5 +249,28 @@ public class TableSyncProcess
|
||||
super.withExtractStepClass(extractStepClass);
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@Override
|
||||
public Builder withVariantRunStrategy(VariantRunStrategy variantRunStrategy)
|
||||
{
|
||||
processMetaData.setVariantRunStrategy(variantRunStrategy);
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@Override
|
||||
public Builder withVariantBackend(String variantBackend)
|
||||
{
|
||||
processMetaData.setVariantBackend(variantBackend);
|
||||
return (this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user