Commit Graph

744 Commits

Author SHA1 Message Date
Preben Ingvaldsen
78c0612190 Add test for empty document insertion
Add a test for inserting a value into an empty ConfigDocument.
2015-04-09 13:54:46 -07:00
Havoc Pennington
b60b37bb9c Merge pull request #307 from typesafehub/ref-resolve
README: Discuss FAQ on how reference.conf gets resolved
2015-04-09 13:03:16 -04:00
Havoc Pennington
acca3b5c6d README: Discuss FAQ on how reference.conf gets resolved
Closes #306, relates to #167
2015-04-09 12:33:01 -04:00
Havoc Pennington
20dd869b51 Merge pull request #304 from fpringvaldsen/task/update-configdocumentparser
Update ConfigDocumentParser and various tests
2015-04-08 14:42:25 -04:00
Havoc Pennington
357de0deac Merge pull request #305 from fpringvaldsen/task/configparser-cleanup
Cleanup ConfigParser comments
2015-04-08 14:40:29 -04:00
Preben Ingvaldsen
b1eadee1d0 Cleanup ConfigParser comments
Remove/reword comments on ConfigParser so that they reflect
what the Parser is actually doing.
2015-04-08 09:46:03 -07:00
Preben Ingvaldsen
c2b2c10d38 Clean up ConfigDocument tests
Clean up the ConfigDocument tests by renaming certain tests and
modifying all exception testing to use the intercept method.
2015-04-07 14:13:21 -07:00
Preben Ingvaldsen
6c011b5e4a Cleanup of ConfigDocumentParser and tests
Clean up ConfigDocumentParser tests by using the `intercept`
method to handle exception testing, moving some tests, and
removing a test that was re-testing already tested functionality.

Fix bug wherein parsing of a single value would throw an exception
when the value is a map with a key that has an object value and no
separator if the default ConfParserOptions where used. Add a test
to validate this fix.
2015-04-06 15:29:59 -07:00
Havoc Pennington
7107ec05b0 Merge pull request #301 from fpringvaldsen/task/update-confignode-tests
Update/cleanup ConfigNodeTests
2015-04-06 12:53:56 -04:00
Preben Ingvaldsen
9ca0729fde Update/cleanup ConfigNodeTests
Update the ConfigNodeTests to reflect the changes to the way
various types of ConfigNode work, including removing all
leading/trailing whitespace from ConfigNodeFields and adding in
ConfigNodeComments in place of ConfigNodeSingleTokens containing
comment tokens.
2015-04-03 14:04:17 -07:00
Havoc Pennington
d6f7f4c0cb Put parser package in the public API javadoc group 2015-04-01 22:02:45 -04:00
Havoc Pennington
3d6401ce77 Update NEWS for 1.3.0-M2 2015-04-01 21:55:58 -04:00
Havoc Pennington
8ec5784e32 Fix a bunch of compile-time warnings, minor doc tweaks 2015-04-01 21:43:31 -04:00
Havoc Pennington
ea78c17381 Merge pull request #298 from fpringvaldsen/task/improve-indentation
Improve indentation
2015-04-01 21:08:24 -04:00
Preben Ingvaldsen
deb32bcab0 Change parent class of ConfigNodeInclude
Modify the parent class of ConfigNodeInclude to be
AbstractConfigNode instead of ConfigNodeComplexValue, as an
include statement is not a value.
2015-04-01 16:06:02 -07:00
Preben Ingvaldsen
dc567e8489 Look at includes when finding indentation
Modify the indentation calculation algorithm to also look at the
indentation before include nodes.
2015-04-01 13:20:33 -07:00
Preben Ingvaldsen
1b257fd426 Address PR feedback and add new test
Cleanup the indentText() method on ConfigNodeComplexValue as per
PR feedback. Add a test for indentation when inserting a value
with an include statement.
2015-04-01 13:20:33 -07:00
Preben Ingvaldsen
a29475ba4a Indent multi-line values on replacement
Indent multi-line values when they replace a value in a
ConfigDocument.
2015-04-01 13:20:33 -07:00
Preben Ingvaldsen
7ec3777c25 Improve indentation when adding a setting
Modify the algorithm for adding a new value into a ConfigDocument
so that it will attempt to indent the new setting properly.
2015-04-01 13:20:33 -07:00
Havoc Pennington
2dcefc006b Merge pull request #296 from fpringvaldsen/task/removeValue-fix
Fix removeValue test failures
2015-03-30 19:12:24 -04:00
Preben Ingvaldsen
33fed067b6 Fix removeValue test failures 2015-03-30 15:51:43 -07:00
Havoc Pennington
dcab6e7158 Add some failing tests for ConfigDocument.removeValue 2015-03-30 16:29:35 -04:00
Havoc Pennington
ed004d47e7 Merge pull request #294 from fpringvaldsen/task/more-ConfigDocument-methods
Add new ConfigDocument API methods
2015-03-30 16:18:56 -04:00
Preben Ingvaldsen
e959e2c8a9 Address PR feedback
Reduce cast noise in the `hasValue` method in the
ConfigNodeObject class. Cleanup exception testing in
ConfigDocument array tests.
2015-03-30 13:09:05 -07:00
Preben Ingvaldsen
d6c9f632ab Modify duplicate removal
Modify the ConfigDocument duplicate removal so that multi-element
paths beginning with the desired path whose value should be set
are always removed as duplicates.
2015-03-30 11:53:57 -07:00
Preben Ingvaldsen
97bd1f60c0 Add new ConfigDocument API methods
Add two new methods to the ConfigDocument API, hasValue() and
removeValue(), along with tests.
2015-03-30 11:53:57 -07:00
Havoc Pennington
d4ab52fb6b Merge pull request #292 from typesafehub/parser-package
Parser package
2015-03-30 14:41:13 -04:00
Havoc Pennington
52d997beff Add package.html for parser package and some other doc tweaks 2015-03-30 09:59:30 -04:00
Havoc Pennington
2d83b1fb6b Move ConfigDocument and ConfigNode into a "parser" package
This should cut down on people wasting time on these when they
are looking for the regular config API; they are for a narrower
use-case.
2015-03-30 09:40:59 -04:00
Havoc Pennington
2af0b42ad9 Mention getIsNull and hasPathOrNull as exceptions to "Config hides null" docs 2015-03-29 10:31:51 -04:00
Havoc Pennington
26dc482c0f Merge pull request #287 from fpringvaldsen/task/integrate-ConfigDocument
Refactor Parser
2015-03-28 21:27:18 -04:00
Preben Ingvaldsen
74070b44cc Address PR feedback
Address numerous pieces of PR feedback, including:
  * Change ConfigDocumentParser's parse method to take a
    ConfigOrigin as a parameter, and uses this origin when
    throwing Parse exceptions rather than a dummy origin
  * Pass in the type of an include node on construction so it
    does not have to parse the information out itself
  * Add tests to ensure an empty object is created inside a
    ConfigNodeRoot when an empty document is given
  * Remove unused instance variables or variables duplicated
    between the two parsers
