yangtools.git
9 years agoBug 2480: Union objects are generated incorrectly when using bits type 35/13535/6
Martin Ciglan [Wed, 10 Dec 2014 13:29:05 +0000 (14:29 +0100)]
Bug 2480: Union objects are generated incorrectly when using bits type

In case of bits typedef within union, method getValue() returning array
of booleans was missing.

Change-Id: If4b0f98d3889facff819d02f44566e816674528d
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
9 years agoMerge "Shift Builder<P> from toInstance() to build()"
Robert Varga [Thu, 15 Jan 2015 19:11:48 +0000 (19:11 +0000)]
Merge "Shift Builder<P> from toInstance() to build()"

9 years agoShift Builder<P> from toInstance() to build() 92/14092/2
Ed Warnicke [Mon, 12 Jan 2015 00:25:53 +0000 (18:25 -0600)]
Shift Builder<P> from toInstance() to build()

In order to be able to use Builder<P> as a marker
on generated Builders, it needed to shift to build()

All 'internal' uses for Builder have been changed
to use build().  For things used outside of yangtools,
a depracted toInstance() is maintained on child
interfaces/classes.

Change-Id: I43662296e328133a5b5267be54d407e2ad4b95e8
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoSet root pom.xml <name> for Sonar 22/14022/3
Thanh Ha [Fri, 9 Jan 2015 19:15:58 +0000 (14:15 -0500)]
Set root pom.xml <name> for Sonar

As mentioned on the mailing list Sonar uses the <name> field of the
pom.xml that is passed to the mvn command as the name of the project in
Sonar. In most cases this is the root pom.xml file in a project. This
patch sets the name to the project shortname.

https://lists.opendaylight.org/pipermail/discuss/2014-November/004024.html

Change-Id: I52a1cc89da77913da6e530b2d2776538887c9b63
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoBug 1573: Fixed deserialization of not representable Instance Identifier 03/14003/3
Tony Tkacik [Thu, 8 Jan 2015 15:30:59 +0000 (16:30 +0100)]
Bug 1573: Fixed deserialization of not representable Instance Identifier

Not all YangInstanceIdentifier are representable in Binding form,
codecs were designed to handle this and omit such cases,
but one ommision case was missing in deserializing Instance Identifier
without data and this resulted into returning incorrectly
constructed InstanceIdentifier.

Updated test which was testing incorrect behaviour to test correct
behaviour.

Change-Id: I97215f674f7ff164bc2c87d9eef4a254510b0280
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
9 years agoMerge "BUG-2159: update karaf version to 3.0.2"
Tony Tkacik [Wed, 7 Jan 2015 16:15:43 +0000 (16:15 +0000)]
Merge "BUG-2159: update karaf version to 3.0.2"

9 years agoBug 1559, Bug 2406 - Unknown statement is missing in submodule and revision statements 49/13249/2
Peter Kajsa [Mon, 1 Dec 2014 09:57:50 +0000 (10:57 +0100)]
Bug 1559, Bug 2406 - Unknown statement is missing in submodule and revision statements

Bug 1559 - stmtsep is missing in submodule_stmt.
Bug 2406 - in our grammar unknown-statement can occur only after all revision
statements, but in RFC grammar unknown-statement can occur also before or
between two revision statements etc.

Change-Id: Ide4a9044545af8a397cc8c4074ea6ae91022288d
Signed-off-by: Peter Kajsa <pkajsa@cisco.com>
9 years agoBUG-2159: update karaf version to 3.0.2 62/13962/1
Robert Varga [Wed, 7 Jan 2015 13:29:11 +0000 (14:29 +0100)]
BUG-2159: update karaf version to 3.0.2

Karaf 3.0.1 doe snot work correctly with Java 8, specifically it does
not export the 1.7 JavaSE osgi.ee property. This bumps the version used
in integration tests.

Change-Id: I67d7cd3fb3f7e243fab3cf7f8c36ff0ec3d91040
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge changes Ic65eb07d,Iab2814f6
Tony Tkacik [Wed, 7 Jan 2015 12:56:50 +0000 (12:56 +0000)]
Merge changes Ic65eb07d,Iab2814f6

* changes:
  BUG-2350: introduce KeyedListNodeCodecContext
  Drop a FIXME for partially-overwritten writes

9 years agoMerge changes I0eabfe3d,I58faf7df,I7e7758f4,Ic56afe1b,I623aa497
Tony Tkacik [Wed, 7 Jan 2015 12:54:55 +0000 (12:54 +0000)]
Merge changes I0eabfe3d,I58faf7df,I7e7758f4,Ic56afe1b,I623aa497

