From d71d25e711593aff2a1e339d146d8a83205e2996 Mon Sep 17 00:00:00 2001 From: Henning Schmiedehausen Date: Mon, 4 Feb 2013 23:14:59 -0800 Subject: [PATCH] initial checkin --- .gitignore | 3 + CHANGES.md | 8 + LICENSE.txt | 202 ++++++ README.md | 458 +++++++++++++ pom.xml | 1097 ++++++++++++++++++++++++++++++++ src/license/LICENSE-HEADER.txt | 15 + 6 files changed, 1783 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGES.md create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/license/LICENSE-HEADER.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..e6ebc35e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/ +target/ +*.iml \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 000000000..570be4c61 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,8 @@ +# Changes + +## Version 1 - not yet released + +* initial version + + + diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/README.md b/README.md new file mode 100644 index 000000000..13c380395 --- /dev/null +++ b/README.md @@ -0,0 +1,458 @@ +# Airbase + +## Preliminaries + +By default, Airbase enforces JDK 1.7. To use another version, add + +```xml + + 1.6 + ... + +``` + +### Local setup required! + +To fully leverage the deployment options from Airbase, a number of servers need to be configured in the local `~/.m2/settings.xml` file. If these servers are missing, artifact deployment will fail. + +As described on https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide, the `sonatype-nexus-staging` and `sonatype-nexus-snapshots` repositories should be configured: + +```xml + + ... + + sonatype-nexus-snapshots + user + password + + + sonatype-nexus-staging + user + password + + ... + +``` + +## Usage + +Add Airbase as the parent to a project: + +```xml + + io.airlift + airbase + ... current pom release version ... + +``` + +## Project pom structure + +The following elements should be present in a pom using Airbase as parent: + +* `groupId`, `artifactId`, `version`, `packaging`, `name`, `description` and `inceptionYear` + + Define the new project. These elements should always be present. If any of those fields are missing from the project, +the values from Airbase are picked up instead. + +* `scm` + + Defines the SCM location and URL for the project. This is required to use the `release:prepare` and `release:perform` targets + to deploy artifacts to Maven Central. + +* `organization`, `developers`, `distributionManagement` + + Empty elements override the values inherited from Airbase. + +This is a sample skeleton pom using Airbase: + +```xml + + + + 4.0.0 + + + io.airlift + airbase + ... current version ... + + + ... group id of the new project ... + ... artifact id of the new project ... + ... version of the new project ... + ... jar|pom ... + ... description of the new project ... + ${project.artifactId} + 2013 + + + ... scm read only connection ... + ... scm read write connection ... + ... project url ... + + + + + + ... + +``` + +## Project POM conventions + +In large maven projects, especially with multi-module builds, the pom files can become quite large. In many places, properties defined in the `` section of the pom are used. + +To avoid confusion with properties, the following conventions are used in Airbase: + +* Properties defined in the POM that influence the build configuration are prefixed with `air`. +* Properties that factor out plugin versions (because the plugin is used in multiple places in the POM and the versions should be uniform) start with `dep.plugin` and end with `version`. +* Properties that factor out dependency versions (to enforce uniform dependency versions across multiple, related dependencies) start with `dep` and end with `version`. + +Examples: + +```xml + + + 3.0.4 + + + 2.13 + + + 3.0 + +``` + +## Deploy to Maven Central (oss.sonatype.org) + +Airbase is intended for open source projects that should be deployed to Maven Central. + +It inherits from the oss-parent POM and supports the OSS deployment process as outlined at https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide. + +## Project Build and Checkers + +Airbase hooks various checkers into the build lifecycle and executes them on each build. + +Generally speaking, running a set of checks at each build is a good way to catch problems early and any problem reported by a checker should be treated as something that needs to be fixed before releasing. + +Checkers are organized in two groups, basic and extended. + +### Basic checkers +* Maven Enforcer (http://maven.apache.org/enforcer/maven-enforcer-plugin/) +* Maven Dependencies (http://maven.apache.org/plugins/maven-dependency-plugin/) +* Maven Dependency version check (https://github.com/ning/maven-dependency-versions-check-plugin) +* Maven Duplicate finder (https://github.com/ning/maven-duplicate-finder-plugin) + +### Extended checkers +* Findbugs (http://mojo.codehaus.org/findbugs-maven-plugin/) +* PMD (http://maven.apache.org/plugins/maven-pmd-plugin/) +* License check (http://code.google.com/p/maven-license-plugin/) +* Code coverage (http://www.eclemma.org/jacoco/trunk/doc/maven.html) + + +All checkers are enabled by default, but the checkers will *NOT* fail the build if a problem is encountered. + +Each checker has a switch to turn it on or off and also whether a problem will be a warning or fatal to the build. + +```xml +... + + + true + +... +``` + +The following switches exist: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupCheckSkip check (Setting to true skips the check)Fail build (Setting to false only reports a warning)
BasicMaven Enforcerair.check.skip-enforcerair.check.fail-enforcer
BasicMaven Dependenciesair.check.skip-dependencyair.check.fail-dependency
BasicMaven Dependency version checkair.check.skip-dependency-version-checkair.check.fail-dependency-version-check
BasicMaven Duplicate finderair.check.skip-duplicate-finderair.check.fail-duplicate-finder
ExtendedFindbugsair.check.skip-findbugsair.check.fail-findbugs
ExtendedPMDair.check.skip-pmdair.check.fail-pmd
ExtendedLicense checkair.check.skip-licenseair.check.fail-license
ExtendedCode coverageair.check.skip-jacocoair.check.fail-jacoco
+ +Checks can be turned on and off in groups: + + + + + + + + + + + + + + + + + + + + + + +
GroupSkip checksFail build
All Checksair.check.skip-allair.check.fail-all
All Basic checksair.check.skip-basicair.check.fail-basic
All Extended Checksair.check.skip-extendedair.check.fail-extended
+ +A more specific setting (checker specific, then group, then all) overrides a more general setting: + +```xml +... + + true + false + +... +``` +will skip *all* checks except the duplicate finder. + + +### Checker notes + +#### License checker + +To ensure that a project has an uniform license header in all source files, the Maven license plugin can be used to check and format license headers. + +The plugin expects the license header file as `src/license/LICENSE-HEADER.txt` in the root folder of a project. + +For a multi-module project, this file should exist only once, in the root pom of the project. In all other sub-modules, add + +```xml + + ${project.parent.basedir} + +``` + +to each pom. This is a limitation of the Maven multi-module build process (see http://stackoverflow.com/questions/1012402/maven2-property-that-indicates-the-parent-directory for details). + +#### Enforcer checker + +The Enforcer plugin outlaws a number of dependencies that project might use for various reasons: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Outlawed dependencyRationaleWhat to use
commons-logging:commons-logging-apiIll-fated attempt to split commons-logging implementation and commons-logging API.commons-logging:commons-logging
cglib:cglibHas all its dependencies packed inside, therefore leads to duplicate classes.cglib:cglib-nodep
junit:junitHas all its dependencies packed inside, therefore leads to duplicate classes.junit:junit-dep
com.google.collections:google-collectionsSuperseded by Guava, duplicate classes with Guava.com.google.guava:guava
com.google.code.findbugs:jsr305Subset of the full findbugs annotations, contains only the JSR-305 annotationscom.google.code.findbugs:annotations
+ + +## Well known dependencies + +Airbase provides a number of dependencies to projects. These dependencies are considered "well known and stable". When a project wants to use any of these dependencies, it can declare them in the project `` section without a version and automatically pick up a version from Airbase. + +The following dependencies are defined: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dependency nameGroup/Artifact Idsproperty
Google Guicecom.google.inject:guice

