I am developing a plugin and I need to replace a Bamboo user-defined variable (of a build plan) in a string with the actual value from the source code of the plugin.
I mean, replace:
"Hello, I'm ${bamboo.author}"
with:
"Hello, I'm Luis"
, supposing that author=Luis in this moment.
How can I achieve this?
Needless to say that I don't want to parse the string manually (looking for "author", "${" or whatever), since this is not an elegant option. I really think that the Bamboo API provides something to list defined variables of something like that.
Thx,
Luis
More info:
I finally found some useful classes in com.atlassian.bamboo.variable; this is my code:
private String replaceVars(String str, PlanKey plk)
{
String result = str;
VariableDefinitionManagerImpl vdm = new VariableDefinitionManagerImpl(new VariableDefinitionHibernateDao(),
new VariableDefinitionFactoryImpl());
List<VariableDefinition> variables = vdm.getGlobalVariables();
log.debug("Current plan " + plk.getKey());
if (variables.isEmpty())
{
return result;
}
for (VariableDefinition variable : variables)
{
log.debug("Variable " + variable.getKey());
Plan varPlan = variable.getPlan();
log.debug("Plan " + varPlan.getKey());
if (!isCurrentPlan(plk, varPlan.getPlanKey()))
{
continue;
}
VariableDefinitionImpl varImpl = (VariableDefinitionImpl) variable;
log.debug("VariableImpl " + varImpl.getKey() + "; Value: " + varImpl.getValue());
result = result.replaceAll(varImpl.getKey(), varImpl.getValue());
}
log.debug("selector result: " + str);
return result;
}
private boolean isCurrentPlan(PlanKey currentPlanKey, PlanKey plKey)
{
return (currentPlanKey.getKey().equals(plKey.getKey()));
}
The problem is that I get a null in com.atlassian.bamboo.variable.VariableDefinitionHibernateDao.findGlobalVariables(VariableDefinitionHibernateDao.java:33)
There is almost a variable defined in my current plan, so I don't know where the problem is, really.
Can somebody help me?
Thanks,
Luis
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.