Prechádzať zdrojové kódy

HPCC-23479 add *eclmod files for LN plugins in HPCC-Platform

Install *.eclmod based on cmake options USE_PROXIES, USE_EEPROXISE and
USE_ECLCCPROXIES.
xwang2713 5 rokov pred
rodič
commit
b72c7dd4b6

+ 1 - 0
cmake_modules/commonSetup.cmake

@@ -127,6 +127,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
   option(LOGGING_SERVICE "Configure use of logging service" ON)
   option(WSSQL_SERVICE "Configure use of ws_sql service" ON)
   option(USE_DIGISIGN "Use digisign" ON)
+  option(INCLUDE_EE_PLUGINS "Install EE Plugins in Clienttool" OFF)
   set(CUSTOM_PACKAGE_SUFFIX "" CACHE STRING "Custom package suffix to differentiate development builds")
 
      MACRO(SET_PLUGIN_PACKAGE plugin)

+ 3 - 0
plugins/CMakeLists.txt

@@ -41,6 +41,9 @@ add_subdirectory (exampleplugin)
 add_subdirectory (couchbase)
 add_subdirectory (sqs)
 add_subdirectory (spark)
+IF ( INCLUDE_EE_PLUGINS )
+add_subdirectory (eeproxies)
+ENDIF()
 IF (USE_OPENSSL)
 add_subdirectory (cryptolib)
 ENDIF()

+ 29 - 0
plugins/eeproxies/CMakeLists.txt

@@ -0,0 +1,29 @@
+###############################################################################
+#    HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®.
+#
+#    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.
+################################################################################
+set (proxies_out_dir "plugins")
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_addrcleanlib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_bridgerscorelib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_canadacleanlib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_cmslib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_datalib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_date.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_dmslib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_entityscorelib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_fingerprintlib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_hktlib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_namelib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_ofaclib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_ziplib.eclmod DESTINATION ${proxies_out_dir} COMPONENT Runtime)

+ 33 - 0
plugins/eeproxies/lib_addrcleanlib.eclmod

