@POST @Path("/login") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response authenticate( @FormDataParam("username") String userId, @FormDataParam("password") String password) { Session session = databaseManager.getSession(); ResultSet user = session.execute("SELECT * FROM righteous.user where user_id = '" + userId + "'"); Row row = null; if (user.isExhausted()) { session.close(); return Response.status(200).entity("Invalid Username or Password").build(); } else { row = user.one(); } if (row.getString("user_id").equals(userId) && row.getString("user_password").equals(password)) { session.close(); return Response.status(200).entity("success").build(); } else { session.close(); return Response.status(200).entity("Invalid Username or Password").build(); } }
@Test public void should_execute_cas_successfully() throws Exception { // Given final AtomicBoolean casSuccess = new AtomicBoolean(false); CASResultListener listener = new CASResultListener() { @Override public void onCASSuccess() { casSuccess.compareAndSet(false, true); } @Override public void onCASError(CASResult casResult) {} }; when(rs.getQueryString()).thenReturn("INSERT INTO table IF NOT EXISTS"); wrapper = new RegularStatementWrapper( CompleteBean.class, rs, new Object[] {1}, ONE, Optional.fromNullable(listener), NO_SERIAL_CONSISTENCY); when(session.execute(rs)).thenReturn(resultSet); when(resultSet.one().getBool(CAS_RESULT_COLUMN)).thenReturn(true); // When wrapper.execute(session); // Then verify(session).execute(rs); assertThat(casSuccess.get()).isTrue(); }
/** * @param resultSet * @param type * @return * @deprecated as of 1.5, {@link * org.springframework.data.cassandra.mapping.CassandraMappingContext} handles type * conversion. */ @Deprecated public Object getSingleEntity(ResultSet resultSet, Class<?> type) { Object result = (resultSet.isExhausted() ? null : template.getConverter().read(type, resultSet.one())); warnIfMoreResults(resultSet); return result; }
@Override public Company getCompany(final String firstName, final String lastName) { final String cql = "select * from company where first_name = ? and last_name = ?"; final PreparedStatement cachedPreparedStatement = getCachedPreparedStatement(cql); final BoundStatement statement = cachedPreparedStatement.bind(firstName, lastName); final ResultSet resultSet = cassandraOperations.getSession().execute(statement); final Row row = resultSet.one(); return toCompany(row); }
private void warnIfMoreResults(ResultSet resultSet) { if (log.isWarnEnabled() && !resultSet.isExhausted()) { int count = 0; while (resultSet.one() != null) { count++; } log.warn("ignoring extra {} row{}", count, count == 1 ? "" : "s"); } }
@Test public void should_throw_exception_on_cas_error() throws Exception { // Given final AtomicReference<CASResult> atomicCASResult = new AtomicReference<>(null); CASResultListener listener = new CASResultListener() { @Override public void onCASSuccess() {} @Override public void onCASError(CASResult casResult) { atomicCASResult.compareAndSet(null, casResult); } }; wrapper = new RegularStatementWrapper( CompleteBean.class, rs, new Object[] {1}, ONE, Optional.fromNullable(listener), NO_SERIAL_CONSISTENCY); wrapper.invoker = invoker; when(rs.getQueryString()).thenReturn("UPDATE table IF name='John' SET"); when(session.execute(rs)).thenReturn(resultSet); when(resultSet.one()).thenReturn(row); when(row.getBool(CAS_RESULT_COLUMN)).thenReturn(false); when(row.getColumnDefinitions()).thenReturn(columnDefinitions); when(columnDefinitions.iterator().hasNext()).thenReturn(true, true, false); Definition col1 = buildColumnDef("keyspace", "table", "[applied]", DataType.cboolean()); Definition col2 = buildColumnDef("keyspace", "table", "name", DataType.text()); when(columnDefinitions.iterator().next()).thenReturn(col1, col2); when(invoker.invokeOnRowForType(row, DataType.cboolean().asJavaClass(), "[applied]")) .thenReturn(false); when(invoker.invokeOnRowForType(row, DataType.text().asJavaClass(), "name")) .thenReturn("Helen"); // When wrapper.execute(session); // Then verify(session).execute(rs); final CASResult actual = atomicCASResult.get(); assertThat(actual).isNotNull(); assertThat(actual.operation()).isEqualTo(UPDATE); assertThat(actual.currentValues()) .contains(MapEntry.entry("[applied]", false), MapEntry.entry("name", "Helen")); }
@Test public void doAppendTest() throws IOException, InterruptedException { DeliveryCallback callback = new DeliveryCallback(); logAppender.doAppend(generateLogEventPack(20), callback); Thread.sleep(3000); CassandraLogEventDao logEventDao = (CassandraLogEventDao) ReflectionTestUtils.getField(logAppender, "logEventDao"); Session session = (Session) ReflectionTestUtils.getField(logEventDao, "session"); ResultSet resultSet = session.execute( QueryBuilder.select() .countAll() .from( KEY_SPACE_NAME, "logs_" + appToken + "_" + Math.abs(configuration.hashCode()))); Row row = resultSet.one(); Assert.assertEquals(20L, row.getLong(0)); Assert.assertEquals(1, callback.getSuccessCount()); }
@Override protected String getStoredMimeType(BinaryValue source) throws BinaryStoreException { try { checkContentExists(source); ResultSet rs = session.execute( "SELECT mime_type FROM modeshape.binary WHERE cid = '" + source.getKey() + "';"); Row row = rs.one(); if (row == null) { throw new BinaryStoreException( JcrI18n.unableToFindBinaryValue.text(source.getKey(), session)); } return row.getString("mime_type"); } catch (BinaryStoreException e) { throw e; } catch (RuntimeException e) { throw new BinaryStoreException(e); } }
@Override public InputStream getInputStream(BinaryKey key) throws BinaryStoreException { try { ResultSet rs = session.execute( "SELECT payload FROM modeshape.binary WHERE cid='" + key.toString() + "' and usage=1;"); Row row = rs.one(); if (row == null) { throw new BinaryStoreException(JcrI18n.unableToFindBinaryValue.text(key, session)); } ByteBuffer buffer = row.getBytes("payload"); return new BufferedInputStream(buffer); } catch (BinaryStoreException e) { throw e; } catch (RuntimeException e) { throw new BinaryStoreException(e); } }
@Override public boolean followingExists(String userId, String applicationId) throws TException { checkUserId(userId); checkAppId(applicationId); Statement query = createStatementToCheckIfFollowingExists(userId, applicationId); ResultSet results; try { results = cassandra.execute(query); } catch (Exception ex) { LOG.error( "Failed to query for following between User: [{}] App: [{}]", userId, applicationId, ex); throw new OperationFailedException("Could not query for following: " + ex.getMessage()); } Row row = results.one(); checkRowExists(row); long count = row.getLong(0); return count > 0; }
@Test public void should_notify_listener_on_cas_error() throws Exception { // Given wrapper = new RegularStatementWrapper( CompleteBean.class, rs, new Object[] {1}, ONE, NO_LISTENER, NO_SERIAL_CONSISTENCY); wrapper.invoker = invoker; when(rs.getQueryString()).thenReturn("INSERT INTO table IF NOT EXISTS"); when(session.execute(rs)).thenReturn(resultSet); when(resultSet.one()).thenReturn(row); when(row.getBool(CAS_RESULT_COLUMN)).thenReturn(false); when(row.getColumnDefinitions()).thenReturn(columnDefinitions); when(columnDefinitions.iterator().hasNext()).thenReturn(true, true, false); Definition col1 = buildColumnDef("keyspace", "table", "[applied]", DataType.cboolean()); Definition col2 = buildColumnDef("keyspace", "table", "id", DataType.bigint()); when(columnDefinitions.iterator().next()).thenReturn(col1, col2); when(invoker.invokeOnRowForType(row, DataType.cboolean().asJavaClass(), "[applied]")) .thenReturn(false); when(invoker.invokeOnRowForType(row, DataType.bigint().asJavaClass(), "id")).thenReturn(10L); AchillesLightWeightTransactionException caughtEx = null; // When try { wrapper.execute(session); } catch (AchillesLightWeightTransactionException ace) { caughtEx = ace; } // Then verify(session).execute(rs); assertThat(caughtEx).isNotNull(); assertThat(caughtEx.operation()).isEqualTo(INSERT); assertThat(caughtEx.currentValues()) .contains(MapEntry.entry("[applied]", false), MapEntry.entry("id", 10L)); }