Giter Club home page Giter Club logo

vlingo / xoom-examples Goto Github PK

View Code? Open in Web Editor NEW
185.0 18.0 46.0 18.23 MB

The VLINGO XOOM examples demonstrating features and functionality available in the reactive components. See each of the submodules for specific examples.

Home Page: https://vlingo.io

License: Mozilla Public License 2.0

Java 95.87% Dockerfile 0.18% Shell 0.24% Kotlin 0.14% HTML 0.08% JavaScript 1.44% Svelte 1.71% CSS 0.04% SCSS 0.02% Mustache 0.28%
actors actor-model actor-framework example-project example-code examples java jvm

xoom-examples's People

Contributors

abdullahcalisir12 avatar alanstrait avatar aleixmorgadas avatar aleixmp avatar alexguzun avatar boerrild avatar buritos avatar bwehrle avatar chandrabhandz avatar christian-posta avatar danilo-ambrosio avatar davemuirhead avatar dependabot[bot] avatar flaxel avatar florian-schoenherr avatar hamzajg avatar hurelhuyag avatar jakzal avatar johandoornenbal avatar kmruiz avatar oscargalindo avatar pflueras avatar vaughnvernon avatar wwerner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xoom-examples's Issues

xoom-eventjournal example fails to start

While all tests are passing, the xoom-eventjournal example fails to start:

Exception in thread "main" java.lang.NullPointerException
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:485)
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:106)
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:95)
	at io.vlingo.xoom.symbio.store.journal.Journal.using(Journal.java:76)
	at io.vlingo.xoom.examples.eventjournal.Bootstrap.main(Bootstrap.java:51)
13:12:43.853 [pool-2-thread-5] ERROR io.vlingo.xoom.actors.Logger - ActorFactory: failed actor creation. This is sometimes cause be the constructor parameter types not matching the types in the Definition.parameters(). Often it is caused by a failure in the actor constructor. We have attempted to uncover the root cause here, but that may not be available in some cases.
The root cause may be: java.lang.IllegalArgumentException: argument type mismatch
See stacktrace for more information. We strongly recommend reviewing your constructor for possible failures in dependencies that it creates.
java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_92]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_92]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_92]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_92]
	at io.vlingo.xoom.actors.ActorFactory.start(ActorFactory.java:124) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.ActorFactory.actorFor(ActorFactory.java:79) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.Stage.createRawActor(Stage.java:761) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.Stage.actorProtocolFor(Stage.java:526) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:484) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:106) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.actors.Stage.actorFor(Stage.java:95) ~[xoom-actors-1.6.1-20210410.022544-10.jar:na]
	at io.vlingo.xoom.symbio.store.journal.Journal.using(Journal.java:76) ~[xoom-symbio-1.6.1-20210410.034019-8.jar:na]
	at io.vlingo.xoom.examples.eventjournal.Bootstrap.main(Bootstrap.java:51) ~[classes/:na]

This is due to the way the Journal is instantiated:

https://github.com/vlingo/vlingo-examples/blob/49b0a609a293ac9145d0766bd5003159b8a17d7d/xoom-eventjournal/src/main/java/io/vlingo/xoom/examples/eventjournal/Bootstrap.java#L50-L51

There has been a change in Journal arguments. It no longer expects a dispatcher, but a JDBCJournalWriter:

https://github.com/vlingo/xoom-symbio-jdbc/blob/3446e47c33495dd5e854aafa8d191e2797b1d51c/src/main/java/io/vlingo/xoom/symbio/store/journal/jdbc/JDBCJournalActor.java#L65-L67

README Details to Docs

There are details in the README that are not in the docs.vlingo.io. The details must be in the docs and removed from the README.

vlingo-http-backservice: java.lang.OutOfMemoryError: Java heap space

@VaughnVernon

http-backservice gets out of memory - I have never called it from the client.
And it continue to eat the CPU - the fan is running on the MBP

  • I have checked out all project
  • I have removed vlingo in M2
  • I have build them all
  • I start the http-server

I am checking the variant where I get the 1.2.5 ' eres from central.

image

