Index: lucene/common-build.xml
===================================================================
--- lucene/common-build.xml	(revision 1329058)
+++ lucene/common-build.xml	(working copy)
@@ -1570,4 +1570,16 @@
      </sequential>
   </macrodef>
 
+  <macrodef name="check-missing-javadocs">
+       <attribute name="dir"/>
+       <attribute name="level" default="class"/>
+     <sequential>
+       <exec dir="." executable="${python.exe}" failonerror="true">
+         <arg line="${dev-tools.dir}/scripts/checkJavaDocs.py"/>
+         <arg line="@{dir}"/>
+         <arg line="@{level}"/>
+       </exec>
+     </sequential>
+  </macrodef>
+
 </project>
Index: lucene/build.xml
===================================================================
--- lucene/build.xml	(revision 1329058)
+++ lucene/build.xml	(working copy)
@@ -189,9 +189,10 @@
   <target name="javadocs" description="Generate javadoc" depends="javadocs-lucene-core, javadocs-modules, javadocs-test-framework"/>
 
   <!-- we check for broken links across all documentation -->
-  <!-- TODO: also integrate checkJavaDocs.py, which does more checks -->
   <target name="javadocs-lint" depends="documentation">
     <check-broken-links dir="build/docs"/>
+    <!-- TODO: change this level=class -->
+    <check-missing-javadocs dir="build/docs" level="package"/>
   </target>
   
   <target name="process-webpages" depends="resolve-pegdown">
Index: dev-tools/scripts/checkJavaDocs.py
===================================================================
--- dev-tools/scripts/checkJavaDocs.py	(revision 1329057)
+++ dev-tools/scripts/checkJavaDocs.py	(working copy)
@@ -70,11 +70,15 @@
   s = s.replace('&amp;', '&')
   return s
 
-def checkPackageSummaries(root):
+def checkPackageSummaries(root, level='class'):
   """
   Just checks for blank summary lines in package-summary.html; returns
   True if there are problems.
   """
+
+  if level != 'class' and level != 'package':
+    print 'unsupported level: %s, must be "class" or "package"' % level
+    sys.exit(1)
   
   #for dirPath, dirNames, fileNames in os.walk('%s/lucene/build/docs/api' % root):
 
@@ -94,7 +98,7 @@
       continue
 
     if 'package-summary.html' in fileNames:
-      if checkSummary('%s/package-summary.html' % dirPath):
+      if level != 'package' and checkSummary('%s/package-summary.html' % dirPath):
         anyMissing = True
     if 'overview-summary.html' in fileNames:        
       if checkSummary('%s/overview-summary.html' % dirPath):
@@ -103,4 +107,15 @@
   return anyMissing
 
 if __name__ == '__main__':
-  checkPackageSummaries(sys.argv[1])
+  if len(sys.argv) < 2 or len(sys.argv) > 3:
+    print 'usage: %s <dir> [class|package]' % sys.argv[0]
+    sys.exit(1)
+  if len(sys.argv) == 2:
+    level = 'class'
+  else:
+    level = sys.argv[2]
+  if checkPackageSummaries(sys.argv[1], level):
+    print
+    print 'Missing javadocs were found!'
+    sys.exit(1)
+  sys.exit(0)