* changes:
  Publish StoreUtils as NormalizedNodes
  Publish TreeNodeUtils as StoreTreeNodes
  Split off UnkeyedListModificationStrategy
  Add better diagnostic on failed write
  Do not override surefire version

9 years agoMerge "Fix whitespace in binding-parent"
Tony Tkacik [Wed, 7 Jan 2015 12:54:10 +0000 (12:54 +0000)]
Merge "Fix whitespace in binding-parent"

9 years agoBUG-2350: introduce KeyedListNodeCodecContext 65/13865/2
Robert Varga [Thu, 25 Dec 2014 17:53:36 +0000 (18:53 +0100)]
BUG-2350: introduce KeyedListNodeCodecContext

Instead of special-casing calls within ListNodeCodecContext, introduce a
subclass which holds the logic specific to keyed items. Improves memory
overhead very slightly by saving two null fields for unkeyed lists.

Change-Id: Ic65eb07d2ee75c583e39cf458ec7e663dd98d335
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoPublish StoreUtils as NormalizedNodes 61/13861/3
Robert Varga [Thu, 25 Dec 2014 07:32:50 +0000 (08:32 +0100)]
Publish StoreUtils as NormalizedNodes

Move the widely useful functionality, which requires only API elements
into the API package, so it can be reused elsewhere.

Change-Id: I0eabfe3dbd1e0035f5ba96a0beee4b4c4d8d4114
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoFix javadoc reference 64/13864/2
Robert Varga [Thu, 25 Dec 2014 09:34:24 +0000 (10:34 +0100)]
Fix javadoc reference

Javadoc points to a controller package, where this code originated. Make
sure the pointer is uptodate.

Change-Id: I92271808f7b0763700997279482d52886a94db93
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoDrop a FIXME for partially-overwritten writes 59/13859/3
Robert Varga [Thu, 25 Dec 2014 08:13:39 +0000 (09:13 +0100)]
Drop a FIXME for partially-overwritten writes

When a user performs a write, followed by a write which changes some
parts of the first one, we arrive at the resulting data in the prepare()
path. That is not right, as we can perform the merge in the seal() path.

The difference is that in MD-SAL the prepare() path is single-threaded,
while the seal() and read() path are executed in the application thread.
We really want to charge application-sourced mess to application
threads.

Change-Id: Iab2814f616ec8ca0d184513e5c8d3a3b8b1f2174
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoPublish TreeNodeUtils as StoreTreeNodes 60/13860/3
Robert Varga [Thu, 25 Dec 2014 07:28:40 +0000 (08:28 +0100)]
Publish TreeNodeUtils as StoreTreeNodes

Publishes the utility methods which rely only on API elements into the
API package, so they can be reused more widely.

Change-Id: I58faf7df17edbc9850bfd6b6fa5cb1d5361a121d
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoCleanup and document ModifiedNode 63/13863/2
Robert Varga [Thu, 25 Dec 2014 15:50:45 +0000 (16:50 +0100)]
Cleanup and document ModifiedNode

Clean up method visibility to make the fact this class is not public
more visible. Also remove a FIXME and explain why it is correct to store
the value without taking any further action.

Change-Id: I49fb79bd41bbf1c42fb262c244a2f49460dfc5cf
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoSplit off UnkeyedListModificationStrategy 58/13858/3
Robert Varga [Thu, 25 Dec 2014 07:42:58 +0000 (08:42 +0100)]
Split off UnkeyedListModificationStrategy

It is a complex class, so it deserves its own file.

Change-Id: I7e7758f440f40863cc91f739e0ebed3e61f8e9d3
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoAdd better diagnostic on failed write 57/13857/3
Robert Varga [Thu, 25 Dec 2014 07:40:57 +0000 (08:40 +0100)]
Add better diagnostic on failed write

Rather than pointing out the class, also print the value being written.

Change-Id: Ic56afe1b9a2a5b113e181021633c37bf35008f4b
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoDo not override surefire version 56/13856/3
Robert Varga [Thu, 25 Dec 2014 08:25:22 +0000 (09:25 +0100)]
Do not override surefire version

It is inherited. Also remove empty lines.

Change-Id: I623aa4979297efaf7c6697395eb5c5232962b54c
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "BUG-2350: do encapsulte null snapshot"
Tony Tkacik [Wed, 7 Jan 2015 10:23:24 +0000 (10:23 +0000)]
Merge "BUG-2350: do encapsulte null snapshot"

