Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #118 from oleg-nenashev/feature/JENKINS-43536
[JENKINS-43536] - Avoid usage of AbstractProject/AbstractBuild where possible
  • Loading branch information
oleg-nenashev committed May 12, 2017
2 parents 95033cf + b273187 commit b5e1991
Show file tree
Hide file tree
Showing 20 changed files with 480 additions and 228 deletions.
30 changes: 13 additions & 17 deletions pom.xml
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>2.24</version>
<version>2.28</version>
</parent>

<artifactId>envinject</artifactId>
Expand Down Expand Up @@ -54,14 +54,10 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<envinject.lib.version>1.24</envinject.lib.version>
<ivy.plugin.version>1.21</ivy.plugin.version>
<mockito.version>1.10.19</mockito.version>
<jenkins.version>1.609.3</jenkins.version>
<java.level>6</java.level>
<java.level.test>${java.level}</java.level.test>
<jenkins.version>1.625.3</jenkins.version>
<java.level>7</java.level>
<findbugs.failOnError>false</findbugs.failOnError>
</properties>

Expand Down Expand Up @@ -92,15 +88,9 @@

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version> <!-- assertLogContains is incompatible with whatever hamcrest junit 4.12 adds -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.lib</groupId>
<artifactId>envinject-lib</artifactId>
<version>${envinject.lib.version}</version>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>envinject-api</artifactId>
<version>1.0</version>
</dependency>

<dependency>
Expand All @@ -112,7 +102,7 @@

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
Expand All @@ -128,6 +118,12 @@
<artifactId>script-security</artifactId>
<version>1.22</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
</dependencies>

<repositories>
Expand Down
Expand Up @@ -5,13 +5,13 @@
import hudson.model.Action;
import org.apache.commons.collections.map.UnmodifiableMap;
import org.jenkinsci.lib.envinject.EnvInjectException;
import org.jenkinsci.lib.envinject.service.EnvInjectSavable;
import org.kohsuke.stapler.StaplerProxy;

import java.io.File;
import java.io.ObjectStreamException;
import java.util.Map;
import java.util.Set;
import org.jenkinsci.plugins.envinjectapi.util.EnvInjectVarsIO;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;

Expand Down Expand Up @@ -109,12 +109,11 @@ private Object writeReplace() throws ObjectStreamException {
}

try {
EnvInjectSavable dao = new EnvInjectSavable();
if (rootDir == null) {
dao.saveEnvironment(build.getRootDir(), envMap);
EnvInjectVarsIO.saveEnvironment(build.getRootDir(), envMap);
return this;
}
dao.saveEnvironment(rootDir, envMap);
EnvInjectVarsIO.saveEnvironment(rootDir, envMap);
} catch (EnvInjectException e) {
e.printStackTrace();
}
Expand All @@ -129,13 +128,12 @@ private Object readResolve() throws ObjectStreamException {
return this;
}