@@ -0,0 +1,33 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems®.
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) addrclean library */
+
+export AddrCleanLib := SERVICE : plugin('addrclean'),time
+  string182 CleanAddress182(const string addrline, const string lastline, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanAddress182Ctx';
+  string183 CleanAddress183(const string addrline, const string lastline, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanAddress183Ctx';
+  string73 CleanPerson73(const string name, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanPerson73Ctx';
+  string73 CleanPersonFML73(const string name, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanPersonFML73Ctx';
+  string73 CleanPersonLFM73(const string name, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanPersonLFM73Ctx';
+  string CleanLNBO(const string input, const string server = '', unsigned2 port = 0, unsigned2 readTimeout = 0) : c, pure, context, entrypoint='aclCleanLNBOCtx';
+  unicode CleanLNBOUnicode(const unicode input, const string server = '', unsigned2 port = 0, unsigned2 readTimeout = 0) : c, pure, context, entrypoint='aclCleanLNBOUnicodeCtx';
+  string140 CleanDualName140(const string dualname, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanDualName140Ctx';
+  string140 CleanDualNameLFM140(const string dualname, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclCleanDualNameLFM140Ctx';
+  string34 Zip9ToGeo34(const string zip9, const string server = '', unsigned2 port = 0) : c, pure, context, entrypoint='aclZip9ToGeo34Ctx';
+  boolean SetTracing(boolean trace=true) : c, action, context, entrypoint='aclSetTracingCtx';
+  boolean SetTiming(boolean timing=true) : c, action, context, entrypoint='aclSetTimingCtx';
+END;

+ 34 - 0
plugins/eeproxies/lib_bridgerscorelib.eclmod

@@ -0,0 +1,34 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) bridgerscore library */
+
+export WLSearchResultRecord := record
+  unsigned4 key;
+  real8 score
+end;
+
+export BridgerScoreLib := SERVICE : plugin('bridgerscore'), time
+  boolean IsLoaded() : c, entrypoint='wlIsLoaded';
+  boolean Load(unsigned4 source, unsigned4 key, string givenName, string lastOrCompanyName, boolean isPerson, boolean last) : c, action,entrypoint='wlL    oad';
+  Unload() : c, action, entrypoint='wlUnload';
+  boolean tokenScore(string candidateWord, string tokenWord, unsigned4 score) : c, pure, entrypoint='wlTokenScore';
+  dataset(WLSearchResultRecord) Search(string name, real8 threshold, string1 searchType, unsigned4 source) : c, entrypoint='wlSearch';
+  real8 personScore(string candidate, string givenName, string lastName) : c, pure, entrypoint='wlPersonScore';
+  real8 companyScore(string candidate, string companyName) : c, pure, entrypoint='wlCompanyScore';
+  real8 countryScore(string candidate, string countryName) : c, pure, entrypoint='wlCountryScore';
+END;

+ 23 - 0
plugins/eeproxies/lib_canadacleanlib.eclmod

@@ -0,0 +1,23 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) canadaclean library */
+
+export CanadaCleanLib := SERVICE : plugin('canadaclean'),time
+  string109 CanadaAddress109(const string addrline, const string lastline, const string mode = 'I', const string server = 'canadacleanlb.br.seisint.com', unsigned2 port = 11300) : c, pure, entrypoint='cclCanadaAddress109';
+  boolean SetTracing(boolean trace=true) : c,action,entrypoint='cclSetTracing';
+END;

+ 34 - 0
plugins/eeproxies/lib_cmslib.eclmod

@@ -0,0 +1,34 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) cms library */
+
+export cmsLib := SERVICE : plugin('cms')
+  varstring GetBuildInfo() : c, pure, entrypoint='cmsGetBuildInfo';
+  string100 GetBuildInfo100() : c, pure, entrypoint='cmsGetBuildInfo100', hole;
+  integer4 ReasonCodeRank(string s, integer4 n, integer4 flag) : c, pure, entrypoint='cmsReasonCodeRank', hole;
+  integer4 ReasonCodeRankSet(set of integer4 s, integer4 n, integer4 flag) : c, pure, entrypoint='cmsReasonCodeRankSet';
+  string30 ReasonCodeAllRanks(set of integer4 s, integer4 flag) : c, pure, entrypoint='cmsReasonCodeAllRanks';
+  string80 CleanAddress80(const string src) : c, pure, entrypoint='cmsCleanAddress80', hole;
+  string   CleanAddress(const string src) : c, pure, entrypoint='cmsCleanAddress';
+  string25 RemoveCommas25(const string src) : c, pure, entrypoint='cmsRemoveCommas25', hole;
+  string   RemoveCommas(const string src) : c, pure, entrypoint='cmsRemoveCommas';
+  string25 CleanSpaces25(const string src) : c, pure, entrypoint='cmsCleanSpaces25', hole;
+  string   CleanSpaces(const string src) : c, pure, entrypoint='cmsCleanSpaces';
+  string10 ExtMemNum(const string2 indCode, unsigned4 memnum) : c, pure, entrypoint='cmsExtMemNum2', hole;
+  string25 LocateAddr25(const string src) : c, pure, entrypoint='cmsLocateAddr25', hole;
+END;

+ 44 - 0
plugins/eeproxies/lib_datalib.eclmod

@@ -0,0 +1,44 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) data library */
+
+export DataLib := SERVICE:plugin('data'),fold
+  string261 AddressClean(const string address1, const string address2)  : c, pure, entrypoint='dataAddressClean', hole;
+  string120 CompanyClean(const string scr)  : c, pure, entrypoint='dataCompanyClean', hole;
+  string    DeDouble(const string scr)  : c, pure, entrypoint='dataDeDouble';
+  unsigned4 DoNamesMatch(const string le_f, const string le_m, const string le_l,
+                      const string ri_f,const string ri_m,const string ri_l, unsigned4 thresh)  : c, pure, entrypoint='dataDoNamesMatch', hole;
+  unsigned4 DoNamesMatchNew(const string le_f, const string le_m, const string le_l,
+                      const string ri_f,const string ri_m,const string ri_l, unsigned4 thresh, boolean useNew)  : c, pure, entrypoint='dataDoNamesMatchNew', hole;
+  string1   Gender(const string name) : c, pure, entrypoint='dataGender', hole;
+  unsigned4 LeadMatch(const string src, const string search)  : c, pure, entrypoint='dataLeadMatch', hole;
+  string142 NameClean(const string scr)  : c, pure, entrypoint='dataNameClean', hole;
+  unsigned4 NameMatch(const string le_f, const string le_m, const string le_l,
+                      const string ri_f,const string ri_m,const string ri_l)  : c, pure, entrypoint='dataNameMatch', hole;
+  unsigned4 NameMatchNew(const string le_f, const string le_m, const string le_l,
+                      const string ri_f,const string ri_m,const string ri_l, boolean useNew, boolean useStrict = false)  : c, pure, entrypoint='dataNameMatchNew', hole;
+  unsigned4 NameSimilar(const string le, const string ri,boolean blanks)  : c, pure, entrypoint='dataNameSimilar', hole;
+  unsigned4 PositionalMatch(const string src, const string search)  : c, pure, entrypoint='dataPositionalMatch', hole;
+  string    PreferredFirst(const string scr)  : c, pure, entrypoint='dataPreferredFirst';
+  string    PreferredFirstNew(const string scr, boolean useNew)  : c, pure, entrypoint='dataPreferredFirstNew';
+  unsigned4 SlidingMatch(const string src, const string arg)  : c, pure, entrypoint='dataSlidingMatch', hole;
+  unsigned4 StringFind(const string scr, const string search, unsigned4 instance)  : c, pure, entrypoint='dataStringFind', hole;
+  unsigned4 StringSimilar100(const string le, const string ri)  : c, pure, entrypoint='dataStringSimilar', hole;
+  string    StringReplaceSmaller(const string scr, const string search, const string replace)  : c, pure, entrypoint='dataStringReplaceSmaller';
+  unsigned4 StrCompare(const string str1, const string str2)  : c, pure, entrypoint='datastrCompare', hole;
+END;

+ 91 - 0
plugins/eeproxies/lib_date.eclmod

@@ -0,0 +1,91 @@
+/*##############################################################################
+
+    Copyright (C) <2010>  <LexisNexis Risk Data Management Inc.>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+############################################################################## */
+
+export Date_i2_YYYYMM(unsigned2 i) := if(i=0,
+                      '      ',
+                      (string4)((i-1) div 12 + 1900)+intformat(((i-1) % 12)+1,2,1));
+
+export Date_MMDDYY_I2(string6 s) := IF ( (unsigned8)s=0,
+                      0,
+                      (unsigned8)(IF(s[5..6]<'40','20','19')+s[5..6]+s[1..4]));
+
+export date_overlap_first(unsigned8 lf, unsigned8 ll,
+                          unsigned8 rf, unsigned8 rl) :=
+
+  MAP ( lf > rl => 0,
+        rf > ll => 0,
+        lf > rf => lf,
+        rf );
+
+export date_overlap_last(unsigned8 lf, unsigned8 ll,
+                         unsigned8 rf, unsigned8 rl) :=
+
+  MAP ( lf > rl => 0,
+        rf > ll => 0,
+        ll > rl => rl,
+        ll );
+
+export date_overlap(unsigned8 lf, unsigned8 ll,
+                    unsigned8 rf, unsigned8 rl) :=
+
+  MAP( date_overlap_last(lf,ll,rf,rl)=0 => if (date_overlap_first(lf,ll,rf,rl)=0,0,1),
+       date_overlap_first(lf,ll,rf,rl)=0 => 1,
+       (date_overlap_last(lf,ll,rf,rl) div 100 - date_overlap_first(lf,ll,rf,rl) div 100) * 12 +
+        date_overlap_last(lf,ll,rf,rl)%100-date_overlap_first(lf,ll,rf,rl) % 100);
+
+export Date_YYYYMM_i2(string6 dte) := if(dte='',0,((integer)(dte[1..4])-1900)*12+(integer)(dte[5..6]));
+
+
+export LeapYear(integer2 year) := year % 4 = 0 and ( year % 100 != 0 or year % 400 = 0);
+
+INTEGER2 dayofyr(integer1 month,integer1 day) :=
+        CHOOSE( month,0,31,59,90,120,151,181,212,243,273,304,334 ) + day;
+
+export INTEGER2 DayOfYear(integer4 year,integer1 month,integer1 day) :=
+        dayofyr(month,day) + IF( LeapYear(year) and month > 2, 1, 0);
+
+export DaysSince1900(integer2 year, integer1 month, integer1 day) :=
+  ((integer)year-1900)*365+(year-1901) div 4 + DayOfYear(year,month,day);
+
+//this works only with dates in YYYYMMDD format
+export integer8 DaysApart(string8 d1, string8 d2) :=
+    abs(DaysSince1900((integer2)(d1[1..4]), (integer1)(d1[5..6]), (integer1)(d1[7..8])) -
+    DaysSince1900((integer2)(d2[1..4]), (integer1)(d2[5..6]), (integer1)(d2[7..8])));
+
+export EarliestDate(integer l, integer r) := if ( l=0 or (r<>0 and r<l),r,l);
+
+export earliestdatestring(string20 l,string20 r) := if ( l='' or r<>'' and r<l,r,l);
+
+export Format_Date(integer2 year, integer1 month, integer1 day) :=
+          (string4)year+'/'+intformat(month,2,1)+'/'+intformat(day,2,1);
+
+import lib_stringlib;
+
+// WORKS FOR DATES IN FORMAT OF YYYYMMDD
+today := lib_stringlib.StringLib.getdateYYYYMMDD();
+
+thismonth := (integer2)(today[5..6]);
+thisday := (integer2)(today[7..8]);
+thisyear := (integer2)(today[1..4]);
+
+export getage(string8 dob) := if(thismonth < (integer2)(dob[5..6]) or
+          (thismonth = (integer2)(dob[5..6]) and thisday < (integer2)(dob[7..8])),
+          thisyear - (integer2)(dob[1..4]) - 1,
+          thisyear - (integer2)(dob[1..4]));
+
+export LatestDate(integer l, integer r) := if ( r>l,r,l);

+ 22 - 0
plugins/eeproxies/lib_dmslib.eclmod

@@ -0,0 +1,22 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) dms library */
+
+export DMSLib := SERVICE : plugin('dms')
+  string30    getVehDesc(const string number) : c, pure, entrypoint='getVehDesc', hole;
+END;

+ 40 - 0
plugins/eeproxies/lib_entityscorelib.eclmod

@@ -0,0 +1,40 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) entityscore library */
+
+export TextSearchDataRecord := record varunicode indexWord; varunicode searchContext; end;
+export TextSearchResultRecord := record integer4 score; varunicode matchContext; end;
+export EntityScoreLib := SERVICE : plugin('entityscore'), time
+  integer4 AddressCompare(unicode streetOrFull1, unicode city1, unicode state1, unicode pcode1, unicode country1, unicode streetOrFull2, unicode city2, unicode state2, unicode pcode2, unicode country2) : c, pure, entrypoint='ESL_AddressCompare';
+  integer4 AddressIndexWordCompare(unicode word1, unicode word2) : c, pure, entrypoint='ESL_AddressIndexWordCompare';
+  integer4 CountryCompare(unicode country1, unicode country2) : c, pure, entrypoint='ESL_CountryCompare';
+  integer4 CountryIndexWordCompare(unicode word1, unicode word2) : c, pure, entrypoint='ESL_CountryIndexWordCompare';
+  integer4 IDCompare(unicode id1, unicode id2) : c, pure, entrypoint='ESL_IDCompare';
+  integer4 NameCompare(unsigned4 entityType1, unicode lastOrFull1, unicode first1, unicode middle1, unsigned4 entityType2, unicode lastOrFull2, unicode first2, unicode middle2, boolean initials) : c, pure, entrypoint='ESL_NameCompare';
+  integer4 NameIndexWordCompare(unicode word1, unicode word2) : c, pure, entrypoint='ESL_NameIndexWordCompare';
+  integer4 PhoneCompare(unicode phone1, unicode phone2) : c, pure, entrypoint='ESL_PhoneCompare';
+  dataset(TextSearchResultRecord) TextCountryCompare(unicode text, unicode country) : c, pure, entrypoint='ESL_TextCountryCompare';
+  dataset(TextSearchResultRecord) TextNameCompare(unicode text, unsigned4 entityType, unicode lastOrFull, unicode first, unicode middle, boolean initials) : c, pure, entrypoint='ESL_TextNameCompare';
+  dataset(TextSearchDataRecord) TextSearchData(unicode text, unsigned4 contextLen) : c, pure, entrypoint='ESL_TextSearchData';
+  boolean IsAddressPartial(unicode streetOrFull, unicode city, unicode state, unicode pcode, unicode country) : c, pure, entrypoint='ESL_IsAddressPartial';
+  boolean IsAddressCommonWord(unicode word) : c, pure, entrypoint='ESL_IsAddressCommonWord';
+  boolean IsCountryCommonWord(unicode word) : c, pure, entrypoint='ESL_IsCountryCommonWord';
+  boolean IsDirectionCommonWord(unicode word) : c, pure, entrypoint='ESL_IsDirectionCommonWord';
+  boolean IsIndividualCommonWord(unicode word) : c, pure, entrypoint='ESL_IsIndividualCommonWord';
+  boolean IsOrganizationCommonWord(unicode word) : c, pure, entrypoint='ESL_IsOrganizationCommonWord';
+END;

+ 32 - 0
plugins/eeproxies/lib_fingerprintlib.eclmod

@@ -0,0 +1,32 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) fingerprint library */
+
+export KeyValueResultRecord := record
+  string key{maxlength(4096)};
+  string value{maxlength(1024)};
+end;
+export FingerprintLib := SERVICE : plugin('fingerprint'), time
+  string    getHtmlFingerprint(const string scr, const string tag_list, const string attr_exclude_list, boolean include_xml_text, boolean de_dup )  : c, pure, entrypoint='getHtmlFingerprint';
+  string    getTagValueString (const string scr, const string tag_list, const string attr_exclude_list )  : c, pure, entrypoint='getTagValueString';
+  dataset(KeyValueResultRecord) getTagValueDS(const string scr, const string tag_list, const string attr_exclude_list )  : c, pure, entrypoint='getTagValueDS';
+  string    getAttributeValueString (const string scr, const string tag_list, const string attr_exclude_list, string tag_name, string attribute_name )  : c, pure, entrypoint='getAttributeValueString';
+  dataset(KeyValueResultRecord) getAttributeValueDS(const string scr, const string tag_list, const string attr_exclude_list, string tag_name, string attribute_name )  : c, pure, entrypoint='getAttributeValueDS';
+  string    prittyfyXml(const string scr, const string tag_list, const string attr_exclude_list )  : c, pure, entrypoint='prittyfyXml';
+  dataset(KeyValueResultRecord) getTagOffsetValueDS(const string scr, const string tag_list )  : c, pure, entrypoint='getTagOffsetValueDS';
+END;