sonja:vlingo-http-backservice aka$ java -jar target/vlingo-http-backservice-withdeps.jar
19:19:49,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
19:19:49,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
19:19:49,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/Users/aka/data/projects/bec/neo/vlingo/vlingo-examples/vlingo-http-backservice/target/vlingo-http-backservice-withdeps.jar!/logback.xml]
19:19:49,844 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@57829d67 - URL [jar:file:/Users/aka/data/projects/bec/neo/vlingo/vlingo-examples/vlingo-http-backservice/target/vlingo-http-backservice-withdeps.jar!/logback.xml] is not of type file
19:19:49,878 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
19:19:49,883 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
19:19:49,887 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
19:19:49,931 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
19:19:49,931 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
19:19:49,931 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
19:19:49,931 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [io.vlingo] to INFO
19:19:49,931 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [io.vlingo] to false
19:19:49,931 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[io.vlingo]
19:19:49,932 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
19:19:49,932 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
19:19:49,932 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
19:19:49,933 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@19dfb72a - Registering current configuration as safe fallback point

vlingo/http: Generating handler dispatcher for main: io.vlingo.backservice.resource.VaultResource
19:19:50.294 [pool-2-thread-7] INFO  io.vlingo.actors.Logger - io.vlingo.wire.fdx.bidirectional.ServerRequestResponseChannelActor - ServerRequestResponseChannelActor: OPENING PORT: 8082
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Server vlingo-http-server is listening on port: 8082 started in 40 ms
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Resource: tokens
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Action: id=0, method=GET, uri=/vaultstreams/{streamName}, to=subscribeToStream(String streamName, Class<? extends Actor> feedClass, int feedPayload, int feedInterval, String feedDefaultId)
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Action: id=1, method=DELETE, uri=/vaultstreams/{streamName}/{id}, to=unsubscribeFromStream(String streamName, String id)
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Resource: vault
19:19:50.300 [pool-2-thread-9] INFO  io.vlingo.actors.Logger - io.vlingo.http.resource.ServerActor - Action: id=0, method=GET, uri=/tokens/{publicToken}, to=generatePrivateToken(String publicToken)
======================
backservice: started.
======================
java.lang.IllegalArgumentException: Actor instantiation failed because: null
	at io.vlingo.actors.Stage.createRawActor(Stage.java:670)
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451)
	at io.vlingo.actors.Stage.actorFor(Stage.java:409)
	at io.vlingo.actors.Stage.actorFor(Stage.java:91)
	at io.vlingo.actors.World.actorFor(World.java:142)
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76)
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61)
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38)
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31)
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35)
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121)
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53)
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112)
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36)
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19)
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71)
	at io.vlingo.actors.Stage.createRawActor(Stage.java:667)
	... 15 more
19:21:03.653 [pool-2-thread-8] ERROR io.vlingo.actors.Logger - Actor instantiation failed because: null
java.lang.NullPointerException: null
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.createRawActor(Stage.java:667) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:409) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
19:21:03.654 [pool-2-thread-8] ERROR io.vlingo.actors.Logger - vlingo/actors: FAILED: Actor instantiation failed because: null
java.lang.IllegalArgumentException: Actor instantiation failed because: null
	at io.vlingo.actors.Stage.createRawActor(Stage.java:670) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:409) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
Caused by: java.lang.NullPointerException: null
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.createRawActor(Stage.java:667) ~[vlingo-http-backservice-withdeps.jar:na]
	... 15 common frames omitted
19:21:03.655 [pool-2-thread-8] ERROR io.vlingo.actors.Logger - io.vlingo.http.resource.ResourceRequestHandlerActor - Runtime thrown by resource dispatcher
java.lang.NullPointerException: null
	at io.vlingo.actors.Stage.actorFor(Stage.java:410) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
java.lang.IllegalArgumentException: Actor instantiation failed because: null
	at io.vlingo.actors.Stage.createRawActor(Stage.java:670)
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451)
	at io.vlingo.actors.Stage.actorFor(Stage.java:409)
	at io.vlingo.actors.Stage.actorFor(Stage.java:91)
	at io.vlingo.actors.World.actorFor(World.java:142)
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76)
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61)
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38)
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31)
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35)
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121)
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53)
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112)
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36)
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19)
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71)19:37:28.542 [pool-2-thread-4] ERROR io.vlingo.actors.Logger - Actor instantiation failed because: null
java.lang.NullPointerException: null
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.createRawActor(Stage.java:667) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:409) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

	at io.vlingo.actors.Stage.createRawActor(Stage.java:667)
	... 15 more