9 years agoMerge "Parent schema node input parameter in JsonParserStream"
Tony Tkacik [Wed, 7 Jan 2015 09:45:47 +0000 (09:45 +0000)]
Merge "Parent schema node input parameter in JsonParserStream"

9 years agoMerge "BUG-1382: eliminate QName.getPrefix()"
Tony Tkacik [Wed, 7 Jan 2015 09:36:26 +0000 (09:36 +0000)]
Merge "BUG-1382: eliminate QName.getPrefix()"

9 years agoFix whitespace in binding-parent 45/13845/2
Robert Varga [Wed, 24 Dec 2014 12:44:54 +0000 (13:44 +0100)]
Fix whitespace in binding-parent

Whitespace should be four spaces, as it is the norm across project.

Change-Id: Iba62064a397cb8b28713eb45eabdd8d1ad5d928e
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2350: do encapsulte null snapshot 62/13862/2
Robert Varga [Thu, 25 Dec 2014 09:44:48 +0000 (10:44 +0100)]
BUG-2350: do encapsulte null snapshot

getSnapshot() has only one caller in the same package, so performing
Optional.formNullable() just so we can then check for presence means
unnecessary object creation. Remove it and just deal with the potential
nulls.

Also rename methods for clarity and do not allow direct stores of nulls
into the cache.

Change-Id: I671a075ad6200fc37e586e413256bdd57e9ae4a0
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Turn NodeModification into an abstract class"
Tony Tkacik [Wed, 7 Jan 2015 09:29:35 +0000 (09:29 +0000)]
Merge "Turn NodeModification into an abstract class"

9 years agoMerge "Update xtend and embed it"
Tony Tkacik [Wed, 7 Jan 2015 09:28:23 +0000 (09:28 +0000)]
Merge "Update xtend and embed it"

9 years agoMerge "Do not test bundle activation of maven plugins"
Tony Tkacik [Wed, 7 Jan 2015 09:27:37 +0000 (09:27 +0000)]
Merge "Do not test bundle activation of maven plugins"

9 years agoMerge "BUG-2159: ensure test survies Java 8"
Tony Tkacik [Wed, 7 Jan 2015 09:27:24 +0000 (09:27 +0000)]
Merge "BUG-2159: ensure test survies Java 8"

9 years agoMerge "Use predictable class order"
Tony Tkacik [Wed, 7 Jan 2015 09:23:14 +0000 (09:23 +0000)]
Merge "Use predictable class order"

9 years agoMerge "Add a failure message when compilation test fails"
Tony Tkacik [Wed, 7 Jan 2015 09:22:57 +0000 (09:22 +0000)]
Merge "Add a failure message when compilation test fails"

9 years agoMerge "Limit the references IdentityCodec retains"
Tony Tkacik [Wed, 7 Jan 2015 09:19:53 +0000 (09:19 +0000)]
Merge "Limit the references IdentityCodec retains"

9 years agoMerge "Migrate ClassLoaderUtils user to new package"
Tony Tkacik [Wed, 7 Jan 2015 09:15:20 +0000 (09:15 +0000)]
Merge "Migrate ClassLoaderUtils user to new package"

9 years agoMerge "BUG-2350: improve performance of data tree merges"
Tony Tkacik [Wed, 7 Jan 2015 09:14:03 +0000 (09:14 +0000)]
Merge "BUG-2350: improve performance of data tree merges"

9 years agoMerge topic 'stable/helium'
Tony Tkacik [Wed, 7 Jan 2015 09:13:09 +0000 (09:13 +0000)]
Merge topic 'stable/helium'

* changes:
  BUG-2350: optimize BindingRuntimeContext.getIdentityClass()
  BUG-2350: optimize SchemaRootCodecContext.getYangIdentifierChild()

9 years agoMerge "Add yang-binding dependency to binding-parent."
Jan Medved [Mon, 5 Jan 2015 20:41:40 +0000 (20:41 +0000)]
Merge "Add yang-binding dependency to binding-parent."

9 years agoBUG-1382: eliminate QName.getPrefix() 97/12397/9
Robert Varga [Fri, 31 Oct 2014 10:19:21 +0000 (11:19 +0100)]
BUG-1382: eliminate QName.getPrefix()

QName should not be carrying a prefix entry. Its presence is a
historical leak from yang parser, where it was used as a hack to have aa
QName before a module import was resolved. This is an invalid case, as
an uresolved QName should never be leaked. The parser no longer needs
this and it has been deprecated in the last release -- so prune it.

