Skip to content

A library for adding extravagant features onto Thrift objects like interfaces and instance methods. Java only for now.

License

Notifications You must be signed in to change notification settings

LiveRamp/extravagance

 
 

Repository files navigation

extravagance

  1. extravagance
    1. Usage
      1. Docker
      2. Binary
    2. Building

Usage

Docker

The docker image expects that you mount the input Java patches into /input, JSON patches into /input_json, and the Java files to be patched into /output. For example:

docker run \
    -v/users/svc-jenkins/code/dist_types/src/main/java/:/input \
    -v/users/svc-jenkins/code/dist_types/src/main/json/:/input_json_patches \
    -v/users/svc-jenkins/code/dist_types/src/main/generated:/output \
    liveramp/extravagance:latest

The Java files will be modified in-place.

Binary

The extravagance binary itself accepts three arguments, which are, respectively, the path of the Java patches, the path of the JSON patches, and the path to the Java files which are to be patched. For example:

extravagance \
    /users/svc-jenkins/code/dist_types/src/main/java/ \
    /users/svc-jenkins/code/dist_types/src/main/json/ \
    /users/svc-jenkins/code/dist_types/src/main/generated

Building

First, run stack docker pull to download the docker image used to run the compilation process. In theory, you should now be able to just run bin/build-docker to produce a Docker image locally. The process may randomly crash, possibly due to running out of memory. You should be able to restart it and it will continue where it left off.

To build a binary for your development system, simply run stack build ..

About

A library for adding extravagant features onto Thrift objects like interfaces and instance methods. Java only for now.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 96.5%
  • Java 2.5%
  • Dockerfile 1.0%