implement the nested configuration for proxy settings

This commit is contained in:
ma wei
2015-08-25 19:11:27 +08:00
parent 519198bb61
commit ddb8c432be
5 changed files with 52 additions and 24 deletions

View File

@@ -19,10 +19,7 @@
package com.tools.security.extension
class DependencyCheckExtension {
String proxyServer
Integer proxyPort
String proxyUsername
String proxyPassword
ProxyExtension proxyExtension;
String cveUrl20Modified
String cveUrl12Modified

View File

@@ -0,0 +1,26 @@
/*
* This file is part of dependency-check-gradle.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright (c) 2015 Wei Ma. All Rights Reserved.
*/
package com.tools.security.extension
class ProxyExtension {
String server
Integer port
String username
String password
}

View File

@@ -19,13 +19,15 @@
package com.tools.security.plugin
import com.tools.security.extension.DependencyCheckExtension
import com.tools.security.extension.ProxyExtension
import com.tools.security.tasks.DependencyCheckTask
import org.gradle.api.Plugin
import org.gradle.api.Project
class DependencyCheckGradlePlugin implements Plugin<Project> {
private static final String EXTENSION_NAME = 'dependencyCheck'
private static final String ROOT_EXTENSION_NAME = 'dependencyCheck'
private static final String TASK_NAME = 'dependencyCheck'
private static final String PROXY_EXTENSION_NAME = "proxy"
@Override
void apply(Project project) {
@@ -34,7 +36,8 @@ class DependencyCheckGradlePlugin implements Plugin<Project> {
}
def initializeConfigurations(Project project) {
project.extensions.create(EXTENSION_NAME, DependencyCheckExtension)
project.extensions.create(ROOT_EXTENSION_NAME, DependencyCheckExtension)
project.dependencyCheck.extensions.create(PROXY_EXTENSION_NAME, ProxyExtension)
}
def registerTasks(Project project) {

View File

@@ -112,17 +112,17 @@ class DependencyCheckTask extends DefaultTask {
def overrideProxySetting() {
if (isProxySettingExist()) {
logger.lifecycle("Using proxy ${config.proxyServer}:${config.proxyPort}")
logger.lifecycle("Using proxy ${config.proxy.server}:${config.proxy.port}")
overrideStringBasedSettingWhenProvided(PROXY_SERVER, config.proxyServer)
overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxyPort}")
overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxyUsername)
overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxyPassword)
overrideStringBasedSettingWhenProvided(PROXY_SERVER, config.proxy.server)
overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxy.port}")
overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxy.username)
overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxy.password)
}
}
def isProxySettingExist() {
config.proxyServer != null && config.proxyPort != null
config.proxy.server != null && config.proxy.port != null
}
def getAllDependencies(project) {

View File

@@ -48,10 +48,10 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec {
expect:
task.group == 'Dependency Check'
task.description == 'Produce dependency security report.'
project.dependencyCheck.proxyServer == null
project.dependencyCheck.proxyPort == null
project.dependencyCheck.proxyUsername == null
project.dependencyCheck.proxyPassword == null
project.dependencyCheck.proxy.server == null
project.dependencyCheck.proxy.port == null
project.dependencyCheck.proxy.username == null
project.dependencyCheck.proxy.password == null
project.dependencyCheck.cveUrl12Modified == null
project.dependencyCheck.cveUrl20Modified == null
project.dependencyCheck.cveStartYear == null
@@ -64,10 +64,12 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec {
def 'tasks use correct values when extension is used'() {
when:
project.dependencyCheck {
proxyServer = '127.0.0.1'
proxyPort = 3128
proxyUsername = 'proxyUsername'
proxyPassword = 'proxyPassword'
proxy {
server = '127.0.0.1'
port = 3128
username = 'proxyUsername'
password = 'proxyPassword'
}
cveUrl12Modified = 'cveUrl12Modified'
cveUrl20Modified = 'cveUrl20Modified'
cveStartYear = 2002
@@ -78,10 +80,10 @@ class DependencyCheckGradlePluginSpec extends PluginProjectSpec {
}
then:
project.dependencyCheck.proxyServer == '127.0.0.1'
project.dependencyCheck.proxyPort == 3128
project.dependencyCheck.proxyUsername == 'proxyUsername'
project.dependencyCheck.proxyPassword == 'proxyPassword'
project.dependencyCheck.proxy.server == '127.0.0.1'
project.dependencyCheck.proxy.port == 3128
project.dependencyCheck.proxy.username == 'proxyUsername'
project.dependencyCheck.proxy.password == 'proxyPassword'
project.dependencyCheck.cveUrl12Modified == 'cveUrl12Modified'
project.dependencyCheck.cveUrl20Modified == 'cveUrl20Modified'
project.dependencyCheck.cveStartYear == 2002