Java 类com.datastax.driver.core.RegularStatement 实例源码
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
@Override
public void removeAccessTokenUsingRefreshToken(OAuth2RefreshToken refreshToken) {
String tokenValue = refreshToken.getValue();
// Lookup RefreshTokenToAccessToken table for locating access token
RefreshTokenToAccessToken refreshTokenToAccessToken = refreshTokenToAccessTokenRepository.findOne(tokenValue);
if (refreshTokenToAccessToken != null) {
String accessTokenKey = refreshTokenToAccessToken.getAccessTokenKey();
AccessToken accessToken = accessTokenRepository.findOne(accessTokenKey);
String jsonOAuth2AccessToken = accessToken.getoAuth2AccessToken();
OAuth2AccessToken oAuth2AccessToken = OAuthUtil.deserializeOAuth2AccessToken(jsonOAuth2AccessToken);
// Delete access token from all related tables
List<RegularStatement> statementList = prepareRemoveAccessTokenStatements(oAuth2AccessToken);
// Delete from RefreshTokenToAccessToken table
Delete refreshTokenToAccessTokenDelete = CassandraTemplate.createDeleteQuery(RefreshTokenToAccessToken.TABLE, refreshTokenToAccessToken, null, cassandraTemplate.getConverter());
statementList.add(refreshTokenToAccessTokenDelete);
Batch batch = QueryBuilder.batch(statementList.toArray(new RegularStatement[statementList.size()]));
cassandraTemplate.execute(batch);
}
}
项目:ibm-performance-monitor
文件:ProfilingUtilities.java
/**
* Get the name of a statement.
*
* @param arg0 The statement.
* @return The name used for logging.
*/
public static String getStatementName( Statement arg0 ) {
String returnValue = "unknown";
if ( arg0 instanceof RegularStatement ) {
returnValue = ( (RegularStatement) arg0 ).getQueryString();
} else if ( arg0 instanceof BoundStatement ) {
PreparedStatement preparedStatement = ( (BoundStatement) arg0 ).preparedStatement();
returnValue = preparedStatement.getQueryString();
} else if ( arg0 instanceof BatchStatement ) {
StringBuilder value = new StringBuilder( "Batch : " );
Collection<Statement> statements = ( (BatchStatement) arg0 ).getStatements();
boolean first = true;
for ( Statement statement : statements ) {
if ( first ) {
first = false;
} else {
value.append( ", " );
}
String statementName = getStatementName( statement );
value.append( statementName );
}
returnValue = value.toString();
}
return returnValue;
}
项目:Camel
文件:CassandraProducer.java
/**
* Execute CQL as PreparedStatement
*/
private ResultSet executePreparedStatement(Session session, Object messageCql, Object[] cqlParams) {
ResultSet resultSet;
PreparedStatement lPreparedStatement;
if (messageCql == null) {
// URI CQL
lPreparedStatement = this.preparedStatement;
} else if (messageCql instanceof String) {
// Message CQL
lPreparedStatement = getEndpoint().prepareStatement((String) messageCql);
} else if (messageCql instanceof RegularStatement) {
// Message Statement
lPreparedStatement = getEndpoint().getSession().prepare((RegularStatement) messageCql);
} else {
throw new IllegalArgumentException("Invalid " + CassandraConstants.CQL_QUERY + " header");
}
if (isEmpty(cqlParams)) {
resultSet = session.execute(lPreparedStatement.bind());
} else {
resultSet = session.execute(lPreparedStatement.bind(cqlParams));
}
return resultSet;
}
项目:realtime-analytics
文件:MetricCassandraCollector.java
private void runBatchInsert(List<Insert> insertRequest) {
try {
Batch batch;
if (config.getLoggedBatch()) {
batch = QueryBuilder.batch(insertRequest
.toArray(new RegularStatement[insertRequest.size()]));
} else {
batch = QueryBuilder.unloggedBatch(insertRequest
.toArray(new RegularStatement[insertRequest.size()]));
}
totalCassandraInsertRequest.addAndGet(insertRequest.size());
ResultSetFuture future = cassandraSession.executeAsync(batch);
CallBackListener listener = new CallBackListener(future, null);
future.addListener(listener, pool);
incrementBatchInsertCounter();
pendingRequestCounter.incrementAndGet();
} catch (Throwable ex) {
LOGGER.error("Error publising metrics in MetricCassandraCollector:" + ex.getMessage());
cassandraErrorCount.increment();
registerError(ex);
} finally {
insertRequest.clear();
}
}
项目:realtime-analytics
文件:MetricCassandraCollector.java
private void runBatchUpdate(List<Update> updateRequest) {
try {
Batch batch;
if (config.getLoggedBatch()) {
batch = QueryBuilder.batch(updateRequest
.toArray(new RegularStatement[updateRequest.size()]));
} else {
batch = QueryBuilder.unloggedBatch(updateRequest
.toArray(new RegularStatement[updateRequest.size()]));
}
totalCassandraUpdateRequest.addAndGet(updateRequest.size());
ResultSetFuture future = cassandraSession.executeAsync(batch);
CallBackListener listener = new CallBackListener(future, null);
future.addListener(listener, pool);
incrementBatchUpdateCounter();
pendingRequestCounter.incrementAndGet();
} catch (Throwable ex) {
LOGGER.error("Error publising metrics in MetricCassandraCollector:" + ex.getMessage());
cassandraErrorCount.increment();
registerError(ex);
} finally {
updateRequest.clear();
}
}
项目:newts
文件:CassandraIndexer.java
@Override
public void delete(final Context context, final Resource resource) {
final Timer.Context ctx = m_deleteTimer.time();
final ConsistencyLevel writeConsistency = m_contextConfigurations.getWriteConsistency(context);
final List<RegularStatement> statements = Lists.newArrayList();
definitelyUnindexResource(statements, context, resource, writeConsistency);
definitelyUnindexResourceAttributes(statements, context, resource, writeConsistency);
definitelyRemoveMetricName(statements, context, resource, writeConsistency);
try {
if (!statements.isEmpty()) {
m_session.execute(batch(statements.toArray(new RegularStatement[statements.size()])));
}
m_cache.delete(context, resource);
} finally {
ctx.stop();
}
}
项目:pinpoint
文件:CassandraStatementExecuteQueryInterceptor.java
private String retrieveSql(Object args0) {
String sql;
if (args0 instanceof BoundStatement) {
sql = ((BoundStatement) args0).preparedStatement().getQueryString();
} else if (args0 instanceof RegularStatement) {
sql = ((RegularStatement) args0).getQueryString();
} else if (args0 instanceof StatementWrapper) {
// method to get wrapped statement is package-private, skip.
sql = null;
} else if (args0 instanceof BatchStatement) {
// we could unroll all the batched statements and append ; between them if need be but it could be too long.
sql = null;
} else if (args0 instanceof String) {
sql = (String) args0;
} else {
sql = null;
}
return sql;
}
项目:lucidity
文件:CassandraEntityStore.java
private Collection<RegularStatement> diffSet(String table, String column, Clause whereClause, Set<?> past,
Set<?> present) {
List<RegularStatement> queries = Lists.newArrayList();
Set<?> removes = Sets.newHashSet(past);
removes.removeAll(present);
if (!removes.isEmpty()) {
queries.add(QueryBuilder.update(table).with(removeAll(column, removes)).where(whereClause));
}
Set<?> adds = Sets.newHashSet(present);
adds.removeAll(past);
if (!adds.isEmpty()) {
queries.add(QueryBuilder.update(table).with(addAll(column, adds)).where(whereClause));
}
return queries;
}
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
@Override
public void storeRefreshToken(OAuth2RefreshToken refreshToken, OAuth2Authentication authentication) {
List<RegularStatement> statementList = new ArrayList<RegularStatement>();
byte[] serializedRefreshToken = SerializationUtils.serialize(refreshToken);
ByteBuffer bufferedRefreshToken = ByteBuffer.wrap(serializedRefreshToken);
byte[] serializedAuthentication = SerializationUtils.serialize(authentication);
ByteBuffer bufferedAuthentication = ByteBuffer.wrap(serializedAuthentication);
WriteOptions refreshWriteOptions = new WriteOptions();
if (refreshToken instanceof ExpiringOAuth2RefreshToken) {
ExpiringOAuth2RefreshToken expiringRefreshToken = (ExpiringOAuth2RefreshToken) refreshToken;
Date expiration = expiringRefreshToken.getExpiration();
if (expiration != null) {
int seconds = Long.valueOf((expiration.getTime() - System.currentTimeMillis()) / 1000L).intValue();
refreshWriteOptions.setTtl(seconds);
}
}
// Insert into RefreshToken table
Insert accessInsert = CassandraTemplate.createInsertQuery(RefreshToken.TABLE, new RefreshToken(refreshToken.getValue(), bufferedRefreshToken), refreshWriteOptions, cassandraTemplate.getConverter());
statementList.add(accessInsert);
// Insert into RefreshTokenAuthentication table
Insert authInsert = CassandraTemplate.createInsertQuery(RefreshTokenAuthentication.TABLE, new RefreshTokenAuthentication(refreshToken.getValue(), bufferedAuthentication), refreshWriteOptions, cassandraTemplate.getConverter());
statementList.add(authInsert);
Batch batch = QueryBuilder.batch(statementList.toArray(new RegularStatement[statementList.size()]));
cassandraTemplate.execute(batch);
}
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
@Override
public void removeRefreshToken(OAuth2RefreshToken token) {
String tokenValue = token.getValue();
List<RegularStatement> statementList = new ArrayList<RegularStatement>();
// Delete from RefreshToken table
statementList.add(prepareDeleteByPrimaryKeyRegularStatement(RefreshToken.class, tokenValue));
// Delete from RefreshTokenAuthentication table
statementList.add(prepareDeleteByPrimaryKeyRegularStatement(RefreshTokenAuthentication.class, tokenValue));
// Delete from RefreshTokenToAccessToken table
statementList.add(prepareDeleteByPrimaryKeyRegularStatement(RefreshTokenToAccessToken.class, tokenValue));
Batch batch = QueryBuilder.batch(statementList.toArray(new RegularStatement[statementList.size()]));
cassandraTemplate.execute(batch);
}
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
private RegularStatement prepareDeleteByPrimaryKeyRegularStatement(Class<?> repositoryClass, String primaryKeyValue) {
RegularStatement deleteRegularStatement;
try {
deleteRegularStatement = QueryBuilder.delete().from(repositoryClass.getDeclaredField("TABLE").get(null).toString()).where(QueryBuilder.eq(cassandraMappingContext.getPersistentEntity(repositoryClass).getIdProperty().getColumnName().toCql(), primaryKeyValue));
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {
logger.error("Error preparing delete statement for repository {}.", repositoryClass.getSimpleName());
throw new RuntimeException(e);
}
return deleteRegularStatement;
}
项目:ibm-performance-monitor
文件:ProfiledSessionTest.java
@Test
public void testPrepareRegularStatement() {
RegularStatement statement = Mockito.mock( RegularStatement.class );
PreparedStatement prepare = session.prepare( statement );
Mockito.verify( mock ).prepare( statement );
assertThat( prepare, CoreMatchers.instanceOf( ProfiledPreparedStatement.class ) );
}
项目:ibm-performance-monitor
文件:ProfiledSessionTest.java
@Test
public void testPrepareAsyncRegularStatement() {
RegularStatement statement = Mockito.mock( RegularStatement.class );
ListenableFuture<PreparedStatement> prepare = session.prepareAsync( statement );
Mockito.verify( mock ).prepareAsync( statement );
assertThat( prepare, CoreMatchers.instanceOf( ProfiledListenableFutureForPreparedStatement.class ) );
}
项目:gcplot
文件:CassandraGCEventRepository.java
protected RegularStatement addStatement(GCEvent event) {
return (RegularStatement) QueryBuilder.insertInto(TABLE_NAME).value("id", event.id() != null ? UUID.fromString(event.id()) : uuid())
.value("parent_id", event.parentEvent().isPresent() ? UUID.fromString(event.parentEvent().orElse(null)) : null)
.value("analyse_id", UUID.fromString(event.analyseId()))
.value("bucket_id", event.bucketId())
.value("date", event.occurred().toString(DATE_PATTERN))
.value("jvm_id", event.jvmId())
.value("description", event.description())
.value("tmstm", event.timestamp())
.value("written_at", UUIDGen.getTimeUUID(event.occurred().getMillis()))
.value("occurred", event.occurred().getMillis())
.value("cause", event.cause().type())
.value("properties", event.properties())
.value("vm_event_type", event.vmEventType().type())
.value("capacity", Arrays.asList(event.capacity().usedBefore(), event.capacity().usedAfter(), event.capacity().total()))
.value("total_capacity", Arrays.asList(event.totalCapacity().usedBefore(), event.totalCapacity().usedAfter(), event.totalCapacity().total()))
.value("pause_mu", event.pauseMu())
.value("user_time", event.user())
.value("sys_time", event.sys())
.value("real_time", event.real())
.value("phase", event.phase().type())
.value("generations", EnumSetUtils.encode(event.generations()))
.value("concurrency", event.concurrency().type())
.value("gen_cap_before", processKeyMap(event.capacityByGeneration(), Generation::type, Capacity::usedBefore))
.value("gen_cap_after", processKeyMap(event.capacityByGeneration(), Generation::type, Capacity::usedAfter))
.value("gen_cap_total", processKeyMap(event.capacityByGeneration(), Generation::type, Capacity::total))
.value("ext", event.ext()).setConsistencyLevel(ConsistencyLevel.ONE);
}
项目:gcplot
文件:CassandraObjectsAgesRepository.java
protected RegularStatement addStatement(ObjectsAges oa) {
return QueryBuilder.insertInto(TABLE_NAME)
.value("analyse_id", UUID.fromString(oa.analyseId()))
.value("occurred", oa.occurred().toDate())
.value("written_at", UUIDGen.getTimeUUID(oa.occurred().getMillis()))
.value("jvm_id", oa.jvmId())
.value("desired_sv_size", oa.desiredSurvivorSize())
.value("occupied", oa.occupied())
.value("total", oa.total())
.value("ext", oa.ext());
}
项目:Camel
文件:CassandraUtils.java
/**
* Apply consistency level if provided, else leave default.
*/
public static <T extends RegularStatement> T applyConsistencyLevel(T statement, ConsistencyLevel consistencyLevel) {
if (consistencyLevel != null) {
statement.setConsistencyLevel(consistencyLevel);
}
return statement;
}
项目:newts
文件:CassandraIndexer.java
private void definitelyUnindexResource(List<RegularStatement> statement, Context context, Resource resource, ConsistencyLevel writeConsistencyLevel) {
for (String s : m_resourceIdSplitter.splitIdIntoElements(resource.getId())) {
RegularStatement delete = QueryBuilder.delete()
.from(Constants.Schema.T_TERMS)
.where(QueryBuilder.eq(Constants.Schema.C_TERMS_CONTEXT, context.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_FIELD, Constants.DEFAULT_TERM_FIELD))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_VALUE, s))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_RESOURCE, resource.getId()));
delete.setConsistencyLevel(writeConsistencyLevel);
statement.add(delete);
}
if (m_options.isHierarchicalIndexingEnabled()) {
recursivelyUnindexResourceElements(statement, context, resource.getId(), writeConsistencyLevel);
}
}
项目:newts
文件:CassandraIndexer.java
private void definitelyUnindexResourceAttributes(List<RegularStatement> statement, Context context, Resource resource, ConsistencyLevel writeConsistency) {
if (!resource.getAttributes().isPresent()) {
return;
}
for (Entry<String, String> field : resource.getAttributes().get().entrySet()) {
// Search unindexing
RegularStatement delete = QueryBuilder.delete().from(Constants.Schema.T_TERMS)
.where(QueryBuilder.eq(Constants.Schema.C_TERMS_CONTEXT, context.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_FIELD, Constants.DEFAULT_TERM_FIELD))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_VALUE, field.getValue()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_RESOURCE, resource.getId()));
delete.setConsistencyLevel(writeConsistency);
statement.add(delete);
delete = QueryBuilder.delete().from(Constants.Schema.T_TERMS)
.where(QueryBuilder.eq(Constants.Schema.C_TERMS_CONTEXT, context.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_FIELD, field.getKey()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_VALUE, field.getValue()))
.and(QueryBuilder.eq(Constants.Schema.C_TERMS_RESOURCE, resource.getId()));
delete.setConsistencyLevel(writeConsistency);
statement.add(delete);
// Storage
delete = QueryBuilder.delete().from(Constants.Schema.T_ATTRS)
.where(QueryBuilder.eq(Constants.Schema.C_ATTRS_CONTEXT, context.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_ATTRS_RESOURCE, resource.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_ATTRS_ATTR, field.getKey()));
delete.setConsistencyLevel(writeConsistency);
statement.add(delete);
}
}
项目:newts
文件:CassandraIndexer.java
private void definitelyRemoveMetricName(List<RegularStatement> statement, Context context, Resource resource, ConsistencyLevel writeConsistency) {
RegularStatement delete = QueryBuilder.delete().from(Constants.Schema.T_METRICS)
.where(QueryBuilder.eq(Constants.Schema.C_METRICS_CONTEXT, context.getId()))
.and(QueryBuilder.eq(Constants.Schema.C_METRICS_RESOURCE, resource.getId()));
delete.setConsistencyLevel(writeConsistency);
statement.add(delete);
}
项目:newts
文件:CassandraIndexer.java
@Override
public RegularStatement toStatement() {
LOG.trace("Inserting metric in context: '{}' with resource id: '{}' with name: '{}'",
m_context, m_resourceId, m_metric);
return insertInto(Constants.Schema.T_METRICS)
.value(Constants.Schema.C_METRICS_CONTEXT, m_context.getId())
.value(Constants.Schema.C_METRICS_RESOURCE, m_resourceId)
.value(Constants.Schema.C_METRICS_NAME, m_metric)
.using(ttl(m_ttl));
}
项目:newts
文件:CassandraIndexer.java
@Override
public RegularStatement toStatement() {
LOG.trace("Inserting attribute in context: '{}' with resource id: '{}' with name: '{}' and value: '{}'",
m_context, m_resourceId, m_field, m_value);
return insertInto(Constants.Schema.T_ATTRS)
.value(Constants.Schema.C_ATTRS_CONTEXT, m_context.getId())
.value(Constants.Schema.C_ATTRS_RESOURCE, m_resourceId)
.value(Constants.Schema.C_ATTRS_ATTR, m_field)
.value(Constants.Schema.C_ATTRS_VALUE, m_value)
.using(ttl(m_ttl));
}
项目:kaa
文件:CassandraLogEventDao.java
private Batch prepareBatch(RegularStatement... statement) {
Batch batch;
if (batchType != null && batchType.equals(CassandraBatchType.UNLOGGED)) {
batch = QueryBuilder.unloggedBatch(statement);
} else {
batch = QueryBuilder.batch(statement);
}
batch.setConsistencyLevel(getWriteConsistencyLevel());
return batch;
}
项目:pinpoint
文件:CassandraPreparedStatementCreateInterceptor.java
@Override
protected void prepareAfterTrace(Object target, Object[] args, Object result, Throwable throwable) {
final boolean success = InterceptorUtils.isSuccess(throwable);
if (success) {
if (target instanceof DatabaseInfoAccessor) {
// set databaseInfo to PreparedStatement only when
// preparedStatement is generated successfully.
DatabaseInfo databaseInfo = ((DatabaseInfoAccessor) target)._$PINPOINT$_getDatabaseInfo();
if (databaseInfo != null) {
if (result instanceof DatabaseInfoAccessor) {
((DatabaseInfoAccessor) result)._$PINPOINT$_setDatabaseInfo(databaseInfo);
}
}
}
if (result instanceof ParsingResultAccessor) {
String sql;
if (args[0] instanceof RegularStatement) {
sql = ((RegularStatement) args[0]).getQueryString();
} else {
// we have string
sql = (String) args[0];
}
ParsingResult parsingResult = traceContext.parseSql(sql);
if (parsingResult != null) {
((ParsingResultAccessor) result)._$PINPOINT$_setParsingResult(parsingResult);
} else {
if (logger.isErrorEnabled()) {
logger.error("sqlParsing fail. parsingResult is null sql:{}", sql);
}
}
}
}
}
项目:lucidity
文件:CassandraEntityStore.java
private Collection<RegularStatement> diffCollection(String table, String column, Clause whereClause, Object past, Object present) {
if (past instanceof Set<?>) {
return diffSet(table, column, whereClause, (Set<?>) past, (Set<?>) present);
}
else if (past instanceof Map<?, ?>) {
return diffMap(table, column, whereClause, (Map<?, ?>) past, (Map<?, ?>) present);
}
else {
throw new RuntimeException("unknown collection type!");
}
}
项目:lucidity
文件:CassandraEntityStore.java
private Collection<RegularStatement> diffMap(String table, String column, Clause whereClause, Map<?, ?> past,
Map<?, ?> present) {
List<RegularStatement> queries = Lists.newArrayList();
Set<?> removed = Sets.newHashSet(past.keySet());
removed.removeAll(present.keySet());
if (!removed.isEmpty()) {
Delete.Selection delete = QueryBuilder.delete();
for (Object o : removed) {
delete.mapElt(column, o);
}
queries.add(delete.from(table).where(whereClause));
}
Set<Entry<?, ?>> changed = Sets.<Entry<?, ?>> newHashSet(present.entrySet());
changed.removeAll(past.entrySet());
if (!changed.isEmpty()) {
Update update = QueryBuilder.update(table);
for (Entry<?, ?> entry : changed) {
update.with(QueryBuilder.put(column, entry.getKey(), entry.getValue()));
}
queries.add(update.where(whereClause));
}
return queries;
}
项目:blueflood
文件:IOContainerTest.java
@Before
public void setup() throws Exception {
// mock DatastaxIO.getSession() & Session
PowerMockito.mockStatic( DatastaxIO.class );
Session mockSession = mock( Session.class );
when( DatastaxIO.getSession()).thenReturn(mockSession);
PreparedStatement mockPreparedStatement = mock( PreparedStatement.class );
when( mockSession.prepare( any( RegularStatement.class ) ) ).thenReturn( mockPreparedStatement );
when( mockSession.prepare( anyString() ) ).thenReturn(mockPreparedStatement);
when( mockPreparedStatement.setConsistencyLevel(any(ConsistencyLevel.class)) ).thenReturn( mockPreparedStatement );
}
项目:atlas-deer
文件:DatastaxCassandraOrganisationStore.java
protected DatastaxCassandraOrganisationStore(
Session session,
ConsistencyLevel writeConsistency,
ConsistencyLevel readConsistency,
OrganisationUriStore uriStore,
MetricRegistry metricRegistry,
String metricPrefix
) {
this.session = checkNotNull(session);
this.readConsistency = checkNotNull(readConsistency);
this.serializer = new OrganisationSerializer();
this.writeConsistency = checkNotNull(writeConsistency);
this.organisationUriStore = uriStore;
RegularStatement statement = select(
PRIMARY_KEY_COLUMN,
DATA_COLUMN
)
.from(ORGANISATION_TABLE)
.where(in(PRIMARY_KEY_COLUMN, bindMarker(KEYS)));
statement.setFetchSize(Integer.MAX_VALUE);
selectStatement = session.prepare(statement);
rowUpdate = session.prepare(update(ORGANISATION_TABLE)
.where(eq(PRIMARY_KEY_COLUMN, bindMarker(ORGANISATION_ID)))
.with(set(DATA_COLUMN, bindMarker(DATA))))
.setConsistencyLevel(writeConsistency);
this.metricRegistry = metricRegistry;
this.writeMetricPrefix = metricPrefix + "write.";
}
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
@Override
public void removeAccessToken(OAuth2AccessToken token) {
List<RegularStatement> statementList = prepareRemoveAccessTokenStatements(token);
Batch batch = QueryBuilder.batch(statementList.toArray(new RegularStatement[statementList.size()]));
cassandraTemplate.execute(batch);
}
项目:spring-oauth2-cassandra-token-store
文件:CassandraTokenStore.java
private List<RegularStatement> prepareRemoveAccessTokenStatements(OAuth2AccessToken token) {
//String tokenId = token.getValue();
String tokenValue = token.getValue();
String jsonOAuth2AccessToken = OAuthUtil.serializeOAuth2AccessToken(token);
List<RegularStatement> statementList = new ArrayList<RegularStatement>();
// Delete from AccessToken table
RegularStatement accessTokenDelete = prepareDeleteByPrimaryKeyRegularStatement(AccessToken.class, tokenValue);
statementList.add(accessTokenDelete);
// Lookup Authentication table for further deleting from AuthenticationToAccessToken table
Authentication authentication = authenticationRepository.findOne(tokenValue);
if (authentication != null) {
ByteBuffer bufferedOAuth2Authentication = authentication.getoAuth2Authentication();
byte[] serializedOAuth2Authentication = new byte[bufferedOAuth2Authentication.remaining()];
bufferedOAuth2Authentication.get(serializedOAuth2Authentication);
OAuth2Authentication oAuth2Authentication = SerializationUtils.deserialize(serializedOAuth2Authentication);
String clientId = oAuth2Authentication.getOAuth2Request().getClientId();
// Delete from Authentication table
RegularStatement authenticationDelete = prepareDeleteByPrimaryKeyRegularStatement(Authentication.class, tokenValue);
statementList.add(authenticationDelete);
// Delete from AuthenticationToAccessToken table
RegularStatement authToAccessDelete = prepareDeleteByPrimaryKeyRegularStatement(AuthenticationToAccessToken.class, authenticationKeyGenerator.extractKey(oAuth2Authentication));
statementList.add(authToAccessDelete);
// Delete from UsernameToAccessToken table
Optional<UsernameToAccessToken> optionalUsernameToAccessToken = usernameToAccessTokenRepository.findByKeyAndOAuth2AccessToken(OAuthUtil.getApprovalKey(clientId, oAuth2Authentication.getName()), jsonOAuth2AccessToken);
optionalUsernameToAccessToken.ifPresent(usernameToAccessToken -> {
Delete usernameToAccessDelete = CassandraTemplate.createDeleteQuery(UsernameToAccessToken.TABLE, usernameToAccessToken, null, cassandraTemplate.getConverter());
statementList.add(usernameToAccessDelete);
});
// Delete from ClientIdToAccessToken table
Optional<ClientIdToAccessToken> optionalClientIdToAccessToken = clientIdToAccessTokenRepository.findByKeyAndOAuth2AccessToken(clientId, jsonOAuth2AccessToken);
optionalClientIdToAccessToken.ifPresent(clientIdToAccessToken -> {
Delete clientIdToAccessDelete = CassandraTemplate.createDeleteQuery(ClientIdToAccessToken.TABLE, clientIdToAccessToken, null, cassandraTemplate.getConverter());
statementList.add(clientIdToAccessDelete);
});
}
return statementList;
}
项目:brave-cassandra
文件:TracingSession.java
@Override public ListenableFuture<PreparedStatement> prepareAsync(RegularStatement statement) {
return delegate.prepareAsync(statement);
}
项目:zipkin
文件:CassandraSpanConsumer.java
private RegularStatement maybeUseTtl(Insert value) {
return indexTtl == null
? value
: value.using(QueryBuilder.ttl(QueryBuilder.bindMarker("ttl_")));
}
项目:gcplot
文件:AbstractVMEventsCassandraRepository.java
@Override
public void add(List<T> events) {
connector.session().execute(
QueryBuilder.unloggedBatch(events.stream().map(this::addStatement).toArray(RegularStatement[]::new)).setIdempotent(true));
}
项目:gcplot
文件:AbstractVMEventsCassandraRepository.java
@Override
public void addAsync(List<T> events) {
connector.session().executeAsync(
QueryBuilder.unloggedBatch(events.stream().map(this::addStatement).toArray(RegularStatement[]::new)).setIdempotent(true));
}
项目:cassandra-loader
文件:EnhancedSession.java
public PreparedStatement prepare(RegularStatement statement) {
return session.prepare(statement);
}
项目:cassandra-loader
文件:EnhancedSession.java
public com.google.common.util.concurrent.ListenableFuture<PreparedStatement>
prepareAsync(RegularStatement statement) {
return session.prepareAsync(statement);
}
项目:jesterj
文件:CassandraSupport.java
@Override
public PreparedStatement prepare(RegularStatement statement) {
return sessionRef.prepare(statement);
}
项目:jesterj
文件:CassandraSupport.java
@Override
public ListenableFuture<PreparedStatement> prepareAsync(RegularStatement statement) {
return sessionRef.prepareAsync(statement);
}
项目:newts
文件:CassandraIndexerTest.java
@Test
public void insertStatementsAreDeduplicatedWhenIndexingManySamples() {
CassandraSession session = mock(CassandraSession.class);
ArgumentCaptor<Statement> statementCaptor = ArgumentCaptor.forClass(Statement.class);
when(session.executeAsync(statementCaptor.capture())).thenReturn(mock(ResultSetFuture.class));
PreparedStatement statement = mock(PreparedStatement.class);
BoundStatement boundStatement = mock(BoundStatement.class);
when(session.prepare(any(RegularStatement.class))).thenReturn(statement);
when(statement.bind()).thenReturn(boundStatement);
when(boundStatement.setString(any(String.class), any(String.class))).thenReturn(boundStatement);
CassandraIndexingOptions options = new CassandraIndexingOptions.Builder()
.withHierarchicalIndexing(true)
// Limit the batch size so we can accurately count the number of statements
.withMaxBatchSize(1).build();
MetricRegistry registry = new MetricRegistry();
GuavaResourceMetadataCache cache = new GuavaResourceMetadataCache(2048, registry);
CassandraIndexer indexer = new CassandraIndexer(session, 0, cache, registry, options,
new EscapableResourceIdSplitter(), new ContextConfigurations());
Resource r = new Resource("snmp:1589:vmware5Cpu:2:vmware5Cpu");
List<Sample> samples = Lists.newArrayList();
samples.add(new Sample(Timestamp.now(), r, "CpuCostopSum", MetricType.GAUGE, new Gauge(0)));
samples.add(new Sample(Timestamp.now(), r, "CpuIdleSum", MetricType.GAUGE, new Gauge(19299.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuMaxLdSum", MetricType.GAUGE, new Gauge(0)));
samples.add(new Sample(Timestamp.now(), r, "CpuOverlapSum", MetricType.GAUGE, new Gauge(5.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuRdySum", MetricType.GAUGE, new Gauge(41.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuRunSum", MetricType.GAUGE, new Gauge(619.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuSpwaitSum", MetricType.GAUGE, new Gauge(0)));
samples.add(new Sample(Timestamp.now(), r, "CpuSystemSum", MetricType.GAUGE, new Gauge(0)));
samples.add(new Sample(Timestamp.now(), r, "CpuUsagemhzAvg", MetricType.GAUGE, new Gauge(32.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuUsedSum", MetricType.GAUGE, new Gauge(299.0)));
samples.add(new Sample(Timestamp.now(), r, "CpuWaitSum", MetricType.GAUGE, new Gauge(19343)));
// Index the collection of samples
indexer.update(samples);
// Verify the number of exectuteAsync calls
verify(session, times(20)).executeAsync(any(Statement.class));
}
项目:newts
文件:CassandraIndexerStressITCase.java
@Test
public void canIndexManyResources() {
final int numResources = 20000;
final int numSamplesPerResource = 3;
// Setup the indexer
ResultSetFuture future = mock(ResultSetFuture.class);
CassandraSession session = mock(CassandraSession.class);
when(session.executeAsync(any(Statement.class))).thenReturn(future);
PreparedStatement preparedStatement = mock(PreparedStatement.class);
BoundStatement boundStatement = mock(BoundStatement.class);
when(session.prepare(any(RegularStatement.class))).thenReturn(preparedStatement);
when(preparedStatement.bind()).thenReturn(boundStatement);
when(boundStatement.setString(any(String.class), any(String.class))).thenReturn(boundStatement);
ContextConfigurations contexts = new ContextConfigurations();
MetricRegistry metrics = new MetricRegistry();
CassandraIndexingOptions options = new CassandraIndexingOptions.Builder()
.withHierarchicalIndexing(true).build();
ResourceIdSplitter resourceIdSplitter = new EscapableResourceIdSplitter();
GuavaResourceMetadataCache cache = new GuavaResourceMetadataCache(numResources * 2, metrics);
CassandraIndexer indexer = new CassandraIndexer(session, 0, cache, metrics, options,
resourceIdSplitter, contexts);
// Generate the resources and sample sets
Resource resources[] = new Resource[numResources];
List<List<Sample>> sampleSets = Lists.newArrayListWithCapacity(numResources);
System.out.println("Building sample sets...");
for (int i = 0; i < numResources; i++) {
resources[i] = new Resource(String.format("snmp:%d:eth0-x:ifHcInOctets", i));
List<Sample> samples = Lists.newArrayListWithCapacity(numSamplesPerResource);
for (int j = 0; j < numSamplesPerResource; j++) {
samples.add(new Sample(Timestamp.now(), resources[i], "y" + j, MetricType.COUNTER, new Counter(i * j)));
}
sampleSets.add(samples);
};
System.out.println("Done building sample sets.");
// Index the resources and associated samples several times over
for (int k = 0; k < 3; k++) {
System.out.println("Indexing samples sets...");
long start = System.currentTimeMillis();
for (List<Sample> sampleSet : sampleSets) {
indexer.update(sampleSet);
}
long elapsed = System.currentTimeMillis() - start;
System.out.println("Done indexing samples in : " + elapsed + " ms");
}
}
项目:newts
文件:CassandraSessionImpl.java
public PreparedStatement prepare(RegularStatement statement) {
try { return m_session.prepare(statement); }
catch (DriverException excep) { throw new CassandraException(excep); }
}