2015-03-27 13:36:58 -07:00
Preben Ingvaldsen
13cb4785b9 Fix compilation errors 2015-03-27 09:13:07 -07:00
Havoc Pennington
a7240387e8 Add a test for serializing WrongType exception
There's a bug report about this not working... it seems to work
here though.
2015-03-27 10:38:12 -04:00
Preben Ingvaldsen
368ad614f8 Refactor Parser to parse ConfigNodes
Rename the Parser class to ConfigParser. Refactor ConfigParser
to parse ConfigNodes rather than Tokens.
2015-03-26 15:26:23 -07:00
Havoc Pennington
a3c255e50a Merge pull request #286 from typesafehub/get-is-null
Add Config.hasPathOrNull and Config.getIsNull
2015-03-25 18:04:28 -04:00
Havoc Pennington
c26d977884 Add "use hasPathOrNull/getIsNull" to README
Make these a sixth option in the list of things to
consider if you're looking for the "getOptional" kind
of method.
2015-03-25 18:01:18 -04:00
Preben Ingvaldsen
05e7a0e176 Add line numbers to ConfigDocumentParser errors
Add line numbers into the ConfigDocumentParser error messages,
as these were previously not being displayed.
2015-03-25 11:54:01 -07:00
Preben Ingvaldsen
7aff85dead Fix same-line comments bug in ConfigDocumentParser
Fix bug wherein putting a comment on the same line as a value
would cause an exception to be thrown by the ConfigDocumentParser
2015-03-25 11:28:15 -07:00
Preben Ingvaldsen
59981da04d Allow leading whitespace in ConfigDocumentParser
Fix a bug with the ConfigDocumentParser in which an exception
would be thrown when there was leading whitespace in front
of the top-level object.
2015-03-25 11:08:10 -07:00
Havoc Pennington
18e30353fd Fix bad html in hasPathOrNull doc comment 2015-03-24 13:44:05 -04:00
Havoc Pennington
92dc50ea0a Add Config.hasPathOrNull and Config.getIsNull
This is for #186 / #282 as an alternative to adding
a ton of getFooOrNull methods. With these methods apps
can handle null or missing settings in a special way
if they see fit.
2015-03-24 13:44:05 -04:00
Havoc Pennington
25a9f91230 Merge pull request #280 from fpringvaldsen/task/create-ConfigNode
Add ConfigDocument API
2015-03-24 13:37:01 -04:00
Preben Ingvaldsen
b70d4c1fc9 Update single value parsing
Update the single value parsing method to throw an exception
when there is leading or trailing whitespace. Modify concatenation
parsing in the ConfigDocumentParser to put back any trailing
whitespace. Add a hashCode method for AbstractConfigNodes.
2015-03-24 10:15:50 -07:00
Preben Ingvaldsen
1639a91481 Address further PR feedback before merge
Implement an `equals()` method for AbstractConfigNodes. Add a
test to ensure an exception is thrown when calling setValue()
on a ConfigDocument when passing in a value with HOCON syntax
when the document was parsed as JSON. Add a setValue() method to
the ConfigDocument interface that takes a ConfigValue instead of
a String. When parsing a single value, throw an exception if a
concatenation is seen when parsing JSON.
2015-03-23 15:55:38 -07:00
Preben Ingvaldsen
c3a2e07c6a Address some more PR feedback
Make the javadoc string for the ConfigDocument interface more
explicit about what it does with the value string when setting
a value. Add support for parsing a reader into a ConfigDocument.
2015-03-23 14:02:59 -07:00
Havoc Pennington
e8c51c4654 Merge pull request #285 from glenford/master
Add Beamly clojure wrapper to the README
2015-03-23 13:41:11 -04:00
Preben Ingvaldsen
28a096f157 Cleanup based on findbugs 2015-03-20 14:09:17 -07:00
Glen Ford
92a87dbc4f Add Beamly clojure wrapper to the README 2015-03-20 08:37:06 +00:00
Preben Ingvaldsen
4b61790fb4 Improve field addition in node replacement
Improve the field addition in node replacement so that it will
create any non-existent objects along the desired path to the
desired value. Modify Path Node parsing so that subpaths can
be retrieved with the necessary tokens for those subpaths.
Ensure that the addition of a new field in a JSON document
results in valid JSON.
2015-03-19 16:28:32 -07:00