Change-Id: I467cc9afb65609d160e67d47fa94cd0332b98025
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Remove unused import statements in binding-generator-impl"
Robert Varga [Mon, 5 Jan 2015 19:35:54 +0000 (19:35 +0000)]
Merge "Remove unused import statements in binding-generator-impl"

9 years agoMerge "Remove unused import statements in yang-parser-impl"
Robert Varga [Mon, 5 Jan 2015 19:35:31 +0000 (19:35 +0000)]
Merge "Remove unused import statements in yang-parser-impl"

9 years agoAdd yang-binding dependency to binding-parent. 17/13917/1
Ed Warnicke [Mon, 5 Jan 2015 19:24:02 +0000 (13:24 -0600)]
Add yang-binding dependency to binding-parent.

Change-Id: I2324918362b8d66bfc7fc5f49185cd449a10c491
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoMerge "Remove unused imports in yang-data-impl"
Robert Varga [Mon, 5 Jan 2015 19:19:34 +0000 (19:19 +0000)]
Merge "Remove unused imports in yang-data-impl"

9 years agoMerge "Remove unnecessary import statements in yang-data-api"
Robert Varga [Mon, 5 Jan 2015 19:19:00 +0000 (19:19 +0000)]
Merge "Remove unnecessary import statements in yang-data-api"

9 years agoMerge "Use profile in binding-parent to not break without src/main/yang"
Jan Medved [Mon, 5 Jan 2015 16:44:03 +0000 (16:44 +0000)]
Merge "Use profile in binding-parent to not break without src/main/yang"

9 years agoUse profile in binding-parent to not break without src/main/yang 41/13841/3
Ed Warnicke [Wed, 24 Dec 2014 03:49:43 +0000 (21:49 -0600)]
Use profile in binding-parent to not break without src/main/yang

Whitespace has been fixed to use 4 spaces for indent in keeping
with yangtools convention.

Change-Id: Id6f5d7459590b189086c4cc6046d8c60fafb381e
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoBug 2531: Fix build breakage in absense of src/main/yang directory 01/13801/5
Ed Warnicke [Sun, 21 Dec 2014 16:59:35 +0000 (10:59 -0600)]
Bug 2531: Fix build breakage in absense of src/main/yang directory

Change-Id: Ic5600dc950b048bc48c64a0a976709c6a93ab964
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoRemove unused import statements in binding-generator-impl 07/13707/3
Thanh Ha [Wed, 17 Dec 2014 03:41:34 +0000 (22:41 -0500)]
Remove unused import statements in binding-generator-impl

Change-Id: I094a012432ddb68e75bd6a64dc55c48caa0dcb2b
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoRemove unused import statements in yang-parser-impl 06/13706/3
Thanh Ha [Wed, 17 Dec 2014 03:39:26 +0000 (22:39 -0500)]
Remove unused import statements in yang-parser-impl

Change-Id: I23ac4c917da16dcd4190bd9f7c707e962d001eff
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoRemove unused imports in yang-data-impl 05/13705/3
Thanh Ha [Wed, 17 Dec 2014 03:37:32 +0000 (22:37 -0500)]
Remove unused imports in yang-data-impl

Change-Id: I353e127afd929f230da9bd70cbe2d599e8e24ea6
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoRemove unnecessary import statements in yang-data-api 03/13703/3
Thanh Ha [Wed, 17 Dec 2014 03:30:43 +0000 (22:30 -0500)]
Remove unnecessary import statements in yang-data-api

java.lang are always implicitly imported.

Change-Id: I926516c3a731efe9d4770e379adb9e02b1d81ac5
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoTurn NodeModification into an abstract class 80/13480/3
Robert Varga [Tue, 9 Dec 2014 15:46:22 +0000 (16:46 +0100)]
Turn NodeModification into an abstract class

We have a single-implementation case here, plus the interface is
non-public, Turn it into an abstract class to extract the last bit of
performance.

Change-Id: I384ddf7d785d7c323c2ba361c38f4b5a03697a38
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2350: improve performance of data tree merges 95/13795/3
Robert Varga [Sun, 21 Dec 2014 00:53:08 +0000 (01:53 +0100)]
BUG-2350: improve performance of data tree merges

Profiling has revealed that performing a merge on a large subtree
results in all pre-existing nodes being verified. The MD-SAL performs an
empty merge whenever the user asks for parents to be created --
resulting in up to 75% overhead.

