Fix the dependency issues and unify the version to 1.0.0 98/17398/2
authorGao Kai <gaok12@mails.tsinghua.edu.cn>
Tue, 31 Mar 2015 03:22:01 +0000 (11:22 +0800)
committerKai Gao <gaok12@mails.tsinghua.edu.cn>
Tue, 31 Mar 2015 03:29:21 +0000 (03:29 +0000)
Now it should be compilable but not tested for deployment.

Change-Id: I91b352cb570dbe2c96b3963640c4bfe28e396202
Signed-off-by: Gao Kai <gaok12@mails.tsinghua.edu.cn>
38 files changed:
alto-model/META-INF/MANIFEST.MF [new file with mode: 0644]
alto-model/pom.xml
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/CostMetricBuilder.java [new file with mode: 0644]
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointAddressTypeBuilder.java [new file with mode: 0644]
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointPropertyTypeBuilder.java [new file with mode: 0644]
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/GlobalEndpointPropertyBuilder.java [new file with mode: 0644]
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/MediaTypeBuilder.java [new file with mode: 0644]
alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/TypedEndpointAddressBuilder.java [new file with mode: 0644]
alto-northbound/enunciate.xml [new file with mode: 0644]
alto-northbound/pom.xml
alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthbound.java [new file with mode: 0644]
alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthboundRSApplication.java [new file with mode: 0644]
alto-northbound/src/main/resources/WEB-INF/web.xml [new file with mode: 0644]
alto-provider/META-INF/MANIFEST.MF [new file with mode: 0644]
alto-provider/pom.xml
alto-provider/src/main/config/maven-metadata-local.xml [new file with mode: 0644]
alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModule.java [new file with mode: 0644]
alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModuleFactory.java [new file with mode: 0644]
alto-provider/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/provider/impl/rev141119/OpendaylightAlto.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModelBindingProvider.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModuleInfoImpl.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImpl.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImplService.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInput.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInputBuilder.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeRpc.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImpl.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImplBuilder.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBroker.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBrokerBuilder.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistry.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistryBuilder.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImpl.java [new file with mode: 0644]
alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImplBuilder.java [new file with mode: 0644]
checkstyle.xml [new file with mode: 0644]
features/pom.xml
features/src/main/resources/features.xml [moved from features/src/main/features/features.xml with 97% similarity]
pom.xml

diff --git a/alto-model/META-INF/MANIFEST.MF b/alto-model/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..57c61a8
--- /dev/null
@@ -0,0 +1,284 @@
+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
index 5e93b730e52ec1cc3bd354058d954db38e2d8a88..059246301697acb294ab9dee6f74f8455b32c4d6 100644 (file)
 <?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>
+
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/CostMetricBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/CostMetricBuilder.java
new file mode 100644 (file)
index 0000000..9e70be9
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointAddressTypeBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointAddressTypeBuilder.java
new file mode 100644 (file)
index 0000000..6ce0110
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointPropertyTypeBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/EndpointPropertyTypeBuilder.java
new file mode 100644 (file)
index 0000000..3932a6a
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/GlobalEndpointPropertyBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/GlobalEndpointPropertyBuilder.java
new file mode 100644 (file)
index 0000000..5b7d858
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/MediaTypeBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/MediaTypeBuilder.java
new file mode 100644 (file)
index 0000000..a47f20f
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/TypedEndpointAddressBuilder.java b/alto-model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/service/types/rev141101/TypedEndpointAddressBuilder.java
new file mode 100644 (file)
index 0000000..aaf8de3
--- /dev/null
@@ -0,0 +1,19 @@
+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");
+    }
+
+}
diff --git a/alto-northbound/enunciate.xml b/alto-northbound/enunciate.xml
new file mode 100644 (file)
index 0000000..b83bbeb
--- /dev/null
@@ -0,0 +1,12 @@
+<?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>
index 06c67d286be53a529a2983a2ea1c1de619ac2967..e5310fa82ed3cafa7328d4a5a0835fddedfc2d30 100644 (file)
@@ -1,23 +1,91 @@
 <?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>
