yangtools.git
3 months agoSplit out JavaFileTemplate
Robert Varga [Thu, 1 Mar 2018 23:23:38 +0000 (00:23 +0100)]
Split out JavaFileTemplate

This is a useful piece with a bit of logic. Separate it out into
Java, where maintenance is easier. This forces us to define operations
on import map, which is always good.

Change-Id: Idf279352c57a96112b235f700ec7e910bf886461
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix checkstyle in mdsal-binding-test-model
Robert Varga [Thu, 1 Mar 2018 12:12:54 +0000 (13:12 +0100)]
Fix checkstyle in mdsal-binding-test-model

Fix checkstyle and enable enforcement.

Change-Id: I2680c421ed4703170f6ea0dfdd9a7ee662d4776d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoSpeed up javadoc formatting
Robert Varga [Thu, 1 Mar 2018 15:34:15 +0000 (16:34 +0100)]
Speed up javadoc formatting

Initializing a StringBuilder with a string results in it being
sized to contain only that string -- hence forcing a reallocation
on next append.

This patch updates javadoc formatting code to use a default allocation
and append the initial string afterwards -- leaving some room for
further appends.

Change-Id: I910a3c84d37f462d99815f5ea63700cc78dfd2cc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoDo not open-code ImmutableMap.copyOf()
Robert Varga [Thu, 1 Mar 2018 10:15:06 +0000 (11:15 +0100)]
Do not open-code ImmutableMap.copyOf()

This is a remnant of the early days when we did not want to depend
on Guava. Do not generate open-coded map squashing code but rather
use ImmutableMap.copyOf().

Change-Id: I4700b4c17aecbe604ddf62f817481f0067babf7a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix deprecation warnings in RangeGenerators
Robert Varga [Thu, 1 Mar 2018 09:41:31 +0000 (10:41 +0100)]
Fix deprecation warnings in RangeGenerators

Propagate @Deprecated annotation outward, removing most of the warnings.

Change-Id: I4c4da282bfe4fca1b43c00d2826e3161ac288a2e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoInvert enforcement patterns when needed
Robert Varga [Wed, 28 Feb 2018 15:03:09 +0000 (16:03 +0100)]
Invert enforcement patterns when needed

RFC7950 and yang-model-api defines pattern modifier invert-match,
which needs to be taken into account when validating incoming strings.

Mutate the pattern we expose to the codegen such that it captures
the inversion operation. This code is closely related to generated
code and string formats used therein, hence the beef of the
implementation lives in BindingMapping.

JIRA: MDSAL-314
Change-Id: Ie29745d3343f565ac6b1b5716b1ec38dd0f09bc9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix a patterns reference
Robert Varga [Wed, 28 Feb 2018 12:32:55 +0000 (13:32 +0100)]
Fix a patterns reference

We should be referencing the constant name rather than hard-coding
it in the template.

Change-Id: Ib552b37cdfb4e3f8cef794d764ba8558f6db3df6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBump versions by x.(y+1).z for next dev cycle
Anil Belur [Mon, 26 Feb 2018 07:41:44 +0000 (17:41 +1000)]
Bump versions by x.(y+1).z for next dev cycle

Change-Id: Ib4799fb36fc0de8b41418ccc547eaa3c061c7396
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
3 months agoSwitch to java.util.function.Supplier
Robert Varga [Mon, 29 Jan 2018 17:49:44 +0000 (18:49 +0100)]
Switch to java.util.function.Supplier

This is an internal interface, we can safely switch it to
Java 8 interface rather than the Guava one.

Change-Id: Ie199bb690e80958c859036708ce1945e3ed313f6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoRe-organize YANG snippet generation and comment confusion
Robert Varga [Wed, 14 Feb 2018 13:06:02 +0000 (14:06 +0100)]
Re-organize YANG snippet generation and comment confusion

This is a follow-up cleanup on the previous patch, which has created
an unnecessary interface and tunneling contract. We instead record
the details of why a class was generated, capturing comments correctly
in GeneratedType.comment. mdsal-binding-java-api-generator is then
taught to use this information correctly and generate the YANG snippet
as it sees fit.

Change-Id: I25580c6310d05007fea63e04d70cd12d5c6f9ace
JIRA: MDSAL-301
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoEliminate xtend from mdsal-binding-generator-impl
Robert Varga [Tue, 13 Feb 2018 13:02:44 +0000 (14:02 +0100)]
Eliminate xtend from mdsal-binding-generator-impl

This patch moves YangTextTemplate into mdsal-binding-java-api-generator
and bridges it into BindingGeneratorImpl, without it having to be lug
all the extent stuff around. This slims down the runtime classes by
143kB.

JIRA: MDSAL-301
Change-Id: Ibdafa574c5a825aa7a02b9ecef5352fff78ae035
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoCleanup properties
Robert Varga [Sun, 4 Feb 2018 18:46:17 +0000 (19:46 +0100)]
Cleanup properties

Properties should not be used for versions, clean them up in parent
poms. Everything the users need is communicated via
dependency/pluginManagement.

Also ditches down-revisioned maven-depends-plugin, as that is already
provided by odlparent and removes unneeded site plugin configuration.

Change-Id: I54b507342c995c5e3589171c42e708829acc908b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoMDSAL-218: Binding v1 - *Builder classes for 'type union' YANG gen. code should have...
Jie Han [Wed, 7 Feb 2018 08:50:57 +0000 (16:50 +0800)]
MDSAL-218: Binding v1 - *Builder classes for 'type union' YANG gen. code should have private constructor

