| <!-- |
| 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. |
| --> |
| <project name="custom-tasks"> |
| <description> |
| This file is designed for importing into a main build file, and not intended |
| for standalone use. |
| </description> |
| |
| <target name="load-custom-tasks" unless="custom-tasks.loaded"> |
| <dirname file="${ant.file.custom-tasks}" property="custom-tasks.dir"/> |
| <taskdef resource="lucene-solr.antlib.xml"> |
| <classpath> |
| <pathelement location="${custom-tasks.dir}/../build/tools/classes/java" /> |
| </classpath> |
| </taskdef> |
| <property name="custom-tasks.loaded" value="true"/> |
| </target> |
| |
| <filtermapper id="license-mapper-defaults"> |
| <!-- Normalize input paths. --> |
| <replacestring from="\" to="/" /> |
| <replaceregex pattern="\.jar$" replace="" flags="gi" /> |
| |
| <!-- Some typical snapshot/minimalized JAR suffixes. --> |
| <replaceregex pattern="-min$" replace="" flags="gi" /> |
| <replaceregex pattern="SNAPSHOT" replace="" flags="gi" /> |
| |
| <!-- Typical version patterns. --> |
| <replaceregex pattern="\.rc[0-9]+" replace="" flags="gi" /> |
| <replaceregex pattern="\-(r)?([0-9\-\_\.])+(([a-zA-Z]+)([0-9\-\.])*)?" replace="" flags="gi" /> |
| |
| <replaceregex pattern="[-]tests$" replace="-tests" flags="gi" /> |
| |
| <!-- git hashcode pattern: it's always 40 chars right? --> |
| <replaceregex pattern="\-[a-z0-9]{40,40}$" replace="" flags="gi" /> |
| </filtermapper> |
| |
| <macrodef name="license-check-macro"> |
| <attribute name="dir" /> |
| <attribute name="licensedir" /> |
| <element name="additional-excludes" optional="true" /> |
| <element name="additional-filters" optional="true" /> |
| <sequential> |
| <!-- LICENSE and NOTICE verification macro. --> |
| <echo>License check under: @{dir}</echo> |
| <licenses licenseDirectory="@{licensedir}" skipChecksum="${skipChecksum}" skipRegexChecksum="${skipRegexChecksum}" skipSnapshotsChecksum="${skipSnapshotsChecksum}"> |
| <fileset dir="@{dir}"> |
| <include name="**/*.jar" /> |
| <!-- Speed up scanning a bit. --> |
| <exclude name="**/.git/**" /> |
| <exclude name="**/.svn/**" /> |
| <exclude name="**/bin/**" /> |
| <exclude name="**/build/**" /> |
| <exclude name="**/dist/**" /> |
| <exclude name="**/src/**" /> |
| <additional-excludes /> |
| </fileset> |
| |
| <licenseMapper> |
| <chainedmapper> |
| <filtermapper refid="license-mapper-defaults"/> |
| <filtermapper> |
| <!-- Non-typical version patterns. --> |
| <additional-filters /> |
| </filtermapper> |
| </chainedmapper> |
| </licenseMapper> |
| </licenses> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="lib-versions-check-macro"> |
| <attribute name="dir"/> |
| <attribute name="centralized.versions.file"/> |
| <attribute name="top.level.ivy.settings.file"/> |
| <attribute name="ivy.resolution-cache.dir"/> |
| <attribute name="ivy.lock-strategy"/> |
| <attribute name="common.build.dir"/> |
| <attribute name="ignore.conflicts.file"/> |
| <sequential> |
| <!-- |
| Verify that the '/org/name' keys in ivy-versions.properties are sorted |
| lexically and are neither duplicates nor orphans, and that all |
| dependencies in all ivy.xml files use rev="${/org/name}" format. |
| --> |
| <echo>Lib versions check under: @{dir}</echo> |
| <libversions centralizedVersionsFile="@{centralized.versions.file}" |
| topLevelIvySettingsFile="@{top.level.ivy.settings.file}" |
| ivyResolutionCacheDir="@{ivy.resolution-cache.dir}" |
| ivyLockStrategy="@{ivy.lock-strategy}" |
| commonBuildDir="@{common.build.dir}" |
| ignoreConflictsFile="@{ignore.conflicts.file}"> |
| <fileset dir="@{dir}"> |
| <include name="**/ivy.xml" /> |
| <!-- Speed up scanning a bit. --> |
| <exclude name="**/.git/**" /> |
| <exclude name="**/.svn/**" /> |
| <exclude name="**/bin/**" /> |
| <exclude name="**/build/**" /> |
| <exclude name="**/dist/**" /> |
| <exclude name="**/src/**" /> |
| </fileset> |
| </libversions> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="get-maven-dependencies-macro"> |
| <attribute name="dir"/> |
| <attribute name="centralized.versions.file"/> |
| <attribute name="module.dependencies.properties.file"/> |
| <attribute name="maven.dependencies.filters.file"/> |
| <sequential> |
| <echo>Get maven dependencies called under: @{dir}</echo> |
| <mvndeps centralizedVersionsFile="@{centralized.versions.file}" |
| moduleDependenciesPropertiesFile="@{module.dependencies.properties.file}" |
| mavenDependenciesFiltersFile="@{maven.dependencies.filters.file}"> |
| <fileset dir="@{dir}"> |
| <include name="**/ivy.xml" /> |
| <!-- Speed up scanning a bit. --> |
| <exclude name="**/.git/**" /> |
| <exclude name="**/.svn/**" /> |
| <exclude name="**/bin/**" /> |
| <exclude name="**/build/**" /> |
| <exclude name="**/dist/**" /> |
| <exclude name="**/src/**" /> |
| <exclude name="**/maven-build/**" /> |
| <exclude name="**/idea-build/**" /> |
| <exclude name="**/dev-tools/**" /> |
| </fileset> |
| </mvndeps> |
| </sequential> |
| </macrodef> |
| </project> |