Commit Graph

109 Commits

Author SHA1 Message Date
Havoc Pennington
7cae92d3ae Bump README to 1.2.1 2014-05-02 10:54:20 -04:00
Havoc Pennington
6c2889728e Move table of contents below overview 2014-05-02 09:02:53 -04:00
Havoc Pennington
6eefb61b5e Organize README and add doctoc table of contents 2014-05-02 09:00:25 -04:00
Havoc Pennington
48a9437513 Go on a bit longer about how to handle defaults in the README 2014-05-01 20:23:13 -04:00
Chris Price
3df982e7af Add link to ruby port in README 2014-03-16 18:33:34 -07:00
Havoc Pennington
2ff0e15cd4 1.2.0 in NEWS and README 2014-01-15 09:59:24 -05:00
Havoc Pennington
e6c7e6bd5b Some other README edits and updates 2014-01-10 19:39:48 -05:00
Havoc Pennington
bc7e0cfa29 give an example of env var substitution 2014-01-10 19:24:06 -05:00
Havoc Pennington
ebc1ca08fe Fix a couple of minor docs errors 2014-01-10 19:22:20 -05:00
Havoc Pennington
41f3de8261 Add a discussion of defaults to the README 2013-11-21 09:55:24 -05:00
Havoc Pennington
a8fdca3589 1.0.2 NEWS and README changes 2013-07-03 09:12:06 -04:00
Havoc Pennington
31b64a9327 back to -SNAPSHOT and put 1.0.1 in the README 2013-05-19 20:43:01 -04:00
Havoc Pennington
3c6007547e v1.0.0 2012-10-15 09:01:57 -04:00
Havoc Pennington
c6a068888c v0.6.0 publish 2012-10-10 14:08:31 -04:00
Havoc Pennington
46386e818f 0.5.2 2012-09-06 09:27:01 -04:00
Havoc Pennington
eea28e5428 link to NEWS from README 2012-07-10 14:24:39 -04:00
Havoc Pennington
d400f5bc01 0.5.0 release 2012-07-05 11:01:00 -04:00
Havoc Pennington
e1d5bc7506 Implement triple-quoted multiline strings
Details are in the spec/news/readme changes in the patch.
2012-06-18 23:01:43 -04:00
Havoc Pennington
b3ac8d0539 bump to 0.4.1 in the README 2012-05-24 09:18:34 -04:00
Havoc Pennington
fa038eac67 add note about only supporting Java 6 and above. 2012-05-14 12:07:55 -04:00
Havoc Pennington
9a2e9a8bde add some notes about features that aren't in Play/Akka 2.0 2012-04-13 10:37:02 -04:00
Havoc Pennington
06d6fc5ee3 mention new include syntax in the README 2012-04-13 10:08:39 -04:00
Havoc Pennington
9b7d2a6469 remove "Future Directions" from README, the Future is Now! 2012-04-13 10:06:36 -04:00
Havoc Pennington
0adc9152d1 Show how to create a Settings class to encapsulate your Config 2012-04-13 10:06:08 -04:00
Havoc Pennington
b35dfb67b2 Optimistically update the README with Maven Central information 2012-04-12 21:48:35 -04:00
Havoc Pennington
d14d8cae78 add a couple tips about debugging configs to the README 2012-04-12 00:54:14 -04:00
Havoc Pennington
69e6164b30 Support += convenience syntax
a += b

transforms to

    a += ${?a} [b]
2012-04-06 10:58:00 -04:00
Havoc Pennington
47e168a92f Implement array and object concatenation
path : [ /bin ]
  path : ${path} [ /usr/bin ]

This added very few lines of code or bytecode!
It's just a natural extension of the existing
string concatenation.

But it did add a fair few lines of specification
and tests.
2012-04-06 00:35:47 -04:00
Havoc Pennington
44ce684985 Allow self-referential fields.
With this patch, you can write:

    path="a🅱️c"
    path=${path}":d"

The semantics are somewhat complicated to specify and
implement, but hopefully not complicated to use for
any reasonable usage that makes any sense.

This patch is technically backward incompatible,
illustrated by a change to existing unit tests,
but the changed behavior is in a bizarre corner case:
cyclical self-references where the cycle could be broken
by only partially resolving an object.

This corner case just threw an exception in the version
of this lib included with Akka/Play 2.0, but in commit
a59e31f744 we tried to handle the case. So the behavior
changes since that commit.

