Author: ggregory
Date: Sat Jul 15 23:26:25 2023
New Revision: 63003

Log:
Staging release: commons-fileupload2, version: 2.0.0-M1

Added:
    dev/commons/fileupload/2.0.0-M1-RC1/
    dev/commons/fileupload/2.0.0-M1-RC1/HEADER.html
    dev/commons/fileupload/2.0.0-M1-RC1/README.html
    dev/commons/fileupload/2.0.0-M1-RC1/RELEASE-NOTES.txt
    dev/commons/fileupload/2.0.0-M1-RC1/binaries/
    dev/commons/fileupload/2.0.0-M1-RC1/binaries/HEADER.html
    dev/commons/fileupload/2.0.0-M1-RC1/binaries/README.html
    dev/commons/fileupload/2.0.0-M1-RC1/signature-validator.sh
    dev/commons/fileupload/2.0.0-M1-RC1/site/
    dev/commons/fileupload/2.0.0-M1-RC1/site/changes-report.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/checkstyle-aggregate.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/checkstyle.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/ci-management.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/cpd.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/css/
    dev/commons/fileupload/2.0.0-M1-RC1/site/css/bootstrap.min.css
    dev/commons/fileupload/2.0.0-M1-RC1/site/css/prettify.css
    dev/commons/fileupload/2.0.0-M1-RC1/site/css/print.css
    dev/commons/fileupload/2.0.0-M1-RC1/site/css/site.css
    dev/commons/fileupload/2.0.0-M1-RC1/site/customizing.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/dependency-convergence.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/dependency-info.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/dependency-management.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/distribution-management.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/download_fileupload.cgi
    dev/commons/fileupload/2.0.0-M1-RC1/site/download_fileupload.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/faq.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/add.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/collapsed.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/commons-logo.png   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/expanded.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/external-classic.png   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/fix.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/help_logo.gif   (with props)
    
dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_arrowfolderclosed1_sml.gif 
  (with props)
    
dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_arrowfolderopen2_sml.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_arrowwaste1_sml.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_arrowwaste2_sml.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_doc_lrg.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_doc_sml.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_error_lrg.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_error_sml.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_folder_lrg.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_folder_sml.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_help_sml.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_info_lrg.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_info_sml.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_members_lrg.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_sortdown.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_sortup.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_success_lrg.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_success_sml.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_usergroups_lrg.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_warning_lrg.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/icon_warning_sml.gif   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/logo.png   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/logos/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/images/logos/build-by-maven-black.png  
 (with props)
    
