/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you 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.
*/

apply plugin: 'findbugs'
apply plugin: 'checkstyle'
apply plugin: 'pmd'

tasks.withType(FindBugs) {
  excludeFilter = file("$rootProject.projectDir/config/findbugs/excludeFilter.xml")
}

pmd {
    ruleSets = [
//            'java-basic',         // need brandon's http config to add in
            'java-braces',
            'java-clone',
//            'java-codesize',
//	            'java-comments',
//	            'java-controversial',
//	            'java-coupling',
//	            'java-design',
//	            'java-empty',
	            'java-finalizers',
	            'java-imports',
//	            'java-j2ee',
//	            'java-javabeans',
//	            'java-junit',
//	            'java-logging-jakarta-commons',
//	            'java-logging-java',
//	            'java-migrating',
//	            'java-naming',
//	            'java-optimizations',
//	            'java-strictexception',
//	            'java-strings',
//	            'java-sunsecure',     // complexity issues to be address + encapsulating byte arrays
//	            'java-typeresolution',
//	            'java-unnecessary',
//	            'java-unusedcode'

    ]
}
