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 package com.tools.security.extension
class DependencyCheckExtension { class DependencyCheckExtension {
String proxyServer ProxyExtension proxyExtension;
Integer proxyPort
String proxyUsername
String proxyPassword
String cveUrl20Modified String cveUrl20Modified
String cveUrl12Modified 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 package com.tools.security.plugin
import com.tools.security.extension.DependencyCheckExtension import com.tools.security.extension.DependencyCheckExtension
import com.tools.security.extension.ProxyExtension
import com.tools.security.tasks.DependencyCheckTask import com.tools.security.tasks.DependencyCheckTask
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
class DependencyCheckGradlePlugin implements Plugin<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 TASK_NAME = 'dependencyCheck'
private static final String PROXY_EXTENSION_NAME = "proxy"
@Override @Override
void apply(Project project) { void apply(Project project) {
@@ -34,7 +36,8 @@ class DependencyCheckGradlePlugin implements Plugin<Project> {
} }
def initializeConfigurations(Project 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) { def registerTasks(Project project) {

View File

@@ -112,17 +112,17 @@ class DependencyCheckTask extends DefaultTask {
def overrideProxySetting() { def overrideProxySetting() {
if (isProxySettingExist()) { 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_SERVER, config.proxy.server)
overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxyPort}") overrideStringBasedSettingWhenProvided(PROXY_PORT, "${config.proxy.port}")
overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxyUsername) overrideStringBasedSettingWhenProvided(PROXY_USERNAME, config.proxy.username)
overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxyPassword) overrideStringBasedSettingWhenProvided(PROXY_PASSWORD, config.proxy.password)
} }
} }
def isProxySettingExist() { def isProxySettingExist() {
config.proxyServer != null && config.proxyPort != null config.proxy.server != null && config.proxy.port != null
} }
def getAllDependencies(project) { def getAllDependencies(project) {

View File

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