BackgroundTaskThreadLocalManagerImpl implements BackgroundTaskThreadLocalManager { @Override public Map<String, Serializable> getThreadLocalValues() { Map<String, Serializable> threadLocalValues = new HashMap<>(); threadLocalValues.put( "clusterInvoke", ClusterInvokeThreadLocal.isEnabled()); threadLocalValues.put("companyId", CompanyThreadLocal.getCompanyId()); threadLocalValues.put( "defaultLocale", LocaleThreadLocal.getDefaultLocale()); threadLocalValues.put("groupId", GroupThreadLocal.getGroupId()); threadLocalValues.put("principalName", PrincipalThreadLocal.getName()); threadLocalValues.put( "siteDefaultLocale", LocaleThreadLocal.getSiteDefaultLocale()); threadLocalValues.put( "themeDisplayLocale", LocaleThreadLocal.getThemeDisplayLocale()); return threadLocalValues; }  @Override void deserializeThreadLocals(
		Map<String, Serializable> taskContextMap); @Override Map<String, Serializable> getThreadLocalValues(); @Override void serializeThreadLocals(
		Map<String, Serializable> taskContextMap); @Override void setThreadLocalValues(
		Map<String, Serializable> threadLocalValues);  }
@Test public void testGetThreadLocalValues() { initalizeThreadLocals(); assertThreadLocalValues( backgroundTaskThreadLocalManagerImpl.getThreadLocalValues()); }