- Do not affect old generated class,  one should mannually rebuild to update.

Change-Id: Ib45f7aca1aa261b2c4bce433b139cd94b91a5066
Signed-off-by: Jie Han <han.jie@zte.com.cn>
3 months agoFix a few warnings
Robert Varga [Mon, 5 Feb 2018 01:15:48 +0000 (02:15 +0100)]
Fix a few warnings

- unneeded imports
- potentially static methods
- unneeded @SupressWarnings

Change-Id: I0c80e0a7e917ec9b71147e582df4b6f4c7a698a2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoMDSAL-298: properly handle unkeyed lists
Robert Varga [Mon, 29 Jan 2018 13:18:05 +0000 (14:18 +0100)]
MDSAL-298: properly handle unkeyed lists

Unkeyed lists are not representable in binding, which means they
cannot be reported as modified children, either. This has implications
for any data change which contains unrepresentable fields as child
modifications.

Previously we would report SUBTREE_MODIFIED for the container node,
but would fail to report any children, which is obviously wrong, as the
user is left guessing as to what exactly happened.

This patch modifies LazyDataObjectModification to report a WRITE event
if modifications to unrepresentable children are found in SUBTREE_MODIFIED
case. Since this is a potentially expensive operation, we cache a child
addressability summary in BindingCodecTreeNode, so that we go to this
slow path only when needed.

We also expose BindingStructuralType enumeration, so controller's
sal-binding-broker can reuse the implementation rather than having its
own copy.

Change-Id: I6642166cd262d0dddb1b2ed6d73a20785d0efff6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix BindingCodecTreeNode.getSchema() a bit
Robert Varga [Mon, 29 Jan 2018 16:20:14 +0000 (17:20 +0100)]
Fix BindingCodecTreeNode.getSchema() a bit

Using Object as the return type of getSchema() is confusing, as it
does not provide a proper anchor point for users. While subclasses
provide proper access point, further restricting the domain to
DocumentedNode.WithStatus provides for a better experience.

Change-Id: Iebd198b695f5271ebadd5315c1ec22b8488c227c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoLower DataObjectCodecContext method visibility
Robert Varga [Mon, 29 Jan 2018 09:07:24 +0000 (10:07 +0100)]
Lower DataObjectCodecContext method visibility

This class is not leaked outside of the package, lower visibility
of its methods.

Change-Id: I486bf3d407eabb99f5ee5cafd08d4e7cb76d2c50
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBump yangtools to 2.0.1
Robert Varga [Wed, 17 Jan 2018 19:00:33 +0000 (20:00 +0100)]
Bump yangtools to 2.0.1

Pick up latest fixes in yangtools, notably API contract violations
in SchemaContext.{get,find}Modules().

Change-Id: I34b803a60037ba2db1f1ecabc699d506b32de460
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoAdjust to yangtools-2.0.0 changes
Robert Varga [Wed, 11 Oct 2017 15:03:32 +0000 (17:03 +0200)]
Adjust to yangtools-2.0.0 changes

Most notable adjustments:
- type empty requires Empty
- Date -> Revision, with the possibility of being absent
  - This changes behaviour for revisionless modules, these are now
    generated as '.norev' rather than '.rev700101'
- Length constraint update to match
- QName requires namespace to be non-null
- SchemaContext.getModule() et al., which also improves performance
- binding tests are updated to eliminate useless reflection
- bump twirl-api to 1.3.13
- bump scala-maven-plugin to 3.3.1
- bump twirl-maven-plugin to 1.1.0

Change-Id: Ie35090cc0f60a2411399e5b2d3fe59246bbfbdba
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBump yangtools dependency to 2.0.0
Robert Varga [Wed, 11 Oct 2017 14:54:31 +0000 (16:54 +0200)]
Bump yangtools dependency to 2.0.0

This patch adopts odlparent-3.0.2 and yangtools-2.0.0. As such it is
not expected to pass compilation due to the amount of breaking changes
in yangtools. It is separated out to allow review of changes at the
build system level.

Adjustments include:
- feature reference updates, so we pull in correct yangtools features
- bump scala-maven-plugin to 3.3.1
- bump twirl-maven-plugin to 1.1.0
- bump twirl-api to 1.3.13

Follow-up patch adapts the codebase to the inbound changes, making
the compilation pass.

Change-Id: I21a3d55969c31b89b56c6ba637593f033b035e14
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix odlparent-3.0.0 checkstyle issues
Robert Varga [Wed, 15 Nov 2017 12:30:58 +0000 (13:30 +0100)]
Fix odlparent-3.0.0 checkstyle issues

This fixes issues identitifed by checkstyle in odlparent-3.0.0,
split out of the bump proper to keep the migration patch smaller.

Change-Id: Ib42dbebb0bdbcec770cb9e4daaf24fb14dccde6b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix checkstyle in mdsal-binding-dom-codec
Robert Varga [Tue, 17 Oct 2017 18:17:48 +0000 (20:17 +0200)]
Fix checkstyle in mdsal-binding-dom-codec

Fix checkstyle issues and activate enforcement.

Change-Id: I5ef078ba907284d5885521971cb0391a28fa2e57
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoFix checkstyle violations in yang-binding
Robert Varga [Tue, 17 Oct 2017 14:58:56 +0000 (16:58 +0200)]
Fix checkstyle violations in yang-binding

Fixes violations and activates enforcement.

