public KylinUserManager(KylinConfig config) throws IOException { logger.info("Initializing KylinUserManager with config " + config); this.config = config; this.userMap = new CaseInsensitiveStringCache<>(config, "user"); this.crud = new CachedCrudAssist<ManagedUser>(getStore(), USER_ROOT, "", ManagedUser.class, userMap, false) { @Override protected ManagedUser initEntityAfterReload(ManagedUser user, String resourceName) { return user; } }; crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ManagedUserSyncListener(), "user"); }
public TableACLManager(KylinConfig config) throws IOException { logger.info("Initializing TableACLManager with config " + config); this.config = config; this.tableACLMap = new CaseInsensitiveStringCache<>(config, "table_acl"); this.crud = new CachedCrudAssist<TableACL>(getStore(), "/table_acl", "", TableACL.class, tableACLMap, true) { @Override protected TableACL initEntityAfterReload(TableACL acl, String resourceName) { acl.init(resourceName); return acl; } }; crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new TableACLSyncListener(), "table_acl"); }
private HybridManager(KylinConfig cfg) throws IOException { logger.info("Initializing HybridManager with config " + cfg); this.config = cfg; this.hybridMap = new CaseInsensitiveStringCache<HybridInstance>(config, "hybrid"); this.crud = new CachedCrudAssist<HybridInstance>(getStore(), ResourceStore.HYBRID_RESOURCE_ROOT, HybridInstance.class, hybridMap) { @Override protected HybridInstance initEntityAfterReload(HybridInstance hybridInstance, String resourceName) { hybridInstance.setConfig(config); return hybridInstance; // noop } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new HybridSyncListener(), "hybrid", "cube"); }
private void initExtFilter() throws IOException { this.extFilterMap = new CaseInsensitiveStringCache<>(config, "external_filter"); this.extFilterCrud = new CachedCrudAssist<ExternalFilterDesc>(getStore(), ResourceStore.EXTERNAL_FILTER_RESOURCE_ROOT, ExternalFilterDesc.class, extFilterMap) { @Override protected ExternalFilterDesc initEntityAfterReload(ExternalFilterDesc t, String resourceName) { return t; // noop } }; extFilterCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ExtFilterSyncListener(), "external_filter"); }
private ProjectManager(KylinConfig config) throws IOException { logger.info("Initializing ProjectManager with metadata url " + config); this.config = config; this.projectMap = new CaseInsensitiveStringCache<ProjectInstance>(config, "project"); this.l2Cache = new ProjectL2Cache(this); this.crud = new CachedCrudAssist<ProjectInstance>(getStore(), ResourceStore.PROJECT_RESOURCE_ROOT, ProjectInstance.class, projectMap) { @Override protected ProjectInstance initEntityAfterReload(ProjectInstance prj, String resourceName) { prj.init(); return prj; } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ProjectSyncListener(), "project"); }
private CubeDescManager(KylinConfig cfg) throws IOException { logger.info("Initializing CubeDescManager with config {}", cfg); this.config = cfg; this.cubeDescMap = new CaseInsensitiveStringCache<>(config, "cube_desc"); this.crud = new CachedCrudAssist<CubeDesc>(getStore(), ResourceStore.CUBE_DESC_RESOURCE_ROOT, CubeDesc.class, cubeDescMap) { @Override protected CubeDesc initEntityAfterReload(CubeDesc cubeDesc, String resourceName) { if (cubeDesc.isDraft()) throw new IllegalArgumentException(String.format(Locale.ROOT, CUBE_SHOULD_NOT_BE_DRAFT_MSG, cubeDesc.getName())); try { cubeDesc.init(config); } catch (Exception e) { logger.warn(String.format(Locale.ROOT, BROKEN_CUBE_MSG, cubeDesc.resourceName()), e); cubeDesc.addError(e.toString()); } return cubeDesc; } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new CubeDescSyncListener(), "cube_desc"); }
private TempStatementManager(KylinConfig cfg) throws IOException { this.config = cfg; this.tmpStatMap = new CaseInsensitiveStringCache<>(config, "temp_statement"); this.crud = new CachedCrudAssist<TempStatementEntity>(getStore(), ResourceStore.TEMP_STATMENT_RESOURCE_ROOT, TempStatementEntity.class, tmpStatMap) { @Override protected TempStatementEntity initEntityAfterReload(TempStatementEntity t, String resourceName) { return t; // noop } }; crud.reloadAll(); // touch lower level metadata before registering my listener Broadcaster.getInstance(config).registerListener(new TempStatementSyncListener(), "temp_statement"); }
private KafkaConfigManager(KylinConfig config) throws IOException { this.config = config; this.kafkaMap = new CaseInsensitiveStringCache<KafkaConfig>(config, "kafka"); this.crud = new CachedCrudAssist<KafkaConfig>(getStore(), ResourceStore.KAFKA_RESOURCE_ROOT, KafkaConfig.class, kafkaMap) { @Override protected KafkaConfig initEntityAfterReload(KafkaConfig t, String resourceName) { return t; // noop } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new KafkaSyncListener(), "kafka"); }
private void initSrcTable() throws IOException { this.srcTableMap = new CaseInsensitiveStringCache<>(config, "table"); this.srcTableCrud = new CachedCrudAssist<TableDesc>(getStore(), ResourceStore.TABLE_RESOURCE_ROOT, TableDesc.class, srcTableMap) { @Override protected TableDesc initEntityAfterReload(TableDesc t, String resourceName) { String prj = TableDesc.parseResourcePath(resourceName).getSecond(); t.init(config, prj); return t; } }; srcTableCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new SrcTableSyncListener(), "table"); }
private StreamingManager(KylinConfig config) throws IOException { this.config = config; this.streamingMap = new CaseInsensitiveStringCache<StreamingConfig>(config, "streaming"); this.crud = new CachedCrudAssist<StreamingConfig>(getStore(), ResourceStore.STREAMING_RESOURCE_ROOT, StreamingConfig.class, streamingMap) { @Override protected StreamingConfig initEntityAfterReload(StreamingConfig t, String resourceName) { return t; // noop } }; // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new StreamingSyncListener(), "streaming"); }
private CubeManager(KylinConfig cfg) throws IOException { logger.info("Initializing CubeManager with config {}", cfg); this.config = cfg; this.cubeMap = new CaseInsensitiveStringCache<CubeInstance>(config, "cube"); this.crud = new CachedCrudAssist<CubeInstance>(getStore(), ResourceStore.CUBE_RESOURCE_ROOT, CubeInstance.class, cubeMap) { @Override protected CubeInstance initEntityAfterReload(CubeInstance cube, String resourceName) { cube.init(config); for (CubeSegment segment : cube.getSegments()) { usedStorageLocation.put(segment.getUuid(), segment.getStorageLocationIdentifier()); } return cube; } }; this.crud.setCheckCopyOnWrite(true); // touch lower level metadata before registering my listener crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new CubeSyncListener(), "cube"); }
private void initSrcExt() throws IOException { this.srcExtMap = new CaseInsensitiveStringCache<>(config, "table_ext"); this.srcExtCrud = new CachedCrudAssist<TableExtDesc>(getStore(), ResourceStore.TABLE_EXD_RESOURCE_ROOT, TableExtDesc.class, srcExtMap) { @Override protected TableExtDesc initEntityAfterReload(TableExtDesc t, String resourceName) { // convert old tableExt json to new one if (t.getIdentity() == null) { t = convertOldTableExtToNewer(resourceName); } String prj = TableDesc.parseResourcePath(resourceName).getSecond(); t.init(prj); return t; } }; srcExtCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new SrcTableExtSyncListener(), "table_ext"); }
protected void init(KylinConfig cfg) throws IOException { this.config = cfg; this.dataModelDescMap = new CaseInsensitiveStringCache<>(config, "data_model"); this.crud = new CachedCrudAssist<DataModelDesc>(getStore(), ResourceStore.DATA_MODEL_DESC_RESOURCE_ROOT, getDataModelImplClass(), dataModelDescMap) { @Override protected DataModelDesc initEntityAfterReload(DataModelDesc model, String resourceName) { String prj = ProjectManager.getInstance(config).getProjectOfModel(model.getName()).getName(); if (!model.isDraft()) { model.init(config, getAllTablesMap(prj), getModels(prj), true); } return model; } }; // touch lower level metadata before registering model listener TableMetadataManager.getInstance(config); crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new DataModelSyncListener(), "data_model"); }
this.executableOutputDigestCrud.setCheckCopyOnWrite(true); this.executableOutputDigestCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new JobSyncListener(), "execute"); Broadcaster.getInstance(config).registerListener(new JobOutputSyncListener(), "execute_output");
@Test public void testNotifyNonStatic() throws IOException { Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig()); final AtomicInteger i = new AtomicInteger(0); broadcaster.registerStaticListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { throw new IllegalStateException("Should not notify static listener."); } }, "test"); broadcaster.registerListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(1, i.incrementAndGet()); } }, "test"); broadcaster.notifyNonStaticListener("test", Event.UPDATE, ""); broadcaster.stopAnnounce(); Broadcaster.staticListenerMap.clear(); }
@Test public void testBasics() throws IOException { Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig()); final AtomicInteger i = new AtomicInteger(0); broadcaster.registerStaticListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(2, i.incrementAndGet()); } }, "test"); broadcaster.registerListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(1, i.incrementAndGet()); } }, "test"); broadcaster.notifyListener("test", Event.UPDATE, ""); broadcaster.stopAnnounce(); Broadcaster.staticListenerMap.clear(); }
public TableACLManager(KylinConfig config) throws IOException { logger.info("Initializing TableACLManager with config " + config); this.config = config; this.tableACLMap = new CaseInsensitiveStringCache<>(config, "table_acl"); this.crud = new CachedCrudAssist<TableACL>(getStore(), "/table_acl", "", TableACL.class, tableACLMap, true) { @Override protected TableACL initEntityAfterReload(TableACL acl, String resourceName) { acl.init(resourceName); return acl; } }; crud.reloadAll(); Broadcaster.getInstance(config).registerListener(new TableACLSyncListener(), "table_acl"); }
private void initExtFilter() throws IOException { this.extFilterMap = new CaseInsensitiveStringCache<>(config, "external_filter"); this.extFilterCrud = new CachedCrudAssist<ExternalFilterDesc>(getStore(), ResourceStore.EXTERNAL_FILTER_RESOURCE_ROOT, ExternalFilterDesc.class, extFilterMap) { @Override protected ExternalFilterDesc initEntityAfterReload(ExternalFilterDesc t, String resourceName) { return t; // noop } }; extFilterCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new ExtFilterSyncListener(), "external_filter"); }
private TempStatementManager(KylinConfig cfg) throws IOException { this.config = cfg; this.tmpStatMap = new CaseInsensitiveStringCache<>(config, "temp_statement"); this.crud = new CachedCrudAssist<TempStatementEntity>(getStore(), ResourceStore.TEMP_STATMENT_RESOURCE_ROOT, TempStatementEntity.class, tmpStatMap) { @Override protected TempStatementEntity initEntityAfterReload(TempStatementEntity t, String resourceName) { return t; // noop } }; crud.reloadAll(); // touch lower level metadata before registering my listener Broadcaster.getInstance(config).registerListener(new TempStatementSyncListener(), "temp_statement"); }
private void initSrcTable() throws IOException { this.srcTableMap = new CaseInsensitiveStringCache<>(config, "table"); this.srcTableCrud = new CachedCrudAssist<TableDesc>(getStore(), ResourceStore.TABLE_RESOURCE_ROOT, TableDesc.class, srcTableMap) { @Override protected TableDesc initEntityAfterReload(TableDesc t, String resourceName) { String prj = TableDesc.parseResourcePath(resourceName).getSecond(); t.init(config, prj); return t; } }; srcTableCrud.reloadAll(); Broadcaster.getInstance(config).registerListener(new SrcTableSyncListener(), "table"); }