+ 26 - 0
plugins/eeproxies/lib_hktlib.eclmod

@@ -0,0 +1,26 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) hkt library */
+
+export HktLib := SERVICE : plugin('hkt')
+  unsigned4 HKT_SB(const string inval) : c, pure, entrypoint='hktHKT_SB', hole;
+  unsigned4 HKT_SU(const string inval) : c, pure, entrypoint='hktHKT_SU', hole;
+  unsigned4 HKT_P(const string inval) : c, pure, entrypoint='hktHKT_P', hole;
+  string    HKT_C(const string scr)  : c, pure, entrypoint='hktHKT_C';
+  string    HKT_CV(const string scr)  : c, pure, entrypoint='hktHKT_CV';
+END;

+ 29 - 0
plugins/eeproxies/lib_namelib.eclmod

@@ -0,0 +1,29 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) name library */
+
+export NameLib := SERVICE:plugin('name'),fold
+  string    FirstNameToToken(const string20 name) : c, pure, entrypoint='nameFirstNameToToken';
+  string20  TokenToFirstName(const string token) : c, pure, entrypoint='nameTokenToFirstName';
+  unsigned4 TokenToLength(const string name) : c, pure, entrypoint='nameTokenToLength';
+END;
+export fnstring := TYPE
+  export unsigned1 physicallength(const string s) := NameLib.TokenToLength(s);
+  export string20 load(const string s) := NameLib.TokenToFirstName(s);
+  export string store(string20 s) := NameLib.FirstNameToToken(s);
+END;

