You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/09/06 15:54:16 UTC

svn commit: r1381603 - in /lucene/dev/branches/branch_4x: ./ build.xml lucene/ lucene/analysis/ lucene/analysis/build.xml lucene/build.xml lucene/common-build.xml lucene/tools/ lucene/tools/custom-tasks.xml solr/ solr/build.xml solr/common-build.xml

Author: rmuir
Date: Thu Sep  6 13:54:16 2012
New Revision: 1381603

URL: http://svn.apache.org/viewvc?rev=1381603&view=rev
Log:
add validate-maven task to check maven dependencies, fix redundant dependencies in generate-maven-artifacts

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/build.xml
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/   (props changed)
    lucene/dev/branches/branch_4x/lucene/analysis/build.xml
    lucene/dev/branches/branch_4x/lucene/build.xml   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/common-build.xml   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/tools/   (props changed)
    lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/build.xml   (contents, props changed)
    lucene/dev/branches/branch_4x/solr/common-build.xml   (contents, props changed)

Modified: lucene/dev/branches/branch_4x/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/build.xml (original)
+++ lucene/dev/branches/branch_4x/build.xml Thu Sep  6 13:54:16 2012
@@ -91,6 +91,13 @@
     </subant></sequential>
   </target>
 
+  <target name="validate-maven-dependencies" description="Validates maven dependencies, licenses, etc">
+    <subant target="validate-maven-dependencies" inheritall="false" failonerror="true">
+       <fileset dir="lucene" includes="build.xml"/>
+       <fileset dir="solr" includes="build.xml"/>
+    </subant>
+  </target>
+
   <target name="resolve" depends="clean-jars" description="Resolves all dependencies">
     <sequential><subant target="resolve" inheritall="false" failonerror="true">
         <fileset dir="lucene" includes="build.xml" />

Modified: lucene/dev/branches/branch_4x/lucene/analysis/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/build.xml Thu Sep  6 13:54:16 2012
@@ -45,6 +45,7 @@
   <propertyset id="uptodate.and.compiled.properties" dynamic="true">
     <propertyref regex=".*\.uptodate$$"/>
     <propertyref regex=".*\.compiled$$"/>
+    <propertyref regex=".*\.loaded$$"/>
   </propertyset>
 
   <target name="common">
@@ -106,10 +107,14 @@
 
   <target name="build-artifacts-and-tests" depends="default,compile-test" />
 
-  <target name="dist-maven" depends="default,javadocs">
+  <target name="dist-maven">
     <forall-analyzers target="dist-maven"/>
   </target>  	
 
+  <target name="-validate-maven-dependencies">
+    <forall-analyzers target="-validate-maven-dependencies"/>
+  </target>  	
+
   <target name="javadocs">
     <forall-analyzers target="javadocs"/>
   </target>  	

Modified: lucene/dev/branches/branch_4x/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/build.xml Thu Sep  6 13:54:16 2012
@@ -442,12 +442,8 @@
 
   </target>
 
-
-  <!-- TODO: these dependencies are bogus: we only
-       call this from prepare-release so it shouldn't require
-       'package' and 'javadocs' again -->
-  <target name="generate-maven-artifacts"
-          depends="install-maven-tasks, filter-pom-templates, package, javadocs">
+  <!-- install-maven-tasks is *not* a useless dependency. do not remove -->
+  <target name="generate-maven-artifacts" depends="install-maven-tasks">
     <sequential>
       <subant target="dist-maven" failonerror="true" inheritall="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
@@ -459,6 +455,18 @@
     </sequential>
   </target>
 	
+  <target name="validate-maven-dependencies" depends="compile-tools, generate-maven-artifacts, load-custom-tasks">
+    <sequential>
+      <subant target="-validate-maven-dependencies" failonerror="true" inheritall="false">
+        <propertyset refid="uptodate.and.compiled.properties"/>
+        <fileset dir="${common.dir}/core" includes="build.xml"/>
+        <fileset dir="${common.dir}/test-framework" includes="build.xml"/>
+      </subant>
+      
+      <modules-crawl target="-validate-maven-dependencies"/>
+    </sequential>
+  </target>
+	
   <!-- ================================================================== -->
   <!-- support for signing the artifacts using gpg                        -->
   <!-- ================================================================== -->

Modified: lucene/dev/branches/branch_4x/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/common-build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/common-build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/common-build.xml Thu Sep  6 13:54:16 2012
@@ -19,7 +19,8 @@
 
 <project name="common" xmlns:artifact="antlib:org.apache.maven.artifact.ant" 
                        xmlns:ivy="antlib:org.apache.ivy.ant"
-                       xmlns:junit4="antlib:com.carrotsearch.junit4">
+                       xmlns:junit4="antlib:com.carrotsearch.junit4"
+                       xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
   <description>
     This file is designed for importing into a main build file, and not intended
     for standalone use.
