Just started migration from CF2016 to Lucee 4.5 engine. Although I have enabled the cbi18n module, my application relies heavily on the the IBM icu4j Java i18n component. I have placed the latest icu4j-61.1.jar file with all dependencies in the /lib directory and loaded the needed components in the Application.cfc within the onApplicationStart() method. The Application.cfc file looks as follows:
// application start
public boolean function onApplicationStart(){
application.cbBootstrap = new coldbox.system.Bootstrap( COLDBOX_CONFIG_FILE, COLDBOX_APP_ROOT_PATH, COLDBOX_APP_KEY, COLDBOX_APP_MAPPING );
application.cbBootstrap.loadColdbox();
// Identify the absolute path to the resource bundles
var Application.rb_path = GetDirectoryFromPath(expandpath("/samovar/includes/i18n/rbundles/"));
var Application.rbFile1 = GetDirectoryFromPath(expandpath("/samovar/includes/i18n/rbundles/MenuRB.properties"));
var Application.rbFile2 = GetDirectoryFromPath(expandpath("/samovar/includes/i18n/rbundles/ScreenRB.properties"));
var Application.rbFile3 = GetDirectoryFromPath(expandpath("/samovar/includes/i18n/rbundles/ParamRB.properties"));
//var Application.Ulocale = createObject("java", "com.ibm.icu.util.ULocale" );
//var Application.icu4jTZ = createObject("java", "com.ibm.icu.util.TimeZone");
//var Application.Ucalendar = createObject("java", "com.ibm.icu.util.Calendar");
//var Application.icu4jDateFormat = createObject("java", "com.ibm.icu.text.DateFormat");
//var Application.icu4jDateFormatSymbols = createObject("java", "com.ibm.icu.text.DateFormatSymbols");
//var Application.msgFormat = createObject("java", "com.ibm.icu.text.MessageFormat");
//var Application.icu4jCollator = createObject("java", "com.ibm.icu.text.Collator");
var Application.rB = createObject("java", "java.util.PropertyResourceBundle");
var Application.fis = createObject("java", "java.io.FileInputStream");
var Application.StringUtils = createObject("java", "org.apache.commons.lang.StringEscapeUtils");
var Application.javaRB = createObject("component","samovar.includes.i18n.rbundles.javaRB");
return true;
}
When started, the Lucee engine fires an error (see attached) for all the com.ibm.icu classes despite the fact they all are properly accessible from the /lib/icu4j-61.1.jar file. This issue never occurred in my previous environment running Coldbox4.3 on the CF2016 engine. Any suggestions?