Skip to content
This repository has been archived by the owner on Jun 18, 2024. It is now read-only.

Commit

Permalink
Merge pull request #70 from tinyspeck/dynamicParameterDefinitions
Browse files Browse the repository at this point in the history
add dynamic dsl for parameterDefinitions
  • Loading branch information
NatWoodson authored Jan 11, 2023
2 parents 6080006 + 97f257b commit 42f2ca1
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ public AbstractDSLStrategy(int tabs, IDescriptor descriptor, boolean shouldInitC
propertiesToBeSkipped.add("color");
propertiesToBeSkipped.add("activeProcessNames");
propertiesToBeSkipped.add("isVisible");
propertiesToBeSkipped.add("trim");
propertiesToBeSkipped.add("disableDeferredWipeout");
propertiesToBeSkipped.add("shallow");
propertiesToBeSkipped.add("skipPublishingChecks");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.adq.jenkins.xmljobtodsl.dsl.strategies.DSLMethodStrategy;
import com.adq.jenkins.xmljobtodsl.dsl.strategies.DSLStrategy;

import java.util.List;

public class DSLChoiceParamStrategy extends DSLMethodStrategy {

private final String methodName;
Expand All @@ -20,9 +22,17 @@ public String toDSL() {
}

public String getOrderedChildrenDSL() {
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) getDescriptor();
String description = "\"\"";

List<PropertyDescriptor> children = propertyDescriptor.getProperties();
for (PropertyDescriptor child : children ) {
if (child.getName().equals("description")) {
description = getChildrenByName("description").toDSL();
}
}
String choices = getChildrenByName("choices").toDSL();
String name = getChildrenByName("name").toDSL();
String description = getChildrenByName("description").toDSL();
return name + ", " + choices + ", " + description;
return name + ", " + choices + ", " + description;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,18 @@ public String toDSL() {
public String getOrderedChildrenDSL() {
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) getDescriptor();
if (propertyDescriptor.getName().equals("hudson.model.StringParameterDefinition") || propertyDescriptor.getName().equals("hudson.model.BooleanParameterDefinition")) {
String defaultValue = "\"\"";
String defaultValue = "\"\"", description = "\"\"";
List <PropertyDescriptor> children = propertyDescriptor.getProperties();
for (PropertyDescriptor child : children ) {
if (child.getName().equals("defaultValue")) {
defaultValue = getChildrenByName("defaultValue").toDSL();

}
if (child.getName().equals("description")) {
description = getChildrenByName("description").toDSL();
}
}
String name = getChildrenByName("name").toDSL();
String description = getChildrenByName("description").toDSL();
return name + ", " + defaultValue + ", " + description;

} else {
Expand Down
103 changes: 68 additions & 35 deletions src/main/resources/translator.properties
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,78 @@ processVariablesHandling = processVariablesHandling
hudson.model.ParametersDefinitionProperty = parameters
hudson.model.ParametersDefinitionProperty.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLObjectIgnoreParentStrategy

hudson.model.ParametersDefinitionProperty.parameterDefinitions = parameters
hudson.model.ParametersDefinitionProperty.parameterDefinitions.type = OBJECT

hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.StringParameterDefinition = stringParam
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.StringParameterDefinition.type = OBJECT

hudson.model.StringParameterDefinition.name = name
hudson.model.StringParameterDefinition.description = description
hudson.model.StringParameterDefinition.description.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLMandatoryStringStrategy
hudson.model.StringParameterDefinition.defaultValue = defaultValue
hudson.model.StringParameterDefinition.trim = trim

hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition = choiceParam
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.type = OBJECT
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.name = name
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.description = description
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices = choices
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.type = ARRAY
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a = INNER
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.type = INNER
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.string = string
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.string.type = PARAMETER

hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.BooleanParameterDefinition = booleanParam
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.BooleanParameterDefinition.type = OBJECT
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.BooleanParameterDefinition.name = name
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.BooleanParameterDefinition.description = description
hudson.model.ParametersDefinitionProperty.parameterDefinitions.hudson.model.BooleanParameterDefinition.defaultValue = defaultValue

# Copy Artifacts Build Step attributes
hudson.plugins.copyartifact.CopyArtifact = copyArtifacts
hudson.plugins.copyartifact.CopyArtifact.type = CLOSURE

hudson.plugins.promoted__builds.PromotionProcess.conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions = parameters
hudson.plugins.promoted__builds.PromotionProcess.conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.type = OBJECT

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition = choiceParam
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLChoiceParamStrategy

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.name = PARAM_NAME
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.name.type = PARAMETER

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.description = PARAM_DESCRIPTION
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.description.type = PARAMETER

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices = INNER
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.type = INNER

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a = a
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.type = ARRAY

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.string = string
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.ChoiceParameterDefinition.choices.a.string.type = PARAMETER

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition = booleanParam
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLParamStrategy
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.name = PARAM_NAME
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.name.type = PARAMETER
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.description = PARAM_DESCRIPTION
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.description.type = PARAMETER
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.defaultValue = PARAM_DEFAULT_VALUE
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.BooleanParameterDefinition.defaultValue.type = PARAMETER

conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition = stringParam
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLParamStrategy
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.name = PARAM_NAME
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.name.type = PARAMETER
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.description = PARAM_DESCRIPTION
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.description.type = PARAMETER
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.defaultValue = PARAM_DEFAULT_VALUE
conditions.hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.hudson.model.StringParameterDefinition.defaultValue.type = PARAMETER

parameters = parameters
filter = includePatterns
target = targetDirectory
Expand Down Expand Up @@ -341,23 +409,6 @@ hudson.plugins.copyartifact.CopyArtifactPermissionProperty.type = OBJECT

projectNameList = projectNames

hudson.model.ParametersDefinitionProperty.parameterDefinitions = INNER

hudson.model.StringParameterDefinition = stringParam
hudson.model.StringParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLParamStrategy

hudson.model.TextParameterDefinition = textParam
hudson.model.TextParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLParamStrategy

name = PARAM_NAME
name.type = PARAMETER

defaultValue = PARAM_DEFAULT_VALUE
defaultValue.type = PARAMETER

description = PARAM_DESCRIPTION
description.type = PARAMETER

pre.type = PARAMETER

com.cloudbees.plugins.credentials.CredentialsParameterDefinition = credentialsParam
Expand All @@ -374,21 +425,6 @@ com.cloudbees.plugins.credentials.CredentialsParameterDefinition.required = requ
credentialType = type
credentialType.type = PARAMETER

hudson.model.ChoiceParameterDefinition = choiceParam
hudson.model.ChoiceParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLChoiceParamStrategy

choices = INNER
choices.type = INNER

a = a
a.type = ARRAY

string = string
string.type = PARAMETER

hudson.model.BooleanParameterDefinition = booleanParam
hudson.model.BooleanParameterDefinition.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLParamStrategy

scm = scm
scm.type = com.adq.jenkins.xmljobtodsl.dsl.strategies.custom.DSLHiddenTagStrategy
scm.hidden_tag = git
Expand Down Expand Up @@ -994,9 +1030,6 @@ hudson.plugins.promoted__builds.PromotionProcess.type = OBJECT
hudson.plugins.promoted__builds.conditions.ManualCondition = manual
hudson.plugins.promoted__builds.conditions.ManualCondition.type = CLOSURE

hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions = parameters
hudson.plugins.promoted__builds.conditions.ManualCondition.parameterDefinitions.type = OBJECT

user.type = PARAMETER

hudson.plugins.promoted__builds.conditions.UpstreamPromotionCondition = upstream
Expand Down

0 comments on commit 42f2ca1

Please sign in to comment.