@@ -29,6 +30,7 @@
   <property name="dev-tools.dir" value="${common.dir}/../dev-tools"/>
   <property name="prettify.dir" value="${common.dir}/tools/prettify"/>
   <property name="maven.build.dir" value="${build.dir}/maven"/>
+  <property name="license.dir" value="${common.dir}/licenses"/>
 
   <!-- Give user a chance to override without editing this file
       (and without typing -D each time it compiles it -->
@@ -172,6 +174,7 @@
   <property name="maven.dist.dir" location="${dist.dir}/maven"/>
   <makeurl file="${maven.dist.dir}" property="m2.repository.url" validate="false"/>
   <property name="m2.repository.private.key" value="${user.home}/.ssh/id_dsa"/>
+  <property name="m2.repository.id" value="local"/>
 
   <property name="jflex.home" location="${common.dir}"/>
 
@@ -233,6 +236,7 @@
   <propertyset id="uptodate.and.compiled.properties" dynamic="true">
     <propertyref regex=".*\.uptodate$$"/>
     <propertyref regex=".*\.compiled$$"/>
+    <propertyref regex=".*\.loaded$$"/>
   </propertyset>
 
   <patternset id="lucene.local.src.package.patterns"
@@ -457,6 +461,39 @@
     </sequential>
   </macrodef>
 	
+  <!-- validate maven dependencies -->
+  <macrodef name="m2-validate-dependencies">
+      <attribute name="pom.xml"/>
+      <attribute name="licenseDirectory"/>
+      <element name="excludes" optional="true"/>
+      <element name="additional-filters" optional="true"/>
+    <sequential>
+      <artifact:dependencies filesetId="maven.fileset" useScope="test" type="jar">
+        <artifact:pom file="@{pom.xml}"/>
+        <remoteRepository id="apache.snapshots" url="${m2.repository.url}">
+          <snapshots enabled="true" updatePolicy="always"/>
+          <releases enabled="false"/>
+        </remoteRepository>
+      </artifact:dependencies>
+      <licenses licenseDirectory="@{licenseDirectory}">
+        <restrict>
+          <fileset refid="maven.fileset"/>
+          <rsel:not>
+            <excludes/>
+          </rsel:not>
+        </restrict>
+        <licenseMapper>
+          <chainedmapper>
+            <filtermapper refid="license-mapper-defaults"/>
+            <filtermapper>
+              <additional-filters/>
+            </filtermapper>
+          </chainedmapper>
+        </licenseMapper>
+      </licenses>
+    </sequential>
+  </macrodef>
+
   <macrodef name="build-manifest" description="Builds a manifest file">
   	<attribute name="title"/>
     <attribute name="implementation.title"/>
@@ -1232,6 +1269,24 @@ ${tests-output}/junit4-*.suites     - pe
     </sequential>
   </target>
 
+  <target name="-validate-maven-dependencies">
+    <property name="top.level.dir" location="${common.dir}/.."/>
+    <pathconvert property="pom.xml">
+      <mapper>
+        <chainedmapper>
+          <globmapper from="${top.level.dir}*" to="${filtered.pom.templates.dir}*"/>
+          <globmapper from="*build.xml" to="*pom.xml"/>
+        </chainedmapper>
+      </mapper>
+      <path location="${ant.file}"/>
+    </pathconvert>
+    <m2-validate-dependencies pom.xml="${pom.xml}" licenseDirectory="${license.dir}">
+      <excludes>
+        <rsel:name name="**/lucene-*.jar" handledirsep="true"/>
+      </excludes>
+    </m2-validate-dependencies>
+  </target>
+
   <target name="filter-pom-templates" unless="filtered.pom.templates.uptodate">
     <mkdir dir="${filtered.pom.templates.dir}"/>
     <copy todir="${common.dir}/build/poms" overwrite="true">

Modified: lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/custom-tasks.xml Thu Sep  6 13:54:16 2012
@@ -16,6 +16,23 @@
     <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\-\_\.])+(b(eta)?([0-9\-\.])*)?$" replace="" flags="gi" />
+
+    <!-- git hashcode pattern: its 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" />
@@ -38,25 +55,13 @@
         </fileset>
 
         <licenseMapper>
-          <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" />
-
-            <!-- Non-typical version patterns. -->
-            <additional-filters />
-
-            <!-- Typical version patterns. -->
-            <replaceregex pattern="\.rc[0-9]+" replace="" flags="gi" />
-            <replaceregex pattern="\-(r)?([0-9\-\_\.])+(b(eta)?([0-9\-\.])*)?$" replace="" flags="gi" />
-
-            <!-- git hashcode pattern: its always 40 chars right? -->
-            <replaceregex pattern="\-[a-z0-9]{40,40}$" replace="" flags="gi" />
-          </filtermapper>
+          <chainedmapper>
+            <filtermapper refid="license-mapper-defaults"/>
+            <filtermapper>
+              <!-- Non-typical version patterns. -->
+              <additional-filters />
+            </filtermapper>
+          </chainedmapper>
         </licenseMapper>
       </licenses>
     </sequential>

