Now it should be compilable but not tested for deployment.
Change-Id: I91b352cb570dbe2c96b3963640c4bfe28e396202
Signed-off-by: Gao Kai <gaok12@mails.tsinghua.edu.cn>
--- /dev/null
+Manifest-Version: 1.0\r
+Bnd-LastModified: 1427734698968\r
+Build-Jdk: 1.7.0_51\r
+Built-By: richardyang\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: org.opendaylight.alto.alto-model\r
+Bundle-SymbolicName: org.opendaylight.alto.model\r
+Bundle-Version: 1.0.0.SNAPSHOT\r
+Created-By: Apache Maven Bundle Plugin\r
+Export-Package: org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev14\r
+ 1119;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev14111\r
+ 9.endpoint.cost.service.input,org.opendaylight.yang.gen.v1.urn.opendayl\r
+ ight.alto.rev141119.endpoint.cost.service.output,org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.rev141119.endpoint.property.service.output\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.filtered.\r
+ cost.map.service.input,org.opendaylight.yang.gen.v1.urn.opendaylight.al\r
+ to.rev141119.filtered.cost.map.service.output,org.opendaylight.yang.gen\r
+ .v1.urn.opendaylight.alto.rev141119.filtered.network.map.service.output\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yan\r
+ g.binding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSH\r
+ OT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.endpoi\r
+ nt.cost.service.input;uses:="org.opendaylight.yang.gen.v1.urn.opendayli\r
+ ght.alto.rev141119,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.s\r
+ ervice.types.rev141101,org.opendaylight.yangtools.concepts,org.opendayl\r
+ ight.yangtools.yang.binding,org.opendaylight.yangtools.yang.common";ver\r
+ sion="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alt\r
+ o.rev141119.endpoint.cost.service.output.endpoint.cost.service.endpoint\r
+ .cost.map;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev\r
+ 141119.endpoint.cost.service.output.endpoint.cost.service,org.opendayli\r
+ ght.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,org.opend\r
+ aylight.yangtools.concepts,org.opendaylight.yangtools.yang.binding,org.\r
+ opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.openda\r
+ ylight.yang.gen.v1.urn.opendaylight.alto.rev141119.endpoint.cost.servic\r
+ e.output.endpoint.cost.service;uses:="org.opendaylight.yang.gen.v1.urn.\r
+ opendaylight.alto.rev141119.endpoint.cost.service.output,org.opendaylig\r
+ ht.yang.gen.v1.urn.opendaylight.alto.rev141119.endpoint.cost.service.ou\r
+ tput.endpoint.cost.service.endpoint.cost.map,org.opendaylight.yang.gen.\r
+ v1.urn.opendaylight.alto.rev141119.endpoint.cost.service.output.endpoin\r
+ t.cost.service.meta,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.\r
+ service.types.rev141101,org.opendaylight.yangtools.concepts,org.openday\r
+ light.yangtools.yang.binding,org.opendaylight.yangtools.yang.common";ve\r
+ rsion="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.al\r
+ to.rev141119.endpoint.cost.service.output.endpoint.cost.service.meta;us\r
+ es:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.endpo\r
+ int.cost.service.output.endpoint.cost.service,org.opendaylight.yang.gen\r
+ .v1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.yang\r
+ tools.concepts,org.opendaylight.yangtools.yang.binding,org.opendaylight\r
+ .yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.rev141119.endpoint.cost.service.output;use\r
+ s:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119,org.op\r
+ endaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.endpoint.cost.se\r
+ rvice.output.endpoint.cost.service,org.opendaylight.yangtools.concepts,\r
+ org.opendaylight.yangtools.yang.binding,org.opendaylight.yangtools.yang\r
+ .common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.open\r
+ daylight.alto.rev141119.endpoint.property.service.output;uses:="org.ope\r
+ ndaylight.yang.gen.v1.urn.opendaylight.alto.rev141119,org.opendaylight.\r
+ yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,org.opendayli\r
+ ght.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.\r
+ property.map,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service\r
+ .types.rev141101.endpoint.property.map.data,org.opendaylight.yangtools.\r
+ concepts,org.opendaylight.yangtools.yang.binding,org.opendaylight.yangt\r
+ ools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1\r
+ .urn.opendaylight.alto.rev141119.filtered.cost.map.service.input;uses:=\r
+ "org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119,org.opend\r
+ aylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,org.o\r
+ pendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.binding,\r
+ org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.op\r
+ endaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.filtered.cost.ma\r
+ p.service.output;uses:="com.google.common.collect,org.opendaylight.yang\r
+ .gen.v1.urn.opendaylight.alto.rev141119,org.opendaylight.yang.gen.v1.ur\r
+ n.opendaylight.alto.service.did.rev141101,org.opendaylight.yang.gen.v1.\r
+ urn.opendaylight.alto.service.did.rev141101.cost.map,org.opendaylight.y\r
+ ang.gen.v1.urn.opendaylight.alto.service.did.rev141101.cost.map.data,or\r
+ g.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14110\r
+ 1,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.b\r
+ inding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT"\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.filtered.\r
+ network.map.service.output;uses:="com.google.common.collect,org.openday\r
+ light.yang.gen.v1.urn.opendaylight.alto.rev141119,org.opendaylight.yang\r
+ .gen.v1.urn.opendaylight.alto.service.did.rev141101,org.opendaylight.ya\r
+ ng.gen.v1.urn.opendaylight.alto.service.did.rev141101.network.map.data,\r
+ org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141\r
+ 101,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang\r
+ .binding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHO\r
+ T",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resourc\r
+ es.network.maps;uses:="com.google.common.collect,org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.rev141119.resources,org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.service.did.rev141101,org.opendaylight.yan\r
+ g.gen.v1.urn.opendaylight.alto.service.did.rev141101.network.map.data,o\r
+ rg.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev1411\r
+ 01,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.\r
+ binding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT\r
+ ",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resource\r
+ s;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119,o\r
+ rg.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.n\r
+ etwork.maps,org.opendaylight.yangtools.concepts,org.opendaylight.yangto\r
+ ols.yang.binding,org.opendaylight.yangtools.yang.common";version="1.0.0\r
+ .SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.d\r
+ id.rev141101;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.\r
+ service.did.rev141101.alto.resources,org.opendaylight.yang.gen.v1.urn.o\r
+ pendaylight.alto.service.did.rev141101.cost.map,org.opendaylight.yang.g\r
+ en.v1.urn.opendaylight.alto.service.did.rev141101.cost.map.data,org.ope\r
+ ndaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101.netwo\r
+ rk.map.data,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.\r
+ types.rev141101,org.opendaylight.yangtools.yang.binding,org.opendayligh\r
+ t.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang\r
+ .gen.v1.urn.opendaylight.alto.service.did.rev141101.alto.resources.cost\r
+ .maps;uses:="com.google.common.collect,org.opendaylight.yang.gen.v1.urn\r
+ .opendaylight.alto.service.did.rev141101,org.opendaylight.yang.gen.v1.u\r
+ rn.opendaylight.alto.service.did.rev141101.alto.resources,org.opendayli\r
+ ght.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101.cost.map,or\r
+ g.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101.\r
+ cost.map.data,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.servic\r
+ e.types.rev141101,org.opendaylight.yangtools.concepts,org.opendaylight.\r
+ yangtools.yang.binding,org.opendaylight.yangtools.yang.common";version=\r
+ "1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.ser\r
+ vice.did.rev141101.alto.resources;uses:="org.opendaylight.yang.gen.v1.u\r
+ rn.opendaylight.alto.service.did.rev141101,org.opendaylight.yang.gen.v1\r
+ .urn.opendaylight.alto.service.did.rev141101.alto.resources.cost.maps,o\r
+ rg.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101\r
+ .alto.resources.network.maps,org.opendaylight.yang.gen.v1.urn.opendayli\r
+ ght.alto.service.types.rev141101,org.opendaylight.yang.gen.v1.urn.opend\r
+ aylight.alto.service.types.rev141101.endpoint.property.map,org.opendayl\r
+ ight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint\r
+ .property.map.data,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.s\r
+ ervice.types.rev141101.ird,org.opendaylight.yang.gen.v1.urn.opendayligh\r
+ t.alto.service.types.rev141101.ird.data,org.opendaylight.yangtools.conc\r
+ epts,org.opendaylight.yangtools.yang.binding,org.opendaylight.yangtools\r
+ .yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn\r
+ .opendaylight.alto.service.did.rev141101.alto.resources.network.maps;us\r
+ es:="com.google.common.collect,org.opendaylight.yang.gen.v1.urn.openday\r
+ light.alto.service.did.rev141101,org.opendaylight.yang.gen.v1.urn.opend\r
+ aylight.alto.service.did.rev141101.alto.resources,org.opendaylight.yang\r
+ .gen.v1.urn.opendaylight.alto.service.did.rev141101.network.map.data,or\r
+ g.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14110\r
+ 1,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.b\r
+ inding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT"\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev1411\r
+ 01.cost.map.data.map;uses:="org.opendaylight.yang.gen.v1.urn.opendaylig\r
+ ht.alto.service.did.rev141101.cost.map.data,org.opendaylight.yang.gen.v\r
+ 1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.yangto\r
+ ols.concepts,org.opendaylight.yangtools.yang.binding,org.opendaylight.y\r
+ angtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.ge\r
+ n.v1.urn.opendaylight.alto.service.did.rev141101.cost.map.data;uses:="o\r
+ rg.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev1411\r
+ 01.cost.map.data.map,org.opendaylight.yang.gen.v1.urn.opendaylight.alto\r
+ .service.types.rev141101,org.opendaylight.yangtools.concepts,org.openda\r
+ ylight.yangtools.yang.binding,org.opendaylight.yangtools.yang.common";v\r
+ ersion="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.a\r
+ lto.service.did.rev141101.cost.map;uses:="org.opendaylight.yang.gen.v1.\r
+ urn.opendaylight.alto.service.did.rev141101,org.opendaylight.yang.gen.v\r
+ 1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.yang.g\r
+ en.v1.urn.opendaylight.alto.service.types.rev141101.cost.map.meta,org.o\r
+ pendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.d\r
+ ependent.vtags,org.opendaylight.yangtools.concepts,org.opendaylight.yan\r
+ gtools.yang.binding,org.opendaylight.yangtools.yang.common";version="1.\r
+ 0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.servic\r
+ e.did.rev141101.network.map.data;uses:="org.opendaylight.yang.gen.v1.ur\r
+ n.opendaylight.alto.service.did.rev141101,org.opendaylight.yang.gen.v1.\r
+ urn.opendaylight.alto.service.types.rev141101,org.opendaylight.yang.gen\r
+ .v1.urn.opendaylight.alto.service.types.rev141101.endpoint.address.grou\r
+ p,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.b\r
+ inding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT"\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101;uses:="com.google.common.collect,org.opendaylight.yang.gen.v1.urn.\r
+ opendaylight.alto.service.types.rev141101.cost.map,org.opendaylight.yan\r
+ g.gen.v1.urn.opendaylight.alto.service.types.rev141101.cost.map.data,or\r
+ g.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14110\r
+ 1.cost.map.meta,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.serv\r
+ ice.types.rev141101.cost.types,org.opendaylight.yang.gen.v1.urn.openday\r
+ light.alto.service.types.rev141101.dependent.vtags,org.opendaylight.yan\r
+ g.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.address\r
+ .group,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types\r
+ .rev141101.endpoint.property.map,org.opendaylight.yang.gen.v1.urn.opend\r
+ aylight.alto.service.types.rev141101.endpoint.property.map.data,org.ope\r
+ ndaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.ird\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101.ird.capabilities,org.opendaylight.yang.gen.v1.urn.opendaylight.alt\r
+ o.service.types.rev141101.ird.data,org.opendaylight.yang.gen.v1.urn.ope\r
+ ndaylight.alto.service.types.rev141101.network.map,org.opendaylight.yan\r
+ g.gen.v1.urn.opendaylight.alto.service.types.rev141101.network.map.data\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101.network.map.meta,org.opendaylight.yangtools.yang.binding,org.opend\r
+ aylight.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendayligh\r
+ t.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.cost.map.da\r
+ ta.cost.map;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.s\r
+ ervice.types.rev141101,org.opendaylight.yang.gen.v1.urn.opendaylight.al\r
+ to.service.types.rev141101.cost.map.data,org.opendaylight.yangtools.con\r
+ cepts,org.opendaylight.yangtools.yang.binding,org.opendaylight.yangtool\r
+ s.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.ur\r
+ n.opendaylight.alto.service.types.rev141101.cost.map.data;uses:="org.op\r
+ endaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,or\r
+ g.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14110\r
+ 1.cost.map.data.cost.map,org.opendaylight.yangtools.concepts,org.openda\r
+ ylight.yangtools.yang.binding,org.opendaylight.yangtools.yang.common";v\r
+ ersion="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.a\r
+ lto.service.types.rev141101.cost.map.meta;uses:="org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.y\r
+ angtools.concepts,org.opendaylight.yangtools.yang.binding,org.opendayli\r
+ ght.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.ya\r
+ ng.gen.v1.urn.opendaylight.alto.service.types.rev141101.cost.map;uses:=\r
+ "org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.r\r
+ ev141101.cost.map.meta,org.opendaylight.yang.gen.v1.urn.opendaylight.al\r
+ to.service.types.rev141101.dependent.vtags,org.opendaylight.yangtools.c\r
+ oncepts,org.opendaylight.yangtools.yang.binding,org.opendaylight.yangto\r
+ ols.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.\r
+ urn.opendaylight.alto.service.types.rev141101.cost.types;uses:="org.ope\r
+ ndaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,org\r
+ .opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.bindin\r
+ g,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.\r
+ opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.\r
+ dependent.vtags;uses:="com.google.common.collect,org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.y\r
+ angtools.concepts,org.opendaylight.yangtools.yang.binding,org.opendayli\r
+ ght.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.ya\r
+ ng.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.addres\r
+ s.group;uses:="org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang\r
+ .ietf.inet.types.rev100924,org.opendaylight.yang.gen.v1.urn.opendayligh\r
+ t.alto.service.types.rev141101,org.opendaylight.yangtools.concepts,org.\r
+ opendaylight.yangtools.yang.binding,org.opendaylight.yangtools.yang.com\r
+ mon";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendayl\r
+ ight.alto.service.types.rev141101.endpoint.property.map.data.endpoint.p\r
+ roperties;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.ser\r
+ vice.types.rev141101,org.opendaylight.yang.gen.v1.urn.opendaylight.alto\r
+ .service.types.rev141101.endpoint.property.map.data,org.opendaylight.ya\r
+ ngtools.concepts,org.opendaylight.yangtools.yang.binding,org.opendaylig\r
+ ht.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylight.yan\r
+ g.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.propert\r
+ y.map.data;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.se\r
+ rvice.types.rev141101,org.opendaylight.yang.gen.v1.urn.opendaylight.alt\r
+ o.service.types.rev141101.endpoint.property.map.data.endpoint.propertie\r
+ s,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.b\r
+ inding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT"\r
+ ,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev14\r
+ 1101.endpoint.property.map;uses:="org.opendaylight.yang.gen.v1.urn.open\r
+ daylight.alto.service.types.rev141101,org.opendaylight.yang.gen.v1.urn.\r
+ opendaylight.alto.service.types.rev141101.dependent.vtags,org.opendayli\r
+ ght.yangtools.concepts,org.opendaylight.yangtools.yang.binding,org.open\r
+ daylight.yangtools.yang.common";version="1.0.0.SNAPSHOT",org.opendaylig\r
+ ht.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.ird.capabi\r
+ lities;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.servic\r
+ e.types.rev141101,org.opendaylight.yangtools.concepts,org.opendaylight.\r
+ yangtools.yang.binding,org.opendaylight.yangtools.yang.common";version=\r
+ "1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.ser\r
+ vice.types.rev141101.ird.data;uses:="org.opendaylight.yang.gen.v1.urn.i\r
+ etf.params.xml.ns.yang.ietf.inet.types.rev100924,org.opendaylight.yang.\r
+ gen.v1.urn.opendaylight.alto.service.types.rev141101,org.opendaylight.y\r
+ ang.gen.v1.urn.opendaylight.alto.service.types.rev141101.ird.capabiliti\r
+ es,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools.yang.\r
+ binding,org.opendaylight.yangtools.yang.common";version="1.0.0.SNAPSHOT\r
+ ",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev1\r
+ 41101.ird;uses:="org.opendaylight.yang.gen.v1.urn.opendaylight.alto.ser\r
+ vice.types.rev141101,org.opendaylight.yang.gen.v1.urn.opendaylight.alto\r
+ .service.types.rev141101.cost.types,org.opendaylight.yangtools.concepts\r
+ ,org.opendaylight.yangtools.yang.binding,org.opendaylight.yangtools.yan\r
+ g.common";version="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.ope\r
+ ndaylight.alto.service.types.rev141101.network.map.data;uses:="org.open\r
+ daylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101,org.\r
+ opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.\r
+ endpoint.address.group,org.opendaylight.yangtools.concepts,org.opendayl\r
+ ight.yangtools.yang.binding,org.opendaylight.yangtools.yang.common";ver\r
+ sion="1.0.0.SNAPSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alt\r
+ o.service.types.rev141101.network.map.meta;uses:="com.google.common.col\r
+ lect,org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.r\r
+ ev141101,org.opendaylight.yangtools.concepts,org.opendaylight.yangtools\r
+ .yang.binding,org.opendaylight.yangtools.yang.common";version="1.0.0.SN\r
+ APSHOT",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.type\r
+ s.rev141101.network.map;uses:="org.opendaylight.yang.gen.v1.urn.openday\r
+ light.alto.service.types.rev141101,org.opendaylight.yang.gen.v1.urn.ope\r
+ ndaylight.alto.service.types.rev141101.network.map.meta,org.opendayligh\r
+ t.yangtools.concepts,org.opendaylight.yangtools.yang.binding,org.openda\r
+ ylight.yangtools.yang.common";version="1.0.0.SNAPSHOT"\r
+Import-Package: com.google.common.base;version="[18.0,19)",com.google.co\r
+ mmon.collect;version="[18.0,19)",org.opendaylight.yang.gen.v1.urn.ietf.\r
+ params.xml.ns.yang.ietf.inet.types.rev100924;version="[2010.9,2011)",or\r
+ g.opendaylight.yangtools.concepts;version="[0.7,1)",org.opendaylight.ya\r
+ ngtools.yang.binding;version="[0.7,1)",org.opendaylight.yangtools.yang.\r
+ common;version="[0.7,1)",org.opendaylight.yangtools.yang.binding.annota\r
+ tions;version="[0.7,1)"\r
+Tool: Bnd-2.1.0.20130426-122213\r
<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <artifactId>alto-model</artifactId>
+ <packaging>bundle</packaging>
- <parent>
- <artifactId>model-parent</artifactId>
- <groupId>org.opendaylight.controller.model</groupId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath></relativePath>
- </parent>
+ <properties>
+ <jmxGeneratorPath>${project.build.directory}/generated-sources/config</jmxGeneratorPath>
+ </properties>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>alto-model</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <groupId>org.opendaylight.alto</groupId>
- <packaging>bundle</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle.version}</version>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <failsOnError>true</failsOnError>
+ <configLocation>../checkstyle.xml</configLocation>
+ <consoleOutput>true</consoleOutput>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ <sourceDirectory>${project.basedir}</sourceDirectory>
+ <includes>**\/*.yang</includes>
+ <excludes>**\/target\/,**\/bin\/,**\/third-party,**\/yang-gen-sal</excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${compiler.version}</version>
+ <inherited>true</inherited>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${bundle.plugin.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Export-Package>
+ org.opendaylight.yang.gen.v1.urn.cisco.*;
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.acl.rev140520.*;
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.packet.fields.rev140625.*;
+ </Export-Package>
+ <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-sources</goal>
+ </goals>
+ <configuration>
+ <codeGenerators>
+ <generator>
+ <codeGeneratorClass>
+ org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ </codeGeneratorClass>
+ <outputBaseDir>${project.build.directory}/generated-sources/config</outputBaseDir>
+ <additionalConfiguration>
+ <namespaceToPackage1>
+ urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
+ </namespaceToPackage1>
+ </additionalConfiguration>
+ </generator>
+ <generator>
+ <codeGeneratorClass>
+ org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
+ </codeGeneratorClass>
+ <outputBaseDir>${project.build.directory}/generated-sources/sal</outputBaseDir>
+ </generator>
+ <generator>
+ <codeGeneratorClass>
+ org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl
+ </codeGeneratorClass>
+ <outputBaseDir>${project.build.directory}/site/models</outputBaseDir>
+ </generator>
+ </codeGenerators>
+ <inspectDependencies>true</inspectDependencies>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>yang-jmx-generator-plugin</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>maven-sal-api-gen-plugin</artifactId>
+ <version>${yangtools.version}</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
- <properties>
- <checkstyle.skip>true</checkstyle.skip>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>yang-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>generate-sources</goal>
- </goals>
- <configuration>
- <yangFilesRootDir>src/main/yang</yangFilesRootDir>
- <codeGenerators>
- <generator>
- <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
- <outputBaseDir>${salGeneratorPath}</outputBaseDir>
- </generator>
- </codeGenerators>
- <inspectDependencies>true</inspectDependencies>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>maven-sal-api-gen-plugin</artifactId>
- <version>${yangtools.version}</version>
- <type>jar</type>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
-
-
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>yang-binding</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal-common-util</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>yang-common</artifactId>
- </dependency>
- </dependencies>
-
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.yangtools.model</groupId>
+ <artifactId>ietf-inet-types</artifactId>
+ <version>${ietf.model.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools.model</groupId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
+ <version>${ietf.yang.types.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.ovsdb</groupId>
+ <artifactId>southbound-api</artifactId>
+ <version>${ovsdb.southbound.version}</version>
+ </dependency>
+ </dependencies>
</project>
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class CostMetricBuilder {
+
+ public static CostMetric getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class EndpointAddressTypeBuilder {
+
+ public static EndpointAddressType getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class EndpointPropertyTypeBuilder {
+
+ public static EndpointPropertyType getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class GlobalEndpointPropertyBuilder {
+
+ public static GlobalEndpointProperty getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class MediaTypeBuilder {
+
+ public static MediaType getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class TypedEndpointAddressBuilder {
+
+ public static TypedEndpointAddress getDefaultInstance(java.lang.String defaultValue) {
+ throw new java.lang.UnsupportedOperationException("Not yet implemented");
+ }
+
+}
--- /dev/null
+<?xml version="1.0"?>
+<enunciate label="full" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
+
+ <services>
+ <rest defaultRestSubcontext="/controller/nb/v2/alto"/>
+ </services>
+
+ <modules>
+ <docs docsDir="rest" title="Alto REST API" includeExampleXml="true" includeExampleJson="true"/>
+ </modules>
+</enunciate>
<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2015 Yale University and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>binding-parent</artifactId>
- <version>0.7.0-SNAPSHOT</version>
- <relativePath/>
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
</parent>
-
- <modelVersion>4.0.0</modelVersion>
<groupId>org.opendaylight.alto</groupId>
<artifactId>alto-northbound</artifactId>
- <version>1.0.0-SNAPSHOT</version>
<packaging>bundle</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.enunciate</groupId>
+ <artifactId>maven-enunciate-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>sal</artifactId>
+ <version>0.7.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${bundle.plugin.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Import-Package>
+ org.codehaus.jettison.json,
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924,
+ org.apache.commons.logging,
+ com.sun.jersey.spi.container.servlet,
+ org.opendaylight.controller.northbound.commons,
+ org.opendaylight.controller.northbound.commons.exception,
+ org.opendaylight.controller.northbound.commons.utils,
+ org.opendaylight.controller.sal.utils,
+ org.opendaylight.controller.sal.authorization,
+ org.opendaylight.controller.sal.packet.address,
+ javax.ws.rs,
+ javax.ws.rs.core,
+ javax.xml.bind.annotation,
+ javax.xml.bind,
+ org.slf4j,
+ org.apache.catalina.filters,
+ com.fasterxml.jackson.jaxrs.base,
+ com.fasterxml.jackson.jaxrs.json,
+ </Import-Package>
+ <Web-ContextPath>/controller/nb/v2/alto</Web-ContextPath>
+ </instructions>
+ <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.controller.thirdparty</groupId>
+ <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+ <version>1.17</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>commons.northbound</artifactId>
+ <version>0.4.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.enunciate</groupId>
+ <artifactId>enunciate-core-annotations</artifactId>
+ <version>${enunciate.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller.thirdparty</groupId>
+ <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+ <version>7.0.42</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.3.7</version>
+ </dependency>
+ </dependencies>
</project>
+
--- /dev/null
+/*
+ * Copyright (c) 2015 Yale University and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.alto.northbound;
+
+import org.codehaus.jettison.json.JSONObject;
+
+import javax.ws.rs.Path;
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/")
+public class AltoNorthbound {
+
+ private static final Logger mLogger = LoggerFactory.getLogger(AltoNorthbound.class);
+
+ /* TODO
+ *
+ * Move them to AltoServiceAPI
+ *
+ * */
+
+ /** The media types defined in [RFC7285]
+ * */
+ public static final class AltoMediaType {
+ public static final String ALTO_DIRECTORY
+ = "application/alto-directory+json";
+ public static final MediaType ALTO_DIRECTORY_TYPE
+ = MediaType.valueOf(ALTO_DIRECTORY);
+ public static final String ALTO_NETWORKMAP
+ = "application/alto-networkmap+json";
+ public static final MediaType ALTO_NETWORKMAP_TYPE
+ = MediaType.valueOf(ALTO_NETWORKMAP);
+ public static final String ALTO_NETWORKMAP_FILTER
+ = "application/alto-networkmapfilter+json";
+ public static final MediaType ALTO_NETWORKMAP_FILTER_TYPE
+ = MediaType.valueOf(ALTO_NETWORKMAP_FILTER);
+ public static final String ALTO_COSTMAP
+ = "application/alto-costmap+json";
+ public static final MediaType ALTO_COSTMAP_TYPE
+ = MediaType.valueOf(ALTO_COSTMAP);
+ public static final String ALTO_COSTMAP_FILTER
+ = "application/alto-costmapfilter+json";
+ public static final MediaType ALTO_COSTMAP_FILTER_TYPE
+ = MediaType.valueOf(ALTO_COSTMAP_FILTER);
+ public static final String ALTO_ENDPOINT_PROP
+ = "application/alto-endpointprop+json";
+ public static final MediaType ALTO_ENDPOINT_PROP_TYPE
+ = MediaType.valueOf(ALTO_ENDPOINT_PROP);
+ public static final String ALTO_ENDPOINT_PROPPARAMS
+ = "application/alto-endpointpropparams+json";
+ public static final MediaType ALTO_ENDPOINT_PROPPARAMS_TYPE
+ = MediaType.valueOf(ALTO_ENDPOINT_PROPPARAMS);
+ public static final String ALTO_ENDPOINT_COST
+ = "application/alto-endpointcost+json";
+ public static final MediaType ALTO_ENDPOINT_COST_TYPE
+ = MediaType.valueOf(ALTO_ENDPOINT_COST);
+ public static final String ALTO_ENDPOINT_COSTPARAMS
+ = "application/alto-endpointcostparams+json";
+ public static final MediaType ALTO_ENDPOINT_COSTPARAMS_TYPE
+ = MediaType.valueOf(ALTO_ENDPOINT_COSTPARAMS);
+ public static final String ALTO_ERROR
+ = "application/alto-error+json";
+ public static final MediaType ALTO_ERROR_TYPE
+ = MediaType.valueOf(ALTO_ERROR);
+ }
+
+ public class AltoError {
+ public static final String E_SYNTAX = "syntax-error";
+ public static final String E_MISSING_FIELD = "missing-field";
+ public static final String E_INVALID_FIELD_TYPE = "invalid-type";
+ public static final String E_INVALID_FIELD_VALUE = "invalid-value";
+ }
+
+ @GET
+ @Produces({AltoMediaType.ALTO_DIRECTORY, AltoMediaType.ALTO_ERROR})
+ public Response retrieveIRD() {
+ JSONObject ird = new JSONObject();
+ try {
+ ird.put("test", "ok");
+ } catch (Exception e) {
+ }
+ return Response.ok(ird.toString(), AltoMediaType.ALTO_ERROR).build();
+ }
+
+ @Path("/hello")
+ @GET
+ public Response sayHello() {
+ return Response.ok(new String("hello alto")).build();
+ }
+}
--- /dev/null
+package org.opendaylight.alto.northbound;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.ws.rs.core.Application;
+
+public class AltoNorthboundRSApplication extends Application {
+ @Override
+ public Set<Class<?>> getClasses() {
+ Set<Class<?>> classes = new HashSet<Class<?>>();
+ classes.add(AltoNorthbound.class);
+ return classes;
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+ <servlet>
+ <servlet-name>JAXRSAlto</servlet-name>
+ <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.opendaylight.alto.northbound.AltoNorthboundRSApplication</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>JAXRSAlto</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
+
+ <filter>
+ <filter-name>CorsFilter</filter-name>
+ <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
+ <init-param>
+ <param-name>cors.allowed.origins</param-name>
+ <param-value>*</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cors.allowed.methods</param-name>
+ <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cors.allowed.headers</param-name>
+ <param-value>Content-Type,X-Requested-With,accept,authorization, origin,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cors.exposed.headers</param-name>
+ <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cors.support.credentials</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cors.preflight.maxage</param-name>
+ <param-value>10</param-value>
+ </init-param>
+ </filter>
+ <filter-mapping>
+ <filter-name>CorsFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>NB api</web-resource-name>
+ <url-pattern>/*</url-pattern>
+ <http-method>POST</http-method>
+ <http-method>GET</http-method>
+ <http-method>PUT</http-method>
+ <http-method>PATCH</http-method>
+ <http-method>DELETE</http-method>
+ <http-method>HEAD</http-method>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>System-Admin</role-name>
+ <role-name>Network-Admin</role-name>
+ <role-name>Network-Operator</role-name>
+ <role-name>Container-User</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <security-role>
+ <role-name>System-Admin</role-name>
+ </security-role>
+ <security-role>
+ <role-name>Network-Admin</role-name>
+ </security-role>
+ <security-role>
+ <role-name>Network-Operator</role-name>
+ </security-role>
+ <security-role>
+ <role-name>Container-User</role-name>
+ </security-role>
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ <realm-name>opendaylight</realm-name>
+ </login-config>
+</web-app>
+
--- /dev/null
+Manifest-Version: 1.0\r
+Bnd-LastModified: 1427728619623\r
+Build-Jdk: 1.7.0_51\r
+Built-By: richardyang\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: org.opendaylight.controller.samples.alto-provider\r
+Bundle-SymbolicName: org.opendaylight.controller.samples.alto-provider\r
+Bundle-Version: 1.0.0.SNAPSHOT\r
+Created-By: Apache Maven Bundle Plugin\r
+Export-Package: org.opendaylight.controller.config.yang.alto_provider;ve\r
+ rsion="1.0.0"\r
+Import-Package: com.google.common.base;version="[18.0,19)",com.google.co\r
+ mmon.collect;version="[18.0,19)",com.google.common.util.concurrent;vers\r
+ ion="[18.0,19)",javax.management,org.opendaylight.controller.config.api\r
+ ;version="[0.3,1)",org.opendaylight.controller.config.api.annotations;v\r
+ ersion="[0.3,1)",org.opendaylight.controller.config.api.runtime;version\r
+ ="[0.3,1)",org.opendaylight.controller.config.spi;version="[0.3,1)",org\r
+ .opendaylight.controller.config.yang.md.sal.binding;version="[1.2,2)",o\r
+ rg.opendaylight.controller.md.sal.binding.api;version="[1.2,2)",org.ope\r
+ ndaylight.controller.md.sal.common.api.data;version="[1.2,2)",org.opend\r
+ aylight.controller.sal.binding.api;version="[1.2,2)",org.opendaylight.y\r
+ ang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924;versio\r
+ n="[2010.9,2011)",org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.y\r
+ ang.rpc.context.rev130617;version="[0.3,1)",org.opendaylight.yang.gen.v\r
+ 1.urn.opendaylight.alto.rev141119;version="[1.2,2)",org.opendaylight.ya\r
+ ng.gen.v1.urn.opendaylight.alto.rev141119.filtered.network.map.service.\r
+ output;version="[1.2,2)",org.opendaylight.yang.gen.v1.urn.opendaylight.\r
+ alto.rev141119.resources;version="[1.2,2)",org.opendaylight.yang.gen.v1\r
+ .urn.opendaylight.alto.rev141119.resources.network.maps;version="[1.2,2\r
+ )",org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev14\r
+ 1101.network.map.data;version="[1.2,2)",org.opendaylight.yang.gen.v1.ur\r
+ n.opendaylight.alto.service.types.rev141101;version="[1.2,2)",org.opend\r
+ aylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpo\r
+ int.address.group;version="[1.2,2)",org.opendaylight.yang.gen.v1.urn.op\r
+ endaylight.params.xml.ns.yang.controller.config.rev130405;version="[0.3\r
+ ,1)",org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.c\r
+ ontroller.config.rev130405.modules;version="[0.3,1)",org.opendaylight.y\r
+ ang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130\r
+ 405.modules.module;version="[0.3,1)",org.opendaylight.yang.gen.v1.urn.o\r
+ pendaylight.params.xml.ns.yang.controller.md.sal.binding.rev131028;vers\r
+ ion="[1.2,2)",org.opendaylight.yangtools.concepts;version="[0.7,1)",org\r
+ .opendaylight.yangtools.yang.binding;version="[0.7,1)",org.opendaylight\r
+ .yangtools.yang.binding.annotations;version="[0.7,1)",org.opendaylight.\r
+ yangtools.yang.common;version="[0.7,1)",org.osgi.framework;version="[1.\r
+ 7,2)",org.slf4j;version="[1.7,2)"\r
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.7))"\r
+Tool: Bnd-2.3.0.201405100607\r
xsi:schemaLocation="http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
- <artifactId>sal-samples</artifactId>
- <groupId>org.opendaylight.controller.samples</groupId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath></relativePath>
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
</parent>
+
<modelVersion>4.0.0</modelVersion>
<artifactId>alto-provider</artifactId>
- <version>1.0.0-SNAPSHOT</version>
<packaging>bundle</packaging>
-
<properties>
<checkstyle.skip>true</checkstyle.skip>
<dependencies>
<dependency>
- <groupId>org.opendaylight.controller.model</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>alto-model</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>config-api</artifactId>
+ <version>${config.version}</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-api</artifactId>
+ <version>${mdsal.version}</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-config</artifactId>
+ <version>${mdsal.version}</version>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-common-util</artifactId>
+ <version>${mdsal.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
+ <version>${osgi.core.version}</version>
</dependency>
<!-- dependencies to use AbstractDataBrokerTest -->
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-broker-impl</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-broker-impl</artifactId>
<type>test-jar</type>
+ <version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>junit</artifactId>
<groupId>junit</groupId>
+ <version>[4.8.1, 4.11]</version>
<scope>test</scope>
</dependency>
- <!-- used to mock up classes -->
+ <!-- used to mock up classes
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
+ -->
</dependencies>
<plugin>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-maven-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>yang-jmx-generator-plugin</artifactId>
+ <version>${config.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>maven-sal-api-gen-plugin</artifactId>
+ <version>${yangtools.version}</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
<executions>
<execution>
<id>config</id>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata modelVersion="1.1.0">
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-impl</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <localCopy>true</localCopy>
+ </snapshot>
+ <lastUpdated>20150330113731</lastUpdated>
+ <snapshotVersions>
+ <snapshotVersion>
+ <classifier>config</classifier>
+ <extension>xml</extension>
+ <value>1.0.0-SNAPSHOT</value>
+ <updated>20150330113731</updated>
+ </snapshotVersion>
+ </snapshotVersions>
+ </versioning>
+</metadata>
--- /dev/null
+package org.opendaylight.controller.config.yang.config.alto_provider.impl;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.provider.impl.rev141119.OpendaylightAlto;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.AltoServiceService;
+
+public class AltoProviderModule extends org.opendaylight.controller.config.yang.config.alto_provider.impl.AbstractAltoProviderModule {
+ public AltoProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+ super(identifier, dependencyResolver);
+ }
+
+ public AltoProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.alto_provider.impl.AltoProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
+ super(identifier, dependencyResolver, oldModule, oldInstance);
+ }
+
+ @Override
+ public void customValidation() {
+ // add custom validation form module attributes here.
+ }
+
+ @Override
+ public java.lang.AutoCloseable createInstance() {
+ final OpendaylightAlto opendaylightAlto = new OpendaylightAlto();
+
+ DataBroker dataBrokerService = getDataBrokerDependency();
+ opendaylightAlto.setDataProvider(dataBrokerService);
+
+ final BindingAwareBroker.RpcRegistration<AltoServiceService> rpcRegistration = getRpcRegistryDependency()
+ .addRpcImplementation(AltoServiceService.class, opendaylightAlto);
+
+ // Wrap toaster as AutoCloseable and close registrations to md-sal at
+ // close(). The close method is where you would generally clean up
+ // thread pools
+ // etc.
+ final class AutoCloseableAlto implements AutoCloseable {
+
+ @Override
+ public void close() throws Exception {
+ rpcRegistration.close();
+ opendaylightAlto.close();
+ }
+ }
+
+ return new AutoCloseableAlto();
+ }
+
+}
--- /dev/null
+/*
+* Generated file
+*
+* Generated from: yang module name: alto-provider-impl yang module local name: alto-provider-impl
+* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+* Generated at: Thu Nov 20 06:13:29 EST 2014
+*
+* Do not modify this file unless it is present under src/main directory
+*/
+package org.opendaylight.controller.config.yang.config.alto_provider.impl;
+public class AltoProviderModuleFactory extends org.opendaylight.controller.config.yang.config.alto_provider.impl.AbstractAltoProviderModuleFactory {
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.alto.provider.impl.rev141119;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.opendaylight.controller.config.yang.config.alto_provider.impl.AltoProviderRuntimeMXBean;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.EndpointCostServiceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.EndpointCostServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.EndpointPropertyServiceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.EndpointPropertyServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.FilteredCostMapServiceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.FilteredCostMapServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.FilteredNetworkMapServiceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.FilteredNetworkMapServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.FilteredNetworkMapServiceOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.Resources;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.ResourcesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.AltoServiceService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.filtered.network.map.service.output.FilteredNetworkMapService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.filtered.network.map.service.output.FilteredNetworkMapServiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.NetworkMaps;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.NetworkMapsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.network.maps.NetworkMap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.network.maps.NetworkMapBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev141119.resources.network.maps.NetworkMapKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101.network.map.data.Map;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.did.rev141101.network.map.data.MapBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.EndpointAddressType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.PidName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.ResourceId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.TagString;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.address.group.EndpointAddressGroup;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev141101.endpoint.address.group.EndpointAddressGroupBuilder;
+
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.AsyncFunction;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+public class OpendaylightAlto implements AltoServiceService,
+ AltoProviderRuntimeMXBean, DataChangeListener, AutoCloseable {
+
+ private static final Logger LOG = LoggerFactory
+ .getLogger(OpendaylightAlto.class);
+
+ public static final InstanceIdentifier<Resources> ALTO_IID = InstanceIdentifier
+ .builder(Resources.class).build();
+
+ // Currently we don't have any notifications.
+ private NotificationProviderService notificationProvider;
+ private DataBroker dataProvider;
+
+ private final ExecutorService executor;
+
+ // dummy state data example
+ private final AtomicLong toastsMade = new AtomicLong(0);
+
+ public OpendaylightAlto() {
+ executor = Executors.newFixedThreadPool(1);
+ }
+
+ public void setNotificationProvider(
+ final NotificationProviderService salService) {
+ this.notificationProvider = salService;
+ }
+
+ public void setDataProvider(final DataBroker salDataProvider) {
+ this.dataProvider = salDataProvider;
+ setResourcesStatusUp(null);
+ }
+
+ /**
+ * Implemented from the AutoCloseable interface. Delete all resources.
+ */
+ @Override
+ public void close() throws ExecutionException, InterruptedException {
+ // When we close this service we need to shutdown our executor!
+ executor.shutdown();
+
+ if (dataProvider != null) {
+ WriteTransaction tx = dataProvider.newWriteOnlyTransaction();
+ tx.delete(LogicalDatastoreType.OPERATIONAL, ALTO_IID);
+ Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ LOG.debug("Delete ALTO commit result: " + result);
+ }
+
+ @Override
+ public void onFailure(final Throwable t) {
+ LOG.error("Delete of ALTO failed", t);
+ }
+ });
+ }
+ }
+
+ private Resources buildResources() {
+ return new ResourcesBuilder().setNetworkMaps(buildDummyNetworkMaps())
+ .setTeststring("TestAltoRestconfDIDWired")
+ .setTestdatastring("tstdatastring")
+ .setNetworkMaps(buildDummyNetworkMaps()).build();
+ }
+
+ /*
+ * builds a dummy container networkmaps
+ */
+ private NetworkMaps buildDummyNetworkMaps() {
+ ResourceId dummyResourceId = new ResourceId("my-dummy-net-map-1");
+
+ PidName pid1 = new PidName("PID1");
+ PidName pid2 = new PidName("PID2");
+ PidName pid3 = new PidName("PID3");
+
+ EndpointAddressType ipv4Type = new EndpointAddressType(
+ EndpointAddressType.Enumeration.Ipv4);
+ EndpointAddressType ipv6Type = new EndpointAddressType(
+ EndpointAddressType.Enumeration.Ipv6);
+
+ /* for PID1 */
+ List<IpPrefix> pid1list = new ArrayList<>();
+ pid1list.add(new IpPrefix(new Ipv4Prefix("192.0.2.0/24")));
+ pid1list.add(new IpPrefix(new Ipv4Prefix("198.51.100.0/25")));
+
+ EndpointAddressGroup eag1 = new EndpointAddressGroupBuilder()
+ .setAddressType(ipv4Type).setEndpointPrefix(pid1list).build();
+
+ List<EndpointAddressGroup> eagList1 = new ArrayList<>();
+ eagList1.add(eag1);
+
+ Map dummyMap1 = new MapBuilder().setPid(pid1)
+ .setEndpointAddressGroup(eagList1).build();
+
+ /* for PID2 */
+ List<IpPrefix> pid2list = new ArrayList<>();
+ pid2list.add(new IpPrefix(new Ipv4Prefix("198.51.100.128/25")));
+
+ EndpointAddressGroup eag2 = new EndpointAddressGroupBuilder()
+ .setAddressType(ipv4Type).setEndpointPrefix(pid2list).build();
+
+ List<EndpointAddressGroup> eagList2 = new ArrayList<>();
+ eagList2.add(eag2);
+ Map dummyMap2 = new MapBuilder().setPid(pid2)
+ .setEndpointAddressGroup(eagList2).build();
+
+ /* for PID3 */
+ List<IpPrefix> pid3ipv4List = new ArrayList<>();
+ pid3ipv4List.add(new IpPrefix(new Ipv4Prefix("0.0.0.0/0")));
+ EndpointAddressGroup eag3ipv4 = new EndpointAddressGroupBuilder()
+ .setAddressType(ipv4Type).setEndpointPrefix(pid3ipv4List).build();
+
+ List<IpPrefix> pid3ipv6List = new ArrayList<>();
+ pid3ipv6List.add(new IpPrefix(new Ipv6Prefix("::/0")));
+ EndpointAddressGroup eag3ipv6 = new EndpointAddressGroupBuilder()
+ .setAddressType(ipv6Type).setEndpointPrefix(pid3ipv6List).build();
+
+ List<EndpointAddressGroup> eagList3 = new ArrayList<>();
+ eagList3.add(eag3ipv4);
+ eagList3.add(eag3ipv6);
+ Map dummyMap3 = new MapBuilder().setPid(pid3)
+ .setEndpointAddressGroup(eagList3).build();
+
+ /* put together default dummy net map */
+ List<Map> dummyListMap = new ArrayList<>();
+ dummyListMap.add(dummyMap1);
+ dummyListMap.add(dummyMap2);
+ dummyListMap.add(dummyMap3);
+
+ NetworkMapBuilder dummyNetworkMapBuilder = new NetworkMapBuilder();
+ dummyNetworkMapBuilder.setResourceId(dummyResourceId)
+ .setTag(new TagString("dummyv01")).setMap(dummyListMap);
+
+ List<NetworkMap> dummyListNetworkMap = new ArrayList<>();
+ dummyListNetworkMap.add(dummyNetworkMapBuilder.build());
+
+ /* wrap with network-maps container */
+ return new NetworkMapsBuilder().setNetworkMap(dummyListNetworkMap)
+ .build();
+ }
+
+ /**
+ * Implemented from the DataChangeListener interface.
+ */
+ @Override
+ public void onDataChanged(
+ final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
+ DataObject dataObject = change.getUpdatedSubtree();
+ if (dataObject instanceof Resources) {
+ Resources altoResources = (Resources) dataObject;
+ LOG.info("onDataChanged - new ALTO config: {}", altoResources);
+ }
+ }
+
+ /* dummy example state data TODO */
+
+ /**
+ * JMX RPC call implemented from the AltoProviderRuntimeMXBean interface.
+ */
+ @Override
+ public void clearToastsMade() {
+ LOG.info("clearToastsMade");
+ toastsMade.set(0);
+ }
+
+ /**
+ * Accesssor method implemented from the ToasterProviderRuntimeMXBean
+ * interface.
+ */
+ @Override
+ public Long getToastsMade() {
+ return toastsMade.get();
+ }
+
+ private void setResourcesStatusUp(
+ final Function<Boolean, Void> resultCallback) {
+
+ WriteTransaction tx = dataProvider.newWriteOnlyTransaction();
+ tx.put(LogicalDatastoreType.OPERATIONAL, ALTO_IID, buildResources());
+
+ Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ notifyCallback(true);
+ }
+
+ @Override
+ public void onFailure(final Throwable t) {
+ // We shouldn't get an OptimisticLockFailedException (or any ex)
+ // as no
+ // other component should be updating the operational state.
+ LOG.error("Failed to update toaster status", t);
+
+ notifyCallback(false);
+ }
+
+ void notifyCallback(final boolean result) {
+ if (resultCallback != null) {
+ resultCallback.apply(result);
+ }
+ }
+ });
+ }
+
+ @Override
+ public Future<RpcResult<EndpointCostServiceOutput>> endpointCostService(
+ EndpointCostServiceInput input) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Future<RpcResult<EndpointPropertyServiceOutput>> endpointPropertyService(
+ EndpointPropertyServiceInput input) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Future<RpcResult<FilteredCostMapServiceOutput>> filteredCostMapService(
+ FilteredCostMapServiceInput input) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Future<RpcResult<FilteredNetworkMapServiceOutput>> filteredNetworkMapService(
+ final FilteredNetworkMapServiceInput input) {
+
+ ResourceId rid = input.getResourceId();
+ NetworkMapKey networkMapKey = new NetworkMapKey(rid);
+
+ final ReadOnlyTransaction tx = dataProvider.newReadOnlyTransaction();
+ ListenableFuture<Optional<NetworkMap>> readFuture = tx.read(
+ LogicalDatastoreType.OPERATIONAL, ALTO_IID.child(NetworkMaps.class)
+ .child(NetworkMap.class, networkMapKey));
+
+ final ListenableFuture<RpcResult<FilteredNetworkMapServiceOutput>> futureResult = Futures
+ .transform(
+ readFuture,
+ new AsyncFunction<Optional<NetworkMap>, RpcResult<FilteredNetworkMapServiceOutput>>() {
+
+ @Override
+ public ListenableFuture<RpcResult<FilteredNetworkMapServiceOutput>> apply(
+ Optional<NetworkMap> networkMapData) throws Exception {
+
+ ResourceId networkMapId = new ResourceId(
+ "ResourceID Not Available");
+ TagString networkMapTag = new TagString(
+ "Tag Not Available");
+
+ if (networkMapData.isPresent()) {
+ networkMapId = ((NetworkMap) networkMapData.get())
+ .getResourceId();
+ networkMapTag = ((NetworkMap) networkMapData.get())
+ .getTag();
+ }
+
+ LOG.info("Read network map rid: {}", networkMapId);
+ LOG.info("Read network map tag: {}", networkMapTag);
+
+ List<PidName> pidList = input.getPids();
+
+ List<Map> networkMapMap = networkMapData.get().getMap();
+ List<Map> filteredMap = new ArrayList<>();
+
+ for (Map m : networkMapMap) {
+ PidName pid = m.getPid();
+ if (pidList.contains(pid)) {
+ filteredMap.add(m);
+ }
+ }
+
+ FilteredNetworkMapService serviceResult = new FilteredNetworkMapServiceBuilder()
+ .setResourceId(networkMapId).setTag(networkMapTag)
+ .setMap(filteredMap).build();
+
+ FilteredNetworkMapServiceOutput serviceOutput = new FilteredNetworkMapServiceOutputBuilder()
+ .setFilteredNetworkMapService(serviceResult)
+ .build();
+
+ return Futures.immediateFuture(RpcResultBuilder
+ .<FilteredNetworkMapServiceOutput> success()
+ .withResult(serviceOutput).build());
+ }
+ });
+
+ return futureResult;
+ }
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+
+public final class $YangModelBindingProvider implements org.opendaylight.yangtools.yang.binding.YangModelBindingProvider {
+
+ public org.opendaylight.yangtools.yang.binding.YangModuleInfo getModuleInfo() {
+ return $YangModuleInfoImpl.getInstance();
+ }
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119 ;
+import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
+import java.util.Set;
+import java.util.HashSet;
+import com.google.common.collect.ImmutableSet;
+import java.io.InputStream;
+import java.io.IOException;
+public final class $YangModuleInfoImpl implements YangModuleInfo {
+
+ private static final YangModuleInfo INSTANCE = new $YangModuleInfoImpl();
+
+ private final String name = "alto-provider-impl";
+ private final String namespace = "urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl";
+ private final String revision = "2014-11-19";
+ private final String resourcePath = "/META-INF/yang/alto-provider-impl.yang";
+
+ private final Set<YangModuleInfo> importedModules;
+
+ public static YangModuleInfo getInstance() {
+ return INSTANCE;
+ }
+
+ private $YangModuleInfoImpl() {
+ Set<YangModuleInfo> set = new HashSet<>();
+ set.add(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.rev131028.$YangModuleInfoImpl.getInstance());
+ set.add(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.$YangModuleInfoImpl.getInstance());
+ set.add(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.$YangModuleInfoImpl.getInstance());
+ importedModules = ImmutableSet.copyOf(set);
+
+ InputStream stream = $YangModuleInfoImpl.class.getResourceAsStream(resourcePath);
+ if (stream == null) {
+ throw new IllegalStateException("Resource '" + resourcePath + "' is missing");
+ }
+ try {
+ stream.close();
+ } catch (IOException e) {
+ // Resource leak, but there is nothing we can do
+ }
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getRevision() {
+ return revision;
+ }
+
+ @Override
+ public String getNamespace() {
+ return namespace;
+ }
+
+ @Override
+ public InputStream getModuleSourceStream() throws IOException {
+ InputStream stream = $YangModuleInfoImpl.class.getResourceAsStream(resourcePath);
+ if (stream == null) {
+ throw new IOException("Resource " + resourcePath + " is missing");
+ }
+ return stream;
+ }
+
+ @Override
+ public Set<YangModuleInfo> getImportedModules() {
+ return importedModules;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder(this.getClass().getCanonicalName());
+ sb.append("[");
+ sb.append("name = " + name);
+ sb.append(", namespace = " + namespace);
+ sb.append(", revision = " + revision);
+ sb.append(", resourcePath = " + resourcePath);
+ sb.append(", imports = " + importedModules);
+ sb.append("]");
+ return sb.toString();
+ }
+
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ModuleType;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * identity alto-provider-impl {
+ * base "()IdentitySchemaNodeImpl[base=null, qname=(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)module-type]";
+ * status CURRENT;
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/alto-provider-impl</i>
+ *
+ */
+public abstract class AltoProviderImpl extends ModuleType
+ {
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","alto-provider-impl"));
+
+ public AltoProviderImpl() {
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+import java.util.concurrent.Future;
+import org.opendaylight.yangtools.yang.binding.RpcService;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+
+
+/**
+ * Interface for implementing the following YANG RPCs defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * rpc clear-toasts-made {
+ * "JMX call to clear the toasts-made counter.";
+ * input {
+ * leaf context-instance {
+ * type instance-identifier;
+ * }
+ * }
+ *
+ * status CURRENT;
+ * }
+ * </pre>
+ *
+ */
+public interface AltoProviderImplService
+ extends
+ RpcService
+{
+
+
+
+
+ /**
+ * JMX call to clear the toasts-made counter.
+ *
+ */
+ Future<RpcResult<java.lang.Void>> clearToastsMade(ClearToastsMadeInput input);
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * container input {
+ * leaf context-instance {
+ * type instance-identifier;
+ * }
+ * uses rpc-context-ref {
+ * refine (urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)context-instance {
+ * leaf context-instance {
+ * type instance-identifier;
+ * }
+ * }
+ * }
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/clear-toasts-made/input</i>
+ *
+ * <p>To create instances of this class use {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInputBuilder}.
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInputBuilder
+ *
+ */
+public interface ClearToastsMadeInput
+ extends
+ RpcContextRef,
+ DataObject,
+ Augmentable<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>
+{
+
+
+
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","input"));
+
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import java.util.Collections;
+import java.util.Map;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import java.util.HashMap;
+import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+
+/**
+ * Class that builds {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput} instances.
+ *
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput
+ *
+ */
+public class ClearToastsMadeInputBuilder implements Builder <org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput> {
+
+ private InstanceIdentifier<?> _contextInstance;
+
+ Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> augmentation = new HashMap<>();
+
+ public ClearToastsMadeInputBuilder() {
+ }
+ public ClearToastsMadeInputBuilder(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef arg) {
+ this._contextInstance = arg.getContextInstance();
+ }
+
+ public ClearToastsMadeInputBuilder(ClearToastsMadeInput base) {
+ this._contextInstance = base.getContextInstance();
+ if (base instanceof ClearToastsMadeInputImpl) {
+ ClearToastsMadeInputImpl _impl = (ClearToastsMadeInputImpl) base;
+ this.augmentation = new HashMap<>(_impl.augmentation);
+ }
+ }
+
+ /**
+ *Set fields from given grouping argument. Valid argument is instance of one of following types:
+ * <ul>
+ * <li>org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef</li>
+ * </ul>
+ *
+ * @param arg grouping object
+ * @throws IllegalArgumentException if given argument is none of valid types
+ */
+ public void fieldsFrom(DataObject arg) {
+ boolean isValidArg = false;
+ if (arg instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef) {
+ this._contextInstance = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef)arg).getContextInstance();
+ isValidArg = true;
+ }
+ if (!isValidArg) {
+ throw new IllegalArgumentException(
+ "expected one of: [org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.RpcContextRef] \n" +
+ "but was: " + arg
+ );
+ }
+ }
+
+ public InstanceIdentifier<?> getContextInstance() {
+ return _contextInstance;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ public ClearToastsMadeInputBuilder setContextInstance(InstanceIdentifier<?> value) {
+ this._contextInstance = value;
+ return this;
+ }
+
+ public ClearToastsMadeInputBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput> augmentation) {
+ if (augmentation == null) {
+ return removeAugmentation(augmentationType);
+ }
+ this.augmentation.put(augmentationType, augmentation);
+ return this;
+ }
+
+ public ClearToastsMadeInputBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> augmentationType) {
+ this.augmentation.remove(augmentationType);
+ return this;
+ }
+
+ public ClearToastsMadeInput build() {
+ return new ClearToastsMadeInputImpl(this);
+ }
+
+ private static final class ClearToastsMadeInputImpl implements ClearToastsMadeInput {
+
+ public java.lang.Class<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput> getImplementedInterface() {
+ return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput.class;
+ }
+
+ private final InstanceIdentifier<?> _contextInstance;
+
+ private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> augmentation = new HashMap<>();
+
+ private ClearToastsMadeInputImpl(ClearToastsMadeInputBuilder base) {
+ this._contextInstance = base.getContextInstance();
+ switch (base.augmentation.size()) {
+ case 0:
+ this.augmentation = Collections.emptyMap();
+ break;
+ case 1:
+ final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> e = base.augmentation.entrySet().iterator().next();
+ this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>singletonMap(e.getKey(), e.getValue());
+ break;
+ default :
+ this.augmentation = new HashMap<>(base.augmentation);
+ }
+ }
+
+ @Override
+ public InstanceIdentifier<?> getContextInstance() {
+ return _contextInstance;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((_contextInstance == null) ? 0 : _contextInstance.hashCode());
+ result = prime * result + ((augmentation == null) ? 0 : augmentation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(java.lang.Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DataObject)) {
+ return false;
+ }
+ if (!org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput.class.equals(((DataObject)obj).getImplementedInterface())) {
+ return false;
+ }
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput other = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput)obj;
+ if (_contextInstance == null) {
+ if (other.getContextInstance() != null) {
+ return false;
+ }
+ } else if(!_contextInstance.equals(other.getContextInstance())) {
+ return false;
+ }
+ if (getClass() == obj.getClass()) {
+ // Simple case: we are comparing against self
+ ClearToastsMadeInputImpl otherImpl = (ClearToastsMadeInputImpl) obj;
+ if (augmentation == null) {
+ if (otherImpl.augmentation != null) {
+ return false;
+ }
+ } else if(!augmentation.equals(otherImpl.augmentation)) {
+ return false;
+ }
+ } else {
+ // Hard case: compare our augments with presence there...
+ for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.ClearToastsMadeInput>> e : augmentation.entrySet()) {
+ if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
+ return false;
+ }
+ }
+ // .. and give the other one the chance to do the same
+ if (!obj.equals(this)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder builder = new java.lang.StringBuilder ("ClearToastsMadeInput [");
+ boolean first = true;
+
+ if (_contextInstance != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_contextInstance=");
+ builder.append(_contextInstance);
+ }
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("augmentation=");
+ builder.append(augmentation.values());
+ return builder.append(']').toString();
+ }
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.binding.BaseIdentity;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * identity clear-toasts-made-rpc {
+ * status CURRENT;
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/clear-toasts-made-rpc</i>
+ *
+ */
+public abstract class ClearToastsMadeRpc extends BaseIdentity
+ {
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","clear-toasts-made-rpc"));
+
+ public ClearToastsMadeRpc() {
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.module.Configuration;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * case alto-provider-impl {
+ * container rpc-registry {
+ * leaf type {
+ * type leafref;
+ * }
+ * leaf name {
+ * type leafref;
+ * }
+ * uses service-ref {
+ * refine (urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)type {
+ * leaf type {
+ * type leafref;
+ * }
+ * }
+ * }
+ * }
+ * container data-broker {
+ * leaf type {
+ * type leafref;
+ * }
+ * leaf name {
+ * type leafref;
+ * }
+ * uses service-ref {
+ * refine (urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)type {
+ * leaf type {
+ * type leafref;
+ * }
+ * }
+ * }
+ * }
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/modules/module/configuration/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl</i>
+ *
+ */
+public interface AltoProviderImpl
+ extends
+ DataObject,
+ Augmentable<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>,
+ Configuration
+{
+
+
+
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","alto-provider-impl"));
+
+ RpcRegistry getRpcRegistry();
+
+ DataBroker getDataBroker();
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration;
+import java.util.Collections;
+import java.util.Map;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import java.util.HashMap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker;
+import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+
+/**
+ * Class that builds {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl} instances.
+ *
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl
+ *
+ */
+public class AltoProviderImplBuilder implements Builder <org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl> {
+
+ private DataBroker _dataBroker;
+ private RpcRegistry _rpcRegistry;
+
+ Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> augmentation = new HashMap<>();
+
+ public AltoProviderImplBuilder() {
+ }
+
+ public AltoProviderImplBuilder(AltoProviderImpl base) {
+ this._dataBroker = base.getDataBroker();
+ this._rpcRegistry = base.getRpcRegistry();
+ if (base instanceof AltoProviderImplImpl) {
+ AltoProviderImplImpl _impl = (AltoProviderImplImpl) base;
+ this.augmentation = new HashMap<>(_impl.augmentation);
+ }
+ }
+
+
+ public DataBroker getDataBroker() {
+ return _dataBroker;
+ }
+
+ public RpcRegistry getRpcRegistry() {
+ return _rpcRegistry;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ public AltoProviderImplBuilder setDataBroker(DataBroker value) {
+ this._dataBroker = value;
+ return this;
+ }
+
+ public AltoProviderImplBuilder setRpcRegistry(RpcRegistry value) {
+ this._rpcRegistry = value;
+ return this;
+ }
+
+ public AltoProviderImplBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl> augmentation) {
+ if (augmentation == null) {
+ return removeAugmentation(augmentationType);
+ }
+ this.augmentation.put(augmentationType, augmentation);
+ return this;
+ }
+
+ public AltoProviderImplBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> augmentationType) {
+ this.augmentation.remove(augmentationType);
+ return this;
+ }
+
+ public AltoProviderImpl build() {
+ return new AltoProviderImplImpl(this);
+ }
+
+ private static final class AltoProviderImplImpl implements AltoProviderImpl {
+
+ public java.lang.Class<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl> getImplementedInterface() {
+ return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl.class;
+ }
+
+ private final DataBroker _dataBroker;
+ private final RpcRegistry _rpcRegistry;
+
+ private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> augmentation = new HashMap<>();
+
+ private AltoProviderImplImpl(AltoProviderImplBuilder base) {
+ this._dataBroker = base.getDataBroker();
+ this._rpcRegistry = base.getRpcRegistry();
+ switch (base.augmentation.size()) {
+ case 0:
+ this.augmentation = Collections.emptyMap();
+ break;
+ case 1:
+ final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> e = base.augmentation.entrySet().iterator().next();
+ this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>singletonMap(e.getKey(), e.getValue());
+ break;
+ default :
+ this.augmentation = new HashMap<>(base.augmentation);
+ }
+ }
+
+ @Override
+ public DataBroker getDataBroker() {
+ return _dataBroker;
+ }
+
+ @Override
+ public RpcRegistry getRpcRegistry() {
+ return _rpcRegistry;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((_dataBroker == null) ? 0 : _dataBroker.hashCode());
+ result = prime * result + ((_rpcRegistry == null) ? 0 : _rpcRegistry.hashCode());
+ result = prime * result + ((augmentation == null) ? 0 : augmentation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(java.lang.Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DataObject)) {
+ return false;
+ }
+ if (!org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl.class.equals(((DataObject)obj).getImplementedInterface())) {
+ return false;
+ }
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl other = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl)obj;
+ if (_dataBroker == null) {
+ if (other.getDataBroker() != null) {
+ return false;
+ }
+ } else if(!_dataBroker.equals(other.getDataBroker())) {
+ return false;
+ }
+ if (_rpcRegistry == null) {
+ if (other.getRpcRegistry() != null) {
+ return false;
+ }
+ } else if(!_rpcRegistry.equals(other.getRpcRegistry())) {
+ return false;
+ }
+ if (getClass() == obj.getClass()) {
+ // Simple case: we are comparing against self
+ AltoProviderImplImpl otherImpl = (AltoProviderImplImpl) obj;
+ if (augmentation == null) {
+ if (otherImpl.augmentation != null) {
+ return false;
+ }
+ } else if(!augmentation.equals(otherImpl.augmentation)) {
+ return false;
+ }
+ } else {
+ // Hard case: compare our augments with presence there...
+ for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.AltoProviderImpl>> e : augmentation.entrySet()) {
+ if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
+ return false;
+ }
+ }
+ // .. and give the other one the chance to do the same
+ if (!obj.equals(this)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder builder = new java.lang.StringBuilder ("AltoProviderImpl [");
+ boolean first = true;
+
+ if (_dataBroker != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_dataBroker=");
+ builder.append(_dataBroker);
+ }
+ if (_rpcRegistry != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_rpcRegistry=");
+ builder.append(_rpcRegistry);
+ }
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("augmentation=");
+ builder.append(augmentation.values());
+ return builder.append(']').toString();
+ }
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.binding.ChildOf;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.Module;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * container data-broker {
+ * leaf type {
+ * type leafref;
+ * }
+ * leaf name {
+ * type leafref;
+ * }
+ * uses service-ref {
+ * refine (urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)type {
+ * leaf type {
+ * type leafref;
+ * }
+ * }
+ * }
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/modules/module/configuration/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl/data-broker</i>
+ *
+ * <p>To create instances of this class use {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBrokerBuilder}.
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBrokerBuilder
+ *
+ */
+public interface DataBroker
+ extends
+ ChildOf<Module>,
+ Augmentable<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>,
+ ServiceRef
+{
+
+
+
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","data-broker"));
+
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl;
+import java.util.Collections;
+import java.util.Map;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import java.util.HashMap;
+import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+
+/**
+ * Class that builds {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker} instances.
+ *
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker
+ *
+ */
+public class DataBrokerBuilder implements Builder <org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker> {
+
+ private java.lang.Object _name;
+ private java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> _type;
+
+ Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> augmentation = new HashMap<>();
+
+ public DataBrokerBuilder() {
+ }
+ public DataBrokerBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef arg) {
+ this._type = arg.getType();
+ this._name = arg.getName();
+ }
+
+ public DataBrokerBuilder(DataBroker base) {
+ this._name = base.getName();
+ this._type = base.getType();
+ if (base instanceof DataBrokerImpl) {
+ DataBrokerImpl _impl = (DataBrokerImpl) base;
+ this.augmentation = new HashMap<>(_impl.augmentation);
+ }
+ }
+
+ /**
+ *Set fields from given grouping argument. Valid argument is instance of one of following types:
+ * <ul>
+ * <li>org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef</li>
+ * </ul>
+ *
+ * @param arg grouping object
+ * @throws IllegalArgumentException if given argument is none of valid types
+ */
+ public void fieldsFrom(DataObject arg) {
+ boolean isValidArg = false;
+ if (arg instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef) {
+ this._type = ((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef)arg).getType();
+ this._name = ((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef)arg).getName();
+ isValidArg = true;
+ }
+ if (!isValidArg) {
+ throw new IllegalArgumentException(
+ "expected one of: [org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef] \n" +
+ "but was: " + arg
+ );
+ }
+ }
+
+ public java.lang.Object getName() {
+ return _name;
+ }
+
+ public java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> getType() {
+ return _type;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ public DataBrokerBuilder setName(java.lang.Object value) {
+ this._name = value;
+ return this;
+ }
+
+ public DataBrokerBuilder setType(java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> value) {
+ this._type = value;
+ return this;
+ }
+
+ public DataBrokerBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker> augmentation) {
+ if (augmentation == null) {
+ return removeAugmentation(augmentationType);
+ }
+ this.augmentation.put(augmentationType, augmentation);
+ return this;
+ }
+
+ public DataBrokerBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> augmentationType) {
+ this.augmentation.remove(augmentationType);
+ return this;
+ }
+
+ public DataBroker build() {
+ return new DataBrokerImpl(this);
+ }
+
+ private static final class DataBrokerImpl implements DataBroker {
+
+ public java.lang.Class<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker> getImplementedInterface() {
+ return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker.class;
+ }
+
+ private final java.lang.Object _name;
+ private final java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> _type;
+
+ private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> augmentation = new HashMap<>();
+
+ private DataBrokerImpl(DataBrokerBuilder base) {
+ this._name = base.getName();
+ this._type = base.getType();
+ switch (base.augmentation.size()) {
+ case 0:
+ this.augmentation = Collections.emptyMap();
+ break;
+ case 1:
+ final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> e = base.augmentation.entrySet().iterator().next();
+ this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>singletonMap(e.getKey(), e.getValue());
+ break;
+ default :
+ this.augmentation = new HashMap<>(base.augmentation);
+ }
+ }
+
+ @Override
+ public java.lang.Object getName() {
+ return _name;
+ }
+
+ @Override
+ public java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> getType() {
+ return _type;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((_name == null) ? 0 : _name.hashCode());
+ result = prime * result + ((_type == null) ? 0 : _type.hashCode());
+ result = prime * result + ((augmentation == null) ? 0 : augmentation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(java.lang.Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DataObject)) {
+ return false;
+ }
+ if (!org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker.class.equals(((DataObject)obj).getImplementedInterface())) {
+ return false;
+ }
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker other = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker)obj;
+ if (_name == null) {
+ if (other.getName() != null) {
+ return false;
+ }
+ } else if(!_name.equals(other.getName())) {
+ return false;
+ }
+ if (_type == null) {
+ if (other.getType() != null) {
+ return false;
+ }
+ } else if(!_type.equals(other.getType())) {
+ return false;
+ }
+ if (getClass() == obj.getClass()) {
+ // Simple case: we are comparing against self
+ DataBrokerImpl otherImpl = (DataBrokerImpl) obj;
+ if (augmentation == null) {
+ if (otherImpl.augmentation != null) {
+ return false;
+ }
+ } else if(!augmentation.equals(otherImpl.augmentation)) {
+ return false;
+ }
+ } else {
+ // Hard case: compare our augments with presence there...
+ for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.DataBroker>> e : augmentation.entrySet()) {
+ if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
+ return false;
+ }
+ }
+ // .. and give the other one the chance to do the same
+ if (!obj.equals(this)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder builder = new java.lang.StringBuilder ("DataBroker [");
+ boolean first = true;
+
+ if (_name != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_name=");
+ builder.append(_name);
+ }
+ if (_type != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_type=");
+ builder.append(_type);
+ }
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("augmentation=");
+ builder.append(augmentation.values());
+ return builder.append(']').toString();
+ }
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.binding.ChildOf;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.Module;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * container rpc-registry {
+ * leaf type {
+ * type leafref;
+ * }
+ * leaf name {
+ * type leafref;
+ * }
+ * uses service-ref {
+ * refine (urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)type {
+ * leaf type {
+ * type leafref;
+ * }
+ * }
+ * }
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/modules/module/configuration/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl/rpc-registry</i>
+ *
+ * <p>To create instances of this class use {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistryBuilder}.
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistryBuilder
+ *
+ */
+public interface RpcRegistry
+ extends
+ ChildOf<Module>,
+ Augmentable<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>,
+ ServiceRef
+{
+
+
+
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","rpc-registry"));
+
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl;
+import java.util.Collections;
+import java.util.Map;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import java.util.HashMap;
+import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+
+/**
+ * Class that builds {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry} instances.
+ *
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry
+ *
+ */
+public class RpcRegistryBuilder implements Builder <org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry> {
+
+ private java.lang.Object _name;
+ private java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> _type;
+
+ Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> augmentation = new HashMap<>();
+
+ public RpcRegistryBuilder() {
+ }
+ public RpcRegistryBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef arg) {
+ this._type = arg.getType();
+ this._name = arg.getName();
+ }
+
+ public RpcRegistryBuilder(RpcRegistry base) {
+ this._name = base.getName();
+ this._type = base.getType();
+ if (base instanceof RpcRegistryImpl) {
+ RpcRegistryImpl _impl = (RpcRegistryImpl) base;
+ this.augmentation = new HashMap<>(_impl.augmentation);
+ }
+ }
+
+ /**
+ *Set fields from given grouping argument. Valid argument is instance of one of following types:
+ * <ul>
+ * <li>org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef</li>
+ * </ul>
+ *
+ * @param arg grouping object
+ * @throws IllegalArgumentException if given argument is none of valid types
+ */
+ public void fieldsFrom(DataObject arg) {
+ boolean isValidArg = false;
+ if (arg instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef) {
+ this._type = ((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef)arg).getType();
+ this._name = ((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef)arg).getName();
+ isValidArg = true;
+ }
+ if (!isValidArg) {
+ throw new IllegalArgumentException(
+ "expected one of: [org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceRef] \n" +
+ "but was: " + arg
+ );
+ }
+ }
+
+ public java.lang.Object getName() {
+ return _name;
+ }
+
+ public java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> getType() {
+ return _type;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ public RpcRegistryBuilder setName(java.lang.Object value) {
+ this._name = value;
+ return this;
+ }
+
+ public RpcRegistryBuilder setType(java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> value) {
+ this._type = value;
+ return this;
+ }
+
+ public RpcRegistryBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry> augmentation) {
+ if (augmentation == null) {
+ return removeAugmentation(augmentationType);
+ }
+ this.augmentation.put(augmentationType, augmentation);
+ return this;
+ }
+
+ public RpcRegistryBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> augmentationType) {
+ this.augmentation.remove(augmentationType);
+ return this;
+ }
+
+ public RpcRegistry build() {
+ return new RpcRegistryImpl(this);
+ }
+
+ private static final class RpcRegistryImpl implements RpcRegistry {
+
+ public java.lang.Class<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry> getImplementedInterface() {
+ return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry.class;
+ }
+
+ private final java.lang.Object _name;
+ private final java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> _type;
+
+ private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> augmentation = new HashMap<>();
+
+ private RpcRegistryImpl(RpcRegistryBuilder base) {
+ this._name = base.getName();
+ this._type = base.getType();
+ switch (base.augmentation.size()) {
+ case 0:
+ this.augmentation = Collections.emptyMap();
+ break;
+ case 1:
+ final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> e = base.augmentation.entrySet().iterator().next();
+ this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>singletonMap(e.getKey(), e.getValue());
+ break;
+ default :
+ this.augmentation = new HashMap<>(base.augmentation);
+ }
+ }
+
+ @Override
+ public java.lang.Object getName() {
+ return _name;
+ }
+
+ @Override
+ public java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.ServiceType> getType() {
+ return _type;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((_name == null) ? 0 : _name.hashCode());
+ result = prime * result + ((_type == null) ? 0 : _type.hashCode());
+ result = prime * result + ((augmentation == null) ? 0 : augmentation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(java.lang.Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DataObject)) {
+ return false;
+ }
+ if (!org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry.class.equals(((DataObject)obj).getImplementedInterface())) {
+ return false;
+ }
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry other = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry)obj;
+ if (_name == null) {
+ if (other.getName() != null) {
+ return false;
+ }
+ } else if(!_name.equals(other.getName())) {
+ return false;
+ }
+ if (_type == null) {
+ if (other.getType() != null) {
+ return false;
+ }
+ } else if(!_type.equals(other.getType())) {
+ return false;
+ }
+ if (getClass() == obj.getClass()) {
+ // Simple case: we are comparing against self
+ RpcRegistryImpl otherImpl = (RpcRegistryImpl) obj;
+ if (augmentation == null) {
+ if (otherImpl.augmentation != null) {
+ return false;
+ }
+ } else if(!augmentation.equals(otherImpl.augmentation)) {
+ return false;
+ }
+ } else {
+ // Hard case: compare our augments with presence there...
+ for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.configuration.alto.provider.impl.RpcRegistry>> e : augmentation.entrySet()) {
+ if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
+ return false;
+ }
+ }
+ // .. and give the other one the chance to do the same
+ if (!obj.equals(this)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder builder = new java.lang.StringBuilder ("RpcRegistry [");
+ boolean first = true;
+
+ if (_name != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_name=");
+ builder.append(_name);
+ }
+ if (_type != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_type=");
+ builder.append(_type);
+ }
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("augmentation=");
+ builder.append(augmentation.values());
+ return builder.append(']').toString();
+ }
+ }
+
+}
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.module.State;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+
+
+/**
+ * <p>This class represents the following YANG schema fragment defined in module <b>alto-provider-impl</b>
+ * <br>(Source path: <i>META-INF/yang/alto-provider-impl.yang</i>):
+ * <pre>
+ * case alto-provider-impl {
+ * leaf toasts-made {
+ * type uint32;
+ * }
+ * }
+ * </pre>
+ * The schema path to identify an instance is
+ * <i>alto-provider-impl/modules/module/state/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl</i>
+ *
+ */
+public interface AltoProviderImpl
+ extends
+ DataObject,
+ Augmentable<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>,
+ State
+{
+
+
+
+ public static final QName QNAME = org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl","2014-11-19","alto-provider-impl"));
+
+ java.lang.Long getToastsMade();
+
+}
+
--- /dev/null
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state;
+import com.google.common.collect.Range;
+import java.util.Collections;
+import java.util.Map;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import java.util.HashMap;
+import org.opendaylight.yangtools.concepts.Builder;
+import com.google.common.collect.ImmutableList;
+import java.math.BigInteger;
+import java.util.List;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+
+/**
+ * Class that builds {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl} instances.
+ *
+ * @see org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl
+ *
+ */
+public class AltoProviderImplBuilder implements Builder <org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl> {
+
+ private java.lang.Long _toastsMade;
+ private static List<Range<BigInteger>> _toastsMade_range;
+
+ Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> augmentation = new HashMap<>();
+
+ public AltoProviderImplBuilder() {
+ }
+
+ public AltoProviderImplBuilder(AltoProviderImpl base) {
+ this._toastsMade = base.getToastsMade();
+ if (base instanceof AltoProviderImplImpl) {
+ AltoProviderImplImpl _impl = (AltoProviderImplImpl) base;
+ this.augmentation = new HashMap<>(_impl.augmentation);
+ }
+ }
+
+
+ public java.lang.Long getToastsMade() {
+ return _toastsMade;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ public AltoProviderImplBuilder setToastsMade(java.lang.Long value) {
+ if (value != null) {
+ BigInteger _constraint = BigInteger.valueOf(value);
+ boolean isValidRange = false;
+ for (Range<BigInteger> r : _toastsMade_range()) {
+ if (r.contains(_constraint)) {
+ isValidRange = true;
+ }
+ }
+ if (!isValidRange) {
+ throw new IllegalArgumentException(String.format("Invalid range: %s, expected: %s.", value, _toastsMade_range));
+ }
+ }
+ this._toastsMade = value;
+ return this;
+ }
+ public static List<Range<BigInteger>> _toastsMade_range() {
+ if (_toastsMade_range == null) {
+ synchronized (AltoProviderImplBuilder.class) {
+ if (_toastsMade_range == null) {
+ ImmutableList.Builder<Range<BigInteger>> builder = ImmutableList.builder();
+ builder.add(Range.closed(BigInteger.ZERO, BigInteger.valueOf(4294967295L)));
+ _toastsMade_range = builder.build();
+ }
+ }
+ }
+ return _toastsMade_range;
+ }
+
+ public AltoProviderImplBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl> augmentation) {
+ if (augmentation == null) {
+ return removeAugmentation(augmentationType);
+ }
+ this.augmentation.put(augmentationType, augmentation);
+ return this;
+ }
+
+ public AltoProviderImplBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> augmentationType) {
+ this.augmentation.remove(augmentationType);
+ return this;
+ }
+
+ public AltoProviderImpl build() {
+ return new AltoProviderImplImpl(this);
+ }
+
+ private static final class AltoProviderImplImpl implements AltoProviderImpl {
+
+ public java.lang.Class<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl> getImplementedInterface() {
+ return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl.class;
+ }
+
+ private final java.lang.Long _toastsMade;
+
+ private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> augmentation = new HashMap<>();
+
+ private AltoProviderImplImpl(AltoProviderImplBuilder base) {
+ this._toastsMade = base.getToastsMade();
+ switch (base.augmentation.size()) {
+ case 0:
+ this.augmentation = Collections.emptyMap();
+ break;
+ case 1:
+ final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> e = base.augmentation.entrySet().iterator().next();
+ this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>singletonMap(e.getKey(), e.getValue());
+ break;
+ default :
+ this.augmentation = new HashMap<>(base.augmentation);
+ }
+ }
+
+ @Override
+ public java.lang.Long getToastsMade() {
+ return _toastsMade;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <E extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> E getAugmentation(java.lang.Class<E> augmentationType) {
+ if (augmentationType == null) {
+ throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
+ }
+ return (E) augmentation.get(augmentationType);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((_toastsMade == null) ? 0 : _toastsMade.hashCode());
+ result = prime * result + ((augmentation == null) ? 0 : augmentation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(java.lang.Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DataObject)) {
+ return false;
+ }
+ if (!org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl.class.equals(((DataObject)obj).getImplementedInterface())) {
+ return false;
+ }
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl other = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl)obj;
+ if (_toastsMade == null) {
+ if (other.getToastsMade() != null) {
+ return false;
+ }
+ } else if(!_toastsMade.equals(other.getToastsMade())) {
+ return false;
+ }
+ if (getClass() == obj.getClass()) {
+ // Simple case: we are comparing against self
+ AltoProviderImplImpl otherImpl = (AltoProviderImplImpl) obj;
+ if (augmentation == null) {
+ if (otherImpl.augmentation != null) {
+ return false;
+ }
+ } else if(!augmentation.equals(otherImpl.augmentation)) {
+ return false;
+ }
+ } else {
+ // Hard case: compare our augments with presence there...
+ for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.alto.provider.impl.rev141119.modules.module.state.AltoProviderImpl>> e : augmentation.entrySet()) {
+ if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
+ return false;
+ }
+ }
+ // .. and give the other one the chance to do the same
+ if (!obj.equals(this)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder builder = new java.lang.StringBuilder ("AltoProviderImpl [");
+ boolean first = true;
+
+ if (_toastsMade != null) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("_toastsMade=");
+ builder.append(_toastsMade);
+ }
+ if (first) {
+ first = false;
+ } else {
+ builder.append(", ");
+ }
+ builder.append("augmentation=");
+ builder.append(augmentation.values());
+ return builder.append(']').toString();
+ }
+ }
+
+}
--- /dev/null
+<?xml version="1.0"?>
+<!-- Copyright IBM Corporation, 2013. All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<module name="Checker">
+</module>
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>features-parent</artifactId>
- <version>1.5.0-SNAPSHOT</version>
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
</parent>
+
<groupId>org.opendaylight.alto</groupId>
<artifactId>alto-features</artifactId>
- <version>1.0.0-SNAPSHOT</version>
<name>${project.artifactId}</name>
<modelVersion>4.0.0</modelVersion>
+
<prerequisites>
<maven>3.1.1</maven>
</prerequisites>
+
<properties>
+ <features.file>features.xml</features.file>
+ <branding.version>${project.version}</branding.version>
+
<mdsal.version>1.2.0-SNAPSHOT</mdsal.version>
<yangtools.version>0.7.0-SNAPSHOT</yangtools.version>
</properties>
+
<dependencyManagement>
<dependencies>
<!-- project specific dependencies -->
</dependency>
</dependencies>
</dependencyManagement>
+
<dependencies>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<version>${mdsal.version}</version>
<type>xml</type>
<scope>runtime</scope>
- </dependency>
- <dependency>
+ </dependency>
+ <dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>alto-provider</artifactId>
+ <artifactId>alto-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>alto-model</artifactId>
+ <artifactId>alto-provider</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>filter</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>resources</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${project.build.directory}/classes/${features.file}</file>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
<feature version='${mdsal.version}'>odl-mdsal-broker</feature>
<feature version='${project.version}'>odl-alto-model</feature>
<bundle>mvn:org.opendaylight.alto/alto-provider/${project.version}</bundle>
+ <!-- TODO need to create such a configuration file
<configfile finalname="alto-provider-default-config.xml">mvn:org.opendaylight.alto/alto-provider/${project.version}/xml/config</configfile>
+ -->
</feature>
<feature name='odl-alto-provider-rest' version='${project.version}' description='OpenDaylight :: alto :: provider :: REST '>
<feature version="${project.version}">odl-alto-provider</feature>
<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2015 Yale University and others. All rights reserved.
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
--->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <groupId>org.opendaylight.alto</groupId>
- <artifactId>alto-aggregator</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <name>${project.artifactId}</name>
- <packaging>pom</packaging>
- <modelVersion>4.0.0</modelVersion>
- <prerequisites>
- <maven>3.1.1</maven>
- </prerequisites>
- <modules>
- <module>alto-model</module>
- <module>alto-provider</module>
- <module>alto-northbound</module>
- <module>features</module>
- <module>alto-artifacts</module>
- <module>alto-karaf</module>
- </modules>
-
- <distributionManagement>
- <repository>
- <id>opendaylight-release</id>
- <url>http://nexus.opendaylight.org/content/repositories/opendaylight.release/</url>
- </repository>
- <snapshotRepository>
- <id>opendaylight-snapshot</id>
- <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
- </snapshotRepository>
- </distributionManagement>
+ <modelVersion>4.0.0</modelVersion>
+
+ <prerequisites>
+ <maven>3.0.4</maven>
+ </prerequisites>
+
+ <parent>
+ <groupId>org.opendaylight.odlparent</groupId>
+ <artifactId>odlparent</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ <relativePath></relativePath>
+ </parent>
+
+ <groupId>org.opendaylight.alto</groupId>
+ <artifactId>alto-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <name>alto</name> <!-- Used by Sonar to set project name -->
+ <packaging>pom</packaging>
+
+ <!--
+ <scm>
+ <connection>scm:git:ssh://git.opendaylight.org:29418/sfc.git</connection>
+ <developerConnection>scm:git:ssh://git.opendaylight.org:29418/sfc.git</developerConnection>
+ <url>https://wiki.opendaylight.org/view/Service_Function_Chaining:Main</url>
+ <tag>HEAD</tag>
+ </scm>
+ -->
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <!-- Java Versions -->
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+
+ <!-- Build Plugin Versions -->
+ <maven.release.version>2.4.2</maven.release.version>
+ <maven.resources.version>2.6</maven.resources.version>
+ <maven.helper.version>1.8</maven.helper.version>
+ <maven.dependency.version>2.6</maven.dependency.version>
+ <maven.exec.version>1.3.2</maven.exec.version>
+
+ <ietf.model.version>2010.09.24.7-SNAPSHOT</ietf.model.version>
+ <ietf.yang.types.version>2013.07.15.7-SNAPSHOT</ietf.yang.types.version>
+ <ietf.topology.version>2013.10.21.2-SNAPSHOT</ietf.topology.version>
+ <yang.ext.version>2013.09.07.7-SNAPSHOT</yang.ext.version>
+ <config.version>0.3.0-SNAPSHOT</config.version>
+ <mdsal.version>1.2.0-SNAPSHOT</mdsal.version>
+ <controller.model.version>1.2.0-SNAPSHOT</controller.model.version>
+ <build.helper.version>1.8</build.helper.version>
+ <netconf.parent.version>0.3.0-SNAPSHOT</netconf.parent.version>
+ <config.parent.version>0.3.0-SNAPSHOT</config.parent.version>
+ <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
+ <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
+ <jackson.version>2.3.2</jackson.version>
+ <config.version>0.3.0-SNAPSHOT</config.version>
+
+ <yangtools.version>0.7.0-SNAPSHOT</yangtools.version>
+ <yangtools.binding.version>0.7.0-SNAPSHOT</yangtools.binding.version>
+
+ <lispflowmapping.version>1.2.0-SNAPSHOT</lispflowmapping.version>
+ <ovsdb.southbound.version>1.1.0-SNAPSHOT</ovsdb.southbound.version>
+
+ <!-- Supporting Libraries -->
+ <slf4j.version>1.7.5</slf4j.version>
+ <feature.openflowplugin.version>0.1.0-SNAPSHOT</feature.openflowplugin.version>
+
+ <branding.version>1.1.0-SNAPSHOT</branding.version>
+ <karaf.resources.version>1.5.0-SNAPSHOT</karaf.resources.version>
+ <feature.test.version>1.5.0-SNAPSHOT</feature.test.version>
+ <karaf.empty.version>1.5.0-SNAPSHOT</karaf.empty.version>
+
+ <!-- Test Libraries -->
+ <powermock.version>1.5.6</powermock.version>
+ </properties>
+
+ <distributionManagement>
+ <!-- OpenDayLight Released artifact -->
+ <repository>
+ <id>opendaylight-release</id>
+ <url>http://nexus.opendaylight.org/content/repositories/opendaylight.release</url>
+ </repository>
+ <!-- OpenDayLight Snapshot artifact -->
+ <snapshotRepository>
+ <id>opendaylight-snapshot</id>
+ <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot</url>
+ </snapshotRepository>
+ <!-- Site deployment -->
+ <!-- site>
+ <id>website</id>
+ <url>${sitedeploy}</url>
+ </site -->
+ </distributionManagement>
+
+ <modules>
+ <module>alto-model</module>
+ <module>alto-provider</module>
+ <module>alto-northbound</module>
+ <module>alto-artifacts</module>
+ <module>features</module>
+ <module>alto-karaf</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>org.opendaylight.sfc.*</include>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <id>pre-test</id>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>post-test</id>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ <phase>test</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${compiler.version}</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.ops4j.pax.exam</groupId>
+ <artifactId>maven-paxexam-plugin</artifactId>
+ <version>1.2.4</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${jmxGeneratorPath}</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ </fileset>
+ <fileset>
+ <directory>${salGeneratorPath}</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>${build.helper.version}</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${jmxGeneratorPath}</source>
+ <source>${salGeneratorPath}</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-maven-plugin</artifactId>
+ <version>0.7.0-SNAPSHOT</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${maven.bundle.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+ </instructions>
+ <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>${jacoco.version}</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
</project>