19:37:28.543 [pool-2-thread-15] ERROR io.vlingo.actors.Logger - vlingo/actors: FAILED: Actor instantiation failed because: null
java.lang.IllegalArgumentException: Actor instantiation failed because: null
	at io.vlingo.actors.Stage.createRawActor(Stage.java:670) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorProtocolFor(Stage.java:451) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:409) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
Caused by: java.lang.NullPointerException: null
	at io.vlingo.http.resource.sse.SseStreamResource$SsePublisherActor.<init>(SseStreamResource.java:112) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:36) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SsePublisher$SsePublisherInstantiator.instantiate(SsePublisher.java:19) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.ActorFactory.actorFor(ActorFactory.java:71) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.createRawActor(Stage.java:667) ~[vlingo-http-backservice-withdeps.jar:na]
	... 15 common frames omitted
19:37:28.544 [pool-2-thread-5] ERROR io.vlingo.actors.Logger - io.vlingo.http.resource.ResourceRequestHandlerActor - Runtime thrown by resource dispatcher
java.lang.NullPointerException: null
	at io.vlingo.actors.Stage.actorFor(Stage.java:410) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.Stage.actorFor(Stage.java:91) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.World.actorFor(World.java:142) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.publisherFor(SseStreamResource.java:76) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResource.subscribeToStream(SseStreamResource.java:61) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$0(SseStreamResourceDispatcher.java:38) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[vlingo-http-backservice-withdeps.jar:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[vlingo-http-backservice-withdeps.jar:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-2-thread-18" java.lang.OutOfMemoryError: Java heap space

http-backend fails with out of memory WHEN client hangup.

When I run the http-backend / http-frontend application - I get out of memory

The problem can be reproduced by starting http-backend and running below code

  • try to start a SSE stream
  • Let http client make a hangup.
  • The problem comes in code Header.copy()
  • I cannot understand what is going on - I am still working on understanding http-backend
  • below curl make hangup after 10 seconds.
  • I have tried to put try/catch around the header copy and just ignore the error - but it will not stop the error. It seems to be something in other part of the code that I do not fully master.
  • I am working on branch origin/feature/doc-http-server-vault - where I try to understand http-server - it is work in progress.

curl --request GET  \
       --header "X-Correlation-ID:PrivateTokenSynchronizerActor-tokens" \
       --header "Accept:text/event-stream" --max-time 10 \
       http://localhost:8082/vaultstreams/tokens

This is a log (the exception is repeated many times)

java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
	at java.util.ArrayList$Itr.next(ArrayList.java:859)
	at io.vlingo.http.Header$Headers.copy(Header.java:122)
	at io.vlingo.http.resource.sse.SseClient.sendInitialResponse(SseClient.java:82)
	at io.vlingo.http.resource.sse.SseClient.<init>(SseClient.java:48)
	at io.vlingo.http.resource.sse.SseClient.<init>(SseClient.java:52)
	at io.vlingo.http.resource.sse.SseStreamResource.unsubscribeFromStream(SseStreamResource.java:67)
	at io.vlingo.http.resource.sse.SseStreamResourceDispatcher.lambda$dispatchToHandlerWith$1(SseStreamResourceDispatcher.java:42)
	at io.vlingo.http.resource.ResourceRequestHandlerActor.handleFor(ResourceRequestHandlerActor.java:31)
	at io.vlingo.http.resource.ResourceRequestHandler__Proxy.lambda$handleFor$f94799c1$1(ResourceRequestHandler__Proxy.java:35)
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121)
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53)
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Last goodby to the JVM is - talks about UncaughtExceptionHandler

java.util.ConcurrentModificationException
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-2-thread-17"

java.util.ConcurrentModificationException
copy headerConnection: keep-alive
copy headerContent-Type: text/event-stream;charset=utf-8
copy headerCache-Control: no-cache
java.util.ConcurrentModificationException
copy headerX-Correlation-ID: PrivateTokenSynchronizerActor-tokens
java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
Disconnected from the target VM, address: '127.0.0.1:55235', transport: 'socket'
Exception in thread "pool-2-thread-16" Exception in thread "pool-2-thread-8" Exception in thread "pool-2-thread-4" Exception in thread "pool-2-thread-9" *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message can't create byte arrau at JPLISAgent.c line: 813

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-2-thread-16"

