This is a proof-of-concept Clojure application to explore the capabilities of interop between Clojure and Java.
- The
rgsclojure app is deployed as a web application - The
rgsapp's set of functions will be composed of multiple subsets of functions - Each subset of functions will be served by a separate clojure namespace or a Java package
- Closed source vendor modules (in Java, packaged as jars) should also be able to serve the subset of functions of the rgs app
- There will be a common set of functionality which is needed by both the clojure nses, java package and external jars which needs to be provided by the
rgsapp
There are 3 modules / packages in total
- rgs.core
- rgs
- vendor
These are a set of library functions which are used by both the vendor and rgs itself. Ideally the rgs and rgs.core is a closed source system and the source is not open to any of the vendors
The overarching deployment artifact which has its own set of modules as well as needs to load the vendor jar
This is a vendor managed closed source system which depends on rgs but also needed by rgs to provide functionality. This is supplied as a jar to rgs deployment
- Compile rgs.core as a uberjar so that the rgs library functionality is shared with vendor
$ cd rgs/core
$ lein uberjar
$ cd -- Compile rgs as a uberjar so that the rgs functionality is available
$ cd rgs
$ lein uberjar
$ cd -- Build the vendor jar file which needs to be deployed on the rgs
$ cd vendor
$ make
$ cd -- Test the vendor.jar build
$ java -cp target/rgs-0.1.0-standalone.jar:../vendor/vendor.jar Game- Test the rgs app
$ java -cp target/rgs-0.1.0-standalone.jar Platform