com.google.inject.extensions:guice-servlet

com.google.inject.extensions:guice-assistedinject

com.google.inject.extensions:guice-multibindings

com.google.inject.extensions:guice-throwingproviders

dep.guice.version
Google Guavacom.google.guava:guavadep.guava.version
Joda Timejoda-time:joda-timedep.joda.version
Java Inject APIjavax.inject:javax.injectdep.javax-inject.version
Java Servlet APIjavax.servlet:javax.servlet-apidep.javax-servlet.version
slf4j (Simple Logging Facade for Java)org.slf4j:slf4j-api

org.slf4j:slf4j-nop

org.slf4j:slf4j-simple

org.slf4j:slf4j-ext

org.slf4j:jcl-over-slf4j

org.slf4j:jul-to-slf4j

org.slf4j:log4j-over-slf4j

dep.slf4j.version
Logbackch.qos.logback:logback-core

ch.qos.logback:logback-classic

dep.logback.version
Findbugs Annotationscom.google.code.findbugs:annotationsdep.findbugs-annotations.version
TestNG testingorg.testng:testngdep.testng.version
Hamcrest matchersorg.hamcrest:hamcrest-core

org.hamcrest:hamcrest-library

dep.hamcrest.version
+ +### Lock down a well known dependency + +It is possible to "lock down" the version of a dependency so that any Airbase updates will not affect the version used by the project. +Locking a version is done by adding a property to the `` section of the project POM: + +```xml + + + 2.0 + ... + + ... + + + + com.google.inject + guice + + + + com.google.inject.extensions + guice-multibinder + + ... + +``` + +to the project POM. This will lock the version of a dependency to the version desired. This can also be used to force a version update to a dependency. + +```xml + + + 1.6.2 + ... + + ... + + + + org.slf4j + slf4j-api + + ... + +``` + + +## Other properties + +These are default properties that affect some aspects of the build. All of them can be overriden in the `` section of the project pom. + +### air.build.jvmsize + +Sets the default heap size for the compiler, javadoc generation and other plugins. Default is 1024M. + +### air.release.push-changes + +When a project creates a release using the maven-release-plugin and `mvn release:prepare`, this switch controls whether the generated tags, modified POM files etc. are pushed automatically to the upstream repository or not. Default is `false` (do not push the changes). + +### air.maven.version + +The minimum version of Maven to build a project. Default is "3.0". + +### air.main.basedir + +The 'root' directory of a project. For a simple project, this is identical to `project.basedir`. In a multi-module build, it should point at the root project. + +For a multi-module project, all other sub-modules must have this explicitly set to the root directory and therefore the following code + +```xml + + ${project.parent.basedir} + +``` + +must be added to each pom. This is a limitation of the Maven multi-module build process (see http://stackoverflow.com/questions/1012402/maven2-property-that-indicates-the-parent-directory for details). + diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..1ab198015 --- /dev/null +++ b/pom.xml @@ -0,0 +1,1097 @@ + + + 4.0.0 + + + org.sonatype.oss + oss-parent + 7 + + + io.airlift + airbase + pom + 1-SNAPSHOT + airbase + airlift parent pom + + 2013 + + + + Apache 2 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + A business-friendly OSS license + + + + + scm:git:git@github.com/airlift/${project.artifactId}.git + scm:git:git@github.com:airlift/${project.artifactId}.git + https://github.com/airlift/${project.artifactId} + + + + + + + + UTF-8 + 1.7 + UTF-8 + UTF-8 + + + + + 1024m + + + + false + + + + false + + ${air.check.skip-all} + + ${air.check.skip-all} + + + ${air.check.skip-basic} + ${air.check.skip-basic} + ${air.check.skip-basic} + ${air.check.skip-basic} + + + ${air.check.skip-extended} + ${air.check.skip-extended} + ${air.check.skip-extended} + ${air.check.skip-extended} + + true + ${air.check.fail-all} + ${air.check.fail-all} + + + ${air.check.fail-basic} + ${air.check.fail-basic} + ${air.check.fail-basic} + ${air.check.fail-basic} + + + ${air.check.fail-extended} + ${air.check.fail-extended} + ${air.check.fail-extended} + + + 3.0 + + + + ${project.basedir} + + + 1.8.1 + + + 3.0 + 13.0.1 + 1.7.2 + 1.0.9 + 1 + 1.0.0.GA + 3.0.1 + 0.5 + 1.17 + 8.1.9.v20130131 + 1.13 + 2.2.2 + 2.1 + 2.0.1 + 6.8 + 1.3 + 1.9.5 + + + + ${air.maven.version} + + + + + + org.apache.maven.scm + maven-scm-provider-gitexe + ${dep.plugin.scm.version} + + + org.apache.maven.scm + maven-scm-manager-plexus + ${dep.plugin.scm.version} + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + [0,) + + enforce + + + + + + + + + com.ning.maven.plugins + maven-dependency-versions-check-plugin + [0,) + + check + + + + + + + + + com.github.koraktor + mavanagaiata + [0,) + + commit + branch + + + + + + + + + + + + + org.apache.maven.plugins + maven-scm-plugin + ${dep.plugin.scm.version} + + developerConnection + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.7 + + + + org.apache.maven.plugins + maven-clean-plugin + 2.5 + + + + org.apache.maven.plugins + maven-install-plugin + 2.4 + + + + org.apache.maven.plugins + maven-enforcer-plugin + 1.2 + + + default + verify + + enforce + + + + + ${air.check.skip-enforcer} + ${air.check.fail-enforcer} + false + + + + + + + commons-logging:commons-logging-api + + cglib:cglib + + junit:junit + + com.google.collections:google-collections + + com.google.guava:guava + + + + + + com.google.code.findbugs:jsr305 + + + + com.google.guava:guava:[10.0.1,) + + + + ${air.maven.version} + + + ${project.build.targetJdk} + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.6 + + ${air.check.skip-dependency} + ${air.check.fail-dependency} + true + + + + default + verify + + analyze-only + analyze-duplicate + analyze-dep-mgt + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.0 + + ${project.build.targetJdk} + ${project.build.targetJdk} + ${project.build.sourceEncoding} + ${air.build.jvmsize} + true + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + ${project.build.sourceEncoding} + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.4 + + + true + + gnu + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.13 + + + ${project.build.sourceEncoding} + ${project.build.sourceEncoding} + UTC + true + + always + random + + + + + org.apache.maven.plugins + maven-release-plugin + 2.4 + + oss-release + true + forked-path + ${air.release.push-changes} + true + clean install + @{project.version} + false + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9 + + ${project.build.targetJdk} + ${project.build.targetJdk} + ${project.build.sourceEncoding} + ${air.build.jvmsize} + -quiet + + + + attach-javadocs + verify + + jar + + + + + + + + + com.github.koraktor + mavanagaiata + 0.4.1 + + + yyyyMMddHHmmssZ + + + + default + validate + + commit + branch + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + attach-tests + package + + test-jar + + + + + + true + + + true + true + false + + + + + + ${project.version}-${mvngit.commit.id}-${mvngit.branch}-${mvngit.commit.committer.date} + + + + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + package + + jar-no-fork + test-jar-no-fork + + + + + + + com.ning.maven.plugins + maven-duplicate-finder-plugin + 1.0.3 + + + default + verify + + check + + + + + ${air.check.skip-duplicate-finder} + ${air.check.fail-duplicate-finder} + + + + + + commons-beanutils + commons-beanutils + + + commons-beanutils + commons-beanutils-core + + + commons-collections + commons-collections + + + + org.apache.commons.collections.ArrayStack + org.apache.commons.collections.Buffer + org.apache.commons.collections.BufferUnderflowException + org.apache.commons.collections.FastHashMap + + + + + + commons-beanutils + commons-beanutils + + + commons-beanutils + commons-beanutils-core + + + + org.apache.commons.beanutils + + + + + .*\.html + META-INF/.* + about_files/.* + plugin\.properties + .*\.java + + + + + + com.ning.maven.plugins + maven-dependency-versions-check-plugin + 2.0.2 + + ${air.check.skip-dependency-version-check} + ${air.check.fail-dependency-version-check} + ${air.check.fail-dependency-version-check} + + + + default + verify + + check + + + + + + + org.codehaus.mojo + findbugs-maven-plugin + 2.5.2 + + ${air.check.skip-findbugs} + -Xmx${air.build.jvmsize} + ${air.check.fail-findbugs} + + + + default + verify + + check + + + + + + + org.apache.maven.plugins + maven-pmd-plugin + 2.7.1 + + ${air.check.skip-pmd} + ${air.check.fail-pmd} + ${project.build.targetJdk} + ${project.build.sourceEncoding} + 100 + + **/*Bean.java + **/generated/*.java + + + target/generated-sources/stubs + + + /rulesets/basic.xml + /rulesets/clone.xml + /rulesets/finalizers.xml + + + + + default + verify + + check + + + + + + + com.mycila.maven-license-plugin + maven-license-plugin + 1.10.b1 + + ${air.check.skip-license} + true + ${air.check.fail-license} +
${air.main.basedir}/src/license/LICENSE-HEADER.txt
+ + SLASHSTAR_STYLE + + + ${project.inceptionYear} + + + + COPYRIGHT_SECTION + Copyright (C) ${project.inceptionYear} Some Dude, Inc. + Copyright \(C\) \d{4} .+ + false + + + true + true + true + ${project.build.sourceEncoding} + + .*/** + **/*.md + **/*.sh + **/*.txt + **/*.thrift + **/*.g + **/*.releaseBackup + **/*.st + **/*.raw + **/*.ser + **/*.html + **/config.properties + **/log.properties + **/src/license/**.txt + + + src/** + **/pom.xml + +
+ + + default + verify + + check + + + +
+ + + org.jacoco + jacoco-maven-plugin + 0.6.2.201302030002 + + + default + + prepare-agent + + + + report + prepare-package + + report + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.4 + + true + + + + sign-artifacts + verify + + sign + + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.2 + + +
+
+ + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.apache.maven.plugins + maven-resources-plugin + + + + + + + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + org.apache.maven.plugins + maven-source-plugin + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + org.apache.maven.plugins + maven-release-plugin + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + + org.apache.maven.plugins + maven-dependency-plugin + + + + com.ning.maven.plugins + maven-dependency-versions-check-plugin + + + + com.ning.maven.plugins + maven-duplicate-finder-plugin + + + + org.codehaus.mojo + findbugs-maven-plugin + + + + org.apache.maven.plugins + maven-pmd-plugin + + + + com.mycila.maven-license-plugin + maven-license-plugin + + + + org.jacoco + jacoco-maven-plugin + + +
+ + + + + + + com.google.inject + guice + ${dep.guice.version} + + + com.google.inject.extensions + guice-servlet + ${dep.guice.version} + + + com.google.inject.extensions + guice-assistedinject + ${dep.guice.version} + + + com.google.inject.extensions + guice-multibindings + ${dep.guice.version} + + + com.google.inject.extensions + guice-throwingproviders + ${dep.guice.version} + + + + + com.google.guava + guava + ${dep.guava.version} + + + + + javax.inject + javax.inject + ${dep.javax-inject.version} + + + javax.servlet + javax.servlet-api + ${dep.javax-servlet.version} + + + javax.validation + validation-api + ${dep.javax-validation.version} + + + + + org.slf4j + slf4j-api + ${dep.slf4j.version} + + + org.slf4j + slf4j-nop + ${dep.slf4j.version} + + + org.slf4j + slf4j-simple + ${dep.slf4j.version} + + + org.slf4j + slf4j-ext + ${dep.slf4j.version} + + + org.slf4j + jcl-over-slf4j + ${dep.slf4j.version} + + + org.slf4j + jul-to-slf4j + ${dep.slf4j.version} + + + org.slf4j + log4j-over-slf4j + ${dep.slf4j.version} + + + + ch.qos.logback + logback-core + ${dep.logback.version} + + + ch.qos.logback + logback-classic + ${dep.logback.version} + + + + + com.sun.jersey + jersey-core + ${dep.jersey.version} + + + + com.sun.jersey.contribs + jersey-guice + ${dep.jersey.version} + + + + com.sun.jersey.contribs + jersey-multipart + ${dep.jersey.version} + + + + com.sun.jersey + jersey-server + ${dep.jersey.version} + + + + + com.fasterxml.jackson.core + jackson-annotations + 2.1.2 + + + + com.fasterxml.jackson.core + jackson-core + 2.1.3 + + + + com.fasterxml.jackson.core + jackson-databind + 2.1.3 + + + + com.fasterxml.jackson.datatype + jackson-datatype-guava + 2.1.2 + + + + com.fasterxml.jackson.datatype + jackson-datatype-joda + 2.1.2 + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-smile + 2.1.3 + + + + + org.eclipse.jetty + jetty-server + ${dep.jetty.version} + + + org.eclipse.jetty.orbit + javax.servlet + + + + + + org.eclipse.jetty + jetty-servlet + ${dep.jetty.version} + + + + org.eclipse.jetty + jetty-util + ${dep.jetty.version} + + + + org.eclipse.jetty + jetty-servlets + ${dep.jetty.version} + + + + org.eclipse.jetty + jetty-security + ${dep.jetty.version} + + + + org.eclipse.jetty + jetty-jmx + ${dep.jetty.version} + + + + org.eclipse.jetty + jetty-http + ${dep.jetty.version} + + + + + org.apache.bval + bval-jsr303 + ${dep.apache-bval.version} + + + org.weakref + jmxutils + ${dep.jmxutils.version} + + + joda-time + joda-time + ${dep.joda.version} + + + cglib + cglib-nodep + ${dep.cglib.version} + + + + + com.google.code.findbugs + annotations + ${dep.findbugs-annotations.version} + + + + + org.testng + testng + ${dep.testng.version} + + + junit + junit + + + + + + org.mockito + mockito-core + ${dep.mockito.version} + + + + org.hamcrest + hamcrest-core + ${dep.hamcrest.version} + + + org.hamcrest + hamcrest-library + ${dep.hamcrest.version} + + + + + + + oss-release + + + true + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + org.apache.maven.plugins + maven-gpg-plugin + + + + + +
diff --git a/src/license/LICENSE-HEADER.txt b/src/license/LICENSE-HEADER.txt new file mode 100644 index 000000000..f88017e37 --- /dev/null +++ b/src/license/LICENSE-HEADER.txt @@ -0,0 +1,15 @@ +Copyright (C) ${inceptionYear} Some Dude, Inc. + +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. + +