Change-Id: I94310b2cb27c8585a8b8c4933ff0f0f658fda9be
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoUpdate xtend and embed it 40/13540/11
Robert Varga [Wed, 24 Dec 2014 13:28:27 +0000 (14:28 +0100)]
Update xtend and embed it

Rather than requiring an osgified version of xtend, let's embed that
dependency. Also upgrade it do 2.7.3 to make things work with Java 8.

Change-Id: I975d9431f3e9bb31a0a364e7b7abfd4155191548
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoDo not test bundle activation of maven plugins 53/13853/3
Robert Varga [Wed, 24 Dec 2014 20:52:37 +0000 (21:52 +0100)]
Do not test bundle activation of maven plugins

maven-sal-api-gen-plugin is intended for maven use only. Do not test it
for startability.

Change-Id: Ic40f77c7f65bd27b429680b5dc9064d42b9dab18
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2159: ensure test survies Java 8 50/13850/2
Robert Varga [Wed, 24 Dec 2014 19:14:46 +0000 (20:14 +0100)]
BUG-2159: ensure test survies Java 8

Java 8 has slightly enhanced runtime, which trips the strict checking
done in tests. Fixe them up to pass.

Change-Id: Ia2fcd33c7831d4a1ff7171e6528ee6af5bc22d36
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoUse predictable class order 49/13849/2
Robert Varga [Wed, 24 Dec 2014 16:00:42 +0000 (17:00 +0100)]
Use predictable class order

HashSet has unpredictable iteration order, potentially causing
non-repeatable tests. Use an ImmutableSet to guard against that.

Change-Id: I1d774df0992ef4fc795558c46ae4e37349693fdf
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoAdd a failure message when compilation test fails 48/13848/1
Robert Varga [Wed, 24 Dec 2014 16:00:14 +0000 (17:00 +0100)]
Add a failure message when compilation test fails

Rather than emitting a cryptic null message, explain that the
compilation failed. The compiler emits errors by default, so it still is
diagnosable.

Change-Id: I32bfddef0c30cca96d225702a516b30c4e4d7040
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2350: optimize BindingRuntimeContext.getIdentityClass() 94/13794/3
Robert Varga [Sat, 20 Dec 2014 23:47:12 +0000 (00:47 +0100)]
BUG-2350: optimize BindingRuntimeContext.getIdentityClass()

BGP traces show this method can take upto 35% of CPU time in some use
cases. Instantiate a LoadingCache to bypass the cost of loading a class.

Change-Id: Iaa49dae655f3987add427e2d9da303b2278f00cb
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2350: optimize SchemaRootCodecContext.getYangIdentifierChild() 93/13793/3
Robert Varga [Sat, 20 Dec 2014 23:15:39 +0000 (00:15 +0100)]
BUG-2350: optimize SchemaRootCodecContext.getYangIdentifierChild()

This particular method has been found to dominate deletion-heavy
workloads, where it can account for up to 30% of time due to loading of
classes.

Eliminate this cost by instantiating a LoadingCache, which short-cuts
the class load.

Change-Id: I45c3f4acd67d85da30f26b71f73226a5beaf2876
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Bug 2532: Fix potential NPE in Utils.listFiles"
Robert Varga [Wed, 24 Dec 2014 12:47:07 +0000 (12:47 +0000)]
Merge "Bug 2532: Fix potential NPE in Utils.listFiles"

9 years agoIntroducing binding-parent 02/13802/4
Ed Warnicke [Sun, 21 Dec 2014 17:00:16 +0000 (11:00 -0600)]
Introducing binding-parent

Change-Id: Ib10d4505ea3fe3238d029da3aebdabd9d3241397
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoBug 2532: Fix potential NPE in Utils.listFiles 00/13800/1
Ed Warnicke [Sun, 21 Dec 2014 16:58:59 +0000 (10:58 -0600)]
Bug 2532: Fix potential NPE in Utils.listFiles

Change-Id: I09fbcb8eaa98ea52e1c0ad09adc083c7a471c9a1
Signed-off-by: Ed Warnicke <eaw@cisco.com>
9 years agoLimit the references IdentityCodec retains 97/13797/2
Robert Varga [Sat, 20 Dec 2014 23:33:31 +0000 (00:33 +0100)]
Limit the references IdentityCodec retains

IdentityCodec does not really need the codec context -- the runtime
context is enough.

