private SiddhiManager createMockSiddhiManager( String[] inputStreamDefinitions, String executionPlan) throws SiddhiParserException { SiddhiConfiguration siddhiConfig = new SiddhiConfiguration(); siddhiConfig.setSiddhiExtensions(SiddhiExtensionLoader.loadSiddhiExtensions()); SiddhiManager siddhiManager = new SiddhiManager(siddhiConfig); try { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); if (tenantId > -1) { DataSourceManager.getInstance().initTenant(tenantId); } List<CarbonDataSource> dataSources = EventProcessorValueHolder.getDataSourceService().getAllDataSources(); for (CarbonDataSource cds : dataSources) { try { if (cds.getDSObject() instanceof DataSource) { siddhiManager .getSiddhiContext() .addDataSource(cds.getDSMInfo().getName(), (DataSource) cds.getDSObject()); } } catch (Exception e) { log.error("Unable to add the datasource" + cds.getDSMInfo().getName(), e); } } } catch (DataSourceException e) { log.error("Unable to access the datasource service", e); } for (String streamDefinition : inputStreamDefinitions) { if (streamDefinition.trim().length() > 0) { siddhiManager.defineStream(streamDefinition); } } siddhiManager.addExecutionPlan(executionPlan); return siddhiManager; }
private SiddhiManager getSiddhiManagerFor( ExecutionPlanConfiguration executionPlanConfiguration, SiddhiConfiguration siddhiConfig, Map<String, InputHandler> inputHandlerMap) throws ExecutionPlanConfigurationException { SiddhiManager siddhiManager = new SiddhiManager(siddhiConfig); try { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); if (tenantId > -1) { DataSourceManager.getInstance().initTenant(tenantId); } List<CarbonDataSource> dataSources = EventProcessorValueHolder.getDataSourceService().getAllDataSources(); for (CarbonDataSource cds : dataSources) { try { if (cds.getDSObject() instanceof DataSource) { siddhiManager .getSiddhiContext() .addDataSource(cds.getDSMInfo().getName(), (DataSource) cds.getDSObject()); } } catch (Exception e) { log.error("Unable to add the datasource" + cds.getDSMInfo().getName(), e); } } } catch (DataSourceException e) { log.error("Unable to populate the data sources in Siddhi engine.", e); } int persistenceTimeInterval = 0; try { persistenceTimeInterval = Integer.parseInt( executionPlanConfiguration .getSiddhiConfigurationProperties() .get(EventProcessorConstants.SIDDHI_SNAPSHOT_INTERVAL)); } catch (NumberFormatException e) { log.error("Unable to parse snapshot time interval.", e); } if (persistenceTimeInterval > 0) { if (null == EventProcessorValueHolder.getPersistenceStore()) { if (EventProcessorValueHolder.getClusterInformation() == null) { try { String adminPassword = EventProcessorValueHolder.getUserRealm().getRealmConfiguration().getAdminPassword(); String adminUserName = EventProcessorValueHolder.getUserRealm().getRealmConfiguration().getAdminUserName(); ClusterInformation clusterInformation = new ClusterInformation(adminUserName, adminPassword); clusterInformation.setClusterName(CassandraPersistenceStore.CLUSTER_NAME); EventProcessorValueHolder.setClusterInformation(clusterInformation); } catch (UserStoreException e) { log.error("Unable to get realm configuration.", e); } } if (CassandraConnectionValidator.getInstance() .checkCassandraConnection( EventProcessorValueHolder.getClusterInformation().getUsername(), EventProcessorValueHolder.getClusterInformation().getPassword())) { Cluster cluster = EventProcessorValueHolder.getDataAccessService() .getCluster(EventProcessorValueHolder.getClusterInformation()); CassandraPersistenceStore casandraPersistenceStore = new CassandraPersistenceStore(cluster); EventProcessorValueHolder.setPersistenceStore(casandraPersistenceStore); } else { throw new ExecutionPlanConfigurationException( "Cannot connect to Cassandra. To run with embedded Cassandra enabled, start the server with command: ./wso2server.sh -Ddisable.cassandra.server.startup=false"); } } siddhiManager.setPersistStore(EventProcessorValueHolder.getPersistenceStore()); } return siddhiManager; }