Change-Id: Iaa11d659549fa62a35201dea77992b32aebbd998
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoRemove explicit default super-constructor calls
David Suarez [Wed, 27 Sep 2017 11:40:46 +0000 (13:40 +0200)]
Remove explicit default super-constructor calls

The default constructor is called by default (hence its name), no need
to call it explicitly.

Change-Id: Ibc4f160f14cd75d46b1bacea75c1bf29b3f49355
Signed-off-by: David Suarez <david.suarez.fuentes@gmail.com>
3 months agoBump odlparent 2.0.4 to 2.0.5
Stephen Kitt [Wed, 27 Sep 2017 13:52:50 +0000 (15:52 +0200)]
Bump odlparent 2.0.4 to 2.0.5

Change-Id: I18a6da4e5a9122c88d15774cca1fed862df1a03c
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 months agoRevert "Fix broken tests according to yangtools...
Vratko Polak [Thu, 28 Sep 2017 12:36:56 +0000 (14:36 +0200)]
Revert "Fix broken tests according to yangtools...

Oxygen is using Yangtools 1.2.0 again,
so that change towards 2.0.0-SNAPSHOT behavior has to be reverted.

This reverts commit 6c26a1cd0acb2b898b80cb099ed0352c29410230.

Change-Id: I31732adc545df92fdb82e7047a19624b2454639d
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
3 months agoBump mdsal to use yangtools 1.2.0
Anil Belur [Thu, 28 Sep 2017 04:45:46 +0000 (14:45 +1000)]
Bump mdsal to use yangtools 1.2.0

Jira: releng-485
Change-Id: I7025efa30b209f1763408e03df65fdf7ebed5c81
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
3 months agoFix broken tests according to yangtools changes
Jakub Toth [Thu, 28 Sep 2017 10:35:35 +0000 (12:35 +0200)]
Fix broken tests according to yangtools changes

  * https://git.opendaylight.org/gerrit/#/c/62537/
  * fixed methods of YangParserTestUtils for parsing yangs
    and creating schema context

Change-Id: I313e91aeafd46c57d60aaf71372287bc84b8414a
Signed-off-by: Jakub Toth <jakub.toth@pantheon.tech>
3 months agoFinish removal of yangtools classes
Robert Varga [Mon, 4 Sep 2017 13:24:34 +0000 (15:24 +0200)]
Finish removal of yangtools classes

This finishes the package move by removing the bridge classes.

Change-Id: I7e5519db7be39e8fdb03c9f330ce77a0b6e982b8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoRemove yangtools APIs
Robert Varga [Thu, 21 Sep 2017 09:22:23 +0000 (11:22 +0200)]
Remove yangtools APIs

Downstream consumers are not using them anymore, remove them.

Change-Id: Idd9d8f6b2d1f7b3ab719904a694c342d2e79f210
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoDisconnect mdsal-bind-dom-codec yangtools/mdsal APIs
Robert Varga [Mon, 4 Sep 2017 09:44:52 +0000 (11:44 +0200)]
Disconnect mdsal-bind-dom-codec yangtools/mdsal APIs

Remove compatibility bridging between the two APIs, so that users
do not pull in yangtools APIs in their imports.

Change-Id: If763721458354ba92422ac7465735714646f61d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoEliminate use of String.replace/replaceAll()
Robert Varga [Mon, 11 Sep 2017 17:09:46 +0000 (19:09 +0200)]
Eliminate use of String.replace/replaceAll()

Use a pre-compiled pattern to do the same task.

Change-Id: Ie864494a8c5a7b24a31d9d416b339b6f33eb5d42
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoMove mdsal-binding-dom codec classes
Robert Varga [Mon, 4 Sep 2017 09:47:51 +0000 (11:47 +0200)]
Move mdsal-binding-dom codec classes

This moves most of the classes out of the way and leaves just two
proxies around.

Change-Id: I3d95bcd20f219208948a12433380c50735617916
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoCorrect model revision
Robert Varga [Tue, 5 Sep 2017 21:51:57 +0000 (23:51 +0200)]
Correct model revision

2017-16-05 is an invalid revision string, correct it to something
sane.

Change-Id: Ie2997888dd86ff94a89c4d0c0c6dc01f1ebe2290
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoDo not leak implementation class
Robert Varga [Tue, 5 Sep 2017 08:53:50 +0000 (10:53 +0200)]
Do not leak implementation class

For migration purposes we need to not leak the implementation
class from create methods. Fix them to return just the interface.

Change-Id: I801467d1a816dc1b0b1bd41ee4157c9593092544
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoImprove length constraint checks
Robert Varga [Thu, 17 Aug 2017 12:44:12 +0000 (14:44 +0200)]
Improve length constraint checks

If we have an unrestricted string/binary or the constraint is
satisfied by the combination of String/array length return
values and integer value domain, we can skip the checks altogether,
leading to less generated code.

Cuts down size of ietf-inet-types by 1%.

Change-Id: Ibd8ea57a4746e1332447dd5454b36407d066ea0a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoUpdate odlparent to 2.0.4
Thanh Ha [Wed, 16 Aug 2017 15:17:13 +0000 (11:17 -0400)]
Update odlparent to 2.0.4

Change-Id: I9c91aee4fea8b4fbf5850d541a5f38d694da5d6d
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoBump versions by x.(y+1).z for next dev cycle
Thanh Ha [Mon, 14 Aug 2017 17:02:42 +0000 (13:02 -0400)]
Bump versions by x.(y+1).z for next dev cycle