Change-Id: I9dcef7e64f326491030b969b53d7b3c61d0bcd04
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMigrate ClassLoaderUtils user to new package 96/13796/2
Robert Varga [Sat, 20 Dec 2014 23:26:22 +0000 (00:26 +0100)]
Migrate ClassLoaderUtils user to new package

ClassLoaderUtils was moved to org.opendaylight.yangtools.util.
Functionality was retained.

Change-Id: I1405cd3be9a2a8aa295eeb20e0d7bd661fe0a82c
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG 2468 - leafrefs via import statement 83/13683/3
Jozef Gloncak [Tue, 16 Dec 2014 15:34:09 +0000 (16:34 +0100)]
BUG 2468 - leafrefs via import statement

Adds method which search for base type of leafref in module specified via
QName value.

Change-Id: Ib1979b56604429fccac2d9955387085aa59ed01d
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
9 years agoMerge "Cleanup binding proxy instantiation"
Tony Tkacik [Fri, 19 Dec 2014 15:41:44 +0000 (15:41 +0000)]
Merge "Cleanup binding proxy instantiation"

9 years agoCleanup binding proxy instantiation 57/13757/1
Robert Varga [Fri, 19 Dec 2014 14:04:34 +0000 (15:04 +0100)]
Cleanup binding proxy instantiation

Profiling of BGP topology provider has revealed a performance bottleneck
when instantiating proxies for list children. As it turns out around 68%
of CPU cycles is being burned in looking up the proxy class and its
contructor. This patch performs the obvious tradeoff by caching it and
exposing a utility function to subclasses.

Change-Id: Icb76f232df8223925fa802859313bbf63ee58eeb
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Clarify NotificationListener purpose"
Tony Tkacik [Fri, 19 Dec 2014 08:59:22 +0000 (08:59 +0000)]
Merge "Clarify NotificationListener purpose"

9 years agoMerge "Clarify code flow in SchemaAwareApplyOperation"
Tony Tkacik [Fri, 19 Dec 2014 08:59:02 +0000 (08:59 +0000)]
Merge "Clarify code flow in SchemaAwareApplyOperation"

9 years agoParent schema node input parameter in JsonParserStream 69/12669/4
Jozef Gloncak [Fri, 24 Oct 2014 08:43:48 +0000 (10:43 +0200)]
Parent schema node input parameter in JsonParserStream

For stable helium

- JsonParserStream - added input parameter to create() factory method which
  specify parent schema node of schema node which is at top level of JSON
  input. Usually it is schema context.

Change-Id: I15ca2bdd0f8ace617d834040cd9a6745b40ee78a
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit 2bba449d5246784298943ccd1359d06f0e8d840f)

9 years agoPrune empty nodes from transaction when it is sealed 76/13576/3
Robert Varga [Thu, 11 Dec 2014 17:03:14 +0000 (18:03 +0100)]
Prune empty nodes from transaction when it is sealed

When we seal() a ModifiedNode tree, check also whether we have unmodified
children and prune them. Also turn a SUBTREE_MODIFIED with empty nodes
into an UNMODIFIED node.

Change-Id: I077d23023fdbfb4ab232ed826cc32b4541779e87
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMove InMemoryDataTreeModification.mergeImpl() 73/13573/4
Robert Varga [Thu, 11 Dec 2014 16:03:45 +0000 (17:03 +0100)]
Move InMemoryDataTreeModification.mergeImpl()

The merge implementation should really live on
OperationWithModification, so this operation routing is consistent. This
has the side effect of speeding up verification on merges.

Change-Id: I2c07fa65b5846f618a476cc6f7f9d0c862b85811
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Cleanup delete/merge/write cohesion"
Tony Tkacik [Mon, 15 Dec 2014 11:37:14 +0000 (11:37 +0000)]
Merge "Cleanup delete/merge/write cohesion"

9 years agoMerge "Mark ModifiedNode as NotThreadSafe"
Tony Tkacik [Mon, 15 Dec 2014 08:54:11 +0000 (08:54 +0000)]
Merge "Mark ModifiedNode as NotThreadSafe"

9 years agoMerge "Fix checkstyle if-statements must use braces in yang-model-util"
Tony Tkacik [Mon, 15 Dec 2014 08:48:56 +0000 (08:48 +0000)]
Merge "Fix checkstyle if-statements must use braces in yang-model-util"

9 years agoMerge "Fix checkstyle if-statements must use braces in yang-parser-impl"
Tony Tkacik [Mon, 15 Dec 2014 08:48:51 +0000 (08:48 +0000)]
Merge "Fix checkstyle if-statements must use braces in yang-parser-impl"

