use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.
the class TokenDataStoreTest method testUpdateNotExisting.
@Test(expectedExceptions = NotFoundException.class)
public void testUpdateNotExisting() throws Exception {
// Given
final Token token = new Token("123", TokenType.GENERIC);
final Task readTask = mock(Task.class);
when(adapter.toToken(anyObject())).thenReturn(token);
when(taskFactory.read(eq("123"), any(ResultHandler.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
((ResultHandler) invocation.getArguments()[1]).processResults(null);
return readTask;
}
});
// When
store.update(new Object());
// Then - exception
}
use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.
the class SeriesTaskExecutorThread method run.
/**
* Starts processing of the Queue Tasks.
*
* @throws java.lang.IllegalStateException If the queue has not been assigned.
*/
@Override
public void run() {
if (queue == null)
throw new IllegalStateException("Must assign a queue before starting.");
try {
taskExecutor.start();
} catch (DataLayerException e) {
throw new IllegalStateException("Cannot start task executor", e);
}
// Iterate until shutdown
while (!Thread.currentThread().isInterrupted()) {
try {
Task task = queue.take();
debug("process Task {0}", task);
taskExecutor.execute(null, task);
} catch (InterruptedException e) {
error("interrupt detected", e);
Thread.currentThread().interrupt();
}
}
debug("Processor thread shutdown.");
}
use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.
the class TokenDataStore method query.
/**
* Query the store for instances.
*
* @param query The criteria of the query, using {@code T} bean property names as fields.
* @return A set of all matching objects.
* @throws ServerException When an error occurs when querying the store.
*/
public Set<T> query(QueryFilter<String> query) throws ServerException {
SyncResultHandler<Collection<Token>> handler = new SyncResultHandler<Collection<Token>>();
try {
Task task = taskFactory.query(adapter.toTokenQuery(query), handler);
taskExecutor.execute(null, task);
return convertResults(handler.getResults());
} catch (ServerException e) {
throw e;
} catch (DataLayerException e) {
if (debug.warningEnabled()) {
debug.warning("Unable to read objects corresponding to query: " + query, e);
}
throw new ServerException("Could not query tokens from data store: " + e.getMessage());
}
}
use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.
the class TaskDispatcherTest method shouldDelete.
@Test
public void shouldDelete() throws Exception {
// Given
Task task = mock(Task.class);
given(mockTaskFactory.delete("123", mockHandler)).willReturn(task);
// When
queue.delete("123", mockHandler);
// Then
verify(mockExecutor).execute("123", task);
}
use of org.forgerock.openam.sm.datalayer.api.Task in project OpenAM by OpenRock.
the class TokenDataStoreTest method testCreate.
@Test
public void testCreate() throws Exception {
// Given
Token token = new Token("123", TokenType.GENERIC);
final Task task = mock(Task.class);
when(adapter.toToken(anyObject())).thenReturn(token);
when(taskFactory.create(any(Token.class), any(ResultHandler.class))).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
((ResultHandler) invocation.getArguments()[1]).processResults(new Object());
return task;
}
});
// When
store.create(new Object());
// Then
verify(taskFactory).create(eq(token), any(ResultHandler.class));
verify(taskExecutor).execute("123", task);
}
Aggregations