Change-Id: Ie1d4a4800d2b8c38cc5520fcb5756a68972ca4d6
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoEnforce no split packages
Robert Varga [Fri, 4 Aug 2017 22:02:03 +0000 (00:02 +0200)]
Enforce no split packages

This augments Export-Package directives with a directive to emit
a hard error if a split package is encountered.

Change-Id: Ib763fb75021de510086f1c12563cef0f49e61f61
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoAddress sonar warnings
Robert Varga [Wed, 2 Aug 2017 12:13:52 +0000 (14:13 +0200)]
Address sonar warnings

Remove traling blank comments and declaration of runtime exceptions.

Change-Id: Ibe49a0b138a3266cd41603f17d3287d7fa93796a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBug 8449 - BindingToNormalizedNodeCodec fails to deserialize union of leafrefs
Jakub Toth [Fri, 21 Jul 2017 09:58:08 +0000 (11:58 +0200)]
Bug 8449 - BindingToNormalizedNodeCodec fails to deserialize union of leafrefs

Fix problem of leafref in typedef called from union
 *generated part
   *generating of new property of GTO for leaf's union type of typedef
     according to return type of referenced leaf via leafref from typedef
 *codec part
   *getting codec of leaf type according to new generator part of leafref
    in typedef
 *tests

Change-Id: Ibffe4e51ef66f1911c32c71d4f08bbdbdd40e234
Signed-off-by: Jakub Toth <jakub.toth@pantheon.tech>
3 months agoCleanup warnings
Robert Varga [Wed, 12 Jul 2017 10:00:27 +0000 (12:00 +0200)]
Cleanup warnings

- static methods
- unneeded use of CheckedFuture and checkedGet()
- Throwables.propagateIfPossible()
- raw types
- unneeded else branches

Change-Id: Ie7cc7f701efad4de843cd2884ceea9caf8787e0a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBump odlparent references to 2.0.2
Robert Varga [Sun, 9 Jul 2017 17:14:30 +0000 (19:14 +0200)]
Bump odlparent references to 2.0.2

Automated bump to latest fix release.

Change-Id: Ibbbe6dc4d9c0df1e08135f1d496eb53963c9db93
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBump odlparent dependency to 2.0.1
Robert Varga [Mon, 3 Jul 2017 08:54:10 +0000 (10:54 +0200)]
Bump odlparent dependency to 2.0.1

Bumps odlparent to latest release.

Change-Id: I020a42720d43aabcaa6886230b79df27834a1b1c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-7446: Bump odlparent to 2.0.0
Robert Varga [Thu, 15 Jun 2017 13:04:39 +0000 (15:04 +0200)]
BUG-7446: Bump odlparent to 2.0.0

Fixup guava movement and features changing with 2.0.0.

Change-Id: Id0fbbf62872d22e3623d0a4ccf5bb86723601604
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoMigrate to odlparent 1.9.0
Thanh Ha [Tue, 13 Jun 2017 18:39:24 +0000 (14:39 -0400)]
Migrate to odlparent 1.9.0

Change-Id: I100a35acd3f47c49cb7d93a972f6c01a4804b446
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoMigrate to odlparent 1.8.0-Carbon
Thanh Ha [Tue, 6 Jun 2017 02:13:13 +0000 (22:13 -0400)]
Migrate to odlparent 1.8.0-Carbon

Per request of odlparent project we are downgrading all Nitrogen
projects to use the released odlparent 1.8.0-Carbon to allow for the
odlparent project to start performing semver style releases.

Jira: RELENG-159
RT: 41406
Change-Id: Ica7007072c5f10e052c4aab6c46feb26e89c5915
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoCleanup binding-dom-codec generator
Robert Varga [Sat, 13 May 2017 18:25:24 +0000 (20:25 +0200)]
Cleanup binding-dom-codec generator

- use lambdas
- use fluent StringBuilder
- make methods static

This should improve codec generation slightly due to gains of
invoke_static vs. invoke_virtual and overall bytecode size diet.

Change-Id: Id8d3a442f63a452111907b7d683d2167dd489ca7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8226: do not import nested classes
Robert Varga [Thu, 11 May 2017 09:28:38 +0000 (11:28 +0200)]
BUG-8226: do not import nested classes

Importing a nested classes leads to a unused import warning, so compare
the declared package name with the class being generated and do not emit
an import declaration if the package name matches FQDN.

Change-Id: I4240cac663476c1405962631a9d173f5ed434ee9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8226: fix toString() formatting
Robert Varga [Thu, 11 May 2017 09:04:22 +0000 (11:04 +0200)]
BUG-8226: fix toString() formatting

Fix closing curly brace offset.

Change-Id: I56d577387231a300dc508a8062f3aa07c861734a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8226: fix augmentation argument overlap
Robert Varga [Thu, 11 May 2017 07:56:15 +0000 (09:56 +0200)]
BUG-8226: fix augmentation argument overlap

This fixes a trivial warning of argument name shadowing the field
name.

Change-Id: Ie0cd8f010778e198db26102a6e42274a03aee118
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8226: fix Enumeration.forValue() javadoc
Robert Varga [Thu, 11 May 2017 07:48:48 +0000 (09:48 +0200)]
BUG-8226: fix Enumeration.forValue() javadoc

Fix a missing description warning.

Change-Id: I26b1d0b01b56e6a3fb5d553decc4d109fc6f762c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8360: add mdsal-binding-dom-codec-osgi
Robert Varga [Wed, 3 May 2017 11:21:54 +0000 (13:21 +0200)]
BUG-8360: add mdsal-binding-dom-codec-osgi