+ 31 - 0
plugins/eeproxies/lib_ofaclib.eclmod

@@ -0,0 +1,31 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) ofac library */
+
+export OfacSearchResultRecord := record
+  unsigned4 key;
+  real8 score;
+end;
+export OfacLib := SERVICE : plugin('ofac')
+  boolean IsLoaded() : c, entrypoint='ofacIsLoaded';
+  boolean Load(unsigned4 source, unsigned4 key, string givenName, string lastOrCompanyName, boolean isPerson, boolean last) : c, action,entrypoint='ofacLoad';
+  Unload() : c, action, entrypoint='ofacUnload';
+  dataset(OfacSearchResultRecord) Search(string name, real8 threshold, string1 searchType, unsigned4 source) : c, entrypoint='ofacSearch';
+  real8 personScore(string candidate, string givenName, string lastName) : c, pure, entrypoint='ofacPersonScore';
+  real8 companyScore(string candidate, string companyName) : c, pure, entrypoint='ofacCompanyScore';
+END;

+ 28 - 0
plugins/eeproxies/lib_ziplib.eclmod

@@ -0,0 +1,28 @@
+/*##############################################################################
+
+    HPCC SYSTEMS software Copyright (C) 2020 HPCC Systems® .
+
+    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.
+############################################################################## */
+
+/* Proxy plugin definition for (EE only) zip library */
+
+export ZipLib := SERVICE:plugin('zip'),fold
+  string21 ZipToGeo21(const string zip) : c,pure,entrypoint='zlZipToGeo21', hole;
+  string   ZipToCities(const string zip) : c,pure,entrypoint='zlZipToCities';
+  string2  ZipToState2(const string zip) : c,pure,entrypoint='zlZipToState2', hole;
+  string5  CityToZip5(const string state, const string city) : c, pure,entrypoint='zlCityToZip5';
+  set of integer4 ZipsWithinRadius (const string zip, real8 radius) : c,pure,entrypoint='zlZipSetWithinRadius',oldSetFormat;
+  set of integer4 ZipsWithinLatLongRadius (real8 latitude, real8 longitude, real8 radius) : c,pure,entrypoint='zlZipSetWithinLatLongRadius',oldSetFormat;
+  string   MSAToCityState(const string msa) : c,pure,entrypoint='zlMSAToCityState';
+END;

+ 6 - 6
plugins/proxies/CMakeLists.txt

@@ -13,12 +13,12 @@
 #    See the License for the specific language governing permissions and
 #    limitations under the License.
 ################################################################################
-
-install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_saltlib.ecllib DESTINATION plugins COMPONENT Runtime)
-install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_keylib.ecllib DESTINATION plugins COMPONENT Runtime)
-install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_metaphone.ecllib DESTINATION plugins COMPONENT Runtime)
-install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_thorlib.ecllib DESTINATION plugins COMPONENT Runtime)
-install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_word.ecllib DESTINATION plugins COMPONENT Runtime)
+set (proxies_out_dir "plugins")
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_saltlib.ecllib DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_keylib.ecllib DESTINATION  ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_metaphone.ecllib DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_thorlib.ecllib DESTINATION ${proxies_out_dir} COMPONENT Runtime)
+install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_word.ecllib DESTINATION ${proxies_out_dir} COMPONENT Runtime)
 
 IF (USE_OPENSSL)
 install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib_cryptolib.ecllib DESTINATION plugins COMPONENT Runtime)