The partial resolution case now has the same consistent
defined semantics we use for all self-reference
resolution, that is it "looks back." In the previous
code it would "look forward."
2012-03-29 14:25:28 -04:00
Havoc Pennington
16871b597e add a future todo item about including URLs 2012-03-28 14:23:04 -04:00
Havoc Pennington
ef79b804e7 Link to the Typesafe CLA web form from the README 2012-03-27 07:53:13 -04:00
Havoc Pennington
830df6b055 update version in README 2012-03-01 12:12:05 -05:00
Brian McCallister
093c19ee0e update readme to include information about unofficial releases in maven central 2012-02-09 10:23:27 -07:00
Havoc Pennington
59a2d8d0df try to fix rendering of bullet list in API docs README section 2011-12-10 09:30:41 -05:00
Havoc Pennington
1f3c19f029 discuss withFallback in the README 2011-12-10 09:12:35 -05:00
Havoc Pennington
a5c78e4f92 link to API docs 2011-12-09 15:48:46 -05:00
Havoc Pennington
45881d4e9d update link to the maven repo 2011-12-09 10:22:17 -05:00
Havoc Pennington
16622f74cb link to the published binaries in README 2011-12-09 08:57:42 -05:00
Havoc Pennington
f95c309462 add a couple of minor notes to the README about sbt and Java properties 2011-12-06 00:12:44 -05:00
Havoc Pennington
38b835d966 correct README statement that include "application" won't work from a file
An earlier change made includes in files fall back to classpath.
2011-12-05 14:46:41 -05:00
Havoc Pennington
63b920acd1 add a short summary of the Examples 2011-12-04 20:51:24 -05:00
Havoc Pennington
0ff5f1ff8c README code example fix 2011-11-30 11:18:46 -05:00
Havoc Pennington
2abd5ad09c minor README tweaks 2011-11-30 10:52:01 -05:00
Havoc Pennington
6d8e476dcf remove two "future directions" from the README
I don't think they made sense:

- "fallback lists" in substitutions can already be done another way
- the "delete" operator isn't clearly useful and feels imperative
  rather than declarative
2011-11-30 10:44:47 -05:00
Havoc Pennington
62628b6404 some README cleanups 2011-11-30 01:55:56 -05:00
Havoc Pennington
9b44709c89 support -Dconfig.resource, -Dconfig.file, -Dconfig.url system props
These override application.{conf,json,properties} for ConfigFactory.load()
2011-11-30 01:51:36 -05:00
Havoc Pennington
81ce6038c7 remove special-case fallback to system props in substitutions.
The earlier change to make ${user.home} in a file included underneath
"foo" search both ${foo.user.home} and then ${user.home}, means
that even in included files system props are picked up just fine
as long as they were merged into the root config. So there is no
longer any need to have a special-case fallback to system properties.

This leaves ConfigResolveOptions as a really complex way to pass
in a single bool, but of course the point is to allow for future
extension.
2011-11-29 15:46:55 -05:00
Havoc Pennington
53193a48d3 Search for substitutions both included-file-relative and root-relative
This should lay the groundwork for removing the special case fallback
to system properties, and allows included files to look at the reference
configuration.
2011-11-29 15:21:13 -05:00
Havoc Pennington
4f3a91fd86 document why substitutions special-case system props
currently needed for files that are included in other files.

not really happy with how this works now, but documenting it
as a starting point.

maybe to force a substitution to resolve from the root we could
start it with a period? ${.this.is.a.root.prop} ?
2011-11-28 15:11:26 -05:00
Havoc Pennington
9aae9e2a80 Overhaul ConfigFactory API and ConfigFactory.load().
Update all docs and tests.

Add example library and application.
2011-11-28 12:23:21 -05:00
Havoc Pennington
e6ee3d6232 mention using several env vars for one setting in README 2011-11-28 01:37:29 -05:00
Havoc Pennington
789930cd8e Implement Config.checkValid() to check against a reference config
This allows verifying that a config has all the keys it's supposed
to have, and also that they have plausible value types. It uses
a reference config as a kind of very loose schema.

Another benefit is that it can give users a big batch of error
messages at once, rather than one at a time via exceptions
when config settings are used.

Because the reference config is not really a schema, users of
checkValid() may have to tune its behavior by removing some
things from the reference config used for validation, or
ignoring certain errors, or doing additional validation
on their own. But checkValid() is a good basic validator
for all your simple settings and if you have complex
settings you can write additional code to support them
while still using checkValid() for the simple ones.
2011-11-28 01:14:31 -05:00
Havoc Pennington
6ec2681055 missing, optional substitutions ${?foo} become undefined not null
This is more useful behavior because it permits an optional override
for example.
2011-11-27 12:04:44 -05:00
Havoc Pennington
4dddfdaf19 Make ${missing} throw an exception and add ${?missing} for the old behavior.
Also updated the spec; in this patch, the spec says ${?missing} will be
undefined, but the code still evaluates it to null as in the old
behavior. A follow-up patch will introduce the undefined behavior
that is now specified.

This change is needed because missing substitutions are probably
a problem in most cases, and evaluating missing to null is probably
not as useful as evaluating it to undefined. If it turns out that
we need the null behavior, a possible syntax is ${foo.bar,null}
or something like that.
2011-11-27 11:33:10 -05:00
Havoc Pennington
afff7c61ef Explain in README how to take advantage of substitutions 2011-11-22 10:53:35 -05:00
Havoc Pennington
13362f46b4 fix the example API usage in the README 2011-11-18 17:49:40 -05:00
Havoc Pennington
ece196c146 mention foo.bar=10, foo.baz=12 style syntax (single line properties-style) 2011-11-15 23:35:24 -05:00
Havoc Pennington
1841dd9c67 Add a real README, license, and rewrite spec. 2011-11-15 19:14:22 -05:00
Havoc Pennington
00241585bd add an empty README.md 2011-11-10 20:54:53 -05:00