datahub/contrib/metadata-ingestion/haskell/bin/dataset-jdbc-generator.hs.nix
John Plaisted 6ece2d6469
Start adding java ETL examples, starting with kafka etl. (#1805)
Start adding java ETL examples, starting with kafka etl.

We've had a few requests to start providing Java examples rather than Python due to type safety.

I've also started to add these to metadata-ingestion-examples to make it clearer these are *examples*. They can be used directly or as a basis for other things.

As we port to Java we'll move examples to contrib.
2020-09-11 13:04:21 -07:00

55 lines
1.6 KiB
Nix

with import <nixpkgs> {} ;
let
inline_java_git = fetchFromGitHub {
owner = "tweag" ;
repo = "inline-java" ;
rev = "a897d32df99e4ed19314d2a7e245785152e9099d" ;
sha256 = "00pk19j9g0mm9sknj3aklz01zv1dy234s3vnzg6daq1dmwd4hb68" ;
} ;
haskellPackages = pkgs.haskellPackages.override {
overrides = self: super: with pkgs.haskell.lib; {
jni = overrideCabal (self.callCabal2nix "jni" (inline_java_git + /jni) {}) (drv: {
preConfigure = ''
local libdir=( "${pkgs.jdk}/lib/openjdk/jre/lib/"*"/server" )
configureFlags+=" --extra-lib-dir=''${libdir[0]}"
'' ;
}) ;
jvm = overrideCabal (self.callCabal2nix "jvm" (inline_java_git + /jvm) {}) (drv: {
doCheck = false ;
}) ;
inline-java = overrideCabal (self.callCabal2nix "inline-java" inline_java_git {}) (drv: {
doCheck = false ;
}) ;
jvm-batching = overrideCabal (self.callCabal2nix "jvm-batching" (inline_java_git + /jvm-batching) {}) (drv: {
doCheck = false ;
}) ;
jvm-streaming = overrideCabal (self.callCabal2nix "jvm-streaming" (inline_java_git + /jvm-streaming) {}) (drv: {
doCheck = false ;
}) ;
} ;
};
in
mkShell {
buildInputs = [
pkgs.jdk
pkgs.postgresql_jdbc
pkgs.mysql_jdbc
pkgs.mssql_jdbc
pkgs.oracle-instantclient
(haskellPackages.ghcWithPackages ( p:
[ p.bytestring p.string-conversions
p.interpolatedstring-perl6
p.aeson p.aeson-qq
p.exceptions
p.inline-java
p.conduit
]
))
];
}