Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixing: JENKINS-15463: JaCoCo Jenkins plugin does not work on a linux…
… slave
  • Loading branch information
ognjenb committed Oct 15, 2012
1 parent a697060 commit 5698420
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 25 deletions.
12 changes: 6 additions & 6 deletions src/main/java/hudson/plugins/jacoco/JacocoBuildAction.java
Expand Up @@ -10,21 +10,20 @@
import hudson.plugins.jacoco.model.CoverageElement;
import hudson.plugins.jacoco.model.CoverageElement.Type;
import hudson.plugins.jacoco.model.CoverageObject;
import hudson.plugins.jacoco.report.ClassReport;
import hudson.plugins.jacoco.report.CoverageReport;
import hudson.util.IOException2;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.Serializable;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.jacoco.core.analysis.IBundleCoverage;
import org.jvnet.localizer.Localizable;
Expand Down Expand Up @@ -338,9 +337,10 @@ private static Map<Type, Coverage> loadRatios(FilePath actualBuildDirRoot, Map<T
ratio = new Coverage();
ratio.accumulatePP(bundleCoverage.getLineCounter().getMissedCount(), bundleCoverage.getLineCounter().getCoveredCount());
ratios.put(CoverageElement.Type.LINE, ratio);

//logGer.log(Level.INFO, ratios.toString());
return ratios;

}


private static final Logger logGer = Logger.getLogger(JacocoBuildAction.class.getName());
}
43 changes: 24 additions & 19 deletions src/main/java/hudson/plugins/jacoco/JacocoPublisher.java
Expand Up @@ -10,6 +10,7 @@
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.plugins.jacoco.report.CoverageReport;
import hudson.remoting.VirtualChannel;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.BuildStepMonitor;
import hudson.tasks.Publisher;
Expand Down Expand Up @@ -101,32 +102,36 @@ protected static String resolveFilePaths(AbstractBuild<?, ?> build, BuildListene
return input;
}

protected static FilePath[] resolveDirPaths(AbstractBuild<?, ?> build, BuildListener listener, String input) {
ArrayList<FilePath> directoryPaths= null;
protected static FilePath[] resolveDirPaths(AbstractBuild<?, ?> build, BuildListener listener, final String input) {
final PrintStream logger = listener.getLogger();
String[] includes = null;

FilePath[] directoryPaths = null;
try {
includes = input.split(",");
DirectoryScanner ds = new DirectoryScanner();

ds.setIncludes(includes);
ds.setCaseSensitive(false);
ds.setBasedir(new File(build.getWorkspace().toURI().getPath()));
ds.scan();
String[] dirs = ds.getIncludedDirectories();

directoryPaths = new ArrayList<FilePath>();
for (String dir : dirs) {
directoryPaths.add(new FilePath(new File(dir)));
}
directoryPaths = build.getWorkspace().act(new FilePath.FileCallable<FilePath[]>() {
public FilePath[] invoke(File f, VirtualChannel channel) throws IOException {
ArrayList<FilePath> localDirectoryPaths= new ArrayList<FilePath>();
String[] includes = input.split(",");
DirectoryScanner ds = new DirectoryScanner();

ds.setIncludes(includes);
ds.setCaseSensitive(false);
ds.setBasedir(f);
ds.scan();
String[] dirs = ds.getIncludedDirectories();

for (String dir : dirs) {
localDirectoryPaths.add(new FilePath(new File(dir)));
}
FilePath[] lfp = {};//trick to have an empty array as a parameter, so the returned array will contain the elements
return localDirectoryPaths.toArray(lfp);
}
});

} catch(InterruptedException ie) {
ie.printStackTrace();
} catch(IOException io) {
io.printStackTrace();
}
FilePath[] fp = {}; //trick to have an empty array as a parameter, so the returned array will contain the elements
return directoryPaths.toArray(fp);
return directoryPaths;
}

/*
Expand Down

0 comments on commit 5698420

Please sign in to comment.