Spike: Figure out how to plug JSON schema in from external library (jar file) into a module

Spike: Figure out how to plug JSON schema in from external library (jar file) into a module

Description:

There is a need to use external JSON schema(s) to describe data in RAML API interfaces. 
The schema is expected to reside inside a jar file which attached to a module as a regular dependency.
If the above is not achievable – propose any options of how external schemas can be used in a module with minimal effort



Input values:

assume existing RAML directory structure:

\ramls -\examples -\raml-util -library.raml -nataliabook.json -bookCollection.json

where bookCollection.json file contains a reference to the single item 

as following:

"$ref": "nataliaBook.json"

Results:


   1. Include JSON schemas as a dependency to the module using maven plugins

Approach:

  • add a dependency to the target module

  • include following plugins to the .pom file

Advantages: 

  • No need to modify RMB module 

Disadvantages:

  • Insert a bunch of plugins to every module needed

  • maintain regex in case of change


      2. Add plugin to RMB to manage references 

Approach:

Advantages: 

  • Changes done in RMB will apply to all modules, which are used it  

Disadvantages:

  • Need to modify RMB module 

  • Need to investigate the amount of changes to RMB


     3. Add schemas to RAML module 

Approach:

Advantages: 

  • All needed files stored in one place and modules can access it as other schemas already stored in RAML module

Disadvantages:

  • Raml module will store additional files, which probably not all of the modules are interested in.