====
     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.
====
asm:asm-xml:3.0
org.apache.maven.plugins:maven-antrun-plugin:1.2
org.apache.maven.plugins:maven-archetypeng-plugin:2.0
org.apache.maven.plugins:maven-assembly-plugin:2.1
org.apache.maven.plugins:maven-changelog-plugin:2.1
org.apache.maven.plugins:maven-checkstyle-plugin:2.1
org.apache.maven.plugins:maven-clean-plugin:2.2
org.apache.maven.plugins:maven-compiler-plugin:2.0.2
org.apache.maven.plugins:maven-dependency-plugin:2.0
org.apache.maven.plugins:maven-deploy-plugin:2.4
org.apache.maven.plugins:maven-ear-plugin:2.3.1
org.apache.maven.plugins:maven-eclipse-plugin:2.4
org.apache.maven.plugins:maven-ejb-plugin:2.1
org.apache.maven.plugins:maven-help-plugin:2.0.2
org.apache.maven.plugins:maven-install-plugin:2.2
org.apache.maven.plugins:maven-jar-plugin:2.2
org.apache.maven.plugins:maven-javadoc-plugin:2.4
org.apache.maven.plugins:maven-jxr-plugin:2.1
org.apache.maven.plugins:maven-plugin-parent:2.0.1
org.apache.maven.plugins:maven-plugin-plugin:2.4.3
org.apache.maven.plugins:maven-pmd-plugin:2.4
org.apache.maven.plugins:maven-project-info-reports-plugin:2.0.1
org.apache.maven.plugins:maven-rar-plugin:2.2
org.apache.maven.plugins:maven-remote-resources-plugin:1.0
org.apache.maven.plugins:maven-resources-plugin:2.3
org.apache.maven.plugins:maven-shade-plugin:1.1
org.apache.maven.plugins:maven-source-plugin:2.0.4
org.apache.maven.plugins:maven-surefire-plugin:2.4.3
org.apache.maven.plugins:maven-surefire-report-plugin:2.4.3
