exjprop v0.1.0 Exjprop

Exjprop is a library for reading Java properties files.

It includes the Exjprop.Properties protocol and several implementations including File, Stream, Function, and S3.

Examples

File Example

props = Exjprop.Properties.File.new("/path/to/java.properties")
props = Exjprop.Properties.load

some_prop = Exjprop.Properties.get_property!(props, "some.prop")

Stream Example

stream = File.stream!("/path/to/java.properties")
props = Exjprop.Properties.Stream.new(stream)
props = Exjprop.Properties.load

some_prop = Exjprop.Properties.get_property!(props, "some.prop")

Function Example

fun = fn ->
  File.stream!("/path/to/java.properties")
end

props = Exjprop.Properties.Function.new(fun)
props = Exjprop.Properties.load

some_prop = Exjprop.Properties.get_property!(props, "some.prop")

S3 Example

# using access/secret keys from environment or ec2 identity 
# metadata service
props = Exjprop.Properties.S3.new("props-bucket", "java.properties")
props = Exjprop.Properties.load

some_prop = Exjprop.Properties.get_property!(props, "some.prop") 


# explicitly specifying access/secret keys
props = Exjprop.Properties.S3.new(
  "props-bucket", "java.properties", "access", "secret")
props = Exjprop.Properties.load

some_prop = Exjprop.Properties.get_property!(props, "some.prop")