vlingo-e2e-sys-airline-ops issues

1 -> After creating a fleet crew and then calling list of fleet crew endpoint returns me array of empty objects
2 -> I need an endpoint for monitoring page to show list of airplanes needs to be monitored
3 -> At air traffic control page after updating status of one then if you refresh the page you will see tail number and equipment updated data is undefined

Unable to build `vlingo-iot-android`

I get the following error when I run the project as per the instructions in README

./gradlew backend:shadowJar

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/app/build.gradle' line: 1

* What went wrong:
Could not compile build file '/Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/app/build.gradle'.
//import io.vlingo.build.Proxies
> startup failed:
  build file '/Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/app/build.gradle': 1: unable to resolve class io.vlingo.build.Proxies
   @ line 1, column 1.
     import io.vlingo.build.Proxies
     ^

  1 error

Not sure what the purpose of that import is or how to get that dependency. Removing it and running leads to the following error:

./gradlew backend:shadowJar

> Configure project :app
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
It will be removed at the end of 2018

> Task :backend:compileKotlin FAILED
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/domain/Journal.kt: (39, 71): Unresolved reference: registerEntryAdapter
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/AlarmController.kt: (15, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/HealthcheckController.kt: (15, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/HealthcheckController.kt: (18, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/TrackController.kt: (20, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/TrackController.kt: (24, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/TrackController.kt: (28, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected
e: /Users/gaurav/repos/vlingo/vlingo-examples/vlingo-iot-android/backend/src/main/kotlin/io/vlingo/hike/infrastructure/controller/TrackController.kt: (32, 22): Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Completes<Response>> but ErrorHandler! was expected

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':backend:compileKotlin'.
> Compilation error. See log for more details

vlingo-reactive-messaging-patterns module has compile failure

The signature is not correct for the actors that implement the Subscriber interface in this example.
[ERROR] vlingo-examples/vlingo-reactive-messaging-patterns/src/main/java/io/vlingo/reactive/messaging/patterns/publishsubscribe/NYSESubscriber.java:[24,5] method does not override or implement a method from a supertype

Maven dependency issues for inventory module

vlingo-build-plugins 1.5.1-snapshot dependency is not available.
io.vlingo.symbio.store.dispatch.Dispatcher is referenced in Bootstrap class but vlingo-symbio dependency is missing

vlingo-auth-authservice example does not start

java -jar target/vlingo-auth-authservice-1.6.0-jar-with-dependencies.jar

====================
authservice: started
====================
vlingo/http: Generating handler dispatcher for main: io.vlingo.auth.infra.resource.PermissionResource
vlingo/http: Generating handler dispatcher for test: io.vlingo.auth.infra.resource.PermissionResource
java.lang.IllegalArgumentException: ConfigurationResource instance with dispatcher for io.vlingo.auth.infra.resource.PermissionResource not created because: Cannot generate resource dispatcher class for io.vlingo.auth.infra.resource.PermissionResource because there is no corresponding:
target/test-classes/io/vlingo/auth/infra/resource/PermissionResource.class
        at io.vlingo.http.resource.ConfigurationResource.tryGenerateCompile(ConfigurationResource.java:136)
        at io.vlingo.http.resource.ConfigurationResource.tryGenerateCompile(ConfigurationResource.java:118)
        at io.vlingo.http.resource.ConfigurationResource.newResourceFor(ConfigurationResource.java:58)
        at io.vlingo.http.resource.Loader.resourceFor(Loader.java:353)
        at io.vlingo.http.resource.Loader.loadResource(Loader.java:155)
        at io.vlingo.http.resource.Loader.loadResources(Loader.java:73)
        at io.vlingo.http.resource.Server.startWith(Server.java:46)
        at io.vlingo.http.resource.Server.startWith(Server.java:33)
        at io.vlingo.authservice.infra.Bootstrap.<init>(Bootstrap.java:21)
        at io.vlingo.authservice.infra.Bootstrap.instance(Bootstrap.java:56)
        at io.vlingo.authservice.infra.Bootstrap.main(Bootstrap.java:66)
Caused by: java.lang.IllegalArgumentException: Cannot generate resource dispatcher class for io.vlingo.auth.infra.resource.PermissionResource because there is no corresponding:
target/test-classes/io/vlingo/auth/infra/resource/PermissionResource.class
        at io.vlingo.http.resource.ResourceDispatcherGenerator.generateFor(ResourceDispatcherGenerator.java:89)
        at io.vlingo.http.resource.ConfigurationResource.tryGenerateCompile(ConfigurationResource.java:131)
        ... 10 more
vlingo/http: Failed to load resource: permission because: ConfigurationResource cannot be created for: io.vlingo.auth.infra.resource.PermissionResource
Exception in thread "main" java.lang.IllegalStateException: ConfigurationResource cannot be created for: io.vlingo.auth.infra.resource.PermissionResource
        at io.vlingo.http.resource.Loader.resourceFor(Loader.java:356)
        at io.vlingo.http.resource.Loader.loadResource(Loader.java:155)
        at io.vlingo.http.resource.Loader.loadResources(Loader.java:73)
        at io.vlingo.http.resource.Server.startWith(Server.java:46)
        at io.vlingo.http.resource.Server.startWith(Server.java:33)
        at io.vlingo.authservice.infra.Bootstrap.<init>(Bootstrap.java:21)
        at io.vlingo.authservice.infra.Bootstrap.instance(Bootstrap.java:56)
        at io.vlingo.authservice.infra.Bootstrap.main(Bootstrap.java:66)

Port xoom-petclinic Tests to xoom-petclinic-2

  • Port and enable tests that are in xoom-petclinic to xoom-petclinic-2 to ensure all is working

    • Note that no custom code was written in xoom-petclinic-2
  • Ensure xoom-petclinic can be deleted

  • At 1.7.0 release: xoom-petclinic-3 will be generated with tests by Designer

    • xoom-petclinic-2 will be deleted
    • xoom-petclinic-3 will become xoom-petclinic

/cc @danilo-ambrosio @jakzal @hurelhuyag

Unable to build vlingo-e2e-sys-airline-ops

Hi,
I tried to build the vlingo-e2e-sys-airline-ops project from the master branch, but it constantly fails with the following error.

[INFO] Reactor Summary for vlingo-e2e-sys-airline-ops 1.5.1-SNAPSHOT:
[INFO] 
[INFO] vlingo-e2e-sys-airline-ops ......................... SUCCESS [  0.295 s]
[INFO] inventory .......................................... SUCCESS [ 10.751 s]
[INFO] airport-terminal ................................... SUCCESS [  7.331 s]
[INFO] air-traffic-control ................................ FAILURE [  8.895 s]
[INFO] fleetcrew .......................................... SKIPPED
[INFO] flight-planning .................................... SKIPPED
[INFO] aircraft-monitoring ................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  27.396 s
[INFO] Finished at: 2021-02-18T21:44:07+11:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.vlingo:vlingo-build-plugins:1.5.1-SNAPSHOT:push-schemata (default) on project air-traffic-control: Could not push SchemaVersion to http://localhost:9019/api/versions/SkyHarborPHX:groundops:com.skyharbor.airtrafficcontrol:OutboundTaxingInitiated:1.0.0: Internal Server Error - 500 -> [Help 1]

I run db,rabitmq and schemata using the docker-compose from the project. In the schemata logs the last log I is
Publication date: 2021-02-18T21:43:51.377424, specification=event AircraftConsigned { version semanticVersion string aircraftId string model string serialNumber string tailNumber }, status=Draft, previousVersion=0.0.0, currentVersion=1.0.0]]]

besides this, a bunch of errors like
io.vlingo.symbio.store.StorageException: ERROR: duplicate key value violates unique constraint

the same for the db logs
2021-02-18 10:44:11.679 UTC [33] ERROR: duplicate key value violates unique constraint "tbl_vlingo_symbio_dispatchables_pkey"

I would appreciate any help.

io.vlingo.rest.Bootstrap termination is unclear

Hi @VaughnVernon

I have now learned the io.vlingo.rest.Bootstrap sample in vlingo/vlingo-examples/vlingo-platform-patterns

What instance should be static - in order to cliff hang to the root class loader ?

I believe that it is WORLD !!! And everything else is telling the wrong story.

vlingo is an actor infrastructure system - that just happens to get a Server actor in the case we are talking about.

Am I right ?

I have attached the code as I think it should look like
I have also added a "terminate" REST POST call just to demo the point

// Copyright © 2012-2020 VLINGO LABS. All rights reserved.
//
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v. 2.0. If a copy of the MPL
// was not distributed with this file, You can obtain
// one at https://mozilla.org/MPL/2.0/.

package io.vlingo.rest;

import io.vlingo.actors.World;
import io.vlingo.http.Filters;
import io.vlingo.http.resource.Resources;
import io.vlingo.http.resource.Server;
import io.vlingo.http.resource.Configuration.Sizing;
import io.vlingo.http.resource.Configuration.Timing;

/**
 * Application to run vlingo with a web server
 *
 * Pure demonstration of how to make a web server and getting it running inside 'world'
 */
public class Bootstrap {
  private static Bootstrap bootstrap;
  /**
   * World MUST be hanging in the main() class static context so it is connected to root class loader
   * Other wise the application would terminate because thread returns from main()
   */
  private final World world;
  /**
   * Server is an actor and put into the world at a stage
   * Server does NOT have to be connected to root class loader. World will/can maintain server lifecycle
   *
   * It is possible to make vlingo application that stops one server and starts another - just to demonstrate
   * that we can and have memory management in control !!!!
   *
   * server is only here to demonstrate it is closed by world - in the shutdown hook.
   */
  private final Server server;

  public static void main(String[] args) {
    bootstrap = new Bootstrap();
  }
  
  private Bootstrap() {
    System.out.println("==============================");
    System.out.println("Starting vlingo/http Server...");
    System.out.println("==============================");
    final OrganizationResource resource;

    world = World.startWithDefaults("InspectionsResourceTest");
    
    resource = new OrganizationResource(world);

    server =
            Server.startWith(
                    world.stage(),
                    Resources.are(resource.routes()),
                    Filters.none(),
                    8081,
                    Sizing.defineWith(4, 10, 10, 1024),
                    Timing.defineWith(3, 1, 100));

    Runtime.getRuntime().addShutdownHook(new Thread() {
      @Override
      public void run() {
        bootstrap.world.terminate();
        System.out.println("\n");
        System.out.println("==============================");
        if(bootstrap.server.isStopped()) {
          System.out.println("Server stopped by world ...");
        }
        System.out.println("vlingo world terminated ...");
        System.out.println("==============================");
      }
    });
  }
}

// Copyright © 2012-2020 VLINGO LABS. All rights reserved.
//
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v. 2.0. If a copy of the MPL
// was not distributed with this file, You can obtain
// one at https://mozilla.org/MPL/2.0/.

package io.vlingo.rest;

import static io.vlingo.http.Response.Status.Created;
import static io.vlingo.http.Response.Status.Ok;
import static io.vlingo.http.ResponseHeader.Location;
import static io.vlingo.http.ResponseHeader.headers;
import static io.vlingo.http.ResponseHeader.of;
import static io.vlingo.http.resource.ResourceBuilder.get;
import static io.vlingo.http.resource.ResourceBuilder.patch;
import static io.vlingo.http.resource.ResourceBuilder.post;
import static io.vlingo.http.resource.ResourceBuilder.resource;

import java.util.UUID;

import io.vlingo.actors.World;
import io.vlingo.common.Completes;
import io.vlingo.http.Response;
import io.vlingo.http.resource.Resource;

/**
 * Example of vlingo/http Fluent API mappings.
 */
public class OrganizationResource {
  private final World world;
  
  public OrganizationResource(final World world) {
    this.world = world;
  }

  /**
   * Answer the eventual {@code Response} to the GET query of a given Organization.
   * @param OrganizationId the String id of the Organization to query
   * @return {@code Completes<Response>}
   */
  public Completes<Response> queryOrganization(final String OrganizationId) {
    world.defaultLogger().debug(getClass().getSimpleName() + ": queryOrganization(\"" + OrganizationId + "\")");
    
    return Completes.withSuccess(Response.of(Ok, OrganizationId));
  }

  /**
   * Answer the eventual {@code Response} of defining a new Organization.
   * @return {@code Completes<Response>}
   */
  public Completes<Response> defineOrganization() {
    final String id = id();
    final String uri = "/organizations/" + id;
    
    world.defaultLogger().debug(getClass().getSimpleName() + ": startOrganization(): " + uri);
    
    return Completes.withSuccess(Response.of(Created, headers(of(Location, uri)), id));
  }
  /**
   * Demonstrate that terminate the world will stop the actors - also the web server.
   * @return {@code Completes<Response>}
   */
  public Completes<Response> terminateWorld() {
    world.terminate();
    return Completes.withSuccess(Response.of(Ok, "the server is stopping"));
  }

  public Completes<Response> renameOrganization(String organizationId, String name) {
    return Completes.withSuccess(Response.of(Ok, name));
  }
  
  public Completes<Response> enableOrganization(String organizationId) {
    return Completes.withSuccess(Response.of(Ok, "enabled"));
  }

  public Completes<Response> disableOrganization(String organizationId) {
    return Completes.withSuccess(Response.of(Ok, "disabled"));
  }

  /**
   * Answer the {@code Resource} of REST method handlers.
   * @return {@code Resource<?>}
   */
  public Resource<?> routes() {
    return resource("Organization Resource Fluent API",
            post("/organizations")
                    .handle(this::defineOrganization),
            get("/organizations/{organizationId}")
                    .param(String.class)
                    .handle(this::queryOrganization),
            patch("/organizations/{organizationId}/name")
                    .param(String.class)
                    .body(String.class)
                    .handle(this::renameOrganization),
            patch("/organizations/{organizationId}/enable")
                    .param(String.class)
                    .handle(this::enableOrganization),
            patch("/organizations/{organizationId}/disable")
                    .param(String.class)
                    .handle(this::disableOrganization),
            post("/terminate")
                    .handle(this::terminateWorld)
    );
  }

  private String id() {
    return UUID.randomUUID().toString();
  }
}

vlingo-ecommerce fails with NPE and goes into endless loop

I am tying to get ecommerce to run.

I have read the documentation. Found all sample to go with.
I have executed the TEST - also fails

I do the following

  • Start application by run main in class io.vlingo.examples.ecommerce.Bootstrap
  • This will start a web server on port 8081

I am still struggling to understand vlingo - had hoped that I had made my killer banking application now - but I have to be patient.

As said I have read the documentation. That was quick - Therefore I have to do things on my own.


curl -X POST -H 'Content-Type: application/json' -d '{"id":319}' http://localhost:8081/cart 

The failure is: (tail continues for ever)

08:25:37.517 [pool-2-thread-16] INFO  io.vlingo.actors.Logger - io.vlingo.examples.ecommerce.infra.CartSummaryProjectionActor - Query state not read for update because: Store not found: CartUserSummaryData
io.vlingo.symbio.store.StorageException: Store not found: CartUserSummaryData
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.readFor(InMemoryStateStoreActor.java:138) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.read(InMemoryStateStoreActor.java:113) ~[classes/:na]
	at io.vlingo.symbio.store.state.StateStore__Proxy.lambda$read$9b0a896c$1(StateStore__Proxy.java:46) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[classes/:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[classes/:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
08:25:37.517 [pool-2-thread-16] INFO  io.vlingo.actors.Logger - io.vlingo.examples.ecommerce.infra.CartSummaryProjectionActor - Query state not read for update because: Store not found: CartUserSummaryData
io.vlingo.symbio.store.StorageException: Store not found: CartUserSummaryData
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.readFor(InMemoryStateStoreActor.java:138) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.read(InMemoryStateStoreActor.java:113) ~[classes/:na]
	at io.vlingo.symbio.store.state.StateStore__Proxy.lambda$read$9b0a896c$1(StateStore__Proxy.java:46) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[classes/:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[classes/:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
08:25:37.518 [pool-2-thread-16] ERROR io.vlingo.actors.Logger - io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor - InMemoryStateStoreActor writeText() error because: null
java.lang.NullPointerException: null
	at io.vlingo.examples.ecommerce.infra.GenericReadWriteInterest.lambda$writeResultedIn$2(GenericReadWriteInterest.java:41) ~[classes/:na]
	at io.vlingo.common.Success.andThen(Success.java:29) ~[classes/:na]
	at io.vlingo.examples.ecommerce.infra.GenericReadWriteInterest.writeResultedIn(GenericReadWriteInterest.java:40) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.writeWith(InMemoryStateStoreActor.java:200) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.write(InMemoryStateStoreActor.java:118) ~[classes/:na]
	at io.vlingo.symbio.store.state.StateStore__Proxy.lambda$write$ddcd3901$1(StateStore__Proxy.java:36) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[classes/:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[classes/:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
08:25:37.518 [pool-2-thread-16] INFO  io.vlingo.actors.Logger - io.vlingo.examples.ecommerce.infra.CartSummaryProjectionActor - Query state not written for update because: null
io.vlingo.symbio.store.StorageException: null
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.writeWith(InMemoryStateStoreActor.java:203) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.write(InMemoryStateStoreActor.java:118) ~[classes/:na]
	at io.vlingo.symbio.store.state.StateStore__Proxy.lambda$write$ddcd3901$1(StateStore__Proxy.java:36) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[classes/:na]
	at io.vlingo.actors.LocalMessage.deliver(LocalMessage.java:53) ~[classes/:na]
	at io.vlingo.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:100) ~[classes/:na]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
Caused by: java.lang.NullPointerException: null
	at io.vlingo.examples.ecommerce.infra.GenericReadWriteInterest.lambda$writeResultedIn$2(GenericReadWriteInterest.java:41) ~[classes/:na]
	at io.vlingo.common.Success.andThen(Success.java:29) ~[classes/:na]
	at io.vlingo.examples.ecommerce.infra.GenericReadWriteInterest.writeResultedIn(GenericReadWriteInterest.java:40) ~[classes/:na]
	at io.vlingo.symbio.store.state.inmemory.InMemoryStateStoreActor.writeWith(InMemoryStateStoreActor.java:200) ~[classes/:na]
	... 8 common frames omitted

xoom-iddd-agilepm starts but fails with an exception when request is submitted

Following the README:

docker-compose up -d
mvn clean package        
java -jar target/xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar
curl -X POST http://localhost:8080/products \
-H "Content-Type: application/json" \
--data-binary @- << EOF
        {
            "tenantId" : "tenant_id_1",
            "ownerId" : "owner_id_1" ,
            "name" : "product_name",
            "description" : "product_description",
            "hasDiscussion" : true
        }
EOF
16:58:58.233 [pool-2-thread-4] ERROR c.s.a.i.dispatch.ExchangeDispatcher - Entry 129:1:3:4 of dispatch id 3 will not be sent
java.lang.IllegalArgumentException: Not a supported object type: com.saasovation.agilepm.model.product.Events$ProductDefined
        at io.vlingo.xoom.lattice.exchange.Forwarder.ofObjectType(Forwarder.java:92) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.lattice.exchange.Forwarder.forwardToSender(Forwarder.java:54) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.lattice.exchange.camel.CamelExchange.send(CamelExchange.java:63) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at com.saasovation.agilepm.infra.dispatch.ExchangeDispatcher.dispatch(ExchangeDispatcher.java:36) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.symbio.store.journal.inmemory.InMemoryJournal.lambda$dispatch$1(InMemoryJournal.java:215) [xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at java.util.Arrays$ArrayList.forEach(Arrays.java:3880) ~[na:1.8.0_92]
        at io.vlingo.xoom.symbio.store.journal.inmemory.InMemoryJournal.dispatch(InMemoryJournal.java:215) [xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.symbio.store.journal.inmemory.InMemoryJournal.appendAllWith(InMemoryJournal.java:152) [xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.symbio.store.journal.inmemory.InMemoryJournalActor.appendAllWith(InMemoryJournalActor.java:73) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.symbio.store.journal.Journal__Proxy.lambda$appendAllWith$c6086899$1(Journal__Proxy.java:80) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.actors.LocalMessage.internalDeliver(LocalMessage.java:121) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.actors.LocalMessage.deliver(LocalMessage.java:53) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at io.vlingo.xoom.actors.plugin.mailbox.concurrentqueue.ConcurrentQueueMailbox.run(ConcurrentQueueMailbox.java:108) ~[xoom-iddd-agilepm-1.6.1-SNAPSHOT-jar-with-dependencies.jar:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_92]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_92]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_92]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.