9 years agoMerge "Fix checkstyle if-statements must use braces in yang-data-operations"
Tony Tkacik [Mon, 15 Dec 2014 08:48:46 +0000 (08:48 +0000)]
Merge "Fix checkstyle if-statements must use braces in yang-data-operations"

9 years agoMerge "Fix checkstyle if-statements must use braces in binding-generator"
Tony Tkacik [Mon, 15 Dec 2014 08:47:49 +0000 (08:47 +0000)]
Merge "Fix checkstyle if-statements must use braces in binding-generator"

9 years agoMerge "Do not access closed via updater"
Tony Tkacik [Mon, 15 Dec 2014 08:01:49 +0000 (08:01 +0000)]
Merge "Do not access closed via updater"

9 years agoCleanup delete/merge/write cohesion 72/13572/4
Robert Varga [Thu, 11 Dec 2014 15:57:10 +0000 (16:57 +0100)]
Cleanup delete/merge/write cohesion

The three methods are not public, and are not used in fluent way. Group
them together and make sure they look the same.

Change-Id: Ib0acb09020b381e8fc259e862ed6b340bd7260e2
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMark ModifiedNode as NotThreadSafe 75/13575/3
Robert Varga [Thu, 11 Dec 2014 17:16:32 +0000 (18:16 +0100)]
Mark ModifiedNode as NotThreadSafe

The class is not intended to be threadsafe, so mmark it as such. Also
remove an invalid @GuardedBy annotation.

Change-Id: Ib2a5ee9710ff41447ff999d5056ae71d06b328a3
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "Match InMemoryDataTreeModification.write() argument name"
Tony Tkacik [Mon, 15 Dec 2014 07:52:09 +0000 (07:52 +0000)]
Merge "Match InMemoryDataTreeModification.write() argument name"

9 years agoDo not access closed via updater 26/13626/1
Robert Varga [Sun, 14 Dec 2014 17:25:34 +0000 (18:25 +0100)]
Do not access closed via updater

This is a volatile field and an Updater.get() is equivalent to a read.
Use a direct read, thus making the field visibly used. This removes the
need for a warning suppression.

Change-Id: I0799ae80c2431b9d48bb5f62f681ed4fe5289f41
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoFix checkstyle if-statements must use braces in yang-model-util 24/13624/1
Thanh Ha [Sun, 14 Dec 2014 16:42:17 +0000 (11:42 -0500)]
Fix checkstyle if-statements must use braces in yang-model-util

Change-Id: I5535870da8d317999b10b4e07e79d849ccc531a4
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoFix checkstyle if-statements must use braces in yang-parser-impl 23/13623/1
Thanh Ha [Sun, 14 Dec 2014 16:42:05 +0000 (11:42 -0500)]
Fix checkstyle if-statements must use braces in yang-parser-impl

Change-Id: If6e41ded71028c7f506e87b310f1ea5b8cdc22af
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoFix checkstyle if-statements must use braces in yang-data-operations 22/13622/1
Thanh Ha [Sun, 14 Dec 2014 16:38:46 +0000 (11:38 -0500)]
Fix checkstyle if-statements must use braces in yang-data-operations

Change-Id: Ia51055f22e2e3bc7693f35337c6d86e3d6663531
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoFix checkstyle if-statements must use braces in binding-generator 21/13621/1
Thanh Ha [Sun, 14 Dec 2014 16:38:03 +0000 (11:38 -0500)]
Fix checkstyle if-statements must use braces in binding-generator

Change-Id: I929ee367d7263ba22eecd788d39688fd719bfd6b
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
9 years agoMatch InMemoryDataTreeModification.write() argument name 71/13571/2
Robert Varga [Thu, 11 Dec 2014 15:54:24 +0000 (16:54 +0100)]
Match InMemoryDataTreeModification.write() argument name

This is an implementation of an interface method, so make sure the
argument name matches.

Change-Id: Ia2ee1d5e614aafac9d232abcefec65253c016bc9
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2470: fix ADD/DELETE state compression 70/13570/2
Robert Varga [Thu, 11 Dec 2014 15:41:04 +0000 (16:41 +0100)]
BUG-2470: fix ADD/DELETE state compression

If we are deleting a previously-modified node, we need check whether the
node existed before the transaction. It was there the modification needs
to be turned into a DELETE. But it this transaction introduced it, we
need to turn into a no-op -- otherwise we will trigger a wrong path.

