Skip to content

Instantly share code, notes, and snippets.

View jbrisbin's full-sized avatar

Jon Brisbin jbrisbin

View GitHub Profile
@jbrisbin
jbrisbin / AggregateOrders.java
Last active December 23, 2015 18:39
Example of aggregating data using Streams.
import reactor.core.Environment;
import reactor.core.composable.Deferred;
import reactor.core.composable.Stream;
import reactor.core.composable.spec.Streams;
import reactor.function.Consumer;
import reactor.function.Function;
import reactor.tuple.Tuple2;
/**
* @author Jon Brisbin
@jbrisbin
jbrisbin / TradeController.java
Last active December 23, 2015 15:19
Example usage of reactor-data with Spring Boot
@Controller
public class TradeController {
@Autowired
private ClientComposableRepository clients;
@RequestMapping(value = "/{clientId}", method = RequestMethod.POST)
@ResponseBody
public DeferredResult<String> trade(@PathVariable Long clientId) {
final DeferredResult<String> d = new DeferredResult<String>();
@jbrisbin
jbrisbin / gradle_errors.txt
Created September 16, 2013 19:30
Gradle build errors using JDK 8
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':data-spring:test'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.j
@jbrisbin
jbrisbin / ReactorTest.java
Created September 6, 2013 01:20
Reactor Test file
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import reactor.core.Environment;
import reactor.core.Reactor;
import reactor.core.spec.Reactors;
@jbrisbin
jbrisbin / ProcessorToReactor.java
Last active December 22, 2015 00:29
Pass data from a Processor to an IO-intensive task in a Reactor backed by a ThreadPoolExecutorDispatcher
// Create a Reactor Environment (1 per JVM).
static final Environment env = new Environment();
// Create a Reactor to handle IO events that's backed by a ThreadPoolExecutorDispatcher.
// To increase concurrent thread count, copy META-INF/reactor/default.properties from
// GitHub repo and put it into your own project, adjusting number of threads from 0 (1 per CPU)
// to whatever you want.
Reactor ioReactor = Reactors.reactor()
.env(env)
.dispatcher(Environment.THREAD_POOL)
@jbrisbin
jbrisbin / PromiseHandlerMethodReturnValueHandler.java
Last active December 21, 2015 11:29
PromiseReturnValueHandlerTests
package reactor.spring.webmvc;
import org.springframework.core.MethodParameter;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.async.DeferredResult;
import org.springframework.web.context.request.async.WebAsyncUtils;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.method.support.ModelAndViewContainer;
import reactor.core.composable.Promise;
import reactor.function.Consumer;
@jbrisbin
jbrisbin / StateMachineSample.groovy
Last active December 18, 2015 18:19
Sample StateMachine usage for Reactor
// reactor-fsm: github.com/jbrisbin/reactor-fsm
// reactor: github.com/reactor/reactor
StateMachine ioMachine = new StateMachine.Spec().
sync().
using('idle', 'wait', 'send-request', 'response-ready').
when('send-request') { prev ->
def msg = requests.peek()
send(msg)
'wait'
@jbrisbin
jbrisbin / gist:5600246
Last active December 17, 2015 11:09
Example of Riak data support based on Reactor.
// Set a UriTemplateSelector to respond to any events happening on data in the 'test' bucket
riak.on(U("/test/{key}"), (Event ev) -> {
String key = ev.getHeaders().get("key");
boolean isStore = StoreEvent.class.isInstance(ev);
// Only count down on store
if (isStore) {
latch.countDown();
}
});
@jbrisbin
jbrisbin / gist:5416187
Created April 18, 2013 21:00
IDEA error compiling Groovy sources
Groovyc: Apr 18, 2013 3:57:44 PM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [reactor-groovy-module] - Unable to load extension class [reactor.groovy.ext.ObservableExtensions]
Apr 18, 2013 3:57:44 PM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [reactor-groovy-module] - Unable to load extension class [reactor.groovy.ext.LinkableExtensions]
Apr 18, 2013 3:57:44 PM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [reactor-groovy-module] - Unable to load extension class [reactor.groovy.ext.PromiseExtensions]
Apr 18, 2013 3:57:44 PM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [reactor-groovy-module] - Unable to load extension class [reactor.groovy.ext.ReactorStaticExtensions]
java.lang.StackOverflowError
at sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:201)
@jbrisbin
jbrisbin / gist:5146690
Created March 12, 2013 20:25
Stacktrace of error in DELETE using Spring Data REST + Neo4J
org.neo4j.graphdb.NotInTransactionException
at org.neo4j.kernel.impl.index.IndexConnectionBroker.acquireResourceConnection(IndexConnectionBroker.java:49)
at org.neo4j.index.impl.lucene.LuceneIndex.getConnection(LuceneIndex.java:85)
at org.neo4j.index.impl.lucene.LuceneIndex.remove(LuceneIndex.java:196)
at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.remove(AbstractIndexingTypeRepresentationStrategy.java:91)
at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.preEntityRemoval(AbstractIndexingTypeRepresentationStrategy.java:86)
at org.springframework.data.neo4j.support.mapping.EntityRemover.removeNode(EntityRemover.java:49)
at org.springframework.data.neo4j.support.mapping.EntityRemover.removeNodeEntity(EntityRemover.java:45)
at org.springframework.data.neo4j.support.mapping.EntityRemover.remove(EntityRemover.java:85)
at org.springframework.data.neo4j.support.Neo4jTemplate.delete(Neo4jTemplate.j