Files
fission-src/examples/jvm/java/README.md
T

2.2 KiB

Hello World in JVM/Java on Fission

The io.fission.HelloWorld.java class is a very simple fission function that implements io.fission.Function and says "Hello, World!" .

Building and deploying using Fission

Fission's builder can be used to create the binary artifact from source code. Create an environment with builder image and then create a package.

$ zip -r java-src-pkg.zip *
$ fission env create --name java --image fission/jvm-env --version 2 --keeparchive --builder fission/jvm-builder
$ fission package create --sourcearchive java-src-pkg.zip --env java
java-src-pkg-zip-tvd0
$ fission package info --name java-src-pkg-zip-tvd0
Name:        java-src-pkg-zip-tvd0
Environment: java
Status:      succeeded
Build Logs:
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------------< io.fission:hello-world >-----------------------
[INFO] Building hello-world 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------

Once package's status is succeeded then that package can be used to create and execute a function.

$ fission fn create --name hello --pkg java-src-pkg-zip-tvd0 --env java --entrypoint io.fission.HelloWorld
$ fission fn test --name hello
Hello World!

Building locally and deploying with Fission

You can build the jar file in one of the two ways below based on your setup:

  • You can use docker without the need to install JDK and Maven to build the jar file from source code:
$ ./build.sh

  • If you have JDK and Maven installed, you can directly build the JAR file using command:
$ mvn clean package

Both of above steps will generate a target subdirectory which has the archive target/hello-world-1.0-SNAPSHOT-jar-with-dependencies.jar which will be used for creating function.

  • The archive created above will be used as a deploy package when creating the function.
$ fission env create --name jvm --image fission/jvm-env --version 2 --keeparchive=true
$ fission fn create --name hello --deploy target/hello-world-1.0-SNAPSHOT-jar-with-dependencies.jar --env jvm --entrypoint io.fission.HelloWorld
$ fission route create --function hello --url /hellop --method GET
$ fission fn test --name hello
Hello World!