Hi there!
I just cannot seem to be able to add environmental variables in my plugin.
I made a separate class extending EnvironmentContributor:
package hudson.plugins.throttleconcurrents;
import hudson.EnvVars;
import hudson.Extension;
import hudson.model.EnvironmentContributor;
import hudson.model.TaskListener;
import hudson.model.Run;
import java.io.IOException;
@Extension
public class ThrottleAddEnvVar extends EnvironmentContributor {
// This class is for adding the environmental variable containing the
assigned labels
@Override
public void buildEnvironmentFor(Run r, EnvVars envs, TaskListener listener)
throws IOException, InterruptedException {
ThrottleQueueTaskDispatcher.writeMessage("Running buildEnvironmentFor()!");
//Put together category-labels string
String labelEnvVar = "category1|label1<>category2|label2"; // String
storing the LABELS environmental variable. Form is:
category1|label1<>category2|label2<>...
envs.put("LABELS", labelEnvVar);
}
}
but this does not do anything at all. In fact,
the ThrottleQueueTaskDispatcher.writeMessage() call is never made so
buildEnvironmentFor() is simply never executed. When is this function
supposed to be called?
I've been noticing more often that having a class have @Extension does not
mean it is picked up. What else, besides what is above, would be necessary?
This generalizes to other extension points such as Builders and such.
Help will be greatly appreciated!
Thomas