diff options
author | David Pursehouse <dpursehouse@collab.net> | 2016-06-08 14:36:19 +0900 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2016-06-28 12:49:59 +0000 |
commit | 802a16207a4f7134fa6dde2dbf31db2e42d4e27c (patch) | |
tree | e2089d218aa25a7c1c1d6b750b94012b27c6d0ad | |
parent | 5da67be77395c7d95bc2998fcb99907f8ab56d48 (diff) |
Update commons-validator to 1.5.1 and add test for validating TLDs
Version 1.4.1 does not recognize .team as a valid TLD and thus prevents
users from using that domain as their email address.
Upgrade to version 1.5.1 which uses TLD list Version 2016042500, which
includes .team.
Also add a test for the validator.
The list of TLDs tested is taken from the IANA site [1] and is a later
version that includes some TLDs not yet supported by commons-validator.
Test that supported TLDs validate, while unsupported TLDs do not.
[1] http://data.iana.org/TLD/tlds-alpha-by-domain.txt
Bug: Issue 4154
Change-Id: I82378e578387a1fd70eabac012570e430e193e52
-rw-r--r-- | gerrit-server/BUCK | 2 | ||||
-rw-r--r-- | gerrit-server/src/test/java/com/google/gerrit/server/mail/ValidatorTest.java | 61 | ||||
-rw-r--r-- | gerrit-server/src/test/resources/com/google/gerrit/server/mail/tlds-alpha-by-domain.txt | 1329 | ||||
-rw-r--r-- | lib/commons/BUCK | 9 |
4 files changed, 1399 insertions, 2 deletions
diff --git a/gerrit-server/BUCK b/gerrit-server/BUCK index e3b05915d8..cfe116a5c4 100644 --- a/gerrit-server/BUCK +++ b/gerrit-server/BUCK @@ -185,6 +185,7 @@ java_test( ['src/test/java/**/*.java'], excludes = TESTUTIL + PROLOG_TESTS + PROLOG_TEST_CASE + QUERY_TESTS ), + resources = glob(['src/test/resources/com/google/gerrit/server/mail/*']), deps = TESTUTIL_DEPS + [ ':testutil', '//gerrit-antlr:query_exception', @@ -193,6 +194,7 @@ java_test( '//lib:args4j', '//lib:grappa', '//lib:guava', + '//lib/commons:validator', '//lib/guice:guice-assistedinject', '//lib/prolog:runtime', ], diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/mail/ValidatorTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/mail/ValidatorTest.java new file mode 100644 index 0000000000..6707c9ff5d --- /dev/null +++ b/gerrit-server/src/test/java/com/google/gerrit/server/mail/ValidatorTest.java @@ -0,0 +1,61 @@ +// Copyright (C) 2016 The Android Open Source Project +// +// 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. + +package com.google.gerrit.server.mail; + +import static com.google.common.truth.Truth.assert_; + +import org.apache.commons.validator.routines.EmailValidator; +import org.junit.Test; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; + +public class ValidatorTest { + private static final String UNSUPPORTED_PREFIX = "#! "; + + @Test + public void validateTopLevelDomains() throws Exception { + try (InputStream in = + this.getClass().getResourceAsStream("tlds-alpha-by-domain.txt")) { + if (in == null) { + throw new Exception("TLD list not found"); + } + BufferedReader r = new BufferedReader(new InputStreamReader(in)); + String tld; + EmailValidator validator = EmailValidator.getInstance(); + while ((tld = r.readLine()) != null) { + if (tld.startsWith("# ") || tld.startsWith("XN--")) { + // Ignore comments and non-latin domains + continue; + } + if (tld.startsWith(UNSUPPORTED_PREFIX)) { + String test = "test@example." + + tld.toLowerCase().substring(UNSUPPORTED_PREFIX.length()); + assert_() + .withFailureMessage("expected invalid TLD \"" + test + "\"") + .that(validator.isValid(test)) + .isFalse(); + } else { + String test = "test@example." + tld.toLowerCase(); + assert_() + .withFailureMessage("failed to validate TLD \"" + test + "\"") + .that(validator.isValid(test)) + .isTrue(); + } + } + } + } +} diff --git a/gerrit-server/src/test/resources/com/google/gerrit/server/mail/tlds-alpha-by-domain.txt b/gerrit-server/src/test/resources/com/google/gerrit/server/mail/tlds-alpha-by-domain.txt new file mode 100644 index 0000000000..9edf6a48c0 --- /dev/null +++ b/gerrit-server/src/test/resources/com/google/gerrit/server/mail/tlds-alpha-by-domain.txt @@ -0,0 +1,1329 @@ +# Version 2016060601, Last Updated Tue Jun 7 07:07:01 2016 UTC +# From http://data.iana.org/TLD/tlds-alpha-by-domain.txt +AAA +AARP +ABB +ABBOTT +ABBVIE +ABOGADO +ABUDHABI +AC +ACADEMY +ACCENTURE +ACCOUNTANT +ACCOUNTANTS +ACO +ACTIVE +ACTOR +AD +ADAC +ADS +ADULT +AE +AEG +AERO +#! AETNA +AF +AFL +AG +AGAKHAN +AGENCY +AI +AIG +AIRFORCE +AIRTEL +AKDN +AL +ALIBABA +ALIPAY +ALLFINANZ +ALLY +ALSACE +AM +AMICA +AMSTERDAM +ANALYTICS +ANDROID +ANQUAN +AO +APARTMENTS +APP +APPLE +AQ +AQUARELLE +AR +ARAMCO +ARCHI +ARMY +ARPA +ARTE +AS +ASIA +ASSOCIATES +AT +ATTORNEY +AU +AUCTION +AUDI +AUDIO +AUTHOR +AUTO +AUTOS +AVIANCA +AW +AWS +AX +AXA +AZ +AZURE +BA +BABY +BAIDU +BAND +BANK +BAR +BARCELONA +BARCLAYCARD +BARCLAYS +BAREFOOT +BARGAINS +BAUHAUS +BAYERN +BB +BBC +BBVA +BCG +BCN +BD +BE +BEATS +BEER +BENTLEY +BERLIN +BEST +BET +BF +BG +BH +BHARTI +BI +BIBLE +BID +BIKE +BING +BINGO +BIO +BIZ +BJ +BLACK +BLACKFRIDAY +#! BLOG +BLOOMBERG +BLUE +BM +BMS +BMW +BN +BNL +BNPPARIBAS +BO +BOATS +BOEHRINGER +BOM +BOND +BOO +BOOK +BOOTS +BOSCH +BOSTIK +BOT +BOUTIQUE +BR +BRADESCO +BRIDGESTONE +BROADWAY +BROKER +BROTHER +BRUSSELS +BS +BT +BUDAPEST +BUGATTI +BUILD +BUILDERS +BUSINESS +BUY +BUZZ +BV +BW +BY +BZ +BZH +CA +CAB +CAFE +CAL +CALL +CAMERA +CAMP +CANCERRESEARCH +CANON +CAPETOWN +CAPITAL +CAR +CARAVAN +CARDS +CARE +CAREER +CAREERS +CARS +CARTIER +CASA +CASH +CASINO +CAT +CATERING +CBA +CBN +CC +CD +CEB +CENTER +CEO +CERN +CF +CFA +CFD +CG +CH +CHANEL +CHANNEL +CHASE +CHAT +CHEAP +CHLOE +CHRISTMAS +CHROME +CHURCH +CI +CIPRIANI +CIRCLE +CISCO +CITIC +CITY +CITYEATS +CK +CL +CLAIMS +CLEANING +CLICK +CLINIC +CLINIQUE +CLOTHING +CLOUD +CLUB +CLUBMED +CM +CN +CO +COACH +CODES +COFFEE +COLLEGE +COLOGNE +COM +COMMBANK +COMMUNITY +COMPANY +COMPARE +COMPUTER +COMSEC +CONDOS +CONSTRUCTION +CONSULTING +CONTACT +CONTRACTORS +COOKING +COOL +COOP +CORSICA +COUNTRY +COUPON +COUPONS +COURSES +CR +CREDIT +CREDITCARD +CREDITUNION +CRICKET +CROWN +CRS +CRUISES +CSC +CU +CUISINELLA +CV +CW +CX +CY +CYMRU +CYOU +CZ +DABUR +DAD +DANCE +DATE +DATING +DATSUN +DAY +DCLK +#! DDS +DE +DEALER +DEALS +DEGREE +DELIVERY +DELL +DELOITTE +DELTA +DEMOCRAT +DENTAL +DENTIST +DESI +DESIGN +DEV +#! DHL +DIAMONDS +DIET +DIGITAL +DIRECT +DIRECTORY +DISCOUNT +DJ +DK +DM +DNP +DO +DOCS +DOG +DOHA +DOMAINS +#! DOT +DOWNLOAD +DRIVE +#! DTV +DUBAI +DURBAN +DVAG +DZ +EARTH +EAT +EC +EDEKA +EDU +EDUCATION +EE +EG +EMAIL +EMERCK +ENERGY +ENGINEER +ENGINEERING +ENTERPRISES +EPSON +EQUIPMENT +ER +ERNI +ES +ESQ +ESTATE +ET +EU +EUROVISION +EUS +EVENTS +EVERBANK +EXCHANGE +EXPERT +EXPOSED +EXPRESS +EXTRASPACE +FAGE +FAIL +FAIRWINDS +FAITH +FAMILY +FAN +FANS +FARM +FASHION +FAST +FEEDBACK +FERRERO +FI +FILM +FINAL +FINANCE +FINANCIAL +FIRESTONE +FIRMDALE +FISH +FISHING +FIT +FITNESS +FJ +FK +FLICKR +FLIGHTS +#! FLIR +FLORIST +FLOWERS +FLSMIDTH +FLY +FM +FO +FOO +FOOTBALL +FORD +FOREX +FORSALE +FORUM +FOUNDATION +FOX +FR +FRESENIUS +FRL +FROGANS +FRONTIER +FTR +FUND +FURNITURE +FUTBOL +FYI +GA +GAL +GALLERY +GALLO +GALLUP +GAME +#! GAMES +GARDEN +GB +GBIZ +GD +GDN +GE +GEA +GENT +GENTING +GF +GG +GGEE +GH +GI +GIFT +GIFTS +GIVES +GIVING +GL +GLASS +GLE +GLOBAL +GLOBO +GM +GMAIL +GMBH +GMO +GMX +GN +GOLD +GOLDPOINT +GOLF +GOO +GOOG +GOOGLE +GOP +GOT +GOV +GP +GQ +GR +GRAINGER +GRAPHICS +GRATIS +GREEN +GRIPE +GROUP +GS +GT +GU +#! GUARDIAN +GUCCI +GUGE +GUIDE +GUITARS +GURU +GW +GY +HAMBURG +HANGOUT +HAUS +HDFCBANK +HEALTH +HEALTHCARE +HELP +HELSINKI +HERE +HERMES +HIPHOP +#! HISAMITSU +HITACHI +HIV +HK +#! HKT +HM +HN +HOCKEY +HOLDINGS +HOLIDAY +HOMEDEPOT +HOMES +HONDA +HORSE +HOST +HOSTING +HOTELES +HOTMAIL +HOUSE +HOW +HR +HSBC +HT +HTC +HU +HYUNDAI +IBM +ICBC +ICE +ICU +ID +IE +IFM +IINET +IL +IM +IMAMAT +IMMO +IMMOBILIEN +IN +INDUSTRIES +INFINITI +INFO +ING +INK +INSTITUTE +INSURANCE +INSURE +INT +INTERNATIONAL +INVESTMENTS +IO +IPIRANGA +IQ +IR +IRISH +IS +ISELECT +ISMAILI +IST +ISTANBUL +IT +ITAU +IWC +JAGUAR +JAVA +JCB +JCP +JE +JETZT +JEWELRY +JLC +JLL +JM +JMP +JNJ +JO +JOBS +JOBURG +JOT +JOY +JP +JPMORGAN +JPRS +JUEGOS +KAUFEN +KDDI +KE +KERRYHOTELS +KERRYLOGISTICS +KERRYPROPERTIES +KFH +KG +KH +KI +KIA +KIM +KINDER +KITCHEN +KIWI +KM +KN +KOELN +KOMATSU +KP +KPMG +KPN +KR +KRD +KRED +KUOKGROUP +KW +KY +KYOTO +KZ +LA +LACAIXA +LAMBORGHINI +LAMER +LANCASTER +LAND +LANDROVER +LANXESS +LASALLE +LAT +LATROBE +LAW +LAWYER +LB +LC +LDS +LEASE +LECLERC +LEGAL +LEXUS +LGBT +LI +LIAISON +LIDL +LIFE +LIFEINSURANCE +LIFESTYLE +LIGHTING +LIKE +LIMITED +LIMO +LINCOLN +LINDE +LINK +#! LIPSY +LIVE +LIVING +LIXIL +LK +LOAN +LOANS +#! LOCKER +LOCUS +LOL +LONDON +LOTTE +LOTTO +LOVE +LR +LS +LT +LTD +LTDA +LU +LUPIN +LUXE +LUXURY +LV +LY +MA +MADRID +MAIF +MAISON +MAKEUP +MAN +MANAGEMENT +MANGO +MARKET +MARKETING +MARKETS +MARRIOTT +#! MATTEL +MBA +MC +MD +ME +MED +MEDIA +MEET +MELBOURNE +MEME +MEMORIAL +MEN +MENU +MEO +#! METLIFE +MG +MH +MIAMI +MICROSOFT +MIL +MINI +MK +ML +#! MLB +MLS +MM +MMA +MN +MO +MOBI +MOBILY +MODA +MOE +MOI +MOM +MONASH +MONEY +MONTBLANC +MORMON +MORTGAGE +MOSCOW +MOTORCYCLES +MOV +MOVIE +MOVISTAR +MP +MQ +MR +MS +MT +MTN +MTPC +MTR +MU +MUSEUM +MUTUAL +MUTUELLE +MV +MW +MX +MY +MZ +NA +NADEX +NAGOYA +NAME +NATURA +NAVY +NC +NE +NEC +NET +NETBANK +#! NETFLIX +NETWORK +NEUSTAR +NEW +NEWS +#! NEXT +#! NEXTDIRECT +NEXUS +NF +NG +NGO +NHK +NI +NICO +NIKON +NINJA +NISSAN +NISSAY +NL +NO +NOKIA +NORTHWESTERNMUTUAL +NORTON +NOWRUZ +#! NOWTV +NP +NR +NRA +NRW +NTT +NU +NYC +NZ +OBI +OFFICE +OKINAWA +#! OLAYAN +#! OLAYANGROUP +#! OLLO +OM +OMEGA +ONE +ONG +ONL +ONLINE +OOO +ORACLE +ORANGE +ORG +ORGANIC +ORIGINS +OSAKA +OTSUKA +#! OTT +OVH +PA +PAGE +PAMPEREDCHEF +PANERAI +PARIS +PARS +PARTNERS +PARTS +PARTY +PASSAGENS +#! PCCW +PE +PET +PF +PG +PH +PHARMACY +PHILIPS +PHOTO +PHOTOGRAPHY +PHOTOS +PHYSIO +PIAGET +PICS +PICTET +PICTURES +PID +PIN +PING +PINK +#! PIONEER +PIZZA +PK +PL +PLACE +PLAY +PLAYSTATION +PLUMBING +PLUS +PM +PN +POHL +POKER +PORN +POST +PR +PRAXI +PRESS +PRO +PROD +PRODUCTIONS +PROF +PROGRESSIVE +PROMO +PROPERTIES +PROPERTY +PROTECTION +PS +PT +PUB +PW +PWC +PY +QA +QPON +QUEBEC +QUEST +RACING +RE +READ +#! REALESTATE +REALTOR +REALTY +RECIPES +RED +REDSTONE +REDUMBRELLA +REHAB +REISE +REISEN +REIT +REN +RENT +RENTALS +REPAIR +REPORT +REPUBLICAN +REST +RESTAURANT +REVIEW +REVIEWS +REXROTH +RICH +#! RICHARDLI +RICOH +RIO +RIP +RO +ROCHER +ROCKS +RODEO +ROOM +RS +RSVP +RU +RUHR +RUN +RW +RWE +RYUKYU +SA +SAARLAND +SAFE +SAFETY +SAKURA +SALE +SALON +SAMSUNG +SANDVIK +SANDVIKCOROMANT +SANOFI +SAP +SAPO +SARL +SAS +SAXO +SB +SBI +SBS +SC +SCA +SCB +SCHAEFFLER +SCHMIDT +SCHOLARSHIPS +SCHOOL +SCHULE +SCHWARZ +SCIENCE +SCOR +SCOT +SD +SE +SEAT +SECURITY +SEEK +SELECT +SENER +SERVICES +SEVEN +SEW +SEX +SEXY +SFR +SG +SH +SHARP +SHAW +SHELL +SHIA +SHIKSHA +SHOES +#! SHOP +SHOUJI +SHOW +SHRIRAM +SI +SINA +SINGLES +SITE +SJ +SK +SKI +SKIN +SKY +SKYPE +SL +SM +SMILE +SN +SNCF +SO +SOCCER +SOCIAL +SOFTBANK +SOFTWARE +SOHU +SOLAR +SOLUTIONS +SONG +SONY +SOY +SPACE +SPIEGEL +SPOT +SPREADBETTING +SR +SRL +ST +STADA +STAR +STARHUB +STATEBANK +STATEFARM +STATOIL +STC +STCGROUP +STOCKHOLM +STORAGE +STORE +STREAM +STUDIO +STUDY +STYLE +SU +SUCKS +SUPPLIES +SUPPLY +SUPPORT +SURF +SURGERY +SUZUKI +SV +SWATCH +SWISS +SX +SY +SYDNEY +SYMANTEC +SYSTEMS +SZ +TAB +TAIPEI +TALK +TAOBAO +TATAMOTORS +TATAR +TATTOO +TAX +TAXI +TC +TCI +TD +TEAM +TECH +TECHNOLOGY +TEL +TELECITY +TELEFONICA +TEMASEK +TENNIS +TEVA +TF +TG +TH +THD +THEATER +THEATRE +TICKETS +TIENDA +TIFFANY +TIPS +TIRES +TIROL +TJ +TK +TL +TM +TMALL +TN +TO +TODAY +TOKYO +TOOLS +TOP +TORAY +TOSHIBA +TOTAL +TOURS +TOWN +TOYOTA +TOYS +TR +TRADE +TRADING +TRAINING +TRAVEL +TRAVELERS +TRAVELERSINSURANCE +TRUST +TRV +TT +TUBE +TUI +TUNES +TUSHU +TV +TVS +TW +TZ +UA +UBS +UG +UK +UNICOM +UNIVERSITY +UNO +UOL +#! UPS +US +UY +UZ +VA +VACATIONS +VANA +VC +VE +VEGAS +VENTURES +VERISIGN +VERSICHERUNG +VET +VG +VI +VIAJES +VIDEO +VIG +VIKING +VILLAS +VIN +VIP +VIRGIN +VISION +VISTA +VISTAPRINT +VIVA +VLAANDEREN +VN +VODKA +VOLKSWAGEN +VOTE +VOTING +VOTO +VOYAGE +VU +VUELOS +WALES +WALTER +WANG +WANGGOU +#! WARMAN +WATCH +WATCHES +WEATHER +WEATHERCHANNEL +WEBCAM +WEBER +WEBSITE +WED +WEDDING +WEIBO +WEIR +WF +WHOSWHO +WIEN +WIKI +WILLIAMHILL +WIN +WINDOWS +WINE +WME +WOLTERSKLUWER +WORK +WORKS +WORLD +WS +WTC +WTF +XBOX +XEROX +XIHUAN +XIN +XN--11B4C3D +XN--1CK2E1B +XN--1QQW23A +XN--30RR7Y +XN--3BST00M +XN--3DS443G +XN--3E0B707E +XN--3PXU8K +XN--42C2D9A +XN--45BRJ9C +XN--45Q11C +XN--4GBRIM +XN--55QW42G +XN--55QX5D +XN--5TZM5G +XN--6FRZ82G +XN--6QQ986B3XL +XN--80ADXHKS +XN--80AO21A +XN--80ASEHDB +XN--80ASWG +XN--8Y0A063A +XN--90A3AC +XN--90AIS +XN--9DBQ2A +XN--9ET52U +XN--9KRT00A +XN--B4W605FERD +XN--BCK1B9A5DRE4C +XN--C1AVG +XN--C2BR7G +XN--CCK2B3B +XN--CG4BKI +XN--CLCHC0EA0B2G2A9GCD +XN--CZR694B +XN--CZRS0T +XN--CZRU2D +XN--D1ACJ3B +XN--D1ALF +XN--E1A4C +XN--ECKVDTC9D +XN--EFVY88H +XN--ESTV75G +XN--FCT429K +XN--FHBEI +XN--FIQ228C5HS +XN--FIQ64B +XN--FIQS8S +XN--FIQZ9S +XN--FJQ720A +XN--FLW351E +XN--FPCRJ9C3D +XN--FZC2C9E2C +XN--FZYS8D69UVGM +XN--G2XX48C +XN--GCKR3F0F +XN--GECRJ9C +XN--H2BRJ9C +XN--HXT814E +XN--I1B6B1A6A2E +XN--IMR513N +XN--IO0A7I +XN--J1AEF +XN--J1AMH +XN--J6W193G +XN--JLQ61U9W7B +XN--JVR189M +XN--KCRX77D1X4A +XN--KPRW13D +XN--KPRY57D +XN--KPU716F +XN--KPUT3I +XN--L1ACC +XN--LGBBAT1AD8J +XN--MGB9AWBF +XN--MGBA3A3EJT +XN--MGBA3A4F16A +XN--MGBA7C0BBN0A +XN--MGBAAM7A8H +XN--MGBAB2BD +XN--MGBAYH7GPA +XN--MGBB9FBPOB +XN--MGBBH1A71E +XN--MGBC0A9AZCG +XN--MGBCA7DZDO +XN--MGBERP4A5D4AR +XN--MGBPL2FH +XN--MGBT3DHD +XN--MGBTX2B +XN--MGBX4CD0AB +XN--MIX891F +XN--MK1BU44C +XN--MXTQ1M +XN--NGBC5AZD +XN--NGBE9E0A +XN--NODE +XN--NQV7F +XN--NQV7FS00EMA +XN--NYQY26A +XN--O3CW4H +XN--OGBPF8FL +XN--P1ACF +XN--P1AI +XN--PBT977C +XN--PGBS0DH +XN--PSSY2U +XN--Q9JYB4C +XN--QCKA1PMC +XN--QXAM +XN--RHQV96G +XN--ROVU88B +XN--S9BRJ9C +XN--SES554G +XN--T60B56A +XN--TCKWE +XN--UNUP4Y +XN--VERMGENSBERATER-CTB +XN--VERMGENSBERATUNG-PWB +XN--VHQUV +XN--VUQ861B +XN--W4R85EL8FHU5DNRA +XN--W4RS40L +XN--WGBH1C +XN--WGBL6A +XN--XHQ521B +XN--XKC2AL3HYE2A +XN--XKC2DL3A5EE0H +XN--Y9A3AQ +XN--YFRO4I67O +XN--YGBI2AMMX +XN--ZFR164B +XPERIA +XXX +XYZ +YACHTS +YAHOO +YAMAXUN +YANDEX +YE +YODOBASHI +YOGA +YOKOHAMA +YOU +YOUTUBE +YT +YUN +ZA +#! ZAPPOS +ZARA +ZERO +ZIP +ZM +ZONE +ZUERICH +ZW diff --git a/lib/commons/BUCK b/lib/commons/BUCK index cc503a39f8..6922f4df0d 100644 --- a/lib/commons/BUCK +++ b/lib/commons/BUCK @@ -72,10 +72,15 @@ maven_jar( exclude = ['META-INF/LICENSE'], ) +# When updating the version of commons-validator, also update the +# list of supported TLDs in: +# gerrit-server/src/test/resources/com/google/gerrit/server/mail/tlds-alpha-by-domain.txt +# from: +# http://data.iana.org/TLD/tlds-alpha-by-domain.txt maven_jar( name = 'validator', - id = 'commons-validator:commons-validator:1.4.1', - sha1 = '2231238e391057a53f92bde5bbc588622c1956c3', + id = 'commons-validator:commons-validator:1.5.1', + sha1 = '86d05a46e8f064b300657f751b5a98c62807e2a0', license = 'Apache2.0', ) |