mirror of
https://github.com/lightbend/config.git
synced 2025-03-22 23:30:27 +08:00
Merge branch 'master' into ml-503-missing-getXList-methods
This commit is contained in:
commit
f2ae46d140
6
NEWS.md
6
NEWS.md
@ -10,7 +10,7 @@
|
|||||||
during resolution.
|
during resolution.
|
||||||
- Config Beans now support `Set` collection.
|
- Config Beans now support `Set` collection.
|
||||||
- a few other small bugfixes. All of the fixed issues can be found
|
- a few other small bugfixes. All of the fixed issues can be found
|
||||||
in the [milestone page](https://github.com/typesafehub/config/milestone/1?closed=1).
|
in the [milestone page](https://github.com/lightbend/config/milestone/1?closed=1).
|
||||||
|
|
||||||
# 1.3.1: September 24, 2016
|
# 1.3.1: September 24, 2016
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ Thank you to contributors with commits since v1.2.1 tag:
|
|||||||
- build jar using Java 1.6 (and enforce this in build)
|
- build jar using Java 1.6 (and enforce this in build)
|
||||||
- change getDuration to return unboxed long instead of boxed
|
- change getDuration to return unboxed long instead of boxed
|
||||||
- API documentation improvements
|
- API documentation improvements
|
||||||
http://typesafehub.github.io/config/latest/api/
|
http://lightbend.github.io/config/latest/api/
|
||||||
|
|
||||||
# 1.1.0-9f31d6308e7ebbc3d7904b64ebb9f61f7e22a968: January 6, 2014
|
# 1.1.0-9f31d6308e7ebbc3d7904b64ebb9f61f7e22a968: January 6, 2014
|
||||||
|
|
||||||
@ -240,7 +240,7 @@ Thank you to contributors with commits since v1.2.1 tag:
|
|||||||
- new API Config.getDuration() replaces getMilliseconds and
|
- new API Config.getDuration() replaces getMilliseconds and
|
||||||
getNanoseconds. (should it return `long` instead of `Long` even
|
getNanoseconds. (should it return `long` instead of `Long` even
|
||||||
though it's been in git for a while? weigh in at
|
though it's been in git for a while? weigh in at
|
||||||
https://github.com/typesafehub/config/issues/119 )
|
https://github.com/lightbend/config/issues/119 )
|
||||||
- new API ConfigResolveOptions.setAllowUnresolved lets you
|
- new API ConfigResolveOptions.setAllowUnresolved lets you
|
||||||
partially-resolve a Config
|
partially-resolve a Config
|
||||||
- new API Config.isResolved lets you check on resolution status
|
- new API Config.isResolved lets you check on resolution status
|
||||||
|
63
README.md
63
README.md
@ -1,11 +1,11 @@
|
|||||||
Configuration library for JVM languages.
|
Configuration library for JVM languages.
|
||||||
|
|
||||||
[](https://maven-badges.herokuapp.com/maven-central/com.typesafe/config)
|
[](https://maven-badges.herokuapp.com/maven-central/com.typesafe/config)
|
||||||
[](https://travis-ci.org/typesafehub/config)
|
[](https://travis-ci.org/lightbend/config)
|
||||||
|
|
||||||
If you have questions or are working on a pull request or just
|
If you have questions or are working on a pull request or just
|
||||||
curious, please feel welcome to join the chat room:
|
curious, please feel welcome to join the chat room:
|
||||||
[](https://gitter.im/typesafehub/config?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/lightbend/config?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@ -88,16 +88,13 @@ to merge it in.
|
|||||||
- [Python port](#python-port)
|
- [Python port](#python-port)
|
||||||
- [C++ port](#c-port)
|
- [C++ port](#c-port)
|
||||||
- [JavaScript port](#javascript-port)
|
- [JavaScript port](#javascript-port)
|
||||||
|
- [C# port](#c-port-1)
|
||||||
- [Linting tool](#linting-tool)
|
- [Linting tool](#linting-tool)
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
## Essential Information
|
## Essential Information
|
||||||
|
|
||||||
### License
|
|
||||||
|
|
||||||
The license is Apache 2.0, see LICENSE-2.0.txt.
|
|
||||||
|
|
||||||
### Binary Releases
|
### Binary Releases
|
||||||
|
|
||||||
Version 1.2.1 and earlier were built for Java 6, while newer
|
Version 1.2.1 and earlier were built for Java 6, while newer
|
||||||
@ -122,15 +119,15 @@ Link for direct download if you don't use a dependency manager:
|
|||||||
### Release Notes
|
### Release Notes
|
||||||
|
|
||||||
Please see NEWS.md in this directory,
|
Please see NEWS.md in this directory,
|
||||||
https://github.com/typesafehub/config/blob/master/NEWS.md
|
https://github.com/lightbend/config/blob/master/NEWS.md
|
||||||
|
|
||||||
### API docs
|
### API docs
|
||||||
|
|
||||||
- Online: http://typesafehub.github.com/config/latest/api/
|
- Online: http://lightbend.github.io/config/latest/api/
|
||||||
- also published in jar form
|
- also published in jar form
|
||||||
- consider reading this README first for an intro
|
- consider reading this README first for an intro
|
||||||
- for questions about the `.conf` file format, read
|
- for questions about the `.conf` file format, read
|
||||||
[HOCON.md](https://github.com/typesafehub/config/blob/master/HOCON.md)
|
[HOCON.md](https://github.com/lightbend/config/blob/master/HOCON.md)
|
||||||
in this directory
|
in this directory
|
||||||
|
|
||||||
### Bugs and Patches
|
### Bugs and Patches
|
||||||
@ -144,7 +141,7 @@ account - it takes 30 seconds. You can do this at
|
|||||||
http://www.typesafe.com/contribute/cla
|
http://www.typesafe.com/contribute/cla
|
||||||
|
|
||||||
Please see
|
Please see
|
||||||
[CONTRIBUTING](https://github.com/typesafehub/config/blob/master/CONTRIBUTING.md)
|
[CONTRIBUTING](https://github.com/lightbend/config/blob/master/CONTRIBUTING.md)
|
||||||
for more including how to make a release.
|
for more including how to make a release.
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
@ -165,7 +162,7 @@ Scala dependency.
|
|||||||
|
|
||||||
### Longer Examples
|
### Longer Examples
|
||||||
|
|
||||||
See the examples in the `examples/` [directory](https://github.com/typesafehub/config/tree/master/examples).
|
See the examples in the `examples/` [directory](https://github.com/lightbend/config/tree/master/examples).
|
||||||
|
|
||||||
You can run these from the sbt console with the commands `project
|
You can run these from the sbt console with the commands `project
|
||||||
config-simple-app-java` and then `run`.
|
config-simple-app-java` and then `run`.
|
||||||
@ -189,7 +186,7 @@ Objects are immutable, so methods on `Config` which transform the
|
|||||||
configuration return a new `Config`. Other types such as
|
configuration return a new `Config`. Other types such as
|
||||||
`ConfigParseOptions`, `ConfigResolveOptions`, `ConfigObject`,
|
`ConfigParseOptions`, `ConfigResolveOptions`, `ConfigObject`,
|
||||||
etc. are also immutable. See the
|
etc. are also immutable. See the
|
||||||
[API docs](http://typesafehub.github.com/config/latest/api/) for
|
[API docs](http://lightbend.github.io/config/latest/api/) for
|
||||||
details of course.
|
details of course.
|
||||||
|
|
||||||
### Schemas and Validation
|
### Schemas and Validation
|
||||||
@ -198,7 +195,7 @@ There isn't a schema language or anything like that. However, two
|
|||||||
suggested tools are:
|
suggested tools are:
|
||||||
|
|
||||||
- use the
|
- use the
|
||||||
[checkValid() method](http://typesafehub.github.io/config/latest/api/com/typesafe/config/Config.html#checkValid-com.typesafe.config.Config-java.lang.String...-)
|
[checkValid() method](http://lightbend.github.io/config/latest/api/com/typesafe/config/Config.html#checkValid-com.typesafe.config.Config-java.lang.String...-)
|
||||||
- access your config through a Settings class with a field for
|
- access your config through a Settings class with a field for
|
||||||
each setting, and instantiate it on startup (immediately
|
each setting, and instantiate it on startup (immediately
|
||||||
throwing an exception if any settings are missing)
|
throwing an exception if any settings are missing)
|
||||||
@ -435,7 +432,7 @@ values into multiple places in your code. You have been warned!
|
|||||||
### Understanding `Config` and `ConfigObject`
|
### Understanding `Config` and `ConfigObject`
|
||||||
|
|
||||||
To read and modify configuration, you'll use the
|
To read and modify configuration, you'll use the
|
||||||
[Config](http://typesafehub.github.io/config/latest/api/com/typesafe/config/Config.html)
|
[Config](http://lightbend.github.io/config/latest/api/com/typesafe/config/Config.html)
|
||||||
interface. A `Config` looks at a JSON-equivalent data structure as
|
interface. A `Config` looks at a JSON-equivalent data structure as
|
||||||
a one-level map from paths to values. So if your JSON looks like
|
a one-level map from paths to values. So if your JSON looks like
|
||||||
this:
|
this:
|
||||||
@ -450,7 +447,7 @@ this:
|
|||||||
Using the `Config` interface, you could write
|
Using the `Config` interface, you could write
|
||||||
`conf.getInt("foo.bar")`. The `foo.bar` string is called a _path
|
`conf.getInt("foo.bar")`. The `foo.bar` string is called a _path
|
||||||
expression_
|
expression_
|
||||||
([HOCON.md](https://github.com/typesafehub/config/blob/master/HOCON.md)
|
([HOCON.md](https://github.com/lightbend/config/blob/master/HOCON.md)
|
||||||
has the syntax details for these expressions). Iterating over this
|
has the syntax details for these expressions). Iterating over this
|
||||||
`Config`, you would get two entries; `"foo.bar" : 42` and
|
`Config`, you would get two entries; `"foo.bar" : 42` and
|
||||||
`"foo.baz" : 43`. When iterating a `Config` you will not find
|
`"foo.baz" : 43`. When iterating a `Config` you will not find
|
||||||
@ -463,7 +460,7 @@ skip `null` values.
|
|||||||
|
|
||||||
You can also look at a `Config` in the way most JSON APIs would,
|
You can also look at a `Config` in the way most JSON APIs would,
|
||||||
through the
|
through the
|
||||||
[ConfigObject](http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigObject.html)
|
[ConfigObject](http://lightbend.github.io/config/latest/api/com/typesafe/config/ConfigObject.html)
|
||||||
interface. This interface represents an object node in the JSON
|
interface. This interface represents an object node in the JSON
|
||||||
tree. `ConfigObject` instances come in multi-level trees, and the
|
tree. `ConfigObject` instances come in multi-level trees, and the
|
||||||
keys do not have any syntax (they are just strings, not path
|
keys do not have any syntax (they are just strings, not path
|
||||||
@ -475,15 +472,15 @@ expressions). Iterating over the above example as a
|
|||||||
In `ConfigObject`, `null` values are visible (distinct from
|
In `ConfigObject`, `null` values are visible (distinct from
|
||||||
missing values), just as they are in JSON.
|
missing values), just as they are in JSON.
|
||||||
|
|
||||||
`ConfigObject` is a subtype of [ConfigValue](http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigValue.html), where the other
|
`ConfigObject` is a subtype of [ConfigValue](http://lightbend.github.io/config/latest/api/com/typesafe/config/ConfigValue.html), where the other
|
||||||
subtypes are the other JSON types (list, string, number, boolean, null).
|
subtypes are the other JSON types (list, string, number, boolean, null).
|
||||||
|
|
||||||
`Config` and `ConfigObject` are two ways to look at the same
|
`Config` and `ConfigObject` are two ways to look at the same
|
||||||
internal data structure, and you can convert between them for free
|
internal data structure, and you can convert between them for free
|
||||||
using
|
using
|
||||||
[Config.root()](http://typesafehub.github.io/config/latest/api/com/typesafe/config/Config.html#root%28%29)
|
[Config.root()](http://lightbend.github.io/config/latest/api/com/typesafe/config/Config.html#root%28%29)
|
||||||
and
|
and
|
||||||
[ConfigObject.toConfig()](http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigObject.html#toConfig%28%29).
|
[ConfigObject.toConfig()](http://lightbend.github.io/config/latest/api/com/typesafe/config/ConfigObject.html#toConfig%28%29).
|
||||||
|
|
||||||
### ConfigBeanFactory
|
### ConfigBeanFactory
|
||||||
|
|
||||||
@ -506,7 +503,7 @@ particular value manually).
|
|||||||
|
|
||||||
The JSON superset is called "Human-Optimized Config Object
|
The JSON superset is called "Human-Optimized Config Object
|
||||||
Notation" or HOCON, and files use the suffix `.conf`. See
|
Notation" or HOCON, and files use the suffix `.conf`. See
|
||||||
[HOCON.md](https://github.com/typesafehub/config/blob/master/HOCON.md)
|
[HOCON.md](https://github.com/lightbend/config/blob/master/HOCON.md)
|
||||||
in this directory for more detail.
|
in this directory for more detail.
|
||||||
|
|
||||||
After processing a `.conf` file, the result is always just a JSON
|
After processing a `.conf` file, the result is always just a JSON
|
||||||
@ -771,7 +768,7 @@ version 1.2.1 and earlier will work with Java 6.
|
|||||||
Please use 1.2.1 if you need Java 6 support, though some people
|
Please use 1.2.1 if you need Java 6 support, though some people
|
||||||
have expressed interest in a branch off of 1.3.x supporting
|
have expressed interest in a branch off of 1.3.x supporting
|
||||||
Java 7. If you want to work on that branch you might bring it up
|
Java 7. If you want to work on that branch you might bring it up
|
||||||
on [chat](https://gitter.im/typesafehub/config). We can release a
|
on [chat](https://gitter.im/lightbend/config). We can release a
|
||||||
jar for Java 7 if someone(s) steps up to maintain the branch. The
|
jar for Java 7 if someone(s) steps up to maintain the branch. The
|
||||||
master branch does not use Java 8 "gratuitously" but some APIs
|
master branch does not use Java 8 "gratuitously" but some APIs
|
||||||
that use Java 8 types will need to be removed.
|
that use Java 8 types will need to be removed.
|
||||||
@ -853,10 +850,10 @@ format.
|
|||||||
#### Clojure wrappers for the Java library
|
#### Clojure wrappers for the Java library
|
||||||
|
|
||||||
* beamly-core.config https://github.com/beamly/beamly-core.config
|
* beamly-core.config https://github.com/beamly/beamly-core.config
|
||||||
|
|
||||||
#### Kotlin wrappers for the Java library
|
#### Kotlin wrappers for the Java library
|
||||||
* config4k https://github.com/config4k/config4k
|
* config4k https://github.com/config4k/config4k
|
||||||
|
|
||||||
#### Scala port
|
#### Scala port
|
||||||
|
|
||||||
* SHocon https://github.com/unicredit/shocon (work with both Scala and Scala.Js)
|
* SHocon https://github.com/unicredit/shocon (work with both Scala and Scala.Js)
|
||||||
@ -878,9 +875,25 @@ format.
|
|||||||
* https://github.com/puppetlabs/cpp-hocon
|
* https://github.com/puppetlabs/cpp-hocon
|
||||||
|
|
||||||
#### JavaScript port
|
#### JavaScript port
|
||||||
|
|
||||||
* https://github.com/yellowblood/hocon-js (missing features, under development)
|
* https://github.com/yellowblood/hocon-js (missing features, under development)
|
||||||
|
|
||||||
|
#### C# port
|
||||||
|
|
||||||
|
* https://github.com/akkadotnet/HOCON
|
||||||
|
|
||||||
#### Linting tool
|
#### Linting tool
|
||||||
|
|
||||||
* A web based linting tool http://www.hoconlint.com/
|
* A web based linting tool http://www.hoconlint.com/
|
||||||
|
|
||||||
|
# Maintanance notes
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The license is Apache 2.0, see LICENSE-2.0.txt.
|
||||||
|
|
||||||
|
## Maintained by
|
||||||
|
|
||||||
|
This project is maintained mostly by [@havocp](https://github.com/havocp) and [@akka-team](https://github.com/orgs/lightbend/teams/akka-team/members).
|
||||||
|
|
||||||
|
Feel free to ping above maintainers for code review or discussions. Pull requests are very welcome–thanks in advance!
|
||||||
|
@ -14,11 +14,11 @@ scalacOptions in GlobalScope in Test := Seq("-unchecked", "-deprecation", "-feat
|
|||||||
scalaVersion in ThisBuild := "2.10.4"
|
scalaVersion in ThisBuild := "2.10.4"
|
||||||
|
|
||||||
val sonatype = new PublishToSonatype {
|
val sonatype = new PublishToSonatype {
|
||||||
def projectUrl = "https://github.com/typesafehub/config"
|
def projectUrl = "https://github.com/lightbend/config"
|
||||||
def developerId = "havocp"
|
def developerId = "havocp"
|
||||||
def developerName = "Havoc Pennington"
|
def developerName = "Havoc Pennington"
|
||||||
def developerUrl = "http://ometer.com/"
|
def developerUrl = "http://ometer.com/"
|
||||||
def scmUrl = "git://github.com/typesafehub/config.git"
|
def scmUrl = "git://github.com/lightbend/config.git"
|
||||||
}
|
}
|
||||||
|
|
||||||
lazy val commonSettings: Seq[Setting[_]] = Def.settings(
|
lazy val commonSettings: Seq[Setting[_]] = Def.settings(
|
||||||
|
@ -84,7 +84,7 @@ javacOptions in (Compile, doc) ++= Seq("-group", s"Public API (version ${version
|
|||||||
|
|
||||||
javadocSourceBaseUrl := {
|
javadocSourceBaseUrl := {
|
||||||
for (gitHead <- com.typesafe.sbt.SbtGit.GitKeys.gitHeadCommit.value)
|
for (gitHead <- com.typesafe.sbt.SbtGit.GitKeys.gitHeadCommit.value)
|
||||||
yield s"https://github.com/typesafehub/config/blob/$gitHead/config/src/main/java"
|
yield s"https://github.com/lightbend/config/blob/$gitHead/config/src/main/java"
|
||||||
}
|
}
|
||||||
|
|
||||||
javaVersionPrefix in javaVersionCheck := Some("1.8")
|
javaVersionPrefix in javaVersionCheck := Some("1.8")
|
||||||
|
@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* You can find an example app and library <a
|
* You can find an example app and library <a
|
||||||
* href="https://github.com/typesafehub/config/tree/master/examples">on
|
* href="https://github.com/lightbend/config/tree/master/examples">on
|
||||||
* GitHub</a>. Also be sure to read the <a
|
* GitHub</a>. Also be sure to read the <a
|
||||||
* href="package-summary.html#package_description">package overview</a> which
|
* href="package-summary.html#package_description">package overview</a> which
|
||||||
* describes the big picture as shown in those examples.
|
* describes the big picture as shown in those examples.
|
||||||
@ -56,7 +56,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
* in a JSON object; it's just a string that's the key in a map. A "path" is a
|
* in a JSON object; it's just a string that's the key in a map. A "path" is a
|
||||||
* parseable expression with a syntax and it refers to a series of keys. Path
|
* parseable expression with a syntax and it refers to a series of keys. Path
|
||||||
* expressions are described in the <a
|
* expressions are described in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">spec for
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">spec for
|
||||||
* Human-Optimized Config Object Notation</a>. In brief, a path is
|
* Human-Optimized Config Object Notation</a>. In brief, a path is
|
||||||
* period-separated so "a.b.c" looks for key c in object b in object a in the
|
* period-separated so "a.b.c" looks for key c in object b in object a in the
|
||||||
* root object. Sometimes double quotes are needed around special characters in
|
* root object. Sometimes double quotes are needed around special characters in
|
||||||
@ -110,7 +110,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
* <p>
|
* <p>
|
||||||
* <em>Substitutions</em> are the <code>${foo.bar}</code> syntax in config
|
* <em>Substitutions</em> are the <code>${foo.bar}</code> syntax in config
|
||||||
* files, described in the <a href=
|
* files, described in the <a href=
|
||||||
* "https://github.com/typesafehub/config/blob/master/HOCON.md#substitutions"
|
* "https://github.com/lightbend/config/blob/master/HOCON.md#substitutions"
|
||||||
* >specification</a>. Resolving substitutions replaces these references with real
|
* >specification</a>. Resolving substitutions replaces these references with real
|
||||||
* values.
|
* values.
|
||||||
*
|
*
|
||||||
@ -189,7 +189,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
/**
|
/**
|
||||||
* Returns a replacement config with all substitutions (the
|
* Returns a replacement config with all substitutions (the
|
||||||
* <code>${foo.bar}</code> syntax, see <a
|
* <code>${foo.bar}</code> syntax, see <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>) resolved. Substitutions are looked up using this
|
* spec</a>) resolved. Substitutions are looked up using this
|
||||||
* <code>Config</code> as the root object, that is, a substitution
|
* <code>Config</code> as the root object, that is, a substitution
|
||||||
* <code>${foo.bar}</code> will be replaced with the result of
|
* <code>${foo.bar}</code> will be replaced with the result of
|
||||||
@ -670,7 +670,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* the value is already a number, then it's left alone; if it's a string,
|
* the value is already a number, then it's left alone; if it's a string,
|
||||||
* it's parsed understanding unit suffixes such as "128K", as documented in
|
* it's parsed understanding unit suffixes such as "128K", as documented in
|
||||||
* the <a
|
* the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>.
|
* spec</a>.
|
||||||
*
|
*
|
||||||
* @param path
|
* @param path
|
||||||
@ -690,7 +690,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* the value is already a number, then it's left alone; if it's a string,
|
* the value is already a number, then it's left alone; if it's a string,
|
||||||
* it's parsed understanding unit suffixes such as "128K", as documented in
|
* it's parsed understanding unit suffixes such as "128K", as documented in
|
||||||
* the <a
|
* the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>.
|
* spec</a>.
|
||||||
*
|
*
|
||||||
* @since 1.3.0
|
* @since 1.3.0
|
||||||
@ -711,7 +711,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* Get value as a duration in milliseconds. If the value is already a
|
* Get value as a duration in milliseconds. If the value is already a
|
||||||
* number, then it's left alone; if it's a string, it's parsed understanding
|
* number, then it's left alone; if it's a string, it's parsed understanding
|
||||||
* units suffixes like "10m" or "5ns" as documented in the <a
|
* units suffixes like "10m" or "5ns" as documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>.
|
* spec</a>.
|
||||||
*
|
*
|
||||||
* @deprecated As of release 1.1, replaced by {@link #getDuration(String, TimeUnit)}
|
* @deprecated As of release 1.1, replaced by {@link #getDuration(String, TimeUnit)}
|
||||||
@ -754,7 +754,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* number, then it's taken as milliseconds and then converted to the
|
* number, then it's taken as milliseconds and then converted to the
|
||||||
* requested TimeUnit; if it's a string, it's parsed understanding units
|
* requested TimeUnit; if it's a string, it's parsed understanding units
|
||||||
* suffixes like "10m" or "5ns" as documented in the <a
|
* suffixes like "10m" or "5ns" as documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>.
|
* spec</a>.
|
||||||
*
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
@ -778,7 +778,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* already a number, then it's taken as milliseconds; if it's
|
* already a number, then it's taken as milliseconds; if it's
|
||||||
* a string, it's parsed understanding units suffixes like
|
* a string, it's parsed understanding units suffixes like
|
||||||
* "10m" or "5ns" as documented in the <a
|
* "10m" or "5ns" as documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>. This method never returns null.
|
* spec</a>. This method never returns null.
|
||||||
*
|
*
|
||||||
* @since 1.3.0
|
* @since 1.3.0
|
||||||
@ -800,7 +800,7 @@ public interface Config extends ConfigMergeable {
|
|||||||
* already a number, then it's taken as days; if it's
|
* already a number, then it's taken as days; if it's
|
||||||
* a string, it's parsed understanding units suffixes like
|
* a string, it's parsed understanding units suffixes like
|
||||||
* "10d" or "5w" as documented in the <a
|
* "10d" or "5w" as documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">the
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">the
|
||||||
* spec</a>. This method never returns null.
|
* spec</a>. This method never returns null.
|
||||||
*
|
*
|
||||||
* @since 1.3.2
|
* @since 1.3.2
|
||||||
|
@ -28,7 +28,7 @@ import java.util.concurrent.Callable;
|
|||||||
* from a resource and nothing else.
|
* from a resource and nothing else.
|
||||||
*
|
*
|
||||||
* <p> You can find an example app and library <a
|
* <p> You can find an example app and library <a
|
||||||
* href="https://github.com/typesafehub/config/tree/master/examples">on
|
* href="https://github.com/lightbend/config/tree/master/examples">on
|
||||||
* GitHub</a>. Also be sure to read the <a
|
* GitHub</a>. Also be sure to read the <a
|
||||||
* href="package-summary.html#package_description">package
|
* href="package-summary.html#package_description">package
|
||||||
* overview</a> which describes the big picture as shown in those
|
* overview</a> which describes the big picture as shown in those
|
||||||
@ -570,7 +570,7 @@ public final class ConfigFactory {
|
|||||||
/**
|
/**
|
||||||
* Converts a Java {@link java.util.Properties} object to a
|
* Converts a Java {@link java.util.Properties} object to a
|
||||||
* {@link ConfigObject} using the rules documented in the <a
|
* {@link ConfigObject} using the rules documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">HOCON
|
||||||
* spec</a>. The keys in the <code>Properties</code> object are split on the
|
* spec</a>. The keys in the <code>Properties</code> object are split on the
|
||||||
* period character '.' and treated as paths. The values will all end up as
|
* period character '.' and treated as paths. The values will all end up as
|
||||||
* string values. If you have both "a=foo" and "a.b=bar" in your properties
|
* string values. If you have both "a=foo" and "a.b=bar" in your properties
|
||||||
|
@ -27,7 +27,7 @@ public interface ConfigMergeable {
|
|||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* The semantics of merging are described in the <a
|
* The semantics of merging are described in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">spec
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">spec
|
||||||
* for HOCON</a>. Merging typically occurs when either the same object is
|
* for HOCON</a>. Merging typically occurs when either the same object is
|
||||||
* created twice in the same file, or two config files are both loaded. For
|
* created twice in the same file, or two config files are both loaded. For
|
||||||
* example:
|
* example:
|
||||||
|
@ -6,7 +6,7 @@ package com.typesafe.config;
|
|||||||
/**
|
/**
|
||||||
* A set of options related to resolving substitutions. Substitutions use the
|
* A set of options related to resolving substitutions. Substitutions use the
|
||||||
* <code>${foo.bar}</code> syntax and are documented in the <a
|
* <code>${foo.bar}</code> syntax and are documented in the <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON</a>
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">HOCON</a>
|
||||||
* spec.
|
* spec.
|
||||||
* <p>
|
* <p>
|
||||||
* Typically this class would be used with the method
|
* Typically this class would be used with the method
|
||||||
|
@ -5,7 +5,7 @@ package com.typesafe.config;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The syntax of a character stream (<a href="http://json.org">JSON</a>, <a
|
* The syntax of a character stream (<a href="http://json.org">JSON</a>, <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON</a>
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md">HOCON</a>
|
||||||
* aka ".conf", or <a href=
|
* aka ".conf", or <a href=
|
||||||
* "http://download.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29"
|
* "http://download.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29"
|
||||||
* >Java properties</a>).
|
* >Java properties</a>).
|
||||||
@ -21,7 +21,7 @@ public enum ConfigSyntax {
|
|||||||
JSON,
|
JSON,
|
||||||
/**
|
/**
|
||||||
* The JSON-superset <a
|
* The JSON-superset <a
|
||||||
* href="https://github.com/typesafehub/config/blob/master/HOCON.md"
|
* href="https://github.com/lightbend/config/blob/master/HOCON.md"
|
||||||
* >HOCON</a> format. Associated with the <code>.conf</code> file extension
|
* >HOCON</a> format. Associated with the <code>.conf</code> file extension
|
||||||
* and <code>application/hocon</code> Content-Type.
|
* and <code>application/hocon</code> Content-Type.
|
||||||
*/
|
*/
|
||||||
|
@ -192,7 +192,7 @@ final class ConfigParser {
|
|||||||
|
|
||||||
// we really should make this work, but for now throwing an
|
// we really should make this work, but for now throwing an
|
||||||
// exception is better than producing an incorrect result.
|
// exception is better than producing an incorrect result.
|
||||||
// See https://github.com/typesafehub/config/issues/160
|
// See https://github.com/lightbend/config/issues/160
|
||||||
if (arrayCount > 0 && obj.resolveStatus() != ResolveStatus.RESOLVED)
|
if (arrayCount > 0 && obj.resolveStatus() != ResolveStatus.RESOLVED)
|
||||||
throw parseError("Due to current limitations of the config parser, when an include statement is nested inside a list value, "
|
throw parseError("Due to current limitations of the config parser, when an include statement is nested inside a list value, "
|
||||||
+ "${} substitutions inside the included file cannot be resolved correctly. Either move the include outside of the list value or "
|
+ "${} substitutions inside the included file cannot be resolved correctly. Either move the include outside of the list value or "
|
||||||
@ -247,7 +247,7 @@ final class ConfigParser {
|
|||||||
// we really should make this work, but for now throwing
|
// we really should make this work, but for now throwing
|
||||||
// an exception is better than producing an incorrect
|
// an exception is better than producing an incorrect
|
||||||
// result. See
|
// result. See
|
||||||
// https://github.com/typesafehub/config/issues/160
|
// https://github.com/lightbend/config/issues/160
|
||||||
if (arrayCount > 0)
|
if (arrayCount > 0)
|
||||||
throw parseError("Due to current limitations of the config parser, += does not work nested inside a list. "
|
throw parseError("Due to current limitations of the config parser, += does not work nested inside a list. "
|
||||||
+ "+= expands to a ${} substitution and the path in ${} cannot currently refer to list elements. "
|
+ "+= expands to a ${} substitution and the path in ${} cannot currently refer to list elements. "
|
||||||
|
@ -17,7 +17,7 @@ Please check out the {@link com.typesafe.config.Config public API} instead, unle
|
|||||||
you're interested in browsing implementation details. None of the ABI
|
you're interested in browsing implementation details. None of the ABI
|
||||||
under <code>impl</code> has any guarantees; it will change whenever someone
|
under <code>impl</code> has any guarantees; it will change whenever someone
|
||||||
feels like changing it. If you feel you need access to something
|
feels like changing it. If you feel you need access to something
|
||||||
in <code>impl</code>, <a href="https://github.com/typesafehub/config/issues">please
|
in <code>impl</code>, <a href="https://github.com/lightbend/config/issues">please
|
||||||
file a feature request</a>.
|
file a feature request</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -9,14 +9,14 @@
|
|||||||
<body bgcolor="white">
|
<body bgcolor="white">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
An API for loading and using configuration files, see <a href="https://github.com/typesafehub/config/">the project site</a>
|
An API for loading and using configuration files, see <a href="https://github.com/lightbend/config/">the project site</a>
|
||||||
for more information.
|
for more information.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Typically you would load configuration with a static method from {@link com.typesafe.config.ConfigFactory} and then use
|
Typically you would load configuration with a static method from {@link com.typesafe.config.ConfigFactory} and then use
|
||||||
it with methods in the {@link com.typesafe.config.Config} interface. Configuration may be in the form of JSON files,
|
it with methods in the {@link com.typesafe.config.Config} interface. Configuration may be in the form of JSON files,
|
||||||
Java properties, or <a href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON files</a>; you may also
|
Java properties, or <a href="https://github.com/lightbend/config/blob/master/HOCON.md">HOCON files</a>; you may also
|
||||||
build your own configuration in code or from your own file formats.
|
build your own configuration in code or from your own file formats.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -26,8 +26,8 @@ its configuration in "application.conf" on the classpath.
|
|||||||
If you use the default configuration from {@link com.typesafe.config.ConfigFactory#load()}
|
If you use the default configuration from {@link com.typesafe.config.ConfigFactory#load()}
|
||||||
there's no need to pass a configuration to your libraries
|
there's no need to pass a configuration to your libraries
|
||||||
and frameworks, as long as they all default to this same default, which they should.
|
and frameworks, as long as they all default to this same default, which they should.
|
||||||
<br/><strong>Example application code:</strong> <a href="https://github.com/typesafehub/config/tree/master/examples/java/simple-app/src/main">Java</a> and <a href="https://github.com/typesafehub/config/tree/master/examples/scala/simple-app/src/main">Scala</a>.
|
<br/><strong>Example application code:</strong> <a href="https://github.com/lightbend/config/tree/master/examples/java/simple-app/src/main">Java</a> and <a href="https://github.com/lightbend/config/tree/master/examples/scala/simple-app/src/main">Scala</a>.
|
||||||
<br/>Showing a couple of more special-purpose features, <strong>a more complex example:</strong> <a href="https://github.com/typesafehub/config/tree/master/examples/java/complex-app/src/main">Java</a> and <a href="https://github.com/typesafehub/config/tree/master/examples/scala/complex-app/src/main">Scala</a>.
|
<br/>Showing a couple of more special-purpose features, <strong>a more complex example:</strong> <a href="https://github.com/lightbend/config/tree/master/examples/java/complex-app/src/main">Java</a> and <a href="https://github.com/lightbend/config/tree/master/examples/scala/complex-app/src/main">Scala</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -36,21 +36,21 @@ A library or framework should ship a file "reference.conf" in its jar, and allow
|
|||||||
call {@link com.typesafe.config.ConfigFactory#load()}
|
call {@link com.typesafe.config.ConfigFactory#load()}
|
||||||
to get the default one. Typically a library might offer two constructors, one with a <code>Config</code> parameter
|
to get the default one. Typically a library might offer two constructors, one with a <code>Config</code> parameter
|
||||||
and one which uses {@link com.typesafe.config.ConfigFactory#load()}.
|
and one which uses {@link com.typesafe.config.ConfigFactory#load()}.
|
||||||
<br/><strong>Example library code:</strong> <a href="https://github.com/typesafehub/config/tree/master/examples/java/simple-lib/src/main">Java</a> and <a href="https://github.com/typesafehub/config/tree/master/examples/scala/simple-lib/src/main">Scala</a>.
|
<br/><strong>Example library code:</strong> <a href="https://github.com/lightbend/config/tree/master/examples/java/simple-lib/src/main">Java</a> and <a href="https://github.com/lightbend/config/tree/master/examples/scala/simple-lib/src/main">Scala</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Check out the full <a href="https://github.com/typesafehub/config/tree/master/examples">examples directory on GitHub</a>.
|
Check out the full <a href="https://github.com/lightbend/config/tree/master/examples">examples directory on GitHub</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
What else to read:
|
What else to read:
|
||||||
<ul>
|
<ul>
|
||||||
<li>The overview documentation for interface {@link com.typesafe.config.Config}.</li>
|
<li>The overview documentation for interface {@link com.typesafe.config.Config}.</li>
|
||||||
<li>The <a href="https://github.com/typesafehub/config/blob/master/README.md">README</a> for the library.</li>
|
<li>The <a href="https://github.com/lightbend/config/blob/master/README.md">README</a> for the library.</li>
|
||||||
<li>If you want to use <code>.conf</code> files in addition to <code>.json</code> and <code>.properties</code>,
|
<li>If you want to use <code>.conf</code> files in addition to <code>.json</code> and <code>.properties</code>,
|
||||||
see the <a href="https://github.com/typesafehub/config/blob/master/README.md">README</a> for some short examples
|
see the <a href="https://github.com/lightbend/config/blob/master/README.md">README</a> for some short examples
|
||||||
and the full <a href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON spec</a> for the long version.</li>
|
and the full <a href="https://github.com/lightbend/config/blob/master/HOCON.md">HOCON spec</a> for the long version.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ package com.typesafe.config.parser;
|
|||||||
* Note: at present there is no way to obtain an instance of this interface, so
|
* Note: at present there is no way to obtain an instance of this interface, so
|
||||||
* please ignore it. A future release will make syntax tree nodes available in
|
* please ignore it. A future release will make syntax tree nodes available in
|
||||||
* the public API. If you are interested in working on it, please see: <a
|
* the public API. If you are interested in working on it, please see: <a
|
||||||
* href="https://github.com/typesafehub/config/issues/300"
|
* href="https://github.com/lightbend/config/issues/300"
|
||||||
* >https://github.com/typesafehub/config/issues/300</a>
|
* >https://github.com/lightbend/config/issues/300</a>
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* Because this object is immutable, it is safe to use from multiple threads and
|
* Because this object is immutable, it is safe to use from multiple threads and
|
||||||
|
@ -14,7 +14,7 @@ files. You do not want this package for everyday config in your app: see
|
|||||||
the <code>com.typesafe.config</code> package instead. You would use the raw
|
the <code>com.typesafe.config</code> package instead. You would use the raw
|
||||||
parser if you're doing something like reading, modifying, and re-saving a config
|
parser if you're doing something like reading, modifying, and re-saving a config
|
||||||
file. For info on the main config API this parser is a part of,
|
file. For info on the main config API this parser is a part of,
|
||||||
see <a href="https://github.com/typesafehub/config/">the project site</a>.
|
see <a href="https://github.com/lightbend/config/">the project site</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -346,7 +346,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We would ideally make this case NOT throw an exception but we need to do some work
|
// We would ideally make this case NOT throw an exception but we need to do some work
|
||||||
// to get there, see https://github.com/typesafehub/config/issues/160
|
// to get there, see https://github.com/lightbend/config/issues/160
|
||||||
@Test
|
@Test
|
||||||
def plusEqualsMultipleTimesNestedInArray() {
|
def plusEqualsMultipleTimesNestedInArray() {
|
||||||
val e = intercept[ConfigException.Parse] {
|
val e = intercept[ConfigException.Parse] {
|
||||||
@ -357,7 +357,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We would ideally make this case NOT throw an exception but we need to do some work
|
// We would ideally make this case NOT throw an exception but we need to do some work
|
||||||
// to get there, see https://github.com/typesafehub/config/issues/160
|
// to get there, see https://github.com/lightbend/config/issues/160
|
||||||
@Test
|
@Test
|
||||||
def plusEqualsMultipleTimesNestedInPlusEquals() {
|
def plusEqualsMultipleTimesNestedInPlusEquals() {
|
||||||
val e = intercept[ConfigException.Parse] {
|
val e = intercept[ConfigException.Parse] {
|
||||||
@ -367,7 +367,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
assertTrue(e.getMessage.contains("limitation"))
|
assertTrue(e.getMessage.contains("limitation"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// from https://github.com/typesafehub/config/issues/177
|
// from https://github.com/lightbend/config/issues/177
|
||||||
@Test
|
@Test
|
||||||
def arrayConcatenationInDoubleNestedDelayedMerge() {
|
def arrayConcatenationInDoubleNestedDelayedMerge() {
|
||||||
val unresolved = parseConfig("""d { x = [] }, c : ${d}, c { x += 1, x += 2 }""")
|
val unresolved = parseConfig("""d { x = [] }, c : ${d}, c { x += 1, x += 2 }""")
|
||||||
@ -375,7 +375,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
||||||
}
|
}
|
||||||
|
|
||||||
// from https://github.com/typesafehub/config/issues/177
|
// from https://github.com/lightbend/config/issues/177
|
||||||
@Test
|
@Test
|
||||||
def arrayConcatenationAsPartOfDelayedMerge() {
|
def arrayConcatenationAsPartOfDelayedMerge() {
|
||||||
val unresolved = parseConfig(""" c { x: [], x : ${c.x}[1], x : ${c.x}[2] }""")
|
val unresolved = parseConfig(""" c { x: [], x : ${c.x}[1], x : ${c.x}[2] }""")
|
||||||
@ -383,7 +383,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
||||||
}
|
}
|
||||||
|
|
||||||
// from https://github.com/typesafehub/config/issues/177
|
// from https://github.com/lightbend/config/issues/177
|
||||||
@Test
|
@Test
|
||||||
def arrayConcatenationInDoubleNestedDelayedMerge2() {
|
def arrayConcatenationInDoubleNestedDelayedMerge2() {
|
||||||
val unresolved = parseConfig("""d { x = [] }, c : ${d}, c { x : ${c.x}[1], x : ${c.x}[2] }""")
|
val unresolved = parseConfig("""d { x = [] }, c : ${d}, c { x : ${c.x}[1], x : ${c.x}[2] }""")
|
||||||
@ -391,7 +391,7 @@ class ConcatenationTest extends TestUtils {
|
|||||||
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
assertEquals(Seq(1, 2), conf.getIntList("c.x").asScala)
|
||||||
}
|
}
|
||||||
|
|
||||||
// from https://github.com/typesafehub/config/issues/177
|
// from https://github.com/lightbend/config/issues/177
|
||||||
@Test
|
@Test
|
||||||
def arrayConcatenationInTripleNestedDelayedMerge() {
|
def arrayConcatenationInTripleNestedDelayedMerge() {
|
||||||
val unresolved = parseConfig("""{ r: { d.x=[] }, q: ${r}, q : { d { x = [] }, c : ${q.d}, c { x : ${q.c.x}[1], x : ${q.c.x}[2] } } }""")
|
val unresolved = parseConfig("""{ r: { d.x=[] }, q: ${r}, q : { d { x = [] }, c : ${q.d}, c { x : ${q.c.x}[1], x : ${q.c.x}[2] } } }""")
|
||||||
|
@ -280,7 +280,7 @@ class ConfigValueTest extends TestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reproduces the issue <a href=https://github.com/typesafehub/config/issues/461>#461</a>.
|
* Reproduces the issue <a href=https://github.com/lightbend/config/issues/461>#461</a>.
|
||||||
* <p>
|
* <p>
|
||||||
* We use a custom de-/serializer that encodes String objects in a JDK-incompatible way. Encoding used here
|
* We use a custom de-/serializer that encodes String objects in a JDK-incompatible way. Encoding used here
|
||||||
* is rather simplistic: a long indicating the length in bytes (JDK uses a variable length integer) followed
|
* is rather simplistic: a long indicating the length in bytes (JDK uses a variable length integer) followed
|
||||||
|
@ -906,7 +906,7 @@ class PublicApiTest extends TestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We would ideally make this case NOT throw an exception but we need to do some work
|
// We would ideally make this case NOT throw an exception but we need to do some work
|
||||||
// to get there, see https://github.com/typesafehub/config/issues/160
|
// to get there, see https://github.com/lightbend/config/issues/160
|
||||||
@Test
|
@Test
|
||||||
def detectIncludeFromList() {
|
def detectIncludeFromList() {
|
||||||
val e = intercept[ConfigException.Parse] {
|
val e = intercept[ConfigException.Parse] {
|
||||||
@ -1070,7 +1070,7 @@ class PublicApiTest extends TestUtils {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
def heuristicIncludeChecksClasspath(): Unit = {
|
def heuristicIncludeChecksClasspath(): Unit = {
|
||||||
// from https://github.com/typesafehub/config/issues/188
|
// from https://github.com/lightbend/config/issues/188
|
||||||
withScratchDirectory("heuristicIncludeChecksClasspath") { dir =>
|
withScratchDirectory("heuristicIncludeChecksClasspath") { dir =>
|
||||||
val f = new File(dir, "foo.conf")
|
val f = new File(dir, "foo.conf")
|
||||||
writeFile(f, """
|
writeFile(f, """
|
||||||
|
@ -70,7 +70,7 @@ class UnitParserTest extends TestUtils {
|
|||||||
assertTrue(s"${e2.getMessage} was not the expected error message", e2.getMessage.contains("time unit 'seconds'"))
|
assertTrue(s"${e2.getMessage} was not the expected error message", e2.getMessage.contains("time unit 'seconds'"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/typesafehub/config/issues/117
|
// https://github.com/lightbend/config/issues/117
|
||||||
// this broke because "1d" is a valid double for parseDouble
|
// this broke because "1d" is a valid double for parseDouble
|
||||||
@Test
|
@Test
|
||||||
def parseOneDayAsMilliseconds(): Unit = {
|
def parseOneDayAsMilliseconds(): Unit = {
|
||||||
|
@ -37,7 +37,7 @@ object LinkSourcePlugin extends AutoPlugin {
|
|||||||
|
|
||||||
private def rewriteSourceLinks(dir: File, sourceBaseUrl: String, log: Logger): Unit = {
|
private def rewriteSourceLinks(dir: File, sourceBaseUrl: String, log: Logger): Unit = {
|
||||||
// Convert <a href="../../../src-html/com/typesafe/config/Config.html#line.165"> to
|
// Convert <a href="../../../src-html/com/typesafe/config/Config.html#line.165"> to
|
||||||
// "https://github.com/typesafehub/config/blob/v1.2.1/config/src/main/java/com/typesafe/config/Config.java#L165"
|
// "https://github.com/lightbend/config/blob/v1.2.1/config/src/main/java/com/typesafe/config/Config.java#L165"
|
||||||
// in all .html files found underneath dir
|
// in all .html files found underneath dir
|
||||||
val origRegex = "href=\".*src-html/([^\"]+)\"".r
|
val origRegex = "href=\".*src-html/([^\"]+)\"".r
|
||||||
def listFiles(d: File): Seq[File] = IO.listFiles(d).toSeq.flatMap { f =>
|
def listFiles(d: File): Seq[File] = IO.listFiles(d).toSeq.flatMap { f =>
|
||||||
|
Loading…
Reference in New Issue
Block a user