Do not store code snippets in BindingRuntimeContext 59/27559/7
authorRobert Varga <rovarga@cisco.com>
Mon, 28 Sep 2015 20:29:22 +0000 (22:29 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 29 Sep 2015 12:37:37 +0000 (12:37 +0000)
commitc4f699d6bb37200636b7397fe5d8bab936cd3520
treec84de175bc9aae5e86b68c393eaddc98482e6254
parent3eb300e58e9a720b61822ab3db6dfb89e4e81916
Do not store code snippets in BindingRuntimeContext

Analysis of a heap dump shows we retain a fair amount of strings which
represent the QNAME member of generated classes via ConstantImpl. This
should not be happening, as the logic to create QNames in generated
classes should be part of the templates and only emitted to source code.

Teach ClassTemplate how to generate QName constants and only store the
QName in the Constant, saving the overhead of Strings.

Change-Id: I41951f969e273bc2ef4527ef3d95d4bed45c1b7f
Signed-off-by: Robert Varga <rovarga@cisco.com>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/BindingGeneratorImpl.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/InterfaceTemplate.xtend