@Override public void clearCatalog(final InternalTenantContext tenantContext) { if (!InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID.equals(tenantContext.getTenantRecordId())) { cacheController.remove(tenantContext.getTenantRecordId()); } }
private String getCacheKeyName(final String key, final InternalTenantContext internalContext) { final StringBuilder tenantKey = new StringBuilder(key); tenantKey.append(CacheControllerDispatcher.CACHE_KEY_SEPARATOR); tenantKey.append(internalContext.getTenantRecordId()); return tenantKey.toString(); }
@Override public void clearOverdueConfig(final InternalTenantContext tenantContext) { if (!InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID.equals(tenantContext.getTenantRecordId())) { cacheController.remove(tenantContext.getTenantRecordId()); } }
private String getUniqueValue(final List<String> values, final String msg, final InternalTenantContext tenantContext) { if (values.isEmpty()) { return null; } if (values.size() > 1) { throw new IllegalStateException(String.format("Unexpected number of values %d for %s and tenant %d", values.size(), msg, tenantContext.getTenantRecordId())); } return values.get(0); } }
@Override public OverdueConfig getOverdueConfig(final InternalTenantContext tenantContext) throws OverdueApiException { if (InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID.equals(tenantContext.getTenantRecordId())) { return defaultOverdueConfig; } // The cache loader might choke on some bad xml -- unlikely since we check its validity prior storing it, // but to be on the safe side;; try { final OverdueConfig overdueConfig = cacheController.get(tenantContext.getTenantRecordId(), cacheLoaderArgument); return (overdueConfig != null) ? overdueConfig : defaultOverdueConfig; } catch (final IllegalStateException e) { throw new OverdueApiException(ErrorCode.OVERDUE_INVALID_FOR_TENANT, tenantContext.getTenantRecordId()); } }
@Override public void invalidateCache(TenantKey key, final Object cookie, final InternalTenantContext tenantContext) { log.info("Invalidate overdue cache for tenantRecordId='{}'", tenantContext.getTenantRecordId()); overdueConfigCache.clearOverdueConfig(tenantContext); } }
@Override public void invalidateCache(TenantKey key, final Object cookie, final InternalTenantContext tenantContext) { log.info("Invalidate catalog cache for tenantRecordId='{}'", tenantContext.getTenantRecordId()); catalogCache.clearCatalog(tenantContext); } }
@Override public void invalidateCache(final TenantKey key, final Object cookie, final InternalTenantContext tenantContext) { log.info("Invalidate config cache for tenant {} ", tenantContext.getTenantRecordId()); cacheConfig.clearPerTenantConfig(tenantContext); } }
@Override public int hashCode() { int result = getAccountRecordId() != null ? getAccountRecordId().hashCode() : 0; result = 31 * result + (getTenantRecordId() != null ? getTenantRecordId().hashCode() : 0); return result; } }
@Override public void invalidateCache(TenantKey tenantKey, final Object cookie, final InternalTenantContext tenantContext) { final StringBuilder keyBuilder = new StringBuilder(tenantKey.toString()); if (cookie instanceof String) { keyBuilder.append((String) cookie); } keyBuilder.append(CacheControllerDispatcher.CACHE_KEY_SEPARATOR); keyBuilder.append(tenantContext.getTenantRecordId()); final String key = keyBuilder.toString(); log.info("Invalidate cache for tenant {} and key {} ", tenantContext.getTenantRecordId(), key); tenantKVCache.remove(key); } }
public InternalTenantContext createInternalTenantContext(final UUID accountId, final InternalTenantContext context) { final Long tenantRecordId = context.getTenantRecordId(); final Long accountRecordId = getAccountRecordIdSafe(accountId, ObjectType.ACCOUNT, context.getTenantRecordId()); return createInternalTenantContext(tenantRecordId, accountRecordId); }
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("InternalTenantContext"); sb.append("{accountRecordId=").append(getAccountRecordId()); sb.append(", tenantRecordId=").append(getTenantRecordId()); sb.append('}'); return sb.toString(); }
public PerTenantConfig getPerTenantConfig(final InternalTenantContext tenantContext) { final PerTenantConfig perTenantConfig = cacheController.get(tenantContext.getTenantRecordId(), cacheLoaderArgument); return perTenantConfig; }
public void clearPerTenantConfig(final InternalTenantContext tenantContext) { cacheController.remove(tenantContext.getTenantRecordId()); }
private UUID getTenantIdSafe(final InternalTenantContext context) { return nonEntityDao.retrieveIdFromObject(context.getTenantRecordId(), ObjectType.TENANT, objectIdCacheController); }
public void addTenantRecordIdMapping(final UUID objectId, final InternalTenantContext context) { tenantRecordIdMappings.put(objectId, context.getTenantRecordId()); }
@Override @Nullable public EffectiveSubscriptionInternalEvent apply(@Nullable final SubscriptionBaseTransition input) { return new DefaultEffectiveSubscriptionEvent((SubscriptionBaseTransitionData) input, ((DefaultSubscriptionBase) subscription).getAlignStartDate(), null, context.getAccountRecordId(), context.getTenantRecordId()); } }));
@BeforeMethod(groups = "fast") protected void beforeMethod() throws Exception { if (hasFailed()) { return; } cacheControllerDispatcher.clearAll(); multiTenantContext = Mockito.mock(InternalTenantContext.class); Mockito.when(multiTenantContext.getAccountRecordId()).thenReturn(456L); Mockito.when(multiTenantContext.getTenantRecordId()).thenReturn(99L); otherMultiTenantContext = Mockito.mock(InternalCallContext.class); Mockito.when(otherMultiTenantContext.getAccountRecordId()).thenReturn(123L); Mockito.when(otherMultiTenantContext.getTenantRecordId()).thenReturn(112233L); ((DefaultCatalogCache) catalogCache).setDefaultCatalog(); }
private StandaloneCatalogWithPriceOverride toStandaloneCatalogWithPriceOverride(final VersionedPluginCatalog pluginCatalog, final StandalonePluginCatalog input, final InternalTenantContext internalTenantContext) { final StandaloneCatalogMapper mapper = new StandaloneCatalogMapper(pluginCatalog.getCatalogName()); final StandaloneCatalog catalog = mapper.toStandaloneCatalog(input); final StandaloneCatalogWithPriceOverride result = new StandaloneCatalogWithPriceOverride(catalog, priceOverride, internalTenantContext.getTenantRecordId(), internalCallContextFactory); return result; } }
@BeforeMethod(groups = "fast") public void beforeMethod() throws Exception { if (hasFailed()) { return; } super.beforeMethod(); cacheControllerDispatcher.clearAll(); multiTenantContext = Mockito.mock(InternalTenantContext.class); Mockito.when(multiTenantContext.getAccountRecordId()).thenReturn(456L); Mockito.when(multiTenantContext.getTenantRecordId()).thenReturn(99L); otherMultiTenantContext = Mockito.mock(InternalCallContext.class); Mockito.when(otherMultiTenantContext.getAccountRecordId()).thenReturn(123L); Mockito.when(otherMultiTenantContext.getTenantRecordId()).thenReturn(112233L); }