gradlew
in all our repos. The gradle wrapper will download gradle into your local directory and run the swim apps for you. The instructions to do so are in the Readme file for all the repos. For example for the tutorial repo it's here: https://github.com/swimos/tutorial/blob/master/README.md
main(String[] args)
method. You will see that it is in the TutorialPlane
for the tutorial repo (https://github.com/swimos/tutorial/blob/master/server/src/main/java/swim/tutorial/TutorialPlane.java#L15). The web agents themselves are defined in the TutorialPlane
as seen here: https://github.com/swimos/tutorial/blob/master/server/src/main/java/swim/tutorial/TutorialPlane.java#L12-L13. So the simplest thing for you to do is to add more WebAgent java classess using that pattern and keep the same method of running the application using the same gradle files
> Task :run
Running Server plane...
[/user/john] Hello, world!
[/user/john] Surname of John is "Doe XAE"
[/user/john] Surname of John is "{\"x\":\"y\"}"
swim.codec.DecoderException: incomplete
at swim.ws.WsStatusDecoder.decode(WsStatusDecoder.java:66)
at swim.ws.WsStatusDecoder.feed(WsStatusDecoder.java:39)
at swim.ws.WsFrameDecoder.decode(WsFrameDecoder.java:132)
at swim.ws.WsFrameDecoder.decode(WsFrameDecoder.java:179)
at swim.ws.WsDecoder.decodeCloseFrame(WsDecoder.java:115)
at swim.ws.WsDecoder.decodeFrame(WsDecoder.java:94)
at swim.ws.WsOpcodeDecoder.decode(WsOpcodeDecoder.java:38)
at swim.ws.WsOpcodeDecoder.feed(WsOpcodeDecoder.java:32)
at swim.io.IpSocketModem.doRead(IpSocketModem.java:164)
at swim.io.TcpSocket.doRead(TcpSocket.java:230)
at swim.io.StationTransport.doRead(Station.java:579)
at swim.io.StationReader.runTask(Station.java:796)
at swim.concurrent.TheaterTask.run(Theater.java:431)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1425)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
[/user/john] Surname of John is "Hello World"
swim.codec.DecoderException: incomplete
at swim.ws.WsStatusDecoder.decode(WsStatusDecoder.java:66)
at swim.ws.WsStatusDecoder.feed(WsStatusDecoder.java:39)
at swim.ws.WsFrameDecoder.decode(WsFrameDecoder.java:132)
at swim.ws.WsFrameDecoder.decode(WsFrameDecoder.java:179)
at swim.ws.WsDecoder.decodeCloseFrame(WsDecoder.java:115)
at swim.ws.WsDecoder.decodeFrame(WsDecoder.java:94)
at swim.ws.WsOpcodeDecoder.decode(WsOpcodeDecoder.java:38)
at swim.ws.WsOpcodeDecoder.feed(WsOpcodeDecoder.java:32)
at swim.io.IpSocketModem.doRead(IpSocketModem.java:164)
at swim.io.TcpSocket.doRead(TcpSocket.java:230)
at swim.io.StationTransport.doRead(Station.java:579)
at swim.io.StationReader.runTask(Station.java:796)
at swim.concurrent.TheaterTask.run(Theater.java:431)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1425)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
<=========----> 75% EXECUTING [5m 40s]
> :run
var swim = require("@swim/client");
var structure = require("@swim/structure");
var msg = structure.Text.from('Hello World')
const hostRef = swim.hostRef("warp://localhost:9001");
const client = new swim.WarpClient();
client.command("warp://localhost:9001", "/user/john", "getSurname", msg);
[/user/john] Surname of John is "Hello World"
swim.codec.DecoderException: incomplete
compile group: 'org.swimos', name: 'swim-server', version: '3.10.0'
compile group: 'org.swimos', name: 'swim-api', version: '3.10.0'
compile group: 'org.swimos', name: 'swim-client', version: '3.10.0'