EnvInjectSavable dao = new EnvInjectSavable();
Map<String, String> resultMap = null;
try {
if (build != null) {
resultMap = dao.getEnvironment(build.getRootDir());
resultMap = EnvInjectVarsIO.getEnvironment(build.getRootDir());
} else if (rootDir != null) {
resultMap = dao.getEnvironment(rootDir);
resultMap = EnvInjectVarsIO.getEnvironment(rootDir);
}
if (resultMap != null) {
envMap = resultMap;
Expand Down
Expand Up @@ -3,13 +3,13 @@
import hudson.Extension;
import hudson.model.*;
import org.jenkinsci.lib.envinject.EnvInjectException;
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.plugins.envinject.service.EnvInjectVariableGetter;
import org.jenkinsci.plugins.envinject.service.EnvironmentVariablesNodeLoader;

import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.plugins.envinject.util.RunHelper;

/**
* Overriding job parameters with environment variables populated by EnvInject plugin
Expand All @@ -25,8 +25,7 @@ public void buildVariablesFor(@Nonnull AbstractBuild build, @Nonnull Map<String,
//Only for a parameterized job
if (parameters != null) {

EnvInjectVariableGetter variableGetter = new EnvInjectVariableGetter();
EnvInjectJobProperty envInjectJobProperty = variableGetter.getEnvInjectJobProperty(build);
EnvInjectJobProperty envInjectJobProperty = RunHelper.getEnvInjectJobProperty(build);
if (envInjectJobProperty == null) {
// Don't override anything if envinject isn't enabled on this job
return;
Expand All @@ -35,10 +34,9 @@ public void buildVariablesFor(@Nonnull AbstractBuild build, @Nonnull Map<String,
if (!envInjectJobProperty.isOverrideBuildParameters()) return;

//Gather global variables for the current node
EnvironmentVariablesNodeLoader environmentVariablesNodeLoader = new EnvironmentVariablesNodeLoader();
Map<String, String> nodeEnvVars = new HashMap<String, String>();
try {
nodeEnvVars = environmentVariablesNodeLoader.gatherEnvironmentVariablesNode(build, build.getBuiltOn(), new EnvInjectLogger(TaskListener.NULL));
nodeEnvVars = EnvironmentVariablesNodeLoader.gatherEnvVarsForNode(build, build.getBuiltOn(), new EnvInjectLogger(TaskListener.NULL));
} catch (EnvInjectException e) {
e.printStackTrace();
}
Expand Down
Expand Up @@ -26,7 +26,7 @@
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.plugins.envinject.service.EnvInjectActionSetter;
import org.jenkinsci.plugins.envinject.service.EnvInjectEnvVars;
import org.jenkinsci.plugins.envinject.service.EnvInjectVariableGetter;
import org.jenkinsci.plugins.envinject.util.RunHelper;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;

Expand Down Expand Up @@ -78,13 +78,12 @@ public Environment setUp(@Nonnull AbstractBuild build, final @Nonnull Launcher l
EnvInjectLogger logger = new EnvInjectLogger(listener);
logger.info("Executing scripts and injecting environment variables after the SCM step.");

EnvInjectVariableGetter variableGetter = new EnvInjectVariableGetter();
FilePath ws = build.getWorkspace();
EnvInjectActionSetter envInjectActionSetter = new EnvInjectActionSetter(ws);
EnvInjectEnvVars envInjectEnvVarsService = new EnvInjectEnvVars(logger);

try {
Map<String, String> previousEnvVars = variableGetter.getEnvVarsPreviousSteps(build, logger);
Map<String, String> previousEnvVars = RunHelper.getEnvVarsPreviousSteps(build, logger);
Map<String, String> injectedEnvVars = new HashMap<String, String>(previousEnvVars);

//Add workspace if not set
Expand Down Expand Up @@ -118,7 +117,7 @@ public Environment setUp(@Nonnull AbstractBuild build, final @Nonnull Launcher l
}

//Add or get the existing action to add new env vars
envInjectActionSetter.addEnvVarsToEnvInjectBuildAction(build, resultVariables);
envInjectActionSetter.addEnvVarsToRun(build, resultVariables);

return new Environment() {
@Override
Expand Down
@@ -1,16 +1,24 @@
package org.jenkinsci.plugins.envinject;

import hudson.RestrictedSince;
import hudson.model.AbstractBuild;
import hudson.model.Run;
import org.jenkinsci.lib.envinject.EnvInjectAction;

import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.NoExternalUse;

/**
* @author Gregory Boissinot
* @deprecated replaced by {@link EnvInjectBuilder}
*/
@SuppressWarnings("unused")
@Restricted(NoExternalUse.class)
@RestrictedSince("2.1")
@Deprecated
public class EnvInjectBuilder$1 extends EnvInjectAction {

private transient String val$resultVariables;
Expand All @@ -19,5 +27,8 @@ public class EnvInjectBuilder$1 extends EnvInjectAction {
public EnvInjectBuilder$1(@Nonnull AbstractBuild build, @CheckForNull Map<String, String> envMap) {
super(build, envMap);
}


public EnvInjectBuilder$1(@CheckForNull Map<String, String> envMap) {
super(envMap);
}
}
Expand Up @@ -13,14 +13,14 @@
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.plugins.envinject.service.EnvInjectActionSetter;
import org.jenkinsci.plugins.envinject.service.EnvInjectEnvVars;
import org.jenkinsci.plugins.envinject.service.EnvInjectVariableGetter;
import org.kohsuke.stapler.DataBoundConstructor;

import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import org.jenkinsci.plugins.envinject.util.RunHelper;

/**
* @author Gregory Boissinot
Expand Down Expand Up @@ -52,9 +52,7 @@ public boolean perform(@Nonnull AbstractBuild<?, ?> build, @Nonnull Launcher lau
EnvInjectEnvVars envInjectEnvVarsService = new EnvInjectEnvVars(logger);

try {

EnvInjectVariableGetter variableGetter = new EnvInjectVariableGetter();
Map<String, String> previousEnvVars = variableGetter.getEnvVarsPreviousSteps(build, logger);
Map<String, String> previousEnvVars = RunHelper.getEnvVarsPreviousSteps(build, logger);

//Get current envVars
Map<String, String> variables = new HashMap<String, String>(previousEnvVars);
Expand Down Expand Up @@ -87,7 +85,7 @@ public boolean perform(@Nonnull AbstractBuild<?, ?> build, @Nonnull Launcher lau
build.addAction(new EnvInjectBuilderContributionAction(resultVariables));

//Add or get the existing action to add new env vars
envInjectActionSetter.addEnvVarsToEnvInjectBuildAction(build, resultVariables);
envInjectActionSetter.addEnvVarsToRun(build, resultVariables);

} catch (Throwable throwable) {
logger.error("Problems occurs on injecting env vars as a build step: " + throwable.getMessage());
Expand Down
Expand Up @@ -2,13 +2,10 @@

import hudson.DescriptorExtensionList;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Job;
import hudson.model.JobProperty;
import hudson.model.JobPropertyDescriptor;
import jenkins.model.Jenkins;
import net.sf.json.JSON;
import net.sf.json.JSONException;

import net.sf.json.JSONObject;
import org.jenkinsci.plugins.envinject.model.EnvInjectJobPropertyContributor;
import org.jenkinsci.plugins.envinject.model.EnvInjectJobPropertyContributorDescriptor;
Expand Down

0 comments on commit b5e1991

Please sign in to comment.