+
diff --git a/alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthbound.java b/alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthbound.java
new file mode 100644 (file)
index 0000000..848dd54
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * 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();
+    }
+}
diff --git a/alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthboundRSApplication.java b/alto-northbound/src/main/java/org/opendaylight/alto/northbound/AltoNorthboundRSApplication.java
new file mode 100644 (file)
index 0000000..f5cfea8
--- /dev/null
@@ -0,0 +1,15 @@
+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;
+    }
+}
diff --git a/alto-northbound/src/main/resources/WEB-INF/web.xml b/alto-northbound/src/main/resources/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..3e2d311
--- /dev/null
@@ -0,0 +1,92 @@
+<?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>
+
diff --git a/alto-provider/META-INF/MANIFEST.MF b/alto-provider/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..9f714c0
--- /dev/null
@@ -0,0 +1,47 @@
+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
index ad5200c4f09ab51053ccc724bf83479faa83c031..3ce667b0ea23e0985d0773ff24ebb18aeb701f90 100644 (file)
@@ -5,16 +5,15 @@
   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>
diff --git a/alto-provider/src/main/config/maven-metadata-local.xml b/alto-provider/src/main/config/maven-metadata-local.xml
new file mode 100644 (file)
index 0000000..e6147ee
--- /dev/null
@@ -0,0 +1,20 @@
+<?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>
diff --git a/alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModule.java b/alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModule.java
new file mode 100644 (file)
index 0000000..6119a5f
--- /dev/null
@@ -0,0 +1,48 @@
+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();
+    }
+
+}
diff --git a/alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModuleFactory.java b/alto-provider/src/main/java/org/opendaylight/controller/config/yang/config/alto_provider/impl/AltoProviderModuleFactory.java
new file mode 100644 (file)
index 0000000..db180e3
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+* 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 {
+
+}
diff --git a/alto-provider/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/provider/impl/rev141119/OpendaylightAlto.java b/alto-provider/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/alto/provider/impl/rev141119/OpendaylightAlto.java
new file mode 100644 (file)
index 0000000..8c7bdaa
--- /dev/null
@@ -0,0 +1,351 @@
+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;
+    }
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModelBindingProvider.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModelBindingProvider.java
new file mode 100644 (file)
index 0000000..fa63d3a
--- /dev/null
@@ -0,0 +1,8 @@
+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();
+    }
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModuleInfoImpl.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/$YangModuleInfoImpl.java
new file mode 100644 (file)
index 0000000..78fbc8b
--- /dev/null
@@ -0,0 +1,84 @@
+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();
+    }
+    
+    
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImpl.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImpl.java
new file mode 100644 (file)
index 0000000..8cc2502
--- /dev/null
@@ -0,0 +1,38 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * 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;
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;alto-provider-impl/alto-provider-impl&lt;/i&gt;
+ *
+ */
+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() {
+    
+    
+    }
+    
+
+
+
+
+
+
+
+
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImplService.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/AltoProviderImplService.java
new file mode 100644 (file)
index 0000000..f559bed
--- /dev/null
@@ -0,0 +1,39 @@
+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 &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * rpc clear-toasts-made {
+ *     "JMX call to clear the toasts-made counter.";
+ *     input {
+ *         leaf context-instance {
+ *             type instance-identifier;
+ *         }
+ *     }
+ *     
+ *     status CURRENT;
+ * }
+ * &lt;/pre&gt;
+ *
+ */
+public interface AltoProviderImplService
+    extends
+    RpcService
+{
+
+
+
+
+    /**
+     * JMX call to clear the toasts-made counter.
+     *
+     */
+    Future<RpcResult<java.lang.Void>> clearToastsMade(ClearToastsMadeInput input);
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInput.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInput.java
new file mode 100644 (file)
index 0000000..f001d50
--- /dev/null
@@ -0,0 +1,45 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * 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;
+ *             }
+ *         }
+ *     }
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;alto-provider-impl/clear-toasts-made/input&lt;/i&gt;
+ *
+ * &lt;p&gt;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"));
+
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInputBuilder.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeInputBuilder.java
new file mode 100644 (file)
index 0000000..3c0f2cb
--- /dev/null
@@ -0,0 +1,211 @@
+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();
+        }
+    }
+
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeRpc.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/ClearToastsMadeRpc.java
new file mode 100644 (file)
index 0000000..df22214
--- /dev/null
@@ -0,0 +1,37 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * identity clear-toasts-made-rpc {
+ *     status CURRENT;
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;alto-provider-impl/clear-toasts-made-rpc&lt;/i&gt;
+ *
+ */
+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() {
+    
+    
+    }
+    
+
+
+
+
+
+
+
+
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImpl.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImpl.java
new file mode 100644 (file)
index 0000000..52fd97e
--- /dev/null
@@ -0,0 +1,67 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * 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;
+ *                 }
+ *             }
+ *         }
+ *     }
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;alto-provider-impl/modules/module/configuration/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl&lt;/i&gt;
+ *
+ */
+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();
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImplBuilder.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/AltoProviderImplBuilder.java
new file mode 100644 (file)
index 0000000..5e6508a
--- /dev/null
@@ -0,0 +1,222 @@
+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();
+        }
+    }
+
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBroker.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBroker.java
new file mode 100644 (file)
index 0000000..8a12af8
--- /dev/null
@@ -0,0 +1,49 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * 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;
+ *             }
+ *         }
+ *     }
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;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&lt;/i&gt;
+ *
+ * &lt;p&gt;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"));
+
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBrokerBuilder.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/DataBrokerBuilder.java
new file mode 100644 (file)
index 0000000..db564ae
--- /dev/null
@@ -0,0 +1,247 @@
+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();
+        }
+    }
+
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistry.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistry.java
new file mode 100644 (file)
index 0000000..7a705c2
--- /dev/null
@@ -0,0 +1,49 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * 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;
+ *             }
+ *         }
+ *     }
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;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&lt;/i&gt;
+ *
+ * &lt;p&gt;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"));
+
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistryBuilder.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/configuration/alto/provider/impl/RpcRegistryBuilder.java
new file mode 100644 (file)
index 0000000..9d150c2
--- /dev/null
@@ -0,0 +1,247 @@
+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();
+        }
+    }
+
+}
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImpl.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImpl.java
new file mode 100644 (file)
index 0000000..bc38848
--- /dev/null
@@ -0,0 +1,36 @@
+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;
+
+
+/**
+ * &lt;p&gt;This class represents the following YANG schema fragment defined in module &lt;b&gt;alto-provider-impl&lt;/b&gt;
+ * &lt;br&gt;(Source path: &lt;i&gt;META-INF/yang/alto-provider-impl.yang&lt;/i&gt;):
+ * &lt;pre&gt;
+ * case alto-provider-impl {
+ *     leaf toasts-made {
+ *         type uint32;
+ *     }
+ * }
+ * &lt;/pre&gt;
+ * The schema path to identify an instance is
+ * &lt;i&gt;alto-provider-impl/modules/module/state/(urn:opendaylight:params:xml:ns:yang:controller:config:alto-provider:impl?revision=2014-11-19)alto-provider-impl&lt;/i&gt;
+ *
+ */
+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();
+
+}
+
diff --git a/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImplBuilder.java b/alto-provider/src/main/yang-gen-sal/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/controller/config/alto/provider/impl/rev141119/modules/module/state/AltoProviderImplBuilder.java
new file mode 100644 (file)
index 0000000..0755ca8
--- /dev/null
@@ -0,0 +1,214 @@
+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();
+        }
+    }
+
+}
diff --git a/checkstyle.xml b/checkstyle.xml
new file mode 100644 (file)
index 0000000..bce0694
--- /dev/null
@@ -0,0 +1,13 @@
+<?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>
index d7f11c929f654b1351ef99aa9731bab631e3ebf4..faa82bcd6530b430d8539f2a0e9dd406bd75e2cd 100644 (file)
@@ -7,22 +7,29 @@ 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">
   <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 -->
@@ -35,6 +42,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       </dependency>
     </dependencies>
   </dependencyManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
@@ -59,16 +67,63 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       <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>
similarity index 97%
rename from features/src/main/features/features.xml
rename to features/src/main/resources/features.xml
index 1331c427b55f1371f053b0e324e3efd152ff8c9c..e7c215889baca20194d318a111cf49c019c9ba83 100644 (file)
@@ -21,7 +21,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <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>
diff --git a/pom.xml b/pom.xml
index 8bd026206df72531ee48ec4bcb0d77b90da478e9..c74796f80611fbb66a4da1d7a29c86d02ecb4181 100644 (file)
--- a/pom.xml
+++ b/pom.xml
 <?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>