If we don't the user will experience the effects of attempting to delete
a non-existing node, which is clearly not what the user intended.

Change-Id: Iceb926d69e1e9df359b3299e2e38a90ba3565fd1
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoImprove readability of ordered checking 65/13565/1
Robert Varga [Thu, 11 Dec 2014 13:36:49 +0000 (14:36 +0100)]
Improve readability of ordered checking

Rather than overwriting the default, move it to an explicit else path.
This highlights the fact the value is initialized precisely once.

Change-Id: Ic8340705d3c68d6b40b04467af69e4d6a717d9de
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoMerge "BUG-2470: implement InMemoryDataTree.toString()"
Tony Tkacik [Wed, 10 Dec 2014 15:34:58 +0000 (15:34 +0000)]
Merge "BUG-2470: implement InMemoryDataTree.toString()"

9 years agoMerge "Bypass data tree generation on empty merge"
Tony Tkacik [Wed, 10 Dec 2014 15:33:55 +0000 (15:33 +0000)]
Merge "Bypass data tree generation on empty merge"

9 years agoMerge "BUG-1914: bump API requirement"
Tony Tkacik [Wed, 10 Dec 2014 15:33:45 +0000 (15:33 +0000)]
Merge "BUG-1914: bump API requirement"

9 years agoMerge "BUG-2498: optimize enum's forValue() method"
Tony Tkacik [Wed, 10 Dec 2014 15:33:31 +0000 (15:33 +0000)]
Merge "BUG-2498: optimize enum's forValue() method"

9 years agoBUG-2498: optimize enum's forValue() method 32/13532/1
Robert Varga [Wed, 10 Dec 2014 11:12:13 +0000 (12:12 +0100)]
BUG-2498: optimize enum's forValue() method

Use an ImmutableMap, as it provides optimized lookups based on
cardinality. Also hide the map from the package and turn it into a
constant.

Change-Id: I01591e56646705891fcc3fb8b871071169d35093
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-1914: bump API requirement 47/12847/3
Robert Varga [Thu, 9 Oct 2014 23:45:55 +0000 (01:45 +0200)]
BUG-1914: bump API requirement

This bumps the required maven API version 3.1.1 and removes the manual
override needed with previous versions.

Change-Id: If3b85169dccc9583ee93114c2b0c4f3fc9e17eb2
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBypass data tree generation on empty merge 31/13531/1
Robert Varga [Wed, 10 Dec 2014 10:30:51 +0000 (11:30 +0100)]
Bypass data tree generation on empty merge

A merge operation may end up not introducing any child nodes. Current
code forces a mutable/immutable cycle. This may end up copying maps or
creating a TrieMap snapshot -- which is not then modified and directly
reused.

This introduces a simple check and a shortcut, which just creates a new
metadata node.

Change-Id: I3fe4d07a139986d473a6bf55a2b40ff4350bd699
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoClarify code flow in SchemaAwareApplyOperation 30/13530/2
Robert Varga [Wed, 10 Dec 2014 10:15:28 +0000 (11:15 +0100)]
Clarify code flow in SchemaAwareApplyOperation

When applying merge, we have a fall-through situation on the code.
Eliminate it by introducing a temporary variable. This makes the code a
bit more readable.

Change-Id: I3f468eb1235866ed627acdf5b60e6f890e44188a
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-2470: implement InMemoryDataTree.toString() 83/13483/1
Robert Varga [Tue, 9 Dec 2014 17:09:57 +0000 (18:09 +0100)]
BUG-2470: implement InMemoryDataTree.toString()

For debugging purposes, we need a way to dump the current state of the
data tree. Implement proper toString() method.

Change-Id: I808b83b1e89eaa79d2a8d19b2e551884e7a3dc50
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoClarify NotificationListener purpose 44/13444/1
Robert Varga [Mon, 8 Dec 2014 13:02:51 +0000 (14:02 +0100)]
Clarify NotificationListener purpose

This adds a comment about what the intended use of NotificationListener.

Change-Id: I84116fda4f7f68d63e8ad0e97365087df01b564a
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoBUG-1914: force maven 3.1.1 46/12846/3
Robert Varga [Mon, 13 Oct 2014 09:27:44 +0000 (11:27 +0200)]
BUG-1914: force maven 3.1.1

Activates maven version enforcement.

Change-Id: I19bbd53e93de3ccbf029a2e029e479217e2c0c09
Signed-off-by: Robert Varga <rovarga@cisco.com>