dev/commons/fileupload/2.0.0-M1-RC1/site/images/logos/build-by-maven-white.png  
 (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/logos/maven-feather.png   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/newwindow-classic.png   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/nw_maj_rond.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/remove.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/rss.png   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/strich.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/sw_maj_rond.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/sw_med_rond.gif   (with 
props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/images/update.gif   (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/img/
    dev/commons/fileupload/2.0.0-M1-RC1/site/img/glyphicons-halflings-white.png 
  (with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/img/glyphicons-halflings.png   
(with props)
    dev/commons/fileupload/2.0.0-M1-RC1/site/index.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/issue-management.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/issue-tracking.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/japicmp.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/jira-report.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/bootstrap.min.js
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/jquery.min.js
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/prettify.js
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/prettify.min.js
    dev/commons/fileupload/2.0.0-M1-RC1/site/js/site.js
    dev/commons/fileupload/2.0.0-M1-RC1/site/mail-lists.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/mailing-lists.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/migration.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/modules.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/org.apache.commons_commons-fileupload2-2.0.0-M1.spdx.json
    dev/commons/fileupload/2.0.0-M1-RC1/site/overview.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/pmd.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/profile.jacoco
    dev/commons/fileupload/2.0.0-M1-RC1/site/project-info.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/project-reports.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/rat-report.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/scm.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/security-reports.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/streaming.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/summary.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/surefire-report.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/team.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/using.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/allclasses-frame.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/index.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractFileUploadTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractFileUploadWrapper.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractProgressListenerTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractSizesTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractStreamingTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/AbstractTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/Constants.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/FileItemHeadersTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/MimeUtilityTestCase.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/MultipartStreamTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/ParameterParserTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/QuotedPrintableDecoderTestCase.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/RFC2231UtilityTestCase.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/DiskFileItemFactoryTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/DiskFileItemSerializeTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/DiskFileItemTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/disk/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/core/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaMockHttpServletRequest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaMockServletHttpRequest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaProgressListenerDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaProgressListenerTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaServletFileUploadDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaServletFileUploadTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaSizesDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaSizesTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaStreamingDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/JakartaStreamingTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/jakarta/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxHttpServletRequestFactory.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxMockHttpServletRequest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxProgressListenerDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxProgressListenerTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxServletFileUploadDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxServletFileUploadTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxSizesDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxSizesTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxStreamingDiskTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/JavaxStreamingTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/javax/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/portlet/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/portlet/JavaxPortletFileUploadTest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/portlet/JavaxPortletMockActionRequest.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/portlet/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/org/apache/commons/fileupload2/portlet/package-summary.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/overview-frame.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/overview-summary.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref-test/stylesheet.css
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/allclasses-frame.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/index.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/AbstractFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/AbstractRequestContext.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/DiskFileItem.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/DiskFileItemFactory.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItem.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemFactory.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemHeaders.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemHeadersImpl.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemHeadersProvider.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemInput.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemInputImpl.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemInputIterator.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileItemInputIteratorImpl.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileUploadByteCountLimitException.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileUploadContentTypeException.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileUploadException.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileUploadFileCountLimitException.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/FileUploadSizeException.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/MimeUtils.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/MultipartInput.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/ParameterParser.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/ProgressListener.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/QuotedPrintableDecoder.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/RFC2231Utils.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/RequestContext.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/core/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/JakartaFileCleaner.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/JakartaServletDiskFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/JakartaServletFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/JakartaServletRequestContext.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/jakarta/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/JavaxFileCleaner.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/JavaxServletDiskFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/JavaxServletFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/JavaxServletRequestContext.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/javax/package-summary.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/portlet/
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/portlet/JavaxPortletFileUpload.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/portlet/JavaxPortletRequestContext.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/portlet/package-frame.html
    
dev/commons/fileupload/2.0.0-M1-RC1/site/xref/org/apache/commons/fileupload2/portlet/package-summary.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/overview-frame.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/overview-summary.html
    dev/commons/fileupload/2.0.0-M1-RC1/site/xref/stylesheet.css
    dev/commons/fileupload/2.0.0-M1-RC1/source/
    dev/commons/fileupload/2.0.0-M1-RC1/source/HEADER.html
    dev/commons/fileupload/2.0.0-M1-RC1/source/README.html

Added: dev/commons/fileupload/2.0.0-M1-RC1/HEADER.html
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/HEADER.html (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/HEADER.html Sat Jul 15 23:26:25 2023
@@ -0,0 +1,31 @@
+<!--
+ 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.
+-->
+<h2>Apache Commons Project Distributions</h2>
+
+<p>
+    The most recent source and binary releases for the Apache Commons project 
are available from this
+    directory listing. For older releases, please use the
+    <a href="https://archive.apache.org/dist/commons/";>archives</a>.
+</p>
+
+<h2>Important Notices</h2>
+
+<ul>
+    <li><a href="#mirrors">Download from your nearest mirror site!</a></li>
+    <li><a href="#sig">PGP/GPG Signatures</a></li>
+</ul>
+

Added: dev/commons/fileupload/2.0.0-M1-RC1/README.html
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/README.html (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/README.html Sat Jul 15 23:26:25 2023
@@ -0,0 +1,66 @@
+<!--
+ 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.
+-->
+<h1>Commons-FILEUPLOAD v2.0.0-M1.</h1>
+
+<p>This is the 2.0.0-M1 version of commons-fileupload2. It is available in 
both binary and source distributions.</p>
+
+
+<p><font color="red" size="+2">Note:</font>
+    The tar files in the distribution use GNU tar extensions
+    and must be untarred with a GNU compatible version of tar. The version
+    of tar on Solaris and Mac OS X will not work with these files</p>
+
+<a name="changes"><h2>Changes</h2></a>
+
+<p>The changes in this release are detailed in the release notes.</p>
+
+<p>Thank you for using <a 
href="https://commons.apache.org/proper/commons-fileupload/";>FILEUPLOAD</a>.</p>
+
+<p>From the Apache Commons Project<br><a 
href="https://commons.apache.org/";>https://commons.apache.org/</a></p>
+
+<h2><a name="mirrors">Download from your
+    <a href="http://www.apache.org/dyn/closer.cgi/commons/";>nearest mirror 
site!</a></a></h2>
+
+<p>
+    Do not download from www.apache.org.  Please use a mirror site
+    to help us save apache.org bandwidth.
+    <a href="http://www.apache.org/dyn/closer.cgi/commons/";>Go
+        here to find your nearest mirror.</a>
+</p>
+
+<a name="sig"><h2>Signatures</h2></a>
+
+<p>Many of the files have been digitally signed using GnuPG.  If so,
+    there will be an accompanying <samp><em>file</em>.asc</samp> signature
+    file in the same directory as the file (binaries/ or source/).  The
+    signing keys can be found in the distribution directory at &lt;<a
+            
HREF="http://downloads.apache.org/commons/KEYS";><samp>http://downloads.apache.org/commons/KEYS</samp></a>&gt;.</p>
+
+<p><b>Always download the KEYS file directly from the Apache site, never from 
a mirror site.</b></p>
+
+
+<pre>Always test available signatures, <i>e.g.</i>,
+$ pgpk -a KEYS
+$ pgpv commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+or,
+$ pgp -ka KEYS
+$ pgp commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+or,
+$ gpg --import KEYS
+$ gpg --verify commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+</pre>
+<p>
\ No newline at end of file

Added: dev/commons/fileupload/2.0.0-M1-RC1/RELEASE-NOTES.txt
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/RELEASE-NOTES.txt (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/RELEASE-NOTES.txt Sat Jul 15 23:26:25 
2023
@@ -0,0 +1,189 @@
+              Apache Commons FileUpload Parent 2.0.0-M1 RELEASE NOTES
+
+The Apache Commons FileUpload Parent team is pleased to announce the release 
of Apache Commons FileUpload Parent 2.0.0-M1.
+
+The Apache Commons FileUpload component provides a simple yet flexible means of
+adding support for multipart file upload functionality to servlets and web
+applications. This version requires Java 8 or later.
+
+No client code changes are required to migrate from version 1.3.0 to 1.3.1.
+
+
+2.0.0-M1 Release
+
+Changes in version 2.0.0-M1 include:
+
+New features:
+o                  Add github/codeql-action from #144. Thanks to Gary Gregory.
+o                  Add the package org.apache.fileupload2.jaksrvlt, for 
compliance with Jakarta Servlet API 5.0.
+o                  Making FileUploadException a subclass of IOException. 
(Mibor API simplification.)
+o                  Add a configurable limit (disabled by default) for the 
number of files to upload per request.
+
+Fixed Bugs:
+o                  Changing Maven coordinates, and package name, due to binary 
incompatible changes.
+o FILEUPLOAD-293:  DiskFileItem.write(File) had been changed to use 
FileUtils.moveFile internally, preventing an existing file as the target.
+o FILEUPLOAD-296:  Performance gains by reusing an internal buffer. Thanks to 
David Georg Reochelt.
+o FILEUPLOAD-274:  RFC 5987 compliance Thanks to Merbin J Anselm.
+o                  Slight optim: resuse the index position instead of 
recomputing it #49. Thanks to Emmanuel Lécharny.
+o FILEUPLOAD-340:  Make commons-fileupload2 a JPMS module by adding 
module-info.class.
+o FILEUPLOAD-341:  Move Exception classes out of the impl package. Thanks to 
Martin Grigorov.
+o                  Rework exceptions to use propagated exception causes 
(introduced in Java 1.4). Thanks to Gary Gregory.
+o                  All custom exception extend FileUploadException. Thanks to 
Gary Gregory.
+o                  All custom exceptions serialVersionUID value is now 2. 
Thanks to Gary Gregory.
+o FILEUPLOAD-350:  FileUploadByteCountLimitException ctor switches fileName 
and fieldName parameters #216. Thanks to Ernesto Reinaldo Barreiro.
+o                  [StepSecurity] ci: Harden GitHub Actions #224. Thanks to 
step-security-bot, Gary Gregory.
+
+Changes:
+o                  Bump actions/cache from 2.1.6 to 3.0.8 #128, #140. Thanks 
to Dependabot, Gary Gregory.
+o                  Bump actions/checkout from 2.3.4 to 3.0.2 #125. Thanks to 
Dependabot, Gary Gregory.
+o                  Bump build actions/setup-java from 1.4.3 to 3.8.0 #142, 
#175, #180, #182. Thanks to Gary Gregory.
+o                  Bump Java compiler level to 1.8.
+o                  Bump commons-io:commons-io 2.6 to 2.13.0, #104, #221. 
Thanks to Gary Gregory, Dependabot.
+o                  Bump junit-jupiter from 5.5.2 to 5.9.1 #31, #130, #156, 
#166. Thanks to Dependabot.
+o                  Bump maven-pmd-plugin from 3.13.0 to 3.19.0 #48, #162. 
Thanks to Dependabot.
+o                  Bump commons.japicmp.version from 0.13.0 to 0.16.0. Thanks 
to Gary Gregory.
+o                  Bump spotbugs-maven-plugin from 4.2.3 to 4.7.3.0 #103, 
#133, #141, #146, #155, #163, #179. Thanks to Dependabot.
+o                  Bump spotbugs from 4.2.3 to 4.7.3, ignore EI_EXPOSE_REP, 
and EI_EXPOSE_REP2, #152, #161, #174. Thanks to Dependabot.
+o                  Bump biz.aQute.bndlib from 6.0.0 to 6.4.0 #129, #181. 
Thanks to Dependabot.
+o                  Bump commons-parent from 52 to 58, #167, #183, #194. Thanks 
to Gary Gregory, Dependabot.
+o                  Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #160. 
Thanks to Dependabot.
+
+Removed:
+o                  Remove deprecated constructors in MultipartStream. Thanks 
to Gary Gregory.
+o                  Remove deprecated RequestContext.getContentLength(). Thanks 
to Gary Gregory.
+o                  Remove deprecated 
JakSrvltRequestContext.getContentLength(). Thanks to Gary Gregory.
+o                  Remove deprecated PortletRequestContext.getContentLength(). 
Thanks to Gary Gregory.
+o                  Remove deprecated ServletRequestContext.getContentLength(). 
Thanks to Gary Gregory.
+o                  Remove deprecated FileUploadBase.MAX_HEADER_SIZE. Thanks to 
Gary Gregory.
+o                  Remove deprecated FileUploadBase.createItem(Map, boolean). 
Thanks to Gary Gregory.
+o                  Remove deprecated FileUploadBase.getFieldName(Map). Thanks 
to Gary Gregory.
+o                  Remove deprecated FileUploadBase.getFileName(Map). Thanks 
to Gary Gregory.
+o                  Remove deprecated FileUploadBase.getHeader(Map, String). 
Thanks to Gary Gregory.
+o                  Remove deprecated FileUploadBase.parseHeaders(String). 
Thanks to Gary Gregory.
+o                  Replace 
org.apache.commons.fileupload2.util.mime.Base64Decoder with java.util.Base64. 
Thanks to Gary Gregory.
+o                  Replace LimitedInputStream with BoundedInputStream. Thanks 
to Gary Gregory.
+o                  FileItemHeadersImpl is no longer Serializable. Thanks to 
Gary Gregory.
+o                  Reuse Java's InvalidPathException instead of the custom 
InvalidFileNameException. Thanks to Gary Gregory.
+
+For complete information on Apache Commons FileUpload Parent, including 
instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons FileUpload 
Parent website:
+
+https://commons.apache.org/proper/commons-fileupload/
+
+------------------------------------------------------------------------------
+
+              Apache Commons FileUpload 1.4 RELEASE NOTES
+
+The Apache Commons FileUpload team is pleased to announce the release of 
Apache Commons FileUpload 1.4.
+
+The Apache Commons FileUpload component provides a simple yet flexible means of
+adding support for multipart file upload functionality to servlets and web
+applications. Version 1.3 onwards requires Java 6 or later.
+
+No client code changes are required to migrate from version 1.3.0 to 1.3.1.
+
+
+1.4 Release
+
+Changes in version 1.4 include:
+
+New features:
+o                  Site: added security report
+
+Fixed Bugs:
+o FILEUPLOAD-252:  DiskFileItem#write() could lose original IO exception
+o FILEUPLOAD-258:  DiskFileItem#getStoreLocation() wrongly returned a File 
object for items stored in memory
+o FILEUPLOAD-242:  FileUploadBase - should not silently catch and ignore all 
Throwables
+o FILEUPLOAD-257:  Fix Javadoc 1.8.0 errors
+o FILEUPLOAD-234:  Fix section "Resource cleanup" of the user guide
+o FILEUPLOAD-237:  Fix streaming example: use FileItem.getInputStream() 
instead of openStream()
+o FILEUPLOAD-248:  DiskFileItem might suppress critical IOExceptions on rename 
- use FileUtil.move instead
+o FILEUPLOAD-251:  DiskFileItem#getTempFile() is broken
+o FILEUPLOAD-250:  FileUploadBase - potential resource leak - InputStream not 
closed on exception
+o FILEUPLOAD-244:  DiskFileItem.readObject fails to close FileInputStream
+o FILEUPLOAD-245:  DiskFileItem.get() may not fully read the data
+
+Changes:
+o FILEUPLOAD-292:  Don't create un-needed resources in FileUploadBase.java
+o FILEUPLOAD-282:  Upversion complier.source, compiler.target to 1.6
+o FILEUPLOAD-246:  FileUpload should use IOUtils.closeQuietly where relevant
+o FILEUPLOAD-243:  Make some MultipartStream private fields final Thanks to 
Ville Skyttä.
+
+
+For complete information on Apache Commons FileUpload, including instructions 
on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons FileUpload 
website:
+
+https://commons.apache.org/proper/commons-fileupload/
+
+------------------------------------------------------------------------------
+
+              Apache Commons FileUpload 1.3.3 RELEASE NOTES
+
+The Apache Commons FileUpload team is pleased to announce the release of 
Apache Commons FileUpload 1.3.3.
+
+The Apache Commons FileUpload component provides a simple yet flexible means of
+adding support for multipart file upload functionality to servlets and web
+applications. Version 1.3 onwards requires Java 5 or later.
+
+No client code changes are required to migrate from version 1.3.0, 1.3.1, or 
1.3.2, to 1.3.3
+
+Changes in version 1.3.3 include:
+
+o FILEUPLOAD-279:  DiskFileItem can no longer be deserialized, unless a 
particular system property is set.
+
+
+For complete information on Apache Commons FileUpload, including instructions 
on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons FileUpload 
website:
+
+https://commons.apache.org/proper/commons-fileupload/
+
+------------------------------------------------------------------------------
+
+No client code changes are required to migrate from version 1.3.1 to 1.3.2.
+
+Changes in version 1.3.2 include:
+
+o FILEUPLOAD-272:  Performance Improvement in MultipartStream. Prevents a DoS 
(CVE-2016-3092)
+
+
+For complete information on Apache Commons FileUpload, including instructions 
on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons FileUpload 
website:
+
+https://commons.apache.org/proper/commons-fileupload/
+
+------------------------------------------------------------------------------
+
+              Apache Commons FileUpload 1.3.1 RELEASE NOTES
+
+The Apache Commons FileUpload team is pleased to announce the release of 
Apache Commons FileUpload 1.3.1.
+
+The Apache Commons FileUpload component provides a simple yet flexible means of
+adding support for multipart file upload functionality to servlets and web
+applications. Version 1.3 onwards requires Java 5 or later.
+
+No client code changes are required to migrate from version 1.3.0 to 1.3.1.
+
+
+This is a security and maintenance release that includes an important security
+fix as well as a small number of bugfixes.
+
+Changes in version 1.3.1 include:
+
+
+Fixed Bugs:
+o                  SECURITY - CVE-2014-0050. Specially crafted input can 
trigger a DoS if the
+                   buffer used by the MultipartStream is not big enough. When 
constructing
+                   MultipartStream enforce the requirements for buffer size by 
throwing an
+                   IllegalArgumentException if the requested buffer size is 
too small. This
+                   prevents the DoS.
+o                  When deserializing DiskFileItems ensure that the repository 
location, if
+                   any, is a valid one. Thanks to Arun Babu Neelicattu.
+o                  Correct example in usage documentation so it compiles.
+
+
+
+For complete information on Apache Commons FileUpload, including instructions 
on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons FileUpload 
website:
+
+https://commons.apache.org/proper/commons-fileupload/
+

Added: dev/commons/fileupload/2.0.0-M1-RC1/binaries/HEADER.html
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/binaries/HEADER.html (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/binaries/HEADER.html Sat Jul 15 
23:26:25 2023
@@ -0,0 +1,31 @@
+<!--
+ 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.
+-->
+<h2>Apache Commons Project Distributions</h2>
+
+<p>
+    The most recent source and binary releases for the Apache Commons project 
are available from this
+    directory listing. For older releases, please use the
+    <a href="https://archive.apache.org/dist/commons/";>archives</a>.
+</p>
+
+<h2>Important Notices</h2>
+
+<ul>
+    <li><a href="#mirrors">Download from your nearest mirror site!</a></li>
+    <li><a href="#sig">PGP/GPG Signatures</a></li>
+</ul>
+

Added: dev/commons/fileupload/2.0.0-M1-RC1/binaries/README.html
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/binaries/README.html (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/binaries/README.html Sat Jul 15 
23:26:25 2023
@@ -0,0 +1,66 @@
+<!--
+ 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.
+-->
+<h1>Commons-FILEUPLOAD v2.0.0-M1.</h1>
+
+<p>This is the 2.0.0-M1 version of commons-fileupload2. It is available in 
both binary and source distributions.</p>
+
+
+<p><font color="red" size="+2">Note:</font>
+    The tar files in the distribution use GNU tar extensions
+    and must be untarred with a GNU compatible version of tar. The version
+    of tar on Solaris and Mac OS X will not work with these files</p>
+
+<a name="changes"><h2>Changes</h2></a>
+
+<p>The changes in this release are detailed in the release notes.</p>
+
+<p>Thank you for using <a 
href="https://commons.apache.org/proper/commons-fileupload/";>FILEUPLOAD</a>.</p>
+
+<p>From the Apache Commons Project<br><a 
href="https://commons.apache.org/";>https://commons.apache.org/</a></p>
+
+<h2><a name="mirrors">Download from your
+    <a href="http://www.apache.org/dyn/closer.cgi/commons/";>nearest mirror 
site!</a></a></h2>
+
+<p>
+    Do not download from www.apache.org.  Please use a mirror site
+    to help us save apache.org bandwidth.
+    <a href="http://www.apache.org/dyn/closer.cgi/commons/";>Go
+        here to find your nearest mirror.</a>
+</p>
+
+<a name="sig"><h2>Signatures</h2></a>
+
+<p>Many of the files have been digitally signed using GnuPG.  If so,
+    there will be an accompanying <samp><em>file</em>.asc</samp> signature
+    file in the same directory as the file (binaries/ or source/).  The
+    signing keys can be found in the distribution directory at &lt;<a
+            
HREF="http://downloads.apache.org/commons/KEYS";><samp>http://downloads.apache.org/commons/KEYS</samp></a>&gt;.</p>
+
+<p><b>Always download the KEYS file directly from the Apache site, never from 
a mirror site.</b></p>
+
+
+<pre>Always test available signatures, <i>e.g.</i>,
+$ pgpk -a KEYS
+$ pgpv commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+or,
+$ pgp -ka KEYS
+$ pgp commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+or,
+$ gpg --import KEYS
+$ gpg --verify commons-fileupload2-2.0.0-M1-bin.tar.gz.asc
+</pre>
+<p>
\ No newline at end of file

Added: dev/commons/fileupload/2.0.0-M1-RC1/signature-validator.sh
==============================================================================
--- dev/commons/fileupload/2.0.0-M1-RC1/signature-validator.sh (added)
+++ dev/commons/fileupload/2.0.0-M1-RC1/signature-validator.sh Sat Jul 15 
23:26:25 2023
@@ -0,0 +1,161 @@
+#!/bin/bash -x
+###########
+#   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.
+###########
+# DOCUMENTATION.
+# This script is to be placed in the root of the svn dist checkout.
+# For example, my directory looks like:
+#
+#   drwxr-xr-x@  8 usr  staff   256 Oct  1 11:22 .svn
+#   -rw-r--r--@  1 usr  staff  1230 Oct  1 11:22 HEADER.html
+#   -rw-r--r--@  1 usr  staff  2649 Oct  1 11:22 README.html
+#   -rw-r--r--@  1 usr  staff  5093 Oct  1 11:22 RELEASE-NOTES.txt
+#   drwxr-xr-x@ 10 usr  staff   320 Oct  1 11:22 binaries
+#   -rw-r--r--@  1 usr  staff  3900 Oct  1 13:40 signature-validation.sh
+#   drwxr-xr-x@ 44 usr  staff  1408 Oct  1 11:22 site
+#   drwxr-xr-x@ 10 usr  staff   320 Oct  1 11:37 source
+#
+# From here you run ./signature-validation.sh and it will create a directory 
"artifacts-for-validation-deletable-post-validation
+# in which all of the binaries generated by a release are copied and then it 
checks to see that all of the signatures and hashes
+# are infact correct for the artifacts.
+#
+###########
+
+if test "$#" != "1"
+then
+  echo "ERROR:"
+  echo "We expect the a url like 
https://repository.apache.org/content/repositories/orgapachecommons-1531/commons-net/commons-net/3.7.1/";
+  echo "to be passed in as a parameter to the script."
+fi
+
+
+
+BASEDIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+VALIDATION_DIR=${BASEDIR}/artifacts-for-validation-deletable-post-validation
+BINARIES_DIR=${BASEDIR}/binaries
+SOURCE_DIR=${BASEDIR}/source
+
+BASE_NEXUS_URL="$1"
+
+function clean_and_build_validation_dir() {
+       mkdir -p ${VALIDATION_DIR}
+}
+
+function copy_in_checked_out_artifacts() {
+       cp ${BASEDIR}/binaries/commons* ${VALIDATION_DIR}
+       cp ${BASEDIR}/source/commons* ${VALIDATION_DIR}
+}
+
+function download_nexus_artifacts_to_validation_directory() {
+       # Curls html page and does text modification to put artifacts in 
semicolon delimited list
+       # ...(ugly but works, debug by removing pipes one at a time)
+       echo "INFO: Downloading artifacts from nexus"
+
+  echo ${BASE_NEXUS_URL}
+       NEXUS_ARTIFACTS=$(curl ${BASE_NEXUS_URL} \
+                              | grep "${BASE_NEXUS_URL}" \
+                              | cut -d '>' -f3 \
+                              | sed "s|</a|;|g" \
+                         | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' \
+                         | sed 's/ //g'
+                       )
+       IFS=';' read -r -a array <<< "${NEXUS_ARTIFACTS}"
+
+       for element in "${array[@]}"
+       do
+               ARTIFACT_NAME=$(echo $element | cut -d '/' -f7)
+               echo $ARTIFACT_NAME
+               URL="${BASE_NEXUS_URL}${element}"
+               curl $URL -o ${VALIDATION_DIR}/$ARTIFACT_NAME
+       done
+}
+
+function validate_signatures() {
+       echo "INFO: Validating Signatures in ${VALIDATION_DIR}"
+       ALL_ARTIFACTS=$(ls -Al ${VALIDATION_DIR} \
+                                         | awk -F':[0-9]* ' '/:/{print $2}' \
+                                    | sed -e ':a' -e 'N' -e '$!ba' -e 
's/\n/;/g' \
+                                )
+
+  ARTIFACTS_FOR_VALIDATION=()
+
+  IFS=';' read -r -a array <<< "${ALL_ARTIFACTS}"
+
+  for element in "${array[@]}"
+  do
+    if [[ ! (${element} =~ ^.*asc$ || ${element} =~ ^.*sha512$ || ${element} 
=~ ^.*md5$ || ${element} =~ ^.*sha1$) ]];
+    then
+      ARTIFACTS_FOR_VALIDATION=("${ARTIFACTS_FOR_VALIDATION[@]}" $element)
+    fi
+  done
+
+       for element in "${ARTIFACTS_FOR_VALIDATION[@]}"
+  do
+    if [[ ${element} =~ ^.*tar.gz.*$ || ${element} =~ ^.*zip.*$ ]];
+    then
+      ARTIFACT_SHA512=$(openssl sha512 ${VALIDATION_DIR}/$element | cut -d '=' 
-f2 | cut -d ' ' -f2)
+      FILE_SHA512=$(cut -d$'\r' -f1 ${VALIDATION_DIR}/$element.sha512)
+      if test "${ARTIFACT_SHA512}" != "${FILE_SHA512}"
+      then
+        echo "$element failed sha512 check"
+        echo "==${ARTIFACT_SHA512}=="
+        echo "==${FILE_SHA512}=="
+        exit 1;
+      fi
+    else
+      ARTIFACT_MD5=$(openssl md5 ${VALIDATION_DIR}/$element | cut -d '=' -f2 | 
cut -d ' ' -f2)
+      FILE_MD5=$(cut -d$'\r' -f1 ${VALIDATION_DIR}/$element.md5)
+      ARTIFACT_SHA1=$(openssl sha1 ${VALIDATION_DIR}/$element | cut -d '=' -f2 
| cut -d ' ' -f2)
+      FILE_SHA1=$(cut -d$'\r' -f1 ${VALIDATION_DIR}/$element.sha1)
+      if test "${ARTIFACT_MD5}" != "${FILE_MD5}"
+      then
+        echo "$element failed md5 check"
+        echo "==${ARTIFACT_MD5}=="
+        echo "==${FILE_MD5}=="
+        exit 1;
+      fi
+      if test "${ARTIFACT_SHA1}" != "${FILE_SHA1}"
+      then
+        echo "$element failed sha1 check"
+        echo "==${ARTIFACT_SHA1}=="
+        echo "==${FILE_SHA1}=="
+        exit 1;
+      fi
+
+
+      gpg --verify ${VALIDATION_DIR}/$element.asc ${VALIDATION_DIR}/$element > 
/dev/null 2>&1
+      if test "$?" != "0"
+      then
+        echo "$element failed gpg signature check"
+        exit 1;
+      fi
+    fi
+  done
+
+  echo "SUCCESSFUL VALIDATION"
+}
+
+function clean_up_afterwards() {
+  rm -rf ${VALIDATION_DIR}
+}
+
+
+echo $(clean_and_build_validation_dir)
+echo $(copy_in_checked_out_artifacts)
+echo $(download_nexus_artifacts_to_validation_directory)
+echo $(validate_signatures)
+#clean_up_afterwards
+



Reply via email to