Commit Graph

721 Commits

Author SHA1 Message Date
Havoc Pennington
d400f5bc01 0.5.0 release 2012-07-05 11:01:00 -04:00
Havoc Pennington
bd820702e6 add withValue method to Config and ConfigObject
This makes it easier to build up a config in code.
2012-07-04 11:56:50 -04:00
Havoc Pennington
d15ade876a add atPath() and atKey() to place a value inside a Config
Otherwise it's sort of clunky to do this because you have to
create a map then parseMap, or other roundabout approach.
2012-06-19 16:30:48 -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
6b0e8c4047 Print an ugly "diff" when an equivalents test fails
Helpful for debugging failed tests.
2012-06-18 22:59:50 -04:00
Havoc Pennington
ac878d653c include the message in Tokens#Problem#toString
Required adding accessor for "what" for use in tests
2012-06-18 22:58:04 -04:00
Havoc Pennington
b3ac8d0539 bump to 0.4.1 in the README 2012-05-24 09:18:34 -04:00
Havoc Pennington
4462c667f9 bump to 0.4.2-SNAPSHOT 2012-05-22 17:26:51 -04:00
Havoc Pennington
9bbb7d7ac4 v0.4.1 2012-05-22 17:26:12 -04:00
Havoc Pennington
fea5d6d478 bump to 0.4.1-SNAPSHOT 2012-05-22 09:04:31 -04:00
Heiko Seeberger
11b9af503a closes #16: Publish as OSGi bundle 2012-05-21 11:51:08 +02:00
Havoc Pennington
765b61a80b explicitly set -source 1.6 -target 1.6 2012-05-14 12:21:18 -04:00
Havoc Pennington
fa038eac67 add note about only supporting Java 6 and above. 2012-05-14 12:07:55 -04:00
Havoc Pennington
445a700c53 add notes on Akka 2.0 embedded config limitations to HOCON.md
These were already in the README but people may jump straight
to the spec, so add them there too.
2012-05-14 12:02:35 -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
2e5b1eaa1b fix formatting of prior NEWS change 2012-04-13 11:27:11 -03:00
Havoc Pennington
c8632d9458 note the moved publish location in NEWS 2012-04-13 10:26:15 -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
85a4edab59 fix a couple links in the API docs 2012-04-13 09:39:39 -04:00
Havoc Pennington
8159cf3ed4 version to 0.4.0-SNAPSHOT (put SNAPSHOT back) 2012-04-13 09:30:12 -04:00
Havoc Pennington
b35dfb67b2 Optimistically update the README with Maven Central information 2012-04-12 21:48:35 -04:00
Havoc Pennington
b88fd55f86 another NEWS tweak 2012-04-12 21:45:43 -04:00
Havoc Pennington
3ce0997adc don't mess up the PGP plugin
No need to add the settings a second time, which
resulted in signing the signatures.

No need to use GPG, it uses its built-in stuff.
2012-04-12 21:40:57 -04:00
Havoc Pennington
5093213c12 NEWS.md updates 2012-04-12 21:38:34 -04:00
Havoc Pennington
387e106856 Add ConfigRenderOptions and ConfigValue#render(options)
This mostly lets you choose whether you want whitespace and
comments, and somewhat as a side effect, you can get plain
JSON by turning off comments.
2012-04-12 21:34:59 -04:00
Havoc Pennington
985958521d more fully test origin serialization and clean up code a bit
Mostly removing impossible codepaths.
2012-04-12 17:36:09 -04:00
Havoc Pennington
aea95bd228 fix some warnings from findbugs
Only one of these, possible incomplete skip
from DataInput.skipBytes(), was a real problem
I think.
2012-04-12 15:33:15 -04:00
Havoc Pennington
db3a676c02 Update build: sbt 0.11.2, maven central publish config, gpg 2012-04-12 15:21:06 -04:00
Havoc Pennington
f0e4dfd806 remove ConfigSubstitution, it was a serialization compat shim
The serialization-pocalypse removes the need for this shim.
2012-04-12 13:21:10 -04:00
Havoc Pennington
388d85fb5d Serialization-pocalypse: change serialization format
The previous use of Java's default serialization dumped
all implementation-detail class names and fields into the serialization,
making it basically impossible to improve the implementation.

Two strategies here:
 - prohibit serialization of unresolved configs, which are
   the location of a lot of implementation detail
 - delegate all serialization to an Externalizable
   SerializedConfigValue class, which serializes
   using fields that have lengths. Unknown fields
   can thus be skipped and we can write code to
   support obsolete fields, and so on.

As a side effect, this makes the serialization far more compact
because we don't need the Java per-class header noise, and we
jump through some hoops to avoid writing out duplicate ConfigOrigin
information. It still isn't super-compact compared to something
like protobuf but it's a lot less insane.
2012-04-12 13:04:14 -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
4add0330d8 fix formatting of a comment in Parseable.java 2012-04-09 19:19:04 -04:00
Havoc Pennington
2dc420ccf0 If include statements from a cycle, throw a nicer error 2012-04-09 19:18:46 -04:00
Havoc Pennington
36f4e2e61a write release notes for 0.NEXT 2012-04-09 12:49:38 -04:00
Havoc Pennington
6490226e8f Implement parsing url() file() classpath() includes 2012-04-09 12:26:44 -04:00
Havoc Pennington
05c60ea0fb Make string, stream parsers support classpath includes
Previously they didn't support any kind of include.
2012-04-09 12:26:44 -04:00
Havoc Pennington
386613909b hack ConfigImplUtil.urlToFile to make "file://whatever" with two slashes work
This compounds the wrongness of that method.
2012-04-09 12:26:44 -04:00
Havoc Pennington
3b7d99a797 Groundwork for the new file() url() classpath() include syntax
This patch doesn't have the parser just the implementation
2012-04-09 12:26:39 -04:00
Havoc Pennington
cdd3e127fc allow setting a ClassLoader on ConfigParseOptions
This should have been the API, rather than adding a loader
parameter to ConfigFactory methods.

By adding to the options, the class loader is inherited by
any included files or urls. Previously, it was only inherited
by included classpath resources, but including classpath resources
from non-classpath resources would lose track of the class loader.

The methods that take a ClassLoader are now convenience API that
just adds that passed-in loader to your ConfigParseOptions.
2012-04-09 10:29:35 -04:00
Havoc Pennington
ce352691ff make clear in docs that ConfigIncludeContext should not be implemented by apps 2012-04-09 10:28:51 -04:00
Havoc Pennington
5e7b929b65 Split ConfigIncludeContext from Parseable out into its own file 2012-04-09 10:28:51 -04:00
Havoc Pennington
8c6b204905 Specify url() classpath() file() includes in the spec 2012-04-09 10:28:45 -04:00
Havoc Pennington
3e46429871 split SimpleIncluder and fromBasename out of ConfigImpl.java
Just to have less stuff in one big file.
2012-04-06 19:41:30 -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
27096e262f Minor spec editing 2012-04-06 00:52:53 -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
8189be0f16 make ConfigException.WrongType extra constructors public
and let Eclipse reformat a bit
2012-04-05 22:49:14 -04:00
Havoc Pennington
11a43d701c add very basic ConcatenationTest for string concatenation 2012-04-05 16:02:52 -04:00