Modified: lucene/dev/branches/branch_4x/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/build.xml (original)
+++ lucene/dev/branches/branch_4x/solr/build.xml Thu Sep  6 13:54:16 2012
@@ -202,7 +202,6 @@
       </additional-excludes>
       <additional-filters>
         <replaceregex pattern="jetty([^/]+)$" replace="jetty" flags="gi" />
-        <replaceregex pattern="apache-solr-commons-csv-([^/]+)$" replace="apache-solr-commons-csv" flags="gi" />
         <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" />
         <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" />
       </additional-filters>
@@ -554,6 +553,7 @@
     <check-broken-links dir="build/docs"/>
   </target>
  
+  <!-- install-maven-tasks is *not* a useless dependency. do not remove -->
   <target name="generate-maven-artifacts" depends="install-maven-tasks">
     <sequential>
       <subant target="dist-maven" inheritall="false" >
@@ -566,8 +566,28 @@
       <contrib-crawl target="dist-maven"/>
     </sequential>
   </target>
+
+  <!-- only used by validate below, it needs the lucene artifacts installed: can we do this better?! -->
+  <target name="-generate-lucene-maven-artifacts">
+    <subant target="generate-maven-artifacts" inheritall="false">
+       <propertyset refid="uptodate.and.compiled.properties"/>
+       <fileset dir="${common.dir}" includes="build.xml"/>
+    </subant>
+  </target>
  
- 
+  <target name="validate-maven-dependencies" depends="compile-tools, generate-maven-artifacts, -generate-lucene-maven-artifacts, load-custom-tasks">
+    <sequential>
+      <subant target="-validate-maven-dependencies" failonerror="true" inheritall="false">
+        <propertyset refid="uptodate.and.compiled.properties"/>
+        <fileset dir="core" includes="build.xml"/>
+        <fileset dir="solrj" includes="build.xml"/>
+        <fileset dir="test-framework" includes="build.xml"/>
+        <fileset dir="webapp" includes="build.xml"/>
+      </subant>
+      <contrib-crawl target="-validate-maven-dependencies"/>
+    </sequential>
+  </target>
+	 
   <!-- ========================================================================= -->
   <!-- ========================= COMMITTERS' HELPERS =========================== -->
   <!-- ========================================================================= -->

Modified: lucene/dev/branches/branch_4x/solr/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/common-build.xml?rev=1381603&r1=1381602&r2=1381603&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/common-build.xml (original)
+++ lucene/dev/branches/branch_4x/solr/common-build.xml Thu Sep  6 13:54:16 2012
@@ -15,7 +15,7 @@
  limitations under the License.
 -->
 
-<project name="common-solr" default="default">
+<project name="common-solr" default="default" xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
   <description>
     This file is designed for importing into a main build file, and not intended
     for standalone use.
@@ -50,6 +50,7 @@
   <property name="tests.cleanthreads.sysprop" value="perClass"/>
 
   <property name="changes.target.dir" value="${dest}/docs/changes"/>
+  <property name="license.dir" value="${common-solr.dir}/licenses"/>
 
   <import file="${common-solr.dir}/../lucene/module-build.xml"/>
 
@@ -276,6 +277,34 @@
   <target name="dist-maven"
           depends="filter-pom-templates, install-maven-tasks, m2-deploy-solr-parent-pom, dist-maven-common"/>
 
+  <target name="-validate-maven-dependencies">
+    <property name="top.level.dir" location="${common.dir}/.."/>
+    <pathconvert property="pom.xml">
+      <mapper>
+        <chainedmapper>
+          <globmapper from="${top.level.dir}*" to="${filtered.pom.templates.dir}*"/>
+          <globmapper from="*build.xml" to="*pom.xml"/>
+        </chainedmapper>
+      </mapper>
+      <path location="${ant.file}"/>
+    </pathconvert>
+    <m2-validate-dependencies pom.xml="${pom.xml}" licenseDirectory="${license.dir}">
+      <additional-filters>
+        <replaceregex pattern="jetty([^/]+)$" replace="jetty" flags="gi" />
+        <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" />
+        <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" />
+      </additional-filters>
+      <excludes>
+        <rsel:or>
+          <rsel:name name="**/lucene-*.jar" handledirsep="true"/>
+          <rsel:name name="**/solr-*.jar" handledirsep="true"/>
+          <!-- TODO: figure out what is going on here with servlet-apis -->
+          <rsel:name name="**/*servlet*.jar" handledirsep="true"/>
+        </rsel:or>
+      </excludes>
+    </m2-validate-dependencies>
+  </target>
+
   <!-- Solr core targets -->
   <target name="compile-solr-core" description="Compile Solr core." unless="solr.core.compiled">
     <ant dir="${common-solr.dir}/core" target="compile-core" inheritAll="false">