This is an OSGi binding producing all context needed required
to implement binding/dom/external serialization. It is similar
to how the config-manager service operates, except associated
services are explicitly covered instead of sneaking them through
properties.

Change-Id: I31f2bdb11153d6e514dacf2b070b073d768c1ff3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBUG-8226: Add @Override to public methods
Robert Varga [Thu, 13 Apr 2017 13:53:43 +0000 (15:53 +0200)]
BUG-8226: Add @Override to public methods

This adds proper @Override tags to methods specified by superclasses.

Change-Id: I82b387156dce366d480414b1ed0b889ca9858c24
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit aff372df411044a8765e202aa5bc4481f35bc722)

3 months agoBump versions by x.(y+1).z for next dev cycle
Anil Belur [Tue, 11 Apr 2017 01:45:42 +0000 (11:45 +1000)]
Bump versions by x.(y+1).z for next dev cycle

Change-Id: Ia61eeda429f5e56629f70824dc156372557673e1
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
3 months agoBUG-8004: handle implicit RPC input
Robert Varga [Mon, 27 Mar 2017 17:42:17 +0000 (19:42 +0200)]
BUG-8004: handle implicit RPC input

RPC input is always defined implicitly, which is something we cannot
deal with in Binding Specification compatibly, as original generators
did not emit classes for such methods and implicitly map them to Void.

In order to deal with these, we need to recognize when an RPC input
is not declared and re-wire it to a null codec. This loses information,
but it is the best we can do (simply because there is no binding
representation).

Change-Id: I4edbcd0cc886396bdba79f4c0ccfd91ba3d6b2c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 months agoBug 6859: Binding generator v1 refactoring
Martin Ciglan [Fri, 10 Mar 2017 13:17:43 +0000 (14:17 +0100)]
Bug 6859: Binding generator v1 refactoring

- make sure package names differ between MDSAL Binding v1 submodules
after refactoring

Change-Id: I6f1def44682f28a00a79ac3c787eeaca5b6755d6
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
3 months agoBug 7759 - TEST - Getter of BA object fails to construct class instance
Jakub Toth [Thu, 9 Mar 2017 10:31:08 +0000 (11:31 +0100)]
Bug 7759 - TEST - Getter of BA object fails to construct class instance

Change-Id: Idfb3ceabe6808bcd9c421d189566f680f8f0077f
Signed-off-by: Jakub Toth <jatoth@cisco.com>
(cherry picked from commit 19c96f252c6a8b675851880e202dc6b7a767d6ca)

3 months agoBug 6859 #5 Binding generator v1 refactoring
Jakub Toth [Wed, 22 Feb 2017 09:57:28 +0000 (10:57 +0100)]
Bug 6859 #5 Binding generator v1 refactoring

Based on transfer of Binding generator v1 from
Yangtools project to MDSAL in past, we need to finalize
this process by refactoring package naming:

org.opendaylight.yangtools       -> org.mdsal.binding
org.opendaylight.yangtools.sal -> org.mdsal.binding

This refactoring is done in subsequent steps,
covering all necessary modules. Based on experience,
this should also help users to address possible Binding generator v1
issues in MDSAL project, not in Yangtools.

- maven-sal-api-gen-plugin module refactoring

Change-Id: I17bd25507894b8b5a42579ee317f5d5fd81f3f20
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoBug 6859 #4 Binding generator v1 refactoring
Jakub Toth [Tue, 21 Feb 2017 12:09:44 +0000 (13:09 +0100)]
Bug 6859 #4 Binding generator v1 refactoring

Based on transfer of Binding generator v1 from
Yangtools project to MDSAL in past, we need to finalize
this process by refactoring package naming:

org.opendaylight.yangtools       -> org.mdsal.binding
org.opendaylight.yangtools.sal -> org.mdsal.binding

This refactoring is done in subsequent steps,
covering all necessary modules. Based on experience,
this should also help users to address possible Binding generator v1
issues in MDSAL project, not in Yangtools.

- mdsal-binding-java-api-generator module refactoring

Change-Id: Ie898adf78ac9db7f094a26f8f41145c8c960fa62
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoBug 6859 #3 Binding generator v1 refactoring
Jakub Toth [Tue, 21 Feb 2017 11:43:02 +0000 (12:43 +0100)]
Bug 6859 #3 Binding generator v1 refactoring

Based on transfer of Binding generator v1 from
Yangtools project to MDSAL in past, we need to finalize
this process by refactoring package naming:

org.opendaylight.yangtools       -> org.mdsal.binding
org.opendaylight.yangtools.sal -> org.mdsal.binding

This refactoring is done in subsequent steps,
covering all necessary modules. Based on experience,
this should also help users to address possible Binding generator v1
issues in MDSAL project, not in Yangtools.

- mdsal-binding-generator-impl module refactoring

Change-Id: If3a7615d3c2870d02eae8767ca44bcb0981aaa99
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoBug 6859 #2 Binding generator v1 refactoring
Jakub Toth [Tue, 21 Feb 2017 11:28:10 +0000 (12:28 +0100)]
Bug 6859 #2 Binding generator v1 refactoring

Based on transfer of Binding generator v1 from
Yangtools project to MDSAL in past, we need to finalize
this process by refactoring package naming:

org.opendaylight.yangtools       -> org.mdsal.binding
org.opendaylight.yangtools.sal -> org.mdsal.binding

