提交 b836857d 编写于 作者: I imod

upgrade to newer version of config-provider-model

上级 cd024812
......@@ -134,9 +134,15 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.lib</groupId>
<artifactId>config-provider-model</artifactId>
<version>1.0</version>
<version>1.1</version>
</dependency>
<!-- the dependency between config-file-provider and maven-plugin should be in the other direction -->
<!-- <dependency> -->
<!-- <groupId>org.jenkins-ci.plugins</groupId> -->
<!-- <artifactId>config-file-provider</artifactId> -->
<!-- <version>1.2-SNAPSHOT</version> -->
<!-- <optional>true</optional> -->
<!-- </dependency> -->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
......
......@@ -34,13 +34,10 @@ import hudson.FilePath;
import hudson.Functions;
import hudson.Indenter;
import hudson.Util;
import hudson.maven.settings.GlobalMavenSettingsProvider;
import hudson.maven.settings.MavenSettingsProvider;
import hudson.maven.settings.SettingsProviderUtils;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.BuildableItemWithBuildWrappers;
import hudson.model.Result;
import hudson.tasks.Builder;
import hudson.model.DependencyGraph;
import hudson.model.Descriptor;
import hudson.model.Descriptor.FormException;
......@@ -51,6 +48,7 @@ import hudson.model.Job;
import hudson.model.Queue;
import hudson.model.Queue.Task;
import hudson.model.ResourceActivity;
import hudson.model.Result;
import hudson.model.SCMedItem;
import hudson.model.Saveable;
import hudson.model.TaskListener;
......@@ -61,12 +59,13 @@ import hudson.tasks.BuildStep;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.BuildWrapper;
import hudson.tasks.BuildWrappers;
import hudson.tasks.Builder;
import hudson.tasks.Fingerprinter;
import hudson.tasks.JavadocArchiver;
import hudson.tasks.Mailer;
import hudson.tasks.Maven;
import hudson.tasks.Maven.MavenInstallation;
import hudson.tasks.Publisher;
import hudson.tasks.JavadocArchiver;
import hudson.tasks.junit.JUnitResultArchiver;
import hudson.util.CopyOnWriteMap;
import hudson.util.DescribableList;
......@@ -887,14 +886,14 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
ExtensionList<ConfigProvider> configProviders = ConfigProvider.all();
if (configProviders != null && configProviders.size() > 0) {
for (ConfigProvider configProvider : configProviders) {
if (configProvider instanceof MavenSettingsProvider) {
if (SettingsProviderUtils.isMavenSettingsProvider( configProvider )){
mavenSettingsConfigs.addAll( configProvider.getAllConfigs() );
}
}
}
return mavenSettingsConfigs;
}
/**
* @since 1.426
* @return
......@@ -904,7 +903,7 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
ExtensionList<ConfigProvider> configProviders = ConfigProvider.all();
if (configProviders != null && configProviders.size() > 0) {
for (ConfigProvider configProvider : configProviders) {
if (configProvider instanceof GlobalMavenSettingsProvider) {
if (SettingsProviderUtils.isGlobalMavenSettingsProvider( configProvider )){
globalMavenSettingsConfigs.addAll( configProvider.getAllConfigs() );
}
}
......
......@@ -613,14 +613,14 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
String settingsConfigId = project.getSettingConfigId();
if (StringUtils.isNotBlank(settingsConfigId)) {
Config config = SettingsProviderUtils.findConfig( settingsConfigId, MavenSettingsProvider.class );
if (config == null) {
Config settingsConfig = SettingsProviderUtils.findConfig( settingsConfigId, MavenSettingsProvider.class, org.jenkinsci.lib.configprovider.maven.MavenSettingsProvider.class );
if (settingsConfig == null) {
logger.println(" your Apache Maven build is setup to use a config with id " + settingsConfigId
+ " but cannot find the config");
} else {
logger.println("using settings config with name " + config.name);
if (config.content != null ) {
remoteSettings = SettingsProviderUtils.copyConfigContentToFilePath( config, getWorkspace() );
logger.println("using settings config with name " + settingsConfig.name);
if (settingsConfig.content != null ) {
remoteSettings = SettingsProviderUtils.copyConfigContentToFilePath( settingsConfig, getWorkspace() );
project.setAlternateSettings( remoteSettings.getRemote() );
}
}
......@@ -628,18 +628,18 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
String globalSettingsConfigId = project.getGlobalSettingConfigId();
if (StringUtils.isNotBlank(globalSettingsConfigId)) {
Config config = SettingsProviderUtils.findConfig( globalSettingsConfigId, GlobalMavenSettingsProvider.class );
if (config == null) {
Config settingsConfig = SettingsProviderUtils.findConfig( globalSettingsConfigId, GlobalMavenSettingsProvider.class, org.jenkinsci.lib.configprovider.maven.GlobalMavenSettingsProvider.class );
if (settingsConfig == null) {
logger.println(" your Apache Maven build is setup to use a global settings config with id " + globalSettingsConfigId
+ " but cannot find the config");
} else {
logger.println("using global settings config with name " + config.name);
if (config.content != null ) {
remoteGlobalSettings = SettingsProviderUtils.copyConfigContentToFilePath( config, getWorkspace() );
logger.println("using global settings config with name " + settingsConfig.name);
if (settingsConfig.content != null ) {
remoteGlobalSettings = SettingsProviderUtils.copyConfigContentToFilePath( settingsConfig, getWorkspace() );
project.globalSettingConfigPath = remoteGlobalSettings.getRemote();
}
}
}
}
parsePoms(listener, logger, envVars, mvn, mavenVersion); // #5428 : do pre-build *before* parsing pom
SplittableBuildListener slistener = new SplittableBuildListener(listener);
......
......@@ -216,7 +216,7 @@ public class RedeployPublisher extends Recorder {
if (!StringUtils.isBlank(settingsConfigId)) {
Config config = SettingsProviderUtils.findConfig( settingsConfigId,
MavenSettingsProvider.class );
MavenSettingsProvider.class, org.jenkinsci.lib.configprovider.maven.MavenSettingsProvider.class );
if (config == null) {
listener.getLogger().println(
" your Apache Maven build is setup to use a config with id " + settingsConfigId
......@@ -236,7 +236,7 @@ public class RedeployPublisher extends Recorder {
String globalSettingsConfigId = mavenModuleSet.getGlobalSettingConfigId();
if (!StringUtils.isBlank(globalSettingsConfigId)) {
Config config = SettingsProviderUtils.findConfig( globalSettingsConfigId, GlobalMavenSettingsProvider.class );
Config config = SettingsProviderUtils.findConfig( globalSettingsConfigId, GlobalMavenSettingsProvider.class, org.jenkinsci.lib.configprovider.maven.GlobalMavenSettingsProvider.class );
if (config == null) {
listener.getLogger().println(
" your Apache Maven build is setup to use a global settings config with id "
......
......@@ -17,70 +17,117 @@ package hudson.maven.settings;
import hudson.ExtensionList;
import hudson.FilePath;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.jenkinsci.lib.configprovider.ConfigProvider;
import org.jenkinsci.lib.configprovider.model.Config;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.jenkinsci.lib.configprovider.ConfigProvider;
import org.jenkinsci.lib.configprovider.model.Config;
/**
* @author Olivier Lamy
* @since 1.426
*/
public class SettingsProviderUtils {
/**
* utility method to retrieve Config of type (MavenSettingsProvider etc..)
* @param settingsConfigId
* @param type
* @return Config
*/
public static Config findConfig(String settingsConfigId, Class<?> type) {
ExtensionList<ConfigProvider> configProviders = ConfigProvider.all();
if (configProviders != null && configProviders.size() > 0) {
for (ConfigProvider configProvider : configProviders) {
if (type.isAssignableFrom( configProvider.getClass() ) ) {
if ( configProvider.isResponsibleFor( settingsConfigId ) ) {
return configProvider.getConfigById( settingsConfigId );
}
}
}
}
return null;
}
/**
* utility method to retrieve Config of type (MavenSettingsProvider etc..)
*
* @param settingsConfigId
* @param type
* @return Config
*/
public static Config findConfig(String settingsConfigId, Class<?>... types) {
ExtensionList<ConfigProvider> configProviders = ConfigProvider.all();
if (configProviders != null && configProviders.size() > 0) {
for (ConfigProvider configProvider : configProviders) {
for (Class<?> type : types) {
if (type.isAssignableFrom(configProvider.getClass())) {
if (configProvider.isResponsibleFor(settingsConfigId)) {
return configProvider.getConfigById(settingsConfigId);
}
}
}
}
}
return null;
}
/**
*
* @param config
* @param workspace
*/
public static FilePath copyConfigContentToFilePath(Config config, FilePath workspace) throws IOException, InterruptedException {
File tmpContentFile = null;
ByteArrayInputStream bs = null;
try {
tmpContentFile = File.createTempFile("config", "tmp");
FilePath filePath = new FilePath(workspace, tmpContentFile.getName());
bs = new ByteArrayInputStream(config.content.getBytes());
filePath.copyFrom(bs);
return filePath;
} finally {
FileUtils.deleteQuietly(tmpContentFile);
IOUtils.closeQuietly(bs);
}
}
/**
*
* @return a temp file which must be deleted after use
*/
public static File copyConfigContentToFile(Config config) throws IOException {
/**
*
* @param config
* @param workspace
*/
public static FilePath copyConfigContentToFilePath(Config config, FilePath workspace) throws IOException, InterruptedException {
File tmpContentFile = null;
ByteArrayInputStream bs = null;
File tmpContentFile = File.createTempFile("config", "tmp");
FileUtils.writeStringToFile(tmpContentFile, config.content);
return tmpContentFile;
}
try {
tmpContentFile = File.createTempFile( "config", "tmp" );
FilePath filePath = new FilePath( workspace, tmpContentFile.getName() );
bs = new ByteArrayInputStream(config.content.getBytes());
filePath.copyFrom(bs);
return filePath;
} finally {
FileUtils.deleteQuietly( tmpContentFile );
IOUtils.closeQuietly( bs );
}
}
/**
* tells whether a config file provider serves global settings configs
*
* @param configProvider
* the provider to check
* @return <code>true</code> if it implements one of the supported
* interfaces
*/
public static boolean isGlobalMavenSettingsProvider(ConfigProvider configProvider) {
// first prio to old implementation
if (configProvider instanceof GlobalMavenSettingsProvider) {
return true;
}
// second prio to new impl, only if the plugin is installed
if (org.jenkinsci.lib.configprovider.maven.GlobalMavenSettingsProvider.class.isAssignableFrom(configProvider.getClass())) {
return true;
}
return false;
}
/**
*
* @return a temp file which must be deleted after use
*/
public static File copyConfigContentToFile(Config config) throws IOException{
/**
* tells whether a config file provider serves settings configs
*
* @param configProvider
* the provider to check
* @return <code>true</code> if it implements one of the supported
* interfaces
*/
public static boolean isMavenSettingsProvider(ConfigProvider configProvider) {
// first prio to old implementation
if (configProvider instanceof MavenSettingsProvider) {
return true;
}
// second prio to new impl, only if the plugin is installed
if (org.jenkinsci.lib.configprovider.maven.MavenSettingsProvider.class.isAssignableFrom(configProvider.getClass())) {
return true;
}
return false;
}
File tmpContentFile = File.createTempFile( "config", "tmp" );
FileUtils.writeStringToFile( tmpContentFile, config.content );
return tmpContentFile;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册