This refactoring is done in subsequent steps,
covering all necessary modules. Based on experience,
this should also help users to address possible Binding generator v1
issues in MDSAL project, not in Yangtools.

- mdsal-binding-generator-util module refactoring

Change-Id: I978e49a68458d08a9d397a1a2d4bcc455eea1a37
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoBug 6859 #1 Binding generator v1 refactoring
Jakub Toth [Tue, 21 Feb 2017 11:02:34 +0000 (12:02 +0100)]
Bug 6859 #1 Binding generator v1 refactoring

Based on transfer of Binding generator v1 from
Yangtools project to MDSAL in past, we need to finalize
this process by refactoring package naming:

org.opendaylight.yangtools       -> org.mdsal.binding
org.opendaylight.yangtools.sal -> org.mdsal.binding

This refactoring is done in subsequent steps,
covering all necessary modules. Based on experience,
this should also help users to address possible Binding generator v1
issues in MDSAL project, not in Yangtools.

- mdsal-binding-generator-api module refactoring

Change-Id: I11537d580c8df500b80104d158de6eef515afb1e
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoDo not pull in yang-parser-impl
Robert Varga [Tue, 28 Feb 2017 12:43:23 +0000 (13:43 +0100)]
Do not pull in yang-parser-impl

Parser is used only in tests and only via test-utils,
hence this project should not be pulling it in.

Change-Id: I336eda6effff373deea0f82f81643ac73e655e83
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoBUG-6315: use plugin-provided path resolution
Robert Varga [Thu, 23 Feb 2017 16:38:51 +0000 (17:38 +0100)]
BUG-6315: use plugin-provided path resolution

Rather than relying on SourceStreamAware, make sure we use
the resolver provided by the plugin.

Change-Id: Ia5ec8a739e10bb262f68b2838958d5111e538263
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoFix null comparison warnings
Robert Varga [Thu, 23 Feb 2017 17:48:17 +0000 (18:48 +0100)]
Fix null comparison warnings

Xtend comparisons to null should be done via !==/===, fix offenders.

Change-Id: I4dff8e444104cca427843aa88a5df989b3fed77c
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoFix generate of comma before augmentations in toString generator
Jakub Toth [Fri, 10 Feb 2017 10:04:32 +0000 (11:04 +0100)]
Fix generate of comma before augmentations in toString generator

Change-Id: Ibb4c19028b758c27126cc244a8657efbd46bc1b2
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoBug 3147 - Binding spec v1: auto generated code by YANGTOOLS could
Robert Varga [Thu, 2 Feb 2017 16:24:09 +0000 (17:24 +0100)]
Bug 3147 - Binding spec v1: auto generated code by YANGTOOLS could
be more efficient

  *fix generating of commas in toString() for more effecient
  *tests

Change-Id: I13b59c3c5be90446a9511a9cd46969850cb77595
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoCheckstyle: fix ParenPad violations
Lorand Jakab [Fri, 3 Feb 2017 15:08:46 +0000 (17:08 +0200)]
Checkstyle: fix ParenPad violations

Enforcing no space(s) after a left parenthesis and before a right
parenthesis is a proposed change [0] which can only be merged when all
violations are fixed in projects enforcing checkstyle. This patch fixes
those violations.

[0] https://git.opendaylight.org/gerrit/#/c/51316/

Change-Id: Iae1f085f903579a264b24176d0b4c17416f6b8a0
Signed-off-by: Lorand Jakab <lojakab@cisco.com>
3 months agoRevert "Bug 3147 - Binding spec v1: auto generated code by YANGTOOLS could"
Robert Varga [Thu, 2 Feb 2017 16:23:37 +0000 (17:23 +0100)]
Revert "Bug 3147 - Binding spec v1: auto generated code by YANGTOOLS could"

This reverts commit 8f5fa1cc26819073fd920fd4007ef309088304d7.

Change-Id: If322b38d32e759522800af099b42d649e1237cb7
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoFix getValue() of bits in union
Xiao Liang [Wed, 11 Jan 2017 05:59:14 +0000 (05:59 +0000)]
Fix getValue() of bits in union

Call Arrays.toString instead of calling toString directly for bits in union,
since getValue() of bits returns boolean[].

Change-Id: I4b06c95f07ff6d5ff81dc17613ed972b453db184
Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
3 months agoBug 3147 - Binding spec v1: auto generated code by YANGTOOLS could
Jakub Toth [Fri, 23 Dec 2016 21:23:59 +0000 (22:23 +0100)]
Bug 3147 - Binding spec v1: auto generated code by YANGTOOLS could
           be more efficient

  *fix generating of commas in toString() for more effecient
  *tests

Change-Id: I5a1ac0ad8068655168824d89a9acb1f203a64639
Signed-off-by: Jakub Toth <jatoth@cisco.com>
3 months agoReplace FindBugs :jsr305 by full :annotation (Bug 7663)
Michael Vorburger [Mon, 23 Jan 2017 20:03:42 +0000 (21:03 +0100)]
Replace FindBugs :jsr305 by full :annotation (Bug 7663)

Change-Id: Ie91b52ee8c85ab42485588219f80ca74b125f148
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
3 months agoBug 7425: Recognize instance-identifier in union template
Vratko Polak [Thu, 5 Jan 2017 16:06:35 +0000 (17:06 +0100)]
Bug 7425: Recognize instance-identifier in union template

Previously, it was wrongly identified as a generated type,
but InstanceIdentifier is a base type, so no getValue() there.

Change-Id: I18d67357753eda6e241a608fc5a2c933aa1f9eda
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
3 months agoBug 7159: Add yang-test-util artifact
Martin Ciglan [Mon, 12 Dec 2016 10:20:55 +0000 (11:20 +0100)]
Bug 7159: Add yang-test-util artifact

- follow-up patch for MD-SAL
- bit of a code cleanup

Please see Yangtools introduction here:
https://git.opendaylight.org/gerrit/#/c/49129/

Change-Id: I91b2cb2e07245ce1f558ecf62a9a81a1d1ed2ebc
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
3 months agoBug 6163: fixed number of argument when resolving rpc input
Martin Ciglan [Thu, 10 Nov 2016 10:36:26 +0000 (11:36 +0100)]
Bug 6163: fixed number of argument when resolving rpc input

- changed functionality of resolving rpc input. Input class is
  resolved by it's assignability from DataContainer class
- quite a bit of cleanup, comments added

https://bugs.opendaylight.org/show_bug.cgi?id=6163

Change-Id: I4a7d05283951db280c3e92301590407da4f40ffa
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
3 months agoRemoved sonar warnings.
Dana Kutenicsova [Thu, 13 Oct 2016 16:34:52 +0000 (18:34 +0200)]
Removed sonar warnings.

Change-Id: I2dbe2018cc1d2672f98fd3aea9e01c7d851eacc8
Signed-off-by: Dana Kutenicsova <dana.kutenics@gmail.com>
3 months agoBug 7064: yang-to-source error on description
Martin Ciglan [Mon, 7 Nov 2016 13:27:54 +0000 (14:27 +0100)]
Bug 7064: yang-to-source error on description

Existing logic of formatToParagraph() method doesn't expect a case
when very first text sequence is longer than 80 characters
and crashes in wrong condition branch. This has been fixed and tested
for various inputs.

Change-Id: Iefeb2b4063335561f3277c3ee40b3d9a46c418dc
Signed-off-by: Martin Ciglan <mciglan@cisco.com>
3 months agotarget-ide/ support by resourceBaseDir using ${project.build.directory}
Michael Vorburger [Tue, 1 Nov 2016 20:43:32 +0000 (21:43 +0100)]
target-ide/ support by resourceBaseDir using ${project.build.directory}

without explicitly setting this,
org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
defaults to hard-coded target/generated-sources/spi for
META-INF/services/org.opendaylight.yangtools.yang.binding.YangModelBindingProvider
instead of target-ide.

Minor: Also add target-ide/ to .gitignore of this git repository.

Change-Id: I4155eb666dd6ef028dc2397e32c88cd50db4f0c6
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
3 months agoBUG-7013: do not rely on default character encoding
Robert Varga [Thu, 27 Oct 2016 10:33:43 +0000 (12:33 +0200)]
BUG-7013: do not rely on default character encoding

Generated java files should always be UTF8-encoded,
as that is what our maven settings enforce.

Therefore we cannot rely on JVM-default encoding, but
have to force file output to be UTF8.

Change-Id: Ie24f753fda3ab4d71ec951cf7b725b97678bae7a
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoReplace target/ by ${project.build.directory}/ to make target-ide/ possible
Michael Vorburger [Thu, 20 Oct 2016 00:17:33 +0000 (02:17 +0200)]
Replace target/ by ${project.build.directory}/ to make target-ide/ possible

Change-Id: I32c4c0e8207f58b864e21054d12174ad45dc0e7f
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
3 months agoBUG-7009: fix invalid model
Robert Varga [Sun, 23 Oct 2016 20:24:23 +0000 (22:24 +0200)]
BUG-7009: fix invalid model

The test model is not valid, as it specifies an extension
argument while the extension definition does not allow arguments.

Change-Id: I2bae1ee5eb3dcf4b98875001b2b4a46f2723601b
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoBug 5947: additional tests for binding-dom-codec #9
Peter Nosal [Mon, 3 Oct 2016 09:22:44 +0000 (11:22 +0200)]
Bug 5947: additional tests for binding-dom-codec #9

Change-Id: Ib9a3bdf105d673be7c2d52be5c9f9cfcd63409fb
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
3 months agoBug 5947: additional tests for dom-adapter #7
Peter Nosal [Thu, 29 Sep 2016 08:16:09 +0000 (10:16 +0200)]
Bug 5947: additional tests for dom-adapter #7

Change-Id: Ic970ea7bccda9d4f82901fa93c92508065de35a9
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
Signed-off-by: Filip Gregor <fgregor@cisco.com>
3 months agoBug 5947: additional tests for dom-adapter #6
Peter Nosal [Wed, 28 Sep 2016 06:43:57 +0000 (08:43 +0200)]
Bug 5947: additional tests for dom-adapter #6

Change-Id: If497e570342391c9d8aecf81bcd3cee24438f786
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
Signed-off-by: Filip Gregor <fgregor@cisco.com>
3 months agoFixed some problems with GeneratorUtil
Peter Nosal [Wed, 5 Oct 2016 10:12:36 +0000 (12:12 +0200)]
Fixed some problems with GeneratorUtil

Change-Id: If496bb149f755d17610c93c0e828123dc9bbde9d
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
3 months agoBug 5947: additional tests for dom-adapter #8
Peter Nosal [Thu, 29 Sep 2016 10:43:15 +0000 (12:43 +0200)]
Bug 5947: additional tests for dom-adapter #8

Change-Id: I92113a82940b8e61a57638aba2ca71cf822de023
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
3 months agoCleanup pom.xml layout
Robert Varga [Tue, 20 Sep 2016 17:04:40 +0000 (19:04 +0200)]
Cleanup pom.xml layout

This performs the long-overdue cleanup of build structure,
aligning it with ODL best pracitices and removing quite
a bit of crud in the process.

Change-Id: I04ac6a917928c1da286b8c4ec4e1c7cb66e9990b
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoBUG-5561: retain SchemaContext order for bits
Robert Varga [Mon, 5 Sep 2016 14:41:37 +0000 (16:41 +0200)]
BUG-5561: retain SchemaContext order for bits

This patch reworks BitsCodec so it retains the bit order
defined in SchemaContext, which by extension means the values
coming from Binding objects should end up being sorted
by position.

Change-Id: Ice154dd7e38e6b213c281ddb492408f619e3a5f8
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoUse lambdas for functional interfaces
Robert Varga [Fri, 2 Sep 2016 14:46:52 +0000 (16:46 +0200)]
Use lambdas for functional interfaces

Makes the code more concise.

Change-Id: I6b3ed4ebefbd72b63958a0b4db98129a4e35e317
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoBUG-6028: check value types for encapsulation
Robert Varga [Wed, 8 Jun 2016 17:09:17 +0000 (19:09 +0200)]
BUG-6028: check value types for encapsulation

This is a fast check to see if the argument matches expected
value class. If it does not it does not make sense to invoke
the serializer, as it will fail.

Change-Id: I4ca556fea057f2188fa1c34d303467565af38d5c
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoadd target/generated-sources/spi & yang/ as resource folders
Michael Vorburger [Wed, 10 Aug 2016 09:22:15 +0000 (11:22 +0200)]
add target/generated-sources/spi & yang/ as resource folders

and remove src/main/yang as source folder

but obviously must keep Maven's default src/main/resources
(see https://lists.opendaylight.org/pipermail/release/2016-August/007788.html)

Bug: 6252
Change-Id: I66b5dcdebc88303fd2e3e25f16f5f362b135a13e
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
3 months agoRevert "Add target/generated-sources/spi & yang/ as resource folders"
Thanh Ha [Tue, 9 Aug 2016 18:52:15 +0000 (18:52 +0000)]
Revert "Add target/generated-sources/spi & yang/ as resource folders"

This reverts commit 43ca4269501ca68fbcdcd1a5296f508b44fb8226.

Change-Id: Id61db4aa7a915e6054060c63b6f681d9a3c45511
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoAdd target/generated-sources/spi & yang/ as resource folders
Michael Vorburger [Tue, 26 Jul 2016 16:32:57 +0000 (18:32 +0200)]
Add target/generated-sources/spi & yang/ as resource folders

and remove src/main/yang as source folder

Bug: 6252
Change-Id: I5574716949d29b886855a233de1e0c005e4985eb
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
3 months agoBump ietf versions to ...10-SNAPSHOT
Thanh Ha [Tue, 9 Aug 2016 13:27:25 +0000 (09:27 -0400)]
Bump ietf versions to ...10-SNAPSHOT

Bumping according to:
https://lists.opendaylight.org/pipermail/release/2016-August/007731.html

Change-Id: I2fc611f84c056ddea4a531d9e9e976ace3d4b557
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoBump versions by 0.1.0 for next dev cycle
Thanh Ha [Mon, 8 Aug 2016 21:50:16 +0000 (17:50 -0400)]
Bump versions by 0.1.0 for next dev cycle

Change-Id: I661f05513feb495a1f1a47ffaeeb7fc6630bcd33
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
3 months agoBug 6165: Do not omit java.lang prefix in various places
Vratko Polak [Mon, 1 Aug 2016 15:15:46 +0000 (17:15 +0200)]
Bug 6165: Do not omit java.lang prefix in various places

Yang expression "typedef String" leads to java class String,
creating potential naming conflict with java.lang.String.
Few places places in EnumTemplate are fixed by using «String.importedName».

Also, YangModuleInfoTemplate#getExplicitType
no longer removes java.lang unconditionally.

+ Ifs against void are re-ordered to occur sooner in getExplicitType.

Change-Id: If014aca30875589e361733317dfb47eaa07df031
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
3 months agoAdd PMD configuration
Robert Varga [Fri, 5 Aug 2016 15:07:13 +0000 (17:07 +0200)]
Add PMD configuration

PMD does not allow specifying wildcards, hence we have to enrich
its configuration here.

Change-Id: I45b7b8618950ec43f3c03cc9e4ee9d3b714d14ee
Signed-off-by: Robert Varga <rovarga@cisco.com>
3 months agoBug 6126: Use importedName for java.lang types in ClassTemplate
Vratko Polak [Mon, 1 Aug 2016 14:31:34 +0000 (16:31 +0200)]
Bug 6126: Use importedName for java.lang types in ClassTemplate

There may be a type definition in Yang, which generates class name
which are the same as a class name in java.lang.

This patch fixes the conflict at defaultInstance(),
there may be other places which need fixing.

Change-Id: I3a73b5bb284db031dbfd45468cbbb8dd2a354737
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Signed-off-by: Filip Gregor <fgregor@cisco.com>
3 months agoBUG-6238: Remove char[]-based union instantiation path
Robert Varga [Tue, 19 Jul 2016 18:02:39 +0000 (20:02 +0200)]
BUG-6238: Remove char[]-based union instantiation path

Since we are iterating over the constituent types,